meeyland app
Meey Land
Cổng thông tin bất động sản xác thực 4.0
Tải ứng dụng

Behavior Tree là gì? Các ứng dụng của cây hành vi

Thứ năm, 02/02/2023-11:02
Behavior Tree bắt nguồn từ ngành công nghiệp trò chơi điện tử như một công cụ mạnh mẽ để mô hình hóa hành vi của các nhân vật trong game mà không phải người chơi chính(NPC).Vậy Behavior Tree là gì?

Behavior Tree là gì?

Behavior Tree hay cây hành vi là một mô hình toán học mô tả chi tiết kế hoạch thực hiện một tập hợp các nhiệm vụ được xác định trước. Nếu bạn có một tập hữu hạn các tác vụ, thì cây hành vi là nơi bạn chỉ định cách chương trình chuyển từ tác vụ này sang tác vụ khác.

Cây hành vi ban đầu được sử dụng để phát triển trò chơi điện tử nhưng hiện được sử dụng rộng rãi trong chế tạo người máy, khoa học máy tính và trí tuệ nhân tạo (AI). Với cây hành vi, các nhiệm vụ phức tạp, chẳng hạn như bắt Pacman, có thể thực hiện được thông qua một loạt các nhiệm vụ đơn giản. Trong “Pacman”, những nhiệm vụ này bao gồm xác định vị trí của những viên thuốc và trái cây.

Cây hành vi trông giống hệt như một lưu đồ mà chúng ta thường thấy trong các văn phòng, biểu đồ này giải thích quy trình của một quy trình cụ thể. Ví dụ: trong bệnh viện, bạn thường thấy sơ đồ phân loại, giúp các chuyên gia chăm sóc sức khỏe ưu tiên bệnh nhân theo nhu cầu y tế. 


Behavior Tree là một mô hình toán học
Behavior Tree là một mô hình toán học

Cây hành vi trở nên phổ biến nhờ mô hình phát triển của chúng: có thể tạo ra một hành vi phức tạp bằng cách chỉ lập trình các hành động của NPC và sau đó thiết kế cấu trúc cây (thường thông qua kéo và thả) có các nút lá là các hành động và các nút bên trong của chúng xác định việc ra quyết định của NPC. Cây hành vi trực quan và dễ thiết kế, thử nghiệm và gỡ lỗi, đồng thời cung cấp nhiều mô-đun, khả năng mở rộng và khả năng sử dụng lại hơn các phương pháp tạo hành vi khác.

Trong những năm qua, việc triển khai đa dạng cây hành vi tiếp tục cải thiện cả về hiệu quả và khả năng để đáp ứng nhu cầu của ngành, cho đến khi chúng phát triển thành cây hành vi hướng sự kiện. Cây hành vi hướng sự kiện đã giải quyết một số vấn đề về khả năng mở rộng của cây hành vi cổ điển bằng cách thay đổi cách cây xử lý nội bộ quá trình thực thi của nó và bằng cách giới thiệu một loại nút mới có thể phản ứng với các sự kiện và hủy bỏ các nút đang chạy. Ngày nay, khái niệm cây hành vi hướng sự kiện là một tiêu chuẩn và được sử dụng trong hầu hết các triển khai, mặc dù chúng vẫn được gọi là "cây hành vi" để đơn giản.

Một khía cạnh cốt lõi của Cây hành vi là không giống như một phương thức trong cơ sở mã của bạn, một nút hoặc nhánh cụ thể trong cây có thể mất nhiều tích tắc để hoàn thành trò chơi. Trong triển khai cơ bản của cây hành vi, hệ thống sẽ duyệt qua từng khung hình từ gốc của cây, kiểm tra từng nút trên cây để xem nút nào đang hoạt động, kiểm tra lại bất kỳ nút nào trên đường đi, cho đến khi chạm tới nút hiện đang hoạt động để đánh dấu vào nó một lần nữa.

Một trong những chủ đề chính về cây hành vi mà chúng ta đã bỏ qua cho đến nay là trạng thái trả về của một tác vụ. Người dùng có thể có một nhiệm vụ cần nhiều hơn một khung để hoàn thành. Ví dụ: hầu hết các hoạt cảnh sẽ không bắt đầu và kết thúc chỉ trong một khung hình. Ngoài ra, các tác vụ có điều kiện cần một cách để cho tác vụ cha của chúng biết điều kiện đó có đúng hay không để tác vụ cha có thể quyết định xem nó có nên tiếp tục chạy các tác vụ con của nó hay không. Cả hai vấn đề này đều có thể được giải quyết bằng cách sử dụng trạng thái tác vụ. Một tác vụ ở một trong ba trạng thái khác nhau: đang chạy, thành công hoặc thất bại. 

Các ứng dụng của cây hành vi

Behavior Tree có những ứng dụng như sau: 

Cây hành vi trong Robotics

Cây hành vi làm cho các ứng dụng robot hiệu quả và năng suất hơn. Hãy tưởng tượng một người máy được giao nhiệm vụ nhặt lon từ sàn nhà để đặt chúng lên một kệ cụ thể. Nếu không sử dụng cây hành vi, rô-bốt sẽ đi theo lộ trình của nó, bất kể các sự kiện. Ví dụ, rô-bốt sẽ không dừng lại ngay cả khi nó làm rơi lon hoặc khi có người đi thẳng vào đường đi của nó. Kết quả là, nó sẽ không thực hiện nhiệm vụ của mình một cách hiệu quả.

Khi cùng một robot được tạo bằng cách sử dụng cây hành vi, nó có thể được lập trình để dừng khi có thứ gì đó chặn đường đi của nó. Nó có thể được dạy thêm để quay trở lại vị trí ban đầu hoặc cảnh báo con người khi điều này xảy ra.


Cây hành vi có nhiều ứng dụng khác nhau
Cây hành vi có nhiều ứng dụng khác nhau

Cây hành vi trong trò chơi máy tính

Như đã đề cập trước đây, cây hành vi lần đầu tiên được sử dụng trong trò chơi máy tính để kiểm soát hành vi của nhân vật không phải người chơi hoặc nhân vật trò chơi mà người chơi không điều khiển. Về bản chất, cây hành vi cung cấp AI cho những nhân vật này. Một số ví dụ về trò chơi máy tính sử dụng cây hành vi là:

  • Pacman
  • Halo 
  • Spore 
  • Bioshock

Cây hành vi hoạt động như thế nào?

Nói một cách đơn giản, mục tiêu của cây hành vi là cung cấp cho các nhân vật không phải người chơi AI để họ có thể thực hiện các hành động cụ thể. Nếu bạn để ý trong video trò chơi “Pacman” này, những bóng ma dường như bị thu hút bởi những viên thuốc, rất có thể đó là nơi Pacman sẽ ở:

Những con ma được dạy thông qua cây hành vi để đánh bại Pacman bằng cách đi đến nơi có những viên thuốc.

Trong những năm qua, cây hành vi đã phát triển để theo kịp sự phát triển của ngành. Hiện tại, các cây hành vi chủ yếu được điều khiển theo sự kiện, có nghĩa là các nhân vật và chương trình không phải người chơi đã có thể được lập trình để phản ứng với các sự kiện. 

Hạn chế của cây hành vi

Tạo rô bốt, ứng dụng và trò chơi bằng cách sử dụng cây hành vi làm cho chúng tốt hơn rất nhiều về hiệu quả và hiệu suất. Tuy nhiên, cây hành vi có những hạn chế. Một trong số đó là nhu cầu về các công cụ khi điều hướng qua các cây hành vi lớn.

Hạn chế đáng kể nhất là nó không dạy một chương trình để đưa ra quyết định tốt hơn. Vì quá trình ra quyết định được mã hóa cứng vào cây nên nó không dạy các nhân vật hoặc rô-bốt cách đưa ra quyết định.

Thực thi Behavior Tree như thế nào?

Cây hành vi được biểu diễn bằng đồ họa dưới dạng cây có hướng trong đó các nút được phân loại là nút gốc, nút luồng điều khiển hoặc nút thực thi (nhiệm vụ). Đối với mỗi cặp nút được kết nối, nút đi được gọi là nút cha và nút đến được gọi là nút con. Gốc không có cha và chính xác một con, các nút luồng điều khiển có một cha và ít nhất một con và các nút thực thi có một cha và không có con. Về mặt đồ họa, nút con của nút luồng điều khiển được đặt bên dưới nó, theo thứ tự từ trái sang phải.


Việc thực thi cây hành vi bắt đầu từ gốc gửi các dấu tích với tần suất nhất định lên cho con của chúng
Việc thực thi cây hành vi bắt đầu từ gốc gửi các dấu tích với tần suất nhất định lên cho con của chúng

Việc thực thi cây hành vi bắt đầu từ gốc gửi các dấu tích với tần suất nhất định cho con của nó. Đánh dấu là tín hiệu kích hoạt cho phép thực hiện một nhiệm vụ con. Khi việc thực thi một nút trong cây hành vi được cho phép, nó sẽ trả về cho nút gốc trạng thái đang chạy nếu việc thực hiện của nó chưa kết thúc, thành công nếu nó đã đạt được mục tiêu hoặc thất bại nếu không.

Nút luồng điều khiển

Một nút luồng điều khiển được sử dụng để kiểm soát các nhiệm vụ con mà nó được cấu thành. Nút luồng điều khiển có thể là nút bộ chọn (dự phòng) hoặc nút trình tự. Họ lần lượt thực hiện từng nhiệm vụ phụ của mình. Khi một nhiệm vụ con được hoàn thành và trả về trạng thái của nó (thành công hay thất bại), nút luồng điều khiển sẽ quyết định có thực hiện nhiệm vụ con tiếp theo hay không.

Nút bộ chọn (dự phòng)

Các nút dự phòng được sử dụng để tìm và thực thi nút con đầu tiên không bị lỗi. Nút dự phòng sẽ trả về ngay lập tức với mã trạng thái là thành công hoặc đang chạy khi một trong các nút con của nó trả về thành công hoặc đang chạy (xem Hình I và mã giả bên dưới). Các em được đánh dấu theo thứ tự quan trọng, từ trái sang phải.

Nút trình tự

Các nút trình tự được sử dụng để tìm và thực hiện phần tử con đầu tiên chưa thành công. Một nút trình tự sẽ trả về ngay lập tức với mã trạng thái là lỗi hoặc đang chạy khi một trong các nút con của nó trả về lỗi hoặc đang chạy (xem Hình II và mã giả bên dưới). Các em được đánh dấu theo thứ tự, từ trái sang phải.

Behavior Tree - Cây hành vi đã cải thiện đáng kể cách thức phát triển robot, trò chơi điện tử và các phần mềm chương trình máy tính. Sự phát triển của nó theo hướng hướng đến sự kiện thực tế cũng giúp nâng cao hiệu quả và làm cho các sản phẩm công nghệ trở nên thông minh hơn. Tuy nhiên, giống như bất kỳ công nghệ nào, nó cũng có những thách thức và hạn chế. Nhu cầu về nhiều tính năng và chức năng hơn có thể thúc đẩy sự phát triển hơn nữa của cây hành vi.

Theo: Reatimes.vn
Copy link
Chia sẻ:

Cùng chủ đề

Tiết lộ bất ngờ cho thấy TikTok Live sẽ đạt doanh thu hàng năm lên tới 77 tỷ USD

EU cam kết cắt giảm thủ tục hành chính về công nghệ để theo đuổi các mục tiêu về AI

Đẩy nhanh tiến độ vận hành cơ sở dữ liệu đất đai quốc gia

Meey Group chia sẻ kinh nghiệm về proptech tại Hội nghị Thượng đỉnh Khoa học và Kinh tế toàn cầu

Chủ nhân giải VinFuture 2024 khuyên người trẻ chấp nhận rủi ro và luôn tò mò

Liên danh FPT Nha Trang muốn làm khu đô thị công nghệ rộng hơn 50ha tại "hòn ngọc biển Đông"

Từng chỉ sống với 72 nghìn mỗi ngày, làm việc 100 giờ/tuần với 3 công việc: Nhiều năm sau "lội ngược dòng" thành doanh nhân thành đạt, nắm giữ khối tài sản tỷ đô

Mã độc lây lan qua Facebook có nguồn gốc từ Việt Nam NodeStealer lại “tái xuất giang hồ”

Tin mới cập nhật

Bán nhà Dương Văn Bé – Cập nhật giá mới, tiềm năng và kinh nghiệm giao dịch hiệu quả

11 giờ trước

Bán nhà mặt tiền quận 7 – Cập nhật giá mới nhất và kinh nghiệm giao dịch hiệu quả

13 giờ trước

Bán nhà Q Phú Nhuận – Cập nhật giá mới nhất & kinh nghiệm bán nhanh, được giá

1 ngày trước

Mua bán nhà đất Quận 7: Cập nhật giá mới nhất và kinh nghiệm giao dịch an toàn

1 ngày trước

Bán nhà tập thể thành công có còn dễ trong bối cảnh đô thị thay đổi?

2 ngày trước