論文の概要: Reinforcement Learning for Mutation Operator Selection in Automated Program Repair
- arxiv url: http://arxiv.org/abs/2306.05792v2
- Date: Mon, 6 May 2024 11:33:51 GMT
- ステータス: 処理完了
- システム内更新日: 2024-05-08 01:16:13.357703
- Title: Reinforcement Learning for Mutation Operator Selection in Automated Program Repair
- Title(参考訳): 自動プログラム修復における突然変異演算子選択のための強化学習
- Authors: Carol Hanna, Aymeric Blot, Justyna Petke,
- Abstract要約: プログラム修復における突然変異演算子の選択に対する強化学習に基づくアプローチの有効性について検討する。
提案手法は, 言語, プログラミングレベル, 検索戦略であり, 既存の補修ツールに容易に拡張できる。
Defects4Jベンチマークから,実世界の353のバグに対するアプローチを評価した。
- 参考スコア(独自算出の注目度): 11.756822700775668
- 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, created via mutations on software, is explored to find potential patches for bugs. Most commonly, every selection of a mutation operator during search is performed uniformly at random, whcih can generate many buggy, even uncompilable program variants. Our goal is to reduce the generation of variants that do not compile or break intended functionality which waste considerable resources. In this paper, we investigate the feasibility of a reinforcement learning-based approach for the selection of mutation operators in heuristic-based program repair. Our proposed approach is programming language, granularity-level, and search strategy agnostic and allows for easy augmentation into existing heuristic-based repair tools. We conduct an extensive empirical evaluation of four operator selection techniques, two reward types, two credit assignment strategies, two integration methods, and three sets of mutation operators using 30,080 independent repair attempts. We evaluate our approach on 353 real-world bugs from the Defects4J benchmark.The reinforcement learning-based mutation operator selection results in a higher number of test-passing variants, but does not exhibit a noticeable improvement in the number of bugs patched in comparison with the baseline, which uses random selection. While reinforcement learning has been previously shown to be successful in improving the search of evolutionary algorithms, often used in heuristic-based program repair, it has not shown such improvements when applied to this area of research.
- Abstract(参考訳): 自動プログラム修復技術は、ソフトウェア開発者がバグを修正するための困難なタスクを支援することを目的としている。
ヒューリスティックなプログラム修復において、ソフトウェア上の突然変異によって生成されたプログラム変種探索空間は、バグの潜在的なパッチを見つけるために探索される。
最も一般的には、検索中の突然変異演算子の選択はランダムに行われるが、hulcihは多くのバグを発生させ、コンパイル不可能なプログラムの変種も生成できる。
私たちのゴールは、相当なリソースを浪費する意図された機能をコンパイルしたり壊したりしない変種の生成を減らすことです。
本稿では、ヒューリスティックなプログラム修復における突然変異演算子の選択に対する強化学習に基づくアプローチの有効性について検討する。
提案手法はプログラミング言語, 粒度レベル, 探索戦略に依存しないものであり, 既存のヒューリスティックな修復ツールに容易に拡張できる。
我々は,4つのオペレータ選択手法,2つの報酬型,2つのクレジット代入戦略,2つの統合方法,および3つの突然変異演算子に対して,30,080個の独立修復試行を用いて広範囲に評価を行った。
我々はDefects4Jベンチマークから実世界の353のバグに対するアプローチを評価する。この強化学習に基づく突然変異演算子の選択は、テストパスの変種数の増加をもたらすが、ランダム選択を用いたベースラインと比較してパッチされたバグの数に顕著な改善は示さない。
強化学習は、しばしばヒューリスティックベースのプログラム修復に使用される進化的アルゴリズムの探索の改善に成功しているが、この領域に適用した場合、そのような改善は示されていない。
関連論文リスト
- 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。