如何选择AI决策算法?

为了让一个代理(Agent)能够在某种状态(State)下自主选择应该执行的行为(Action),程序会用某种算法来控制代理如何做出这种选择。
如果代理可以执行的行为不多,需要做的判断不多的时候,可以简单的采用有限状态机模式(Finite State Machine)来做这种决策。
但是当代理可选择的行为比较多,且为了决策执行某个行为需要做的判断比较多且复杂的收,有限状态机模式就会变得比较吃力了,因为你每加一个状态都会可能影响到原有的代码逻辑,然而项目庞大起来会让你为了查找这些可能存在的影响很烦恼,简单来说就是状态与状态之间没有做到解耦。这时候可以采用目标导向型行为计划模式(Goal Oriented Action Planning),GOAP把代理能够执行的行为收集为一个列表,每个行为之间是解耦的,代理为了达到某个目标,可以由一个Planner通过一个算法去根据当前状态算出代理应该执行的行动队列,然后代理去执行这个行动队列里的行动,最后达到规定的目标。

参考Goal Oriented Action Planning for a Smarter AI

posted @ 2020-06-30 12:42  夜里寻星  阅读(319)  评论(0编辑  收藏  举报