論文の概要: Origami: (un)folding the abstraction of recursion schemes for program
synthesis
- arxiv url: http://arxiv.org/abs/2402.13828v2
- Date: Tue, 27 Feb 2024 00:13:38 GMT
- ステータス: 処理完了
- システム内更新日: 2024-02-28 20:50:58.219667
- Title: Origami: (un)folding the abstraction of recursion schemes for program
synthesis
- Title(参考訳): 折り紙:(un)プログラム合成のための再帰スキームの抽象化
- Authors: Matheus Campos Fernandes, Fabricio Olivetti de Franca, Emilio
Francesquini
- Abstract要約: 遺伝的プログラミングは入力仕様を満たす正しいプログラムを探索する。
特定の課題はループと再帰を扱う方法であり、終わらないプログラムを避けることである。
再帰スキーマは、データ生産と消費の組み合わせを一般化する。
- 参考スコア(独自算出の注目度): 0.0
- License: http://creativecommons.org/licenses/by-nc-sa/4.0/
- Abstract: Program synthesis with Genetic Programming searches for a correct program
that satisfies the input specification, which is usually provided as
input-output examples. One particular challenge is how to effectively handle
loops and recursion avoiding programs that never terminate. A helpful
abstraction that can alleviate this problem is the employment of Recursion
Schemes that generalize the combination of data production and consumption.
Recursion Schemes are very powerful as they allow the construction of programs
that can summarize data, create sequences, and perform advanced calculations.
The main advantage of writing a program using Recursion Schemes is that the
programs are composed of well defined templates with only a few parts that need
to be synthesized. In this paper we make an initial study of the benefits of
using program synthesis with fold and unfold templates, and outline some
preliminary experimental results. To highlight the advantages and disadvantages
of this approach, we manually solved the entire GPSB benchmark using recursion
schemes, highlighting the parts that should be evolved compared to alternative
implementations. We noticed that, once the choice of which recursion scheme is
made, the synthesis process can be simplified as each of the missing parts of
the template are reduced to simpler functions, which are further constrained by
their own input and output types.
- Abstract(参考訳): 遺伝的プログラミングを用いたプログラム合成は、通常入力出力の例として提供される入力仕様を満たす正しいプログラムを探索する。
特定の課題はループと再帰を効果的に扱う方法であり、終わらないプログラムを避けることである。
この問題を緩和できる有用な抽象化は、データ生産と消費の組み合わせを一般化する再帰スキームの利用である。
再帰スキームはデータの要約、シーケンスの作成、高度な計算が可能なプログラムの構築を可能にするため、非常に強力である。
Recursion Schemesを使ってプログラムを書く主な利点は、プログラムがよく定義されたテンプレートで構成されており、いくつかの部分だけを合成する必要があることである。
本稿では,テンプレートの折り畳みと折り畳みによるプログラム合成の利点に関する初期研究を行い,予備的な実験結果について概説する。
このアプローチの利点とデメリットを強調するために,再帰スキームを用いてGPSBベンチマーク全体を手作業で解決し,代替実装と比較して進化すべき部分を強調した。
我々は、再帰スキームが選択されると、テンプレートの欠落部分のそれぞれがより単純な関数に還元されるため、合成プロセスが単純化され、さらに独自の入力型と出力型によって制約されることに気付いた。
関連論文リスト
- ExeDec: Execution Decomposition for Compositional Generalization in Neural Program Synthesis [54.18659323181771]
プログラム合成において望ましいいくつかの異なる構成一般化形式を特徴付ける。
本稿では,ExeDecを提案する。ExeDecは,実行サブゴールを予測し,各ステップでプログラム実行によって段階的に通知される問題を解くための,新しい分解ベースの戦略である。
論文 参考訳(メタデータ) (2023-07-26T01:07:52Z) - Hierarchical Neural Program Synthesis [19.94176152035497]
プログラム合成は、与えられたタスク仕様を満たす人間可読プログラムを自動構築することを目的としている。
プログラムを階層的に構成することでプログラムを合成するスケーラブルなプログラム合成フレームワークを提案する。
入力/出力ペアを持つ文字列変換領域において,提案するフレームワークを広範囲に評価する。
論文 参考訳(メタデータ) (2023-03-09T18:20:07Z) - A Divide-Align-Conquer Strategy for Program Synthesis [8.595181704811889]
本稿では,大規模プログラムの探索を複数の小さなプログラム合成問題に分割する例によって,構成セグメント化がプログラミングに応用可能であることを示す。
入力と出力における構成部品の構造的アライメントは、プログラム探索を導くのに使用されるペアワイズ対応に繋がる。
論文 参考訳(メタデータ) (2023-01-08T19:10:55Z) - Iterative Genetic Improvement: Scaling Stochastic Program Synthesis [11.195558777385259]
プログラム合成は、与えられた仕様を満たす基礎となるプログラミング言語からプログラムを自動的に見つけることを目的としている。
既存のプログラム合成技術はこの期待を十分に満たさず、スケーラビリティの問題に悩まされている。
本稿では、この問題を解決するために反復的遺伝的改善と呼ばれるプログラム合成の新しい枠組みを提案する。
論文 参考訳(メタデータ) (2022-02-26T02:00:35Z) - Latent Execution for Neural Program Synthesis Beyond Domain-Specific
Languages [97.58968222942173]
入力出力の例からCプログラムを合成する第一歩を踏み出す。
特に,部分生成プログラムの実行を近似するために潜在表現を学習するLa Synthを提案する。
これらのプログラムのトレーニングにより,Karel と C のプログラム合成における予測性能がさらに向上することを示す。
論文 参考訳(メタデータ) (2021-06-29T02:21:32Z) - Representing Partial Programs with Blended Abstract Semantics [62.20775388513027]
プログラム合成エンジンにおける部分的なプログラム表現手法について紹介する。
モジュラーニューラルネットワークとして実装された近似実行モデルを学ぶ。
これらのハイブリッドニューロシンボリック表現は、実行誘導型シンセサイザーがより強力な言語構成を使うことができることを示す。
論文 参考訳(メタデータ) (2020-12-23T20:40:18Z) - Latent Programmer: Discrete Latent Codes for Program Synthesis [56.37993487589351]
プログラム合成や文書要約などの多くのシーケンス学習タスクにおいて、重要な問題は出力シーケンスの広い空間を探索することである。
本稿では,検索対象とする出力の表現を学習することを提案する。
本稿では,まず入力/出力サンプルから離散潜在コードを予測するプログラム合成手法であるemphLatent Programmerを紹介し,そのプログラムを対象言語で生成する。
論文 参考訳(メタデータ) (2020-12-01T10:11:35Z) - Process Discovery for Structured Program Synthesis [70.29027202357385]
プロセスマイニングにおける中核的なタスクは、イベントログデータから正確なプロセスモデルを学ぶことを目的としたプロセス発見である。
本稿では,ターゲットプロセスモデルとして(ブロック-)構造化プログラムを直接使用することを提案する。
我々は,このような構造化プログラムプロセスモデルの発見に対して,新たなボトムアップ・アグリメティブ・アプローチを開発する。
論文 参考訳(メタデータ) (2020-08-13T10:33:10Z) - Synthesize, Execute and Debug: Learning to Repair for Neural Program
Synthesis [81.54148730967394]
本稿では,合成,実行,デバッグの段階を組み込んだニューラルネットワーク生成フレームワークであるSEDを提案する。
SEDはまず、神経プログラムシンセサイザーコンポーネントを使用して初期プログラムを生成し、その後、神経プログラムデバッガを使用して生成されたプログラムを反復的に修復する。
挑戦的な入出力プログラム合成ベンチマークであるKarelでは、SEDはニューラルプログラムシンセサイザー自体のエラー率をかなりのマージンで削減し、デコードのための標準ビームサーチより優れている。
論文 参考訳(メタデータ) (2020-07-16T04:15:47Z) - Program Synthesis with Pragmatic Communication [28.24612900419843]
本研究では,プログラム合成タスクを合理的なコミュニケーションとしてモデル化した新しい帰納的バイアスを導入する。
ユーザスタディでは、エンドユーザの参加者が、非実用的なプログラムシンセサイザーよりも、より効果的に、実践的なプログラムシンセサイザーと通信することを発見した。
論文 参考訳(メタデータ) (2020-07-09T20:55:44Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。