Behavior Desig 中Composites 简介

Composites 顾名思义是复合组件,可以理解为行为数的节点。

组件如下:

1.Sequence 顺序。Sequence任务有点像and操作。当它的子任务中有一个返回failure它就返回failure。如果一个子任务返回success它就会按顺序执行下一个任务。如果所有的子任务都返回success那么它就会返回success.

2.Parallel 平行线。它有点像Sequence,它将会执行每一个子任务直到有一个子任务返回failure。不同之处在于Parallel会同时执行所有的子任务。和Sequence一样在所有子任务都返回success后它就会返回success。如果其中一个子物体返回failure那么它会终止其他的子任务,同时返回failure.

3.Selector 选择器。Selector任务有点像or操作。当它的子任务中有一个返回success它立即返回success。如果一个子任务返回failure,它会顺序的执行下一个任务。如果所有子任务都返回failure它返回failure。

3.Parallel Selector 平行选择器。有点像Selector,当它的子任务中有一个返回success它就会返回success。不同之处在于它会同时执行所有的的子任务。如果有一个子任务返回success它就会立即返回success并终止别的子任务。如果所有的子任务返回failure它会返回failure。

4.Priority Selector 优先选择器。有点像Selector,当它的子任务中有一个返回success它就会返回success。区别在于取代从左到右的执行顺序,而是采用每个子任务的优先级来确定执行顺序,越高的优先级越优先执行。ps.在这个插件中Task基类有个 public virtual float GetPriority();在实现的Task类中重写这个方法来返回具体的优先值。

5.Random Selector 随机选择器。有点像Selector,当它的子任务中有一个返回success它就会返回success。区别在于它会以随机的顺序执行所有的子任务。Selector在树结构中按从左到右的顺序决定执行顺序。Random Selector则是把所有的子任务先洗牌,然后按照随机的顺序执行。其他的就和Selector一样了,他会连续的执行任务直到返回一个success,如果没有子任务返回success它就返回failure。

6.Random Sequence 随机顺序。有点像Sequence,当所有的子任务返回success它返回success。不同点在于RandomSequence是按照随机的顺序执行任务的。Sequence是按照从左到右的顺序来执行的。RandomSequence是先把子任务洗牌,然后按照一个随机的顺序执行。其他的就和Sequence一样了。如果有一个子任务返回failure它就会返回failure,其他的子任务会终止执行。如果所有的子任务都不返回failure它就会返回success。

7.Selector Evaluator 选择器评估员。它是一种每一帧都重新评估所有子任务的选择器任务。他会执行返回任务状态的子任务中的最低优先级的子任务。它每一帧都会执行。如果一个高优先级任务正在执行同时下一帧一个低优先级的任务要执行的话会终止这个高优先级的任务。当第一个子任务返回success它就会返回success,否则它会一直尝试比之前任务优先级更高些的子任务。它和条件中断方法很像除非他的所有子任务是条件任务。



基于python实现的粒子群的VRP(车辆配送路径规划)问题建模求解+源码+项目文档+算法解析,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 算法设计的关键在于如何向表现较好的个体学习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。 算法设计的关键在于如何向表现较好的个体学习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值