目标驱动的智能体行为[行为树]

 

0
目标驱动的智能体行为
          多数人了解有限状态机来制作游戏角色的AI,但是有限状态机的种种弊病,使得其恶名远播。
这次我们用另外一种方法,一种分层的目标集合来定义智能体的行为
        通常目标可以是原子的也可能是复合的。原子目标定义一个简单任务,行为,或者动作,
比如查找一个位置或是给枪上膛。然而复合目标由几种子目标组成,这些子目标可能是原子也
可能是复合的,这样就可以定义一个嵌套的层级。复合目标比原子目标要完成更多的任务,
如建立一个武器工厂,或者撤退以找到掩体。这2种目标能够监视他们的状态,当失败时以重新计划。
分层结构提供给AI程序员一个直觉机制以定义智能体的行为,因为他共享了很多人类思考过程的相似点。
人类选择更高级的抽象目标满足他们需要和渴望,然后把目标分解成为一系列的动作计划并付诸实施。
          例如在一个雨天,你决定去看一场电影,这是一个抽象目标,他们不可能在分解成一些小的子目标之前被完成,例如离开房子,去影院,进入影院。事实上,每个这些子目标也是抽象的,必须被继续分解。
这些分解是直接的,但有时候我们会陷入一些选择,例如,去电影院可能以几种方式达到,你可以开车,
可以坐公车,可以骑自行车,也可以步行去。你可能花费一些时间来决定怎么去。这个过程持续直到目
标已经被分解成基本的动作,你身体可以执行的时候。例如离开房间,能分解成,走到衣柜钱,打开衣
柜,拿出外套,穿上外套,走到鞋架,换上鞋子,打开门,走出去。而且,人们不愿意浪费能量,人么
不会浪费大大小小的卡路里来思考一个不是绝对需要的目标。如,当你手里没有一个罐头的时候,你不
会思考是否要打开它,当鞋没有穿在脚上的时候,你也不会去考虑去系鞋带。
        一个目标导向的智能体会模仿这些行为。每次思考,会检查智能体的状态,选择一个预先设计好的
高级目标或策略,它相信这个目标的达成将更容易使得它满足自己的需要和愿望(通常是赢得游戏)。
然后智能体将尝试跟随这个目标,并将其分解成一系列的子目标,依次完成他们。它将不断的努力,
直到目标达成,或者失败,或者游戏状态让一个新的策略成为必要。


让我们看一个例子。
也许你玩过Dragon Slayer 2这个游戏。Eric的AI程序员已经为其创建了几种策略作为他的选择。防御龙,
攻击龙,买武器,得到食物,得到啤酒。这些策略代表一些高级的目标,所以他们将被分解成诸如此类的
小目标:寻路,沿着路走,穿过路边缘,刺龙,切龙,逃跑,躲避。为此,要完成一个策略,Eric必须要
分解策略成这些小目标,并逐个完成他们,有必要的话还要分得更细。
         现在Eric已经进入了这个游戏世界。既然他手里没有拿着武器,因此他感到容易被攻击,他强烈的想要得到一个尖锐的矛,他的大脑(一种特别类型的目标,他 能作出选择)考虑了所有的策略,觉得买武器最能够满足他的需要。所以这个被指派给他作为目标,直到有其他的选择。现在,Eric无法完成这个目标,因为目 标太抽象了,他必须分解它,从这个例子看,包含的子目标有得到足够的金子,然后去铁匠铺。去铁匠铺只会在得到足够的金子后才被考虑。得到金子又是一个复合 目标,他包括找到金矿的路径,然后跟随路径,然后捡起天然的金块。找到去金矿的路径,这个通过向路径规划器发请求来获得。然后将其从目标队列种移除。当所 有的目标完成后,Eric将拥有一个发亮的长矛在手中。

 

(from http://www.roboticfan.com/blog/user_2005/104/archives/2009/200911618398.shtml)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值