論文の概要: Open-Ended Automatic Programming Through Combinatorial Evolution
- arxiv url: http://arxiv.org/abs/2102.10475v3
- Date: Mon, 22 Nov 2021 09:51:39 GMT
- ステータス: 処理完了
- システム内更新日: 2023-04-10 15:48:57.155863
- Title: Open-Ended Automatic Programming Through Combinatorial Evolution
- Title(参考訳): 組合せ進化によるオープンな自動プログラミング
- Authors: Sebastian Fix, Thomas Probst, Oliver Ruggli, Thomas Hanne, and Patrik
Christen
- Abstract要約: コンビナティブ進化は、複雑さを増して新しいものを生み出す、進行中でオープンなプロセスのようだ。
我々は、データベースに格納されたコードブロックのコンピュータプログラム進化を実装し、それらを組み合わせられるようにした。
また、プレースホルダーは、コードブロックの組み合わせに使用することができ、また、プログラム言語の重要性の観点から、コードの複雑さが説明できることもわかりました。
- 参考スコア(独自算出の注目度): 7.280210234054238
- License: http://creativecommons.org/licenses/by-nc-sa/4.0/
- Abstract: Combinatorial evolution - the creation of new things through the combination
of existing things - can be a powerful way to evolve rather than design
technical objects such as electronic circuits. Intriguingly, this seems to be
an ongoing and thus open-ended process creating novelty with increasing
complexity. Here, we employ combinatorial evolution in software development.
While current approaches such as genetic programming are efficient in solving
particular problems, they all converge towards a solution and do not create
anything new anymore afterwards. Combinatorial evolution of complex systems
such as languages and technology are considered open-ended. Therefore,
open-ended automatic programming might be possible through combinatorial
evolution. We implemented a computer program simulating combinatorial evolution
of code blocks stored in a database to make them available for combining.
Automatic programming in the sense of algorithm-based code generation is
achieved by evaluating regular expressions. We found that reserved keywords of
a programming language are suitable for defining the basic code blocks at the
beginning of the simulation. We also found that placeholders can be used to
combine code blocks and that code complexity can be described in terms of the
importance to the programming language. As in a previous combinatorial
evolution simulation of electronic circuits, complexity increased from simple
keywords and special characters to more complex variable declarations, class
definitions, methods, and classes containing methods and variable declarations.
Combinatorial evolution, therefore, seems to be a promising approach for
open-ended automatic programming.
- Abstract(参考訳): 既存のものが組み合わさって新しいものを創り出すコンビネーション進化は、電子回路のような技術オブジェクトを設計するよりも、進化するための強力な方法だ。
興味深いことに、これは複雑さを増して新しいものを生み出す、進行中でオープンなプロセスであるようだ。
ここでは、ソフトウェア開発に組合せ進化を取り入れます。
遺伝的プログラミングのような現在のアプローチは、特定の問題を解決するのに効率的であるが、それらはすべてソリューションに向かって収束し、その後に新しいものを作ることはない。
言語や技術といった複雑なシステムの組合せ進化は、オープンエンドと見なされている。
したがって、組合せ進化によって、オープンな自動プログラミングが可能となる。
データベースに格納されたコードブロックの組合せ進化をシミュレートしたコンピュータプログラムを実装した。
正規表現を評価することにより,アルゴリズムに基づくコード生成における自動プログラミングを実現する。
プログラミング言語のリザーブドキーワードはシミュレーションの開始時に基本的なコードブロックを定義するのに適していることがわかった。
また、プレースホルダを使ってコードブロックを組み合わせることもでき、コードの複雑さをプログラミング言語の重要性の観点から説明できることも分かりました。
電子回路の以前の組合せ進化シミュレーションと同様に、複雑さは単純なキーワードや特殊文字からより複雑な変数宣言、クラス定義、メソッド、メソッドを含むクラスへと増大した。
そのため、コンビナティブ進化は、オープンな自動プログラミングにとって有望なアプローチであるようだ。
関連論文リスト
- Automatizing Software Cognitive Complexity Reduction through Integer
Linear Programming [1.1970409518725493]
近年,ソフトウェア認知複雑性の低減を最適化問題としてモデル化し,開発者を支援する手法を提案する。
このアプローチは、停止基準を満たすまでコード抽出操作のシーケンスを列挙する。結果として、コードの認知複雑性を所定のしきい値に減らすことができる最小限のコード抽出操作のシーケンスを返す。
論文 参考訳(メタデータ) (2024-02-08T10:53:00Z) - Recursive Visual Programming [57.680658789809335]
本稿では、生成ルーチンを単純化し、より効率的な問題解決を提供し、より複雑なデータ構造を管理するRecursive Visual Programming (RVP)を提案する。
本稿では,VSR,COVR,GQA,NextQAなどのベンチマークにおいて,RVPの有効性を示す。
論文 参考訳(メタデータ) (2023-12-04T17:27:24Z) - Learning a Hierarchical Planner from Humans in Multiple Generations [21.045112705349222]
本稿では,プログラム型学習と階層型プランナを組み合わせたライブラリ学習システムである自然言語プログラミングについて述べる。
ユーザは、難しいが不可能ではない目標を特定することによって、カリキュラム構築を通じてシステムを教える。
このシステムは、言語ヒントを用いて、その確率分布を導く階層的計画を通じて目標を達成する。
論文 参考訳(メタデータ) (2023-10-17T22:28:13Z) - When Do Program-of-Thoughts Work for Reasoning? [51.2699797837818]
本稿では,コードと推論能力の相関性を測定するために,複雑性に富んだ推論スコア(CIRS)を提案する。
具体的には、抽象構文木を用いて構造情報をエンコードし、論理的複雑性を計算する。
コードはhttps://github.com/zjunlp/EasyInstructのEasyInstructフレームワークに統合される。
論文 参考訳(メタデータ) (2023-08-29T17:22:39Z) - Outline, Then Details: Syntactically Guided Coarse-To-Fine Code
Generation [61.50286000143233]
ChainCoderは、Pythonコードを段階的に生成するプログラム合成言語モデルである。
自然言語記述と構文的に整合したI/Oデータサンプルを共同で符号化するために、カスタマイズされたトランスフォーマーアーキテクチャを利用する。
論文 参考訳(メタデータ) (2023-04-28T01:47:09Z) - Competition-Level Code Generation with AlphaCode [74.87216298566942]
より深い推論を必要とする問題に対する新しいソリューションを作成することができるコード生成システムであるAlphaCodeを紹介する。
Codeforcesプラットフォームにおける最近のプログラミングコンペティションのシミュレーション評価において、AlphaCodeは平均54.3%のランキングを達成した。
論文 参考訳(メタデータ) (2022-02-08T23:16:31Z) - Discovering Non-monotonic Autoregressive Orderings with Variational
Inference [67.27561153666211]
我々は、訓練データから高品質な生成順序を純粋に検出する、教師なし並列化可能な学習装置を開発した。
エンコーダを非因果的注意を持つトランスフォーマーとして実装し、1つのフォワードパスで置換を出力する。
言語モデリングタスクにおける経験的結果から,我々の手法は文脈認識であり,一定の順序と競合する,あるいはより優れた順序を見つけることができる。
論文 参考訳(メタデータ) (2021-10-27T16:08:09Z) - Contrastive Learning for Source Code with Structural and Functional
Properties [66.10710134948478]
本稿では,ソースコードの特徴に基づいて事前学習に焦点を当てた,新たな自己教師型モデルBOOSTを提案する。
私たちは、機能的に等価なコードを生成する自動化された構造誘導型コード変換アルゴリズムを採用しています。
私たちは、対照的な学習目標を通じて、機能的に等価なコードをより近く、異なるコードに近づける方法で、モデルをトレーニングします。
論文 参考訳(メタデータ) (2021-10-08T02:56:43Z) - Learning compositional programs with arguments and sampling [12.790055619773565]
私たちは、特定の要件を満たすプログラムを見つけるために、機械学習モデルをトレーニングします。
我々は、引数を受理できる関数を生成することを学ぶことによって、アートモデルAlphaNPIの状態を拡張します。
論文 参考訳(メタデータ) (2021-09-01T21:27:41Z) - Automated Aggregator -- Rewriting with the Counting Aggregate [0.0]
本稿では,補完的な性能を持つ等価プログラム群を生成する自動書き換えシステムを提案する。
本稿では,自動解答器選択ツールにおけるシステムの利用を提案する。
論文 参考訳(メタデータ) (2020-09-22T00:48:33Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。