論文の概要: Reinforcement Learning for Mutation Operator Selection in Automated
Program Repair
- arxiv url: http://arxiv.org/abs/2306.05792v1
- Date: Fri, 9 Jun 2023 10:09:16 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-24 04:05:21.629565
- Title: Reinforcement Learning for Mutation Operator Selection in Automated
Program Repair
- Title(参考訳): 自動プログラム修復における突然変異演算子選択のための強化学習
- Authors: Carol Hanna and Aymeric Blot and Justyna Petke
- Abstract要約: プログラム修復における突然変異演算子の選択を最適化するための強化学習に基づくアプローチを提案する。
Defects4Jベンチマークから,実世界の353のバグに対するアプローチを評価した。
- 参考スコア(独自算出の注目度): 13.213490507208528
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Automated program repair techniques aim to aid software developers with the
challenging task of fixing bugs. In heuristic-based program repair, a search
space of program variants is created by applying mutation operations on the
source code to find potential patches for bugs. Most commonly, every selection
of a mutation operator during search is performed uniformly at random. The
inefficiency of this critical step in the search creates many variants that do
not compile or break intended functionality, wasting considerable resources as
a result. In this paper, we address this issue and propose a reinforcement
learning-based approach to optimise the selection of mutation operators in
heuristic-based program repair. Our solution is programming language,
granularity-level, and search strategy agnostic and allows for easy
augmentation into existing heuristic-based repair tools. We conduct extensive
experimentation on four operator selection techniques, two reward types, two
credit assignment strategies, two integration methods, and three sets of
mutation operators using 22,300 independent repair attempts. We evaluate our
approach on 353 real-world bugs from the Defects4J benchmark. Results show that
the epsilon-greedy multi-armed bandit algorithm with average credit assignment
is best for mutation operator selection. Our approach exhibits a 17.3%
improvement upon the baseline, by generating patches for 9 additional bugs for
a total of 61 patched bugs in the Defects4J benchmark.
- Abstract(参考訳): 自動プログラム修復技術は、ソフトウェア開発者がバグを修正するための困難なタスクを支援することを目的としている。
ヒューリスティックなプログラム修復において、バグの潜在的なパッチを見つけるためにソースコードに突然変異操作を適用することで、プログラム変種探索空間を作成する。
最も一般的には、探索中の突然変異演算子の全ての選択はランダムに行われる。
検索におけるこの重要なステップの非効率性は、意図した機能をコンパイルしたり壊したりせず、結果としてかなりのリソースを浪費する多くの変種を生み出します。
本稿では,ヒューリスティックなプログラム修復における突然変異演算子の選択を最適化するための強化学習に基づくアプローチを提案する。
私たちのソリューションは、プログラミング言語、粒度レベル、検索戦略非依存で、既存のヒューリスティックベースの修理ツールを簡単に拡張できます。
4つの操作者選択手法,2つの報酬型,2つのクレジット割り当て戦略,2つの統合手法,および22,300個の独立修復の試みを用いて3種類の突然変異操作者について広範な実験を行った。
defects4jベンチマークから353実世界のバグに対するアプローチを評価した。
その結果、平均クレジット割り当てを持つepsilon-greedy multi-armed banditアルゴリズムが突然変異演算子選択に最適であることが判明した。
このアプローチはベースライン上で17.3%の改善を示し、9つの追加バグに対するパッチを生成し、合計61のパッチ付きバグをresults4jベンチマークで修正した。
関連論文リスト
- Improving LLM Reasoning through Scaling Inference Computation with Collaborative Verification [52.095460362197336]
大規模言語モデル(LLM)は一貫性と正確な推論に苦しむ。
LLMは、主に正しいソリューションに基づいて訓練され、エラーを検出して学習する能力を減らす。
本稿では,CoT(Chain-of-Thought)とPoT(Program-of-Thought)を組み合わせた新しい協調手法を提案する。
論文 参考訳(メタデータ) (2024-10-05T05:21:48Z) - No Man is an Island: Towards Fully Automatic Programming by Code Search, Code Generation and Program Repair [9.562123938545522]
ツールネームは、様々なコード検索、生成、修復ツールを統合することができ、これら3つの研究領域を初めて組み合わせることができる。
例えば、CodeLlamaは62.53%の改善で267のプログラミング問題を解決するのに役立ちます。
論文 参考訳(メタデータ) (2024-09-05T06:24:29Z) - A Deep Dive into Large Language Models for Automated Bug Localization and Repair [12.756202755547024]
大規模言語モデル(LLM)は、自動プログラム修復(APR)など、様々なソフトウェアエンジニアリングタスクにおいて顕著な効果を示している。
本研究では,LSMを用いた自動バグ修正について深く検討する。
異なるLLMを用いてバグの局所化と修正を分離することにより、多様なコンテキスト情報の効果的な統合が可能になる。
Toggleは、CodeXGLUEコード改善ベンチマークで、新しい最先端(SOTA)パフォーマンスを実現する。
論文 参考訳(メタデータ) (2024-04-17T17:48:18Z) - Genetic-based Constraint Programming for Resource Constrained Job
Scheduling [5.068093754585243]
資源制約されたジョブスケジューリングは、鉱業に起源を持つ計算の最適化問題である。
既成のソリューションはこの問題を合理的な時間枠で十分解決できない。
本稿では,制約プログラミングの効率的な探索手法を探索する遺伝的プログラミングアルゴリズムを提案する。
論文 参考訳(メタデータ) (2024-02-01T09:57:38Z) - RAP-Gen: Retrieval-Augmented Patch Generation with CodeT5 for Automatic
Program Repair [75.40584530380589]
新たな検索型パッチ生成フレームワーク(RAP-Gen)を提案する。
RAP-Gen 以前のバグ修正ペアのリストから取得した関連する修正パターンを明示的に活用する。
RAP-GenをJavaScriptのTFixベンチマークとJavaのCode RefinementとDefects4Jベンチマークの2つのプログラミング言語で評価する。
論文 参考訳(メタデータ) (2023-09-12T08:52:56Z) - Learning from Self-Sampled Correct and Partially-Correct Programs [96.66452896657991]
そこで本研究では,モデルが学習中にサンプリングを行い,自己サンプリングされた完全正当プログラムと部分正当プログラムの両方から学習することを提案する。
自己サンプリング型プログラムと部分修正型プログラムを併用することで,学習とサンプリングプロセスのガイドに役立てることができることを示す。
提案手法は,MLEを用いた単一の参照プログラムからの学習と比較して,パス@kの性能を3.1%から12.3%向上させる。
論文 参考訳(メタデータ) (2022-05-28T03:31:07Z) - Searching for More Efficient Dynamic Programs [61.79535031840558]
本稿では,プログラム変換の集合,変換プログラムの効率を評価するための単純な指標,およびこの指標を改善するための探索手順について述べる。
実際に、自動検索は初期プログラムの大幅な改善を見出すことができることを示す。
論文 参考訳(メタデータ) (2021-09-14T20:52:55Z) - MURAL: Meta-Learning Uncertainty-Aware Rewards for Outcome-Driven
Reinforcement Learning [65.52675802289775]
本研究では,不確かさを意識した分類器が,強化学習の難しさを解消できることを示す。
正規化最大度(NML)分布の計算法を提案する。
得られたアルゴリズムは、カウントベースの探索法と、報酬関数を学習するための先行アルゴリズムの両方に多くの興味深い関係を持つことを示す。
論文 参考訳(メタデータ) (2021-07-15T08:19:57Z) - Generating Bug-Fixes Using Pretrained Transformers [11.012132897417592]
実世界のgithubからマイニングしたjavaメソッドのバグの検出と修正を学ぶ,データ駆動型プログラム修復手法を導入する。
ソースコードプログラムの事前トレーニングは,スクラッチからの教師ありトレーニングに比べて,33%のパッチ数を改善することを示す。
我々は,標準精度評価基準を非削除および削除のみの修正に洗練し,我々の最良モデルが従来よりも75%多くの非削除修正を生成することを示す。
論文 参考訳(メタデータ) (2021-04-16T05:27:04Z) - Adversarial Patch Generation for Automated Program Repair [0.0]
NEVERMOREは、バグと修正の敵対的な性質にインスパイアされた、新しい学習ベースのメカニズムである。
NEVERMOREはGenerative Adrial Networksアーキテクチャに基づいて構築されており、人為的な修正を忠実に模倣する修正を生成するために、歴史的なバグ修正を訓練している。
実世界の500のバグに対する実証的な評価は、NEVERMOREがバグ修正に有効であることを示し、調査対象のバグの21.2%が人間の修正にマッチする修復を生成する。
論文 参考訳(メタデータ) (2020-12-21T00:34:29Z) - Graph-based, Self-Supervised Program Repair from Diagnostic Feedback [108.48853808418725]
本稿では,ソースコードの修復や診断フィードバックに関連するシンボルを結合するプログラムフィードバックグラフを提案する。
次に、推論プロセスのモデル化にグラフニューラルネットワークを適用します。
オンラインで利用可能なラベルのないプログラムを活用するプログラム修復のための自己指導型学習パラダイムを提案する。
論文 参考訳(メタデータ) (2020-05-20T07:24:28Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。