10、程序合成中的跟踪一致性与模式引导方法

程序合成中的跟踪一致性与模式引导方法

1. 跟踪一致性评估函数 ftc

在程序合成领域,传统的评估函数往往只关注程序的最终输出,而忽略了程序执行过程中的内部状态。跟踪一致性评估函数 ftc 则是一种依赖于整个执行记录的评估方式,它能够揭示被评估程序之间的差异,而这些差异可能会被语义遗传编程(GP)方法和基于测试难度的行为评估方法所忽略。

1.1 ftc 与传统评估函数的区别

传统评估函数 fo 可以通过判断 fo(p) = 0 来验证程序的正确性,但对于 ftc 而言,不能简单地通过 ftc(p) = 0 来验证。这是因为它和正确性谓词 Correct 是分离的,这种分离与搜索驱动的概念是一致的。

ftc 能够揭示候选程序的某些“内部特性”,这些特性是传统评估函数所忽略的。它形成了另一种行为特征,可以作为传统目标函数的替代或补充。实验表明,ftc 评估函数在某些情况下具有更好的性能。

1.2 非线性程序的跟踪一致性

前面关于跟踪一致性的推理仅适用于严格顺序执行的程序,在这种程序中,执行状态反映了整个执行环境,未来的计算完全由当前状态决定,一旦跟踪合并就不会再发散。

然而,在基于树的 GP 中,程序执行不是顺序的,也不维护全局内存。中间结果仅反映以该节点为根的子树的计算,执行顺序仅部分由程序结构决定。因此,对于基于树的 GP(以及其他非严格顺序的 GP 类型),关于执行状态合并和发散的明确陈述需要放宽。

例如,考虑一个纯函数的基于树的 GP 程序 (AND (AND x1 x2) x2),其执行记录显示,t1 和 t2 的跟踪在 p2 合并,但在 p3 又发散。这是因为后续计

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值