Evolving Software: Combining Online Learning with Mutation-Based Stochastic Search

Tiwonge Msulira Banda, Alexandru-Ciprian Zavoianu, Andrei V. Petrovski, Daniel Wöckinger, G. Bramerdorfer
{"title":"Evolving Software: Combining Online Learning with Mutation-Based Stochastic Search","authors":"Tiwonge Msulira Banda, Alexandru-Ciprian Zavoianu, Andrei V. Petrovski, Daniel Wöckinger, G. Bramerdorfer","doi":"10.1145/3597617","DOIUrl":null,"url":null,"abstract":"Evolutionary algorithms and related mutation-based methods have been used in software engineering, with recent emphasis on the problem of repairing bugs. In this work, programs are typically not synthesized from a random start. Instead, existing solutions—which may be flawed or inefficient—are taken as starting points, with the evolutionary process searching for useful improvements. This approach, however, introduces a challenge for the search algorithm: what is the optimal number of neutral mutations that should be combined? Too much is likely to introduce errors and break the program while too little hampers the search process, inducing the classic tradeoff between exploration and exploitation. In the context of software improvement, this paper considers MWRepair, an algorithm for enhancing mutation-based searches, which uses online learning to optimize the tradeoff between exploration and exploitation. The aggressiveness parameter governs how many individual mutations should be applied simultaneously to an individual between fitness evaluations. MWRepair is evaluated in the context of Automated Program Repair (APR) problems, where the goal is repairing software bugs with minimal human involvement. This paper analyzes the search space for APR induced by neutral mutations, finding that the greatest probability of finding successful repairs often occurs when many neutral mutations are applied to the original program. Moreover, repair probability follows a characteristic, unimodal distribution. MWRepair uses online learning to leverage this property, finding both rare and multi-edit repairs to defects in the popular Defects4J benchmark set of buggy Java programs.","PeriodicalId":220659,"journal":{"name":"ACM Transactions on Evolutionary Learning","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM Transactions on Evolutionary Learning","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3597617","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Evolutionary algorithms and related mutation-based methods have been used in software engineering, with recent emphasis on the problem of repairing bugs. In this work, programs are typically not synthesized from a random start. Instead, existing solutions—which may be flawed or inefficient—are taken as starting points, with the evolutionary process searching for useful improvements. This approach, however, introduces a challenge for the search algorithm: what is the optimal number of neutral mutations that should be combined? Too much is likely to introduce errors and break the program while too little hampers the search process, inducing the classic tradeoff between exploration and exploitation. In the context of software improvement, this paper considers MWRepair, an algorithm for enhancing mutation-based searches, which uses online learning to optimize the tradeoff between exploration and exploitation. The aggressiveness parameter governs how many individual mutations should be applied simultaneously to an individual between fitness evaluations. MWRepair is evaluated in the context of Automated Program Repair (APR) problems, where the goal is repairing software bugs with minimal human involvement. This paper analyzes the search space for APR induced by neutral mutations, finding that the greatest probability of finding successful repairs often occurs when many neutral mutations are applied to the original program. Moreover, repair probability follows a characteristic, unimodal distribution. MWRepair uses online learning to leverage this property, finding both rare and multi-edit repairs to defects in the popular Defects4J benchmark set of buggy Java programs.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
进化软件:结合在线学习和基于突变的随机搜索
进化算法和相关的基于突变的方法已经在软件工程中使用,最近的重点是修复错误的问题。在这项工作中,程序通常不是随机开始合成的。相反,现有的解决方案——可能有缺陷或效率低下——被视为起点,进化过程寻求有用的改进。然而,这种方法给搜索算法带来了一个挑战:应该组合的中性突变的最佳数量是多少?太多可能会引入错误并破坏程序,而太少则会阻碍搜索过程,从而导致在探索和利用之间进行经典的权衡。在软件改进的背景下,本文考虑了MWRepair算法,这是一种增强基于突变的搜索算法,它使用在线学习来优化探索和利用之间的权衡。侵袭性参数控制在适应度评估之间应该同时对个体应用多少个突变。MWRepair是在自动程序修复(APR)问题的背景下进行评估的,其目标是在最少的人工参与下修复软件错误。本文分析了中性突变诱导APR的搜索空间,发现在原程序中应用多个中性突变时,找到成功修复的概率最大。此外,修复概率遵循一个特征性的单峰分布。MWRepair使用在线学习来利用这一属性,在流行的缺陷4j Java程序基准集中找到对缺陷的罕见和多编辑修复。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
On the Use of Quality Diversity Algorithms for the Travelling Thief Problem Evolutionary Optimization with Simplified Helper Task for High-dimensional Expensive Multiobjective Problems Multi-Objective Hyperparameter Optimization in Machine Learning – An Overview Multi-objective Feature Attribution Explanation For Explainable Machine Learning Multiobjective Evolutionary Component Effect on Algorithm behavior
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1