16、遗传编程中用于程序修复的改进交叉算子及特征模型逆向工程适应度函数的扩展

遗传编程程序修复算子与适应度函数扩展研究

遗传编程中用于程序修复的改进交叉算子及特征模型逆向工程适应度函数的扩展

程序修复的交叉算子实验

在程序修复的研究中,为了更有效地评估改进的交叉算子,研究人员选择了小型但规范明确的程序进行实验。这些程序的选择有两个重要原因:一是小型程序的执行时间更短;二是它们能被黑盒测试完全覆盖和规范,避免了现实世界程序测试用例可能存在的问题,降低了生成低质量补丁的风险。

实验针对每个程序版本进行了 30 次随机试验,搜索过程在达到世代限制或找到能使程序通过所有测试用例的补丁时结束。实验使用的参数如下:
- 精英保留数(Elitism):3
- 世代数(Generations):20
- 种群大小(Population size):15
- 交叉率(Crossover rate):0.5
- 变异率(Mutation rate):1
- 锦标赛选择参数(Tournament k):2

评估指标包括成功率和修复所需的测试套件评估次数,后者是一种与机器和测试套件无关的时间衡量方式。

实验结果分析
  • 成功率
    | 记忆化? | 原始算子 | OP1Space(无记忆化) | OP1Space(有记忆化) | Unif1Space(无记忆化) | Unif1Space(有记忆化) | OPAllS(无记忆化) | OPAllS(有记忆化) |
    | — | — | — | — | — | — | — | — |
    | gcd | 0.70 | 0.80 | 0.63 | 0.67 | 0.70 | 0.73 | 0.80 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值