HOTGP -- Higher-Order Typed Genetic Programming
- URL: http://arxiv.org/abs/2304.03200v1
- Date: Thu, 6 Apr 2023 16:23:34 GMT
- Title: HOTGP -- Higher-Order Typed Genetic Programming
- Authors: Matheus Campos Fernandes, Fabr\'icio Olivetti de Fran\c{c}a, Emilio
Francesquini
- Abstract summary: HOTGP is a new genetic algorithm that synthesizes pure, typed, and functional programs.
The grammar is based on Haskell's standard base library.
- Score: 0.0
- License: http://creativecommons.org/licenses/by-nc-sa/4.0/
- Abstract: Program synthesis is the process of generating a computer program following a
set of specifications, which can be a high-level description of the problem
and/or a set of input-output examples. The synthesis can be modeled as a search
problem in which the search space is the set of all the programs valid under a
grammar. As the search space is vast, brute force is usually not viable and
search heuristics, such as genetic programming, also have difficulty navigating
it without any guidance. In this paper we present HOTGP, a new genetic
programming algorithm that synthesizes pure, typed, and functional programs.
HOTGP leverages the knowledge provided by the rich data-types associated with
the specification and the built-in grammar to constrain the search space and
improve the performance of the synthesis. The grammar is based on Haskell's
standard base library (the synthesized code can be directly compiled using any
standard Haskell compiler) and includes support for higher-order functions,
$\lambda$-functions, and parametric polymorphism. Experimental results show
that, when compared to $6$ state-of-the-art algorithms using a standard set of
benchmarks, HOTGP is competitive and capable of synthesizing the correct
programs more frequently than any other of the evaluated algorithms.
Related papers
- Learning to Reason via Program Generation, Emulation, and Search [33.11955431589091]
Program synthesis with language models (LMs) has unlocked a large set of reasoning abilities.
Not all reasoning tasks are easily expressible as code, e.g. tasks involving commonsense reasoning, moral decision-making, and sarcasm understanding.
We propose Code Generation and Emulated EXecution (CoGEX) to extend an LM's program synthesis skills to such tasks.
arXiv Detail & Related papers (2024-05-25T19:40:50Z) - Efficient Algorithms for Recognizing Weighted Tree-Adjoining Languages [104.90415092306219]
Four formalisms are equivalent to tree-adjoining grammars (TAG), linear indexed grammars (LIG), pushdown-adjoining automata (PAA) and embedded pushdown automata (EPDA)
We design new algorithms for computing their stringsum derivations (the weight of all automatons of a string) and allsums (the weight of all derivations)
For EPDA, our algorithm is both more space-efficient and time-efficient than the algorithm of Alonso et al. (2001) by factors of $mathcalO(|Gamma|2)$ and $
arXiv Detail & Related papers (2023-10-23T18:26:00Z) - ExeDec: Execution Decomposition for Compositional Generalization in Neural Program Synthesis [54.18659323181771]
We characterize several different forms of compositional generalization that are desirable in program synthesis.
We propose ExeDec, a novel decomposition-based strategy that predicts execution subgoals to solve problems step-by-step informed by program execution at each step.
arXiv Detail & Related papers (2023-07-26T01:07:52Z) - Solving Novel Program Synthesis Problems with Genetic Programming using
Parametric Polymorphism [0.0]
We show that Code-building Genetic Programming (CBGP) compiles type-safe programs from linear genomes using stack-based compilation and a formal type system.
CBGP is able to solve problems with all of these properties, where every other GP system that we know of has restrictions that make it unable to even consider problems with these properties.
arXiv Detail & Related papers (2023-06-08T00:10:07Z) - A Divide-Align-Conquer Strategy for Program Synthesis [8.595181704811889]
We show that compositional segmentation can be applied in the programming by examples setting to divide the search for large programs across multiple smaller program synthesis problems.
A structural alignment of the constituent parts in the input and output leads to pairwise correspondences used to guide the program search.
arXiv Detail & Related papers (2023-01-08T19:10:55Z) - Taylor Genetic Programming for Symbolic Regression [5.371028373792346]
Genetic programming (GP) is a commonly used approach to solve symbolic regression (SR) problems.
We propose Taylor genetic programming (TaylorGP) to approximate the symbolic equation that fits the dataset.
TaylorGP not only has higher accuracy than the nine baseline methods, but also is faster in finding stable results.
arXiv Detail & Related papers (2022-04-28T13:43:39Z) - Searching for More Efficient Dynamic Programs [61.79535031840558]
We describe a set of program transformations, a simple metric for assessing the efficiency of a transformed program, and a search procedure to improve this metric.
We show that in practice, automated search can find substantial improvements to the initial program.
arXiv Detail & Related papers (2021-09-14T20:52:55Z) - Latent Execution for Neural Program Synthesis Beyond Domain-Specific
Languages [97.58968222942173]
We take the first step to synthesize C programs from input-output examples.
In particular, we propose La Synth, which learns the latent representation to approximate the execution of partially generated programs.
We show that training on these synthesized programs further improves the prediction performance for both Karel and C program synthesis.
arXiv Detail & Related papers (2021-06-29T02:21:32Z) - Representing Partial Programs with Blended Abstract Semantics [62.20775388513027]
We introduce a technique for representing partially written programs in a program synthesis engine.
We learn an approximate execution model implemented as a modular neural network.
We show that these hybrid neuro-symbolic representations enable execution-guided synthesizers to use more powerful language constructs.
arXiv Detail & Related papers (2020-12-23T20:40:18Z) - Latent Programmer: Discrete Latent Codes for Program Synthesis [56.37993487589351]
In many sequence learning tasks, such as program synthesis and document summarization, a key problem is searching over a large space of possible output sequences.
We propose to learn representations of the outputs that are specifically meant for search: rich enough to specify the desired output but compact enough to make search more efficient.
We introduce the emphLatent Programmer, a program synthesis method that first predicts a discrete latent code from input/output examples, and then generates the program in the target language.
arXiv Detail & Related papers (2020-12-01T10:11:35Z) - Code Building Genetic Programming [0.0]
We introduce Code Building Genetic Programming (CBGP) as a framework within which this can be done.
CBGP produces a computational graph that can be executed or translated into source code of a host language.
arXiv Detail & Related papers (2020-08-09T04:33:04Z)
This list is automatically generated from the titles and abstracts of the papers in this site.
This site does not guarantee the quality of this site (including all information) and is not responsible for any consequences.