Дерево Поведения против Государственного автомата

1

Я хочу реализовать сложную логическую платформу для бизнес-приложений Android, которая будет использоваться в качестве инструмента маркетингового опроса с большим количеством вопросов и разветвлений среди них в зависимости от того, что пользователь отвечает. Я смущен, следует ли реализовать логику диалога как FSM или дерево поведения. Авторы использовали деревья для реализации государственных машин. Например, в "Искусственном интеллекте для игр" Яном Миллингтоном и др. Автор предлагает использовать дерево решений для FSM. Тем не менее, я думаю, что FSM может иметь закрытие, например, переход между "повышением тревоги" и "защитой" сделает его скорее графиком, чем деревом. Мой первый вопрос: в чем разница между деревом и конечным автоматом? Во-вторых, что будет хорошей реализацией для моего приложения, справиться с высоким уровнем сложности ветвления?

Изображение 174551

Теги:
finite-automata
decision-tree
behavior

3 ответа

0

FSM - это граф состояний, связанных переходами. для сложного fsm его трудно распространить из-за сложных переходов.

Для деревьев поведения каждый узел управляется его родителем, переход на самом деле неявно в отношениях между родителями и дочерними элементами, поэтому проще расширить существующее дерево поведения.

вы можете обратиться к https://github.com/TencentOpen/behaviac для исходного кода и дизайнера.

0

Деревья поведения и деревья принятия решений - это две разные вещи. Деревья поведения являются ориентированными на достижение цели и реактивными (набор больше для моделирования агентов или решений интеллектуальных объектов в игре, такой как среда), а деревья решений - отличный инструмент для определения (и хранения) решений, основанных на полезности действия для данное состояние. В основном, в первом подходе выполнение более полно (исполнение привязано к состоянию, которое вы находите в дереве), а в более поздней версии более не зависит от состояния (все дерево оценивается с помощью root для листа, чтобы добраться до вывод).

Тем не менее, из вашего описания кажется, что вы ищете экспертную систему, основанную на правилах.

0

Я считаю, что по определению FSM имеет только одну точку входа, а деревья поведения могут иметь несколько входных данных. Дерево - это граф, но граф не является деревом. Дерево - это ациклический граф, где у листьев никогда не бывает нескольких родителей. Поэтому в этом отношении дерево лучше подходит для FSM.

В любом случае, я бы предположил, что этот тип моделирования выходит за рамки android api. Следовательно, я хотел бы больше узнать, какие инструменты доступны на Java. Однажды я проделал проект по изучению машин в Java. В результате я создал пользовательскую структуру данных дерева, чтобы облегчить многопоточность.

Надеюсь, это поможет!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню