文章目录
- 5.1 连续进化规划
- 5.2 有限状态机优化
- 5.3 离散进化规划
- 5.4 囚徒困境
- 5.5 人工蚂蚁问题
5.1 连续进化规划
目的:最小化f(x), 这里的x是一个n维向量,假定对所有的x, f(x)>0。
进化规划从随机生成的一个个体种群{xi}开始, 按如下方式生成子代:
其中ri是n维随机向量,它的每个元素来自均值为0方差为1的高斯分布, β和 γ是进化规划的可调参数. xi的变异方差是: βf(xi) + γ
工作流程:
- 1)产生初始种群
- 2)变异
- 3)计算个体适应度
- 4)选择组成新种群
在(5.1)式生成N个子代之后会有2N个个体: {xi}和 {xi’}.我们从这2N个个体选出最好的N个组成下一代的种群.算法5.1是对基本进化规划算法的总结.
标准进化规划中,个体的表达形式为:
进化规划中不仅涉及候选解的进化,变异方差也在进化.这种进化规划常被称为元进化规划,算法5.2是对它的总结. 变异方差最小值由用户限定,每次迭代后,随机生成的变异方差不能小于限定值。
5.2 有限状态机优化
有限状态机是一个虚拟机,由一个输入序列生成一个输出序列。输出序列的生成不仅由输入决定,还由一组状态和状态转移规则决定。
最初发明进化规划是为了设计有限状态机.有限状态机生成的输出序列随内部状态和输入序列变化.图5.3是有限状态机的一个例子.它有4个状态,A,B,C和D;它有两个可能的输入,0和1,输入列在图中每个斜杠的左边;有3个可能的输出, a, b和 c,输出列在图中每个斜杠的右边.图中右上部的箭头表示有限状态机从状态C开始.用箭头表示在具体的输入之后状态如何转移.线段上的标记是输入/输出组合.图5.3也可以用表格的形式来刻画,如表5.1所示.
如何创建一个有限状态机?
输入序列:
输出序列:
能不能创建一个状态机生成所要的行为?这是一个优化问题:我们想设计一个有限状态机,它能最小化有限状态机行为与目标行为之间的差别.可以用下面的形式来表示状态机:
不失一般性,假定有限状态机从状态1开始,S的元素设置为:
定义误差费用: