arrow
返回

Automated program improvement with reinforcement learning and graph neural networks

delete2023-06-03
delete2
PRE
AI
N
Nataša Sukur *
N
Nemanja Milošević
D
Doni Pracner
Z
Zoran Budimac
DOI:10.1007/s00500-023-08559-1delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
Automated software transformations and the process of automated program repair and improvement are an important aspect of modern software engineering practices. In this paper, we describe a system which uses a graph-based deep learning model that can be trained to automatically transform and improve computer programs. By operating on language-agnostic, universal graph-like structures easily extractable from source code files (abstract syntax trees), the deep learning agent learns which transformations should be effectively applied to various structures recognized in the source code in order to improve it. By defining a metric which we want to improve and introducing an optimization task-a reinforcement learning setting, an agent learns to automatically apply a chain of transformations to the program, drastically improving it. While similar program improvement processes exist, they exclusively use exhaustive search algorithms to try all the possible code transformations which is a long process susceptible to local optimum issues. Our solution aims to model and embed structural knowledge about the programs being transformed which greatly helps the agent to choose best possible code transformations to apply. Elements of the approach we present in this paper are further applicable not just to automatic software improvement tasks, but also to other code-related tasks.
Keyword:
Automatic program transformation
Software evolution
Deep reinforcement learning
Graph embeddings
Graph reinforcement learning

期刊

Soft Computing 封面图
Soft Computing
IF:
2.5
论文数:
1.0W
被引数:
2.1W

机构

U
University of Novi Sad
学者数:
9.3K
论文数: 6.2K
被引数: 5.0K
引用论文

引用论文

Mongolia and Northeast Asian Security蒙古国与东北亚安全
err
IF0
err2021-07-14
err0
PREAI
errAlicia J. Campi; Jagannath P. Panda
err分享
err收藏
GenProg: A Generic Method for Automatic Software Repair
err2012-01-01
err594
PREAI
errLe Goues, Claire; ThanhVu Nguyen; Forrest, Stephanie; Weimer, Westley
err分享
err收藏
Cyclomatic Complexity
err2016-11-01
err65
PREAI
errEbert, Christof
err分享
err收藏
Implementing action mask in proximal policy optimization (PPO) algorithm
err2020-09-01
err34
errOAAI
errTang, Cheng-Yen; Liu, Chien-Hung; Chen, Woei-Kae; You, Shingchern D.
err分享
err收藏
学者 查看更多内容