Jakie są różnice między Drzewkami decyzyjnymi a Drzewkami behawioralnymi do tworzenia gier AI? Do jakich aplikacji używałbyś jednej?
źródło
Jakie są różnice między Drzewkami decyzyjnymi a Drzewkami behawioralnymi do tworzenia gier AI? Do jakich aplikacji używałbyś jednej?
Oba są całkiem różne. Prawdziwy wskaźnik znajduje się w nazwach. Drzewa decyzyjne służą tylko do podejmowania decyzji. Drzewa zachowań służą do kontrolowania zachowań. Pozwól mi wyjaśnić. Główną różnicą między nimi jest sposób, w jaki są one przemieszczane, podobnie jak ich układ i różne typy węzłów.
Drzewa decyzyjne są każdorazowo oceniane od korzenia do liścia. Aby drzewo decyzyjne działało poprawnie, węzły potomne każdego rodzica muszą reprezentować wszystkie możliwe decyzje dla tego węzła. Jeśli na węzeł można odpowiedzieć „Tak, Nie, może”, musi być troje dzieci, Tak, Węzeł, Brak węzła i Może węzeł. Oznacza to, że zawsze jest jakiś dolny węzeł do przejścia, aż do osiągnięcia węzła końcowego. Podróż jest zawsze w dół. Forma graficzna:
Dość proste. Zaczynamy od początku i na podstawie jakiejś oceny wybieramy 1, 2 lub 3. Wybieramy 3. Następnie robimy inną ocenę i wybieramy B lub B ... Cóż, ponownie użyłem grafiki od dołu, przepraszam. Udawaj, że B po lewej to magia B.
Drzewa zachowania mają inną ocenę. Przy pierwszej ocenie (lub resecie) zaczynają się od katalogu głównego (węzły nadrzędne zachowują się jak selektory), a każde dziecko jest oceniane od lewej do prawej. Węzły potomne są uporządkowane według ich priorytetu. Jeśli wszystkie warunki węzła podrzędnego są spełnione, jego zachowanie jest uruchamiane. Gdy węzeł rozpoczyna zachowanie, ten węzeł jest ustawiany na „działający” i zwraca zachowanie. Następnym razem, gdy drzewo jest oceniane, ponownie sprawdza węzły o najwyższym priorytecie, a następnie, jeśli chodzi o „działający” węzeł, wie, gdzie jest ono przerwane. Węzeł może mieć sekwencję działań i warunków przed osiągnięciem stanu końcowego. Jeśli jakikolwiek warunek się nie powiedzie, przejście powraca do rodzica. Selektor nadrzędny następnie przechodzi do następnego priorytetowego dziecka. Spróbuję tutaj formy graficznej:
Podróż rozpoczyna się u nasady, idzie do dziecka 1, sprawdza stan dziecka (coś w rodzaju „żadnych wrogów w pobliżu?”). Warunek kończy się niepowodzeniem, a przejście przechodzi z powrotem w górę drzewa, aby przejść do węzła drugiego. Węzeł 2 ma akcję, która jest wykonywana (może coś w rodzaju znalezienia ścieżki). Następnie zachowanie (coś w stylu podążania ścieżką). Następująca ścieżka jest ustawiona na działającą, a drzewo zwraca swój stan jako działający. Węzły, które się nie powiodły lub ukończyły, są zwracane do „Gotowe”. Następnym razem, gdy sprawdzimy, zaczniemy ponownie od węzła o najwyższym priorytecie. Ponownie się nie udaje, więc przechodzimy do węzła drugiego. Stwierdzamy, że mamy działające zachowanie. Stwierdzamy również, że zachowanie się zakończyło, więc oznaczamy je jako zakończone i zwracamy to. Drzewo jest następnie resetowane i gotowe do ponownego uruchomienia.
Jak widać, drzewa zachowań są bardziej złożone. Drzewa zachowania są silniejsze i pozwalają na bardziej złożone zachowanie. Drzewa decyzyjne są łatwe do zrozumienia i proste do wdrożenia. Tak więc drzewa zachowań byłyby używane, gdy chcemy bardziej złożonego zachowania lub większej kontroli nad zachowaniem. Drzewa decyzyjne można wykorzystać jako część drzewa zachowań lub samodzielnie dla prostej sztucznej inteligencji.
Pewne dobre zrozumienie sposobu analizowania drzew zachowania można znaleźć tutaj .