搜索驱动:程序合成中的关键概念解析
1. 搜索驱动基础
搜索驱动更关注可进化性,而非像“目标函数”那样单纯聚焦于搜索目标。上下文评估函数可表述为完整的搜索驱动,下面通过示例说明。
假设有种群 $P = (p_1, p_2, p_3)$,使用 $f_{ifs}$ 评估函数得到 $f_{ifs}(p_1) = 2$,$f_{ifs}(p_2) = 3/2$,$f_{ifs}(p_3) = 1$。可定义一个等价的 3 阶搜索驱动 $h$ 为:
h(p1, p2, p3) = (2, 3/2, 1).
更一般地,
h(p1, p2, p3) = (a, b, c),
其中 $a, b, c \in O$,且顺序为 $c \prec b \prec a$。若认为 $f_{ifs}$ 在 $(p_1, p_2)$ 和 $(p_2, p_3)$ 上的差异过小,无法判定候选解的优劣,可重新定义 $O$ 中的顺序,使仅 $c \prec a$ 成立。
搜索驱动的阶数不必与种群大小绑定,例如,此问题的一个 2 阶搜索驱动可定义为:
h(p1, p2) = h(p2, p3) = h(p1, p3) = (a, b),
其中 $a \prec b$。
2. 搜索驱动与选择算子的区别
虽然搜索驱动可直
超级会员免费看
订阅专栏 解锁全文
1431

被折叠的 条评论
为什么被折叠?



