論文の概要: 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(参考訳): 既存のものが組み合わさって新しいものを創り出すコンビネーション進化は、電子回路のような技術オブジェクトを設計するよりも、進化するための強力な方法だ。
興味深いことに、これは複雑さを増して新しいものを生み出す、進行中でオープンなプロセスであるようだ。
ここでは、ソフトウェア開発に組合せ進化を取り入れます。
遺伝的プログラミングのような現在のアプローチは、特定の問題を解決するのに効率的であるが、それらはすべてソリューションに向かって収束し、その後に新しいものを作ることはない。
言語や技術といった複雑なシステムの組合せ進化は、オープンエンドと見なされている。
したがって、組合せ進化によって、オープンな自動プログラミングが可能となる。
データベースに格納されたコードブロックの組合せ進化をシミュレートしたコンピュータプログラムを実装した。
正規表現を評価することにより,アルゴリズムに基づくコード生成における自動プログラミングを実現する。
プログラミング言語のリザーブドキーワードはシミュレーションの開始時に基本的なコードブロックを定義するのに適していることがわかった。
また、プレースホルダを使ってコードブロックを組み合わせることもでき、コードの複雑さをプログラミング言語の重要性の観点から説明できることも分かりました。
電子回路の以前の組合せ進化シミュレーションと同様に、複雑さは単純なキーワードや特殊文字からより複雑な変数宣言、クラス定義、メソッド、メソッドを含むクラスへと増大した。
そのため、コンビナティブ進化は、オープンな自動プログラミングにとって有望なアプローチであるようだ。
関連論文リスト
- A Symbolic Computing Perspective on Software Systems [0.0]
シンボリック数学計算システムは、60年以上にわたって、ソフトウェアシステムの石炭鉱山の運河として機能してきた。
主要な記号的数理計算システムには、算術、メモリ管理、その他のプリミティブのための低レベルコード、bespokeプログラミング言語のコンパイラまたはインタプリタ、高レベルの数理アルゴリズムのライブラリ、ユーザーインターフェースなどが含まれる。
論文 参考訳(メタデータ) (2024-06-13T13:10:47Z) - Finding structure in logographic writing with library learning [55.63800121311418]
書記システムにおける構造を発見するための計算フレームワークを開発する。
我々の枠組みは中国語の表記体系における既知の言語構造を発見する。
図書館学習のアプローチが、人間の認知における構造の形成の基盤となる基本的な計算原理を明らかにするのにどのように役立つかを実証する。
論文 参考訳(メタデータ) (2024-05-11T04:23:53Z) - Automatizing Software Cognitive Complexity Reduction through Integer
Linear Programming [1.1970409518725493]
近年,ソフトウェア認知複雑性の低減を最適化問題としてモデル化し,開発者を支援する手法を提案する。
このアプローチは、停止基準を満たすまでコード抽出操作のシーケンスを列挙する。結果として、コードの認知複雑性を所定のしきい値に減らすことができる最小限のコード抽出操作のシーケンスを返す。
論文 参考訳(メタデータ) (2024-02-08T10:53:00Z) - 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) - Automated Aggregator -- Rewriting with the Counting Aggregate [0.0]
本稿では,補完的な性能を持つ等価プログラム群を生成する自動書き換えシステムを提案する。
本稿では,自動解答器選択ツールにおけるシステムの利用を提案する。
論文 参考訳(メタデータ) (2020-09-22T00:48:33Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。