News

New IP Logo

We are proud to present our new IP logo. It depicts the stylised acronym for Inductive Programming, with the letters I and P overlay on their stems. Circles emerging from the bottom to the top of the stem symbolise the induction from examples. The bowl of the P is an arrow pointing backwards to the first emerging circle representing recursion and loops.

We also adjusted the whole appearence of our site. Thanks to Sanne helping with the layout and especially for designing this fantastic logo.

19.03.2008


Publications updated

The list of publications has been updated. Thanks to Ute Schmid for providing the ip-related part of her bibliography. If you want to contribute or you think papers are missing then please send a message with the BibTex entries to the admin.

21.11.2007


People Section finished

The 'People' section has been finished. There an overview of researchers working in the fieled of IP can be found.

30.10.2007


AAIP Mailing List transferred

The old AAIP mailing list has now been transferred to ip [HYPHEN] list [AT] inductive [HYPHEN] programming [DOT] org. If you registered to the the old AAIP list, you should have recieved a mail from listserv.uni-bamberg.de's postmaster (postmaster [AT] listserv [DOT] uni [HYPHEN] bamberg [DOT] de). If not, please have a look in your spam folder or use the subscription form to subscribe manually.

29.10.2007


Mailing List installed

The mailing list of this site is now working. Everybody interested in the latest news of the IP community can sign in here. To post to the list send a message to ip [HYPHEN] list [AT] inductive [HYPHEN] programming [DOT] org.

24.10.2007


Homepage online

This site is now online as the web portal of the IP community.

16.10.2007


Introduction

Background

Inductive programming incorporates all approaches which are concerned with learning programs or algorithms from incomplete specifications. Possible inputs in an IP system are

  1. a set of training inputs and corresponding outputs or an output evaluation function, describing the desired behavior of the intended program,
  2. traces or action sequences which describe the process of calculating specific outputs,
  3. constraints for the program to be induced concerning its time efficiency or its complexity,
  4. various kinds of background knowledge such as standard data types, predefined functions to be used, program schemes or templates describing the data flow of the intended program,
  5. heuristics for guiding the search for a solution or other biases.

Output of an IP system is a program in some arbitrary programming language containing conditionals and loop- or recursive control structures.

Approaches

Automatic induction of programs from input/output examples is an active area of research since the sixties and of interest for machine learning research as well as for automated software engineering. In the early days of inductive programming research there several approaches to the synthesis of Lisp programs from examples or traces were proposed.

Due to only limited progress, interest decreased in the mid-eighties and research focused on inductive logic programming (ILP) instead. Although ILP proved to be a powerful approach to learning relational concepts, applications of learning recursive clauses had only moderate success.

Learning recursive programs from examples is also investigated in genetic programming and other forms of evolutionary computation. Here again, functional programs are learned from sets of positive examples together with an output evaluation function which specify the desired input/output behavior of the program to be learned.

In the recent years, the classical (Summers like) approaches have been resumed and advanced with great success. Therefore the synthesis problem has been reformulated on the background of constructor-based term rewriting systems taking into account modern techniques of functional programming, as well as moderate use of search-based strategies and usage of background knowledge as well as automatic invention of subprograms. A fourth approach is learning recursive programs in the context of grammar inference.

Current Research

Currently, there is no single prominent approach to inductive program synthesis. Instead, research is scattered over the different approaches. Nevertheless, inductive programming is a research topic of crucial interest for machine learning and artificial intelligence in general. The ability to generalize a program – containing control structures as resursion or loops – from examples is a challenging problem which calls for approaches going beyond the requirements of algorithms for concept learning. Pushing research forward in this area can give important insights in the nature and complexity of learning as well as enlarging the field of possible applications.

Application Areas

Typical areas of application where learning of programs or recursive rules are called for, are first in the domain of software engineering where structural learning, software assistants and software agents can help to relieve programmers from routine tasks, give programming support for endusers, or support of novice programmers and programming tutor systems. Further areas of application are language learning, learning recursive control rules for AI-planning, learning recursive concepts in web-mining or for data-format transformations.

 

This file was last modified on Thursday March 20, 2008