5、传统程序评估局限性与行为程序合成框架解析

行为程序合成框架解析

传统程序评估局限性与行为程序合成框架解析

传统程序评估的局限性

在实际问题中,给定搜索算法的行为往往更为复杂。由于搜索算子存在各种偏差,结果向量之间的转换并非简单的可能或不可能,而是有不同的可能性。在遗传编程(GP)中,搜索算子的随机性也是导致这种情况的原因之一。

为了探究上述特性在现实世界领域是否存在,我们通过实验为选定的现实问题构建了类似的图。以布尔域和由{and, or, nand, nor}指令组成的程序为例,构建图的步骤如下:
1. 使用传统的斜坡一半一半方法生成深度最多为8的10000000个随机程序样本。
2. 对每个生成的程序p进行变异,得到程序p′。
3. 计算结果向量o(p)和o(p′),并收集整个样本中结果向量之间转换的统计信息。

我们采用了GP中常用的子树替换变异算子,该算子使用深度限制为8的斜坡一半一半方法生成随机子树。

以布尔3位多路复用器问题(mux3)为例,其程序输入包含三个变量,第一个变量作为“地址线”,决定将其余两个输入变量中的哪一个传递到输出。该问题的目标函数值在0到8之间变化。尽管mux3对于当代程序合成方法来说很简单,但该领域的程序行为已经相当丰富,有256种可能的结果向量。图2.3展示了该问题结果向量转换图的最上面三层,分别对应评估值为0(最优解)、1和2的结果向量。这些顶层对于程序合成的成功至关重要,因为在实践中搜索往往会卡在一两个失败的测试上,无法取得进一步进展。

图2.3中节点的空间排列与图2.2类似,但箭头的宽度反映了转换的估计概率。节点的标签为估计的改进对数优势,计算公式为:
[ - \left(\log_{10} \frac{n^-}{n^+}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值