Automatic Design of Algorithms Through Evolution
Automatic Design of Algorithms Through Evolution (ADATE) is a
system for automatic programming i.e., inductive inference of algorithms.
ADATE can automatically generate non-trivial and novel
algorithms. Algorithms are generated through large scale combinatorial search
that employs sophisticated program transformations.
Some Selected ADATE Publications
Reference [2] in the list below gives an overview of ADATE.
For the time being, the best source of information about the internal
details of the ADATE system is [1] which is an edited version of my Dr. Scient. thesis.
-
J. R. Olsson,
Inductive functional programming using incremental program
transformation and Execution of logic programs by iterative-deepening
A* SLD-tree search,
Research report 189, Dr scient thesis,
ISBN 82-7368-099-1, University of Oslo, October 1994.
-
J. R. Olsson,
Inductive functional programming
using incremental program
transformation,
Artificial Intelligence, volume 74, number 1,
March 1995, pp. 55-83.
-
J. R. Olsson,
Population management for automatic design of algorithms through
evolution,
International Conference on Evolutionary Computation,
IEEE Press, 1998.
-
J. R. Olsson,
The art of writing specifications for the ADATE automatic programming
system,
Genetic Programming 1998, Morgan Kaufmann.
-
J. R. Olsson,
Låt datorn skriva programmen!,
popular paper in Swedish, HOIT, number 1, 1998.
-
J. R. Olsson,
How to Invent Functions,
European workshop on genetic programming, Springer Verlag, 1999.
-
J. R. Olsson and B. Wilcox,
Self-Improvement for the ADATE Automatic Programming System,
A more preliminary version of this paper was published at the
3rd WSES International Conference on Evolutionary Computation, WSES Press, 2002.
-
J.R. Olsson and D. M. W. Powers,
Machine Learning of Human Language through Automatic Programming,
International Conference on Cognitive Science, University of New South Wales, July 2003,
pp. 507-512.
Available software
Version 0.50
of ADATE is the newest one and available in source code form in the files main1.sml
and main2.sml.
A user manual
written by Geir Vattekar explains how to compile it.
The ADATE system is still an unfinished research prototype but may still sometimes
provide better results than any other machine learning method not only on
automatic programming problems but also on classical machine learning data sets. A utility
called c5conv that converts a data set in
C5.0
format to an ADATE specification is included in the
latest ADATE distribution.
Old examples of specifications and synthesized programs
A small and simple example - List sorting.
Examples of specifications, synthesized programs and log files
listed in order of increasing syntactic complexity.
External links
General information about program induction. If you
are interested in automatic programming, please consider joining our community.
A Standard ML compiler
for Microsofts .NET framework which makes it possible to use code generated by ADATE
in any .NET application.
Stephen Week's MLton compiler and other tools used
for developing the current version of the ADATE system.
CLEAN, a functional language with purely functional I/O, GUI and arrays.
Shows that "real world" programs can easily be written in a pure style.
Comments, suggestions or questions?