Content
News
Dagstuhl Seminar on Inductive Programming
The 7th AAIP Workshop on Approaches and Applications of Inductive Programming is accepted as Dagstuhl Seminar 17382 and will take place September 17 to 20, 2017. The workshop is jointly organized by Ute Schmid (University of Bamberg), Stephen Muggleton (Imperial College London), and Rishabh Singh (MIT and Microsoft Research).
For more information, see the Dagstuhl Seminar Page.
RuleML Blog Report about Dagstuhl Seminar AAIP'16
AAIP'16 in the RuleML Blog
http://via.aayo.ws/YmI4J
CACM on Inductive Programming
The review article “Inductive programming meets the real world” by
Gulwani,
Hernández-Orallo,
Kitzelmann,
Muggleton,
Schmid, and
Zorn
has been published in the Communications of the ACM, Vol. 58 No. 11, Pages 90-99. 10.1145/2736282
see fulltext
Wikipedia Page on Inductive Programming
José Hernández-Orallo and Ute Schmid created Wikipedia articles for Inductive Programming and Inductive Functional Programming.
Dagstuhl Seminar "Approaches and Applications of Inductive Programming"
José Hernández-Orallo (Polytechnic University of Valencia, ES), Stephen H. Muggleton (Imperial College London, GB), Ute Schmid (Universität Bamberg, DE) and Benjamin Zorn (Microsoft Research - Redmond, US) organize Dagstuhl Seminar 15442 "Approaches and Applications of Inductive Programming" scheduled for October 25 to 30, 2015.
The seminar is a continuation of the AAIP workshop series.
Please visit the AAIP 15 Homepage.
Report of Dagstuhl Seminar
We're pleased to inform you that the report of Dagstuhl Seminar 13502 is now published as part of the periodical Dagstuhl Reports.
The report is available online at the DROPS Server.
Dagstuhl Seminar "Approaches and Applications of Inductive Programming"
Ute Schmid (University of Bamberg), Emanuel Kitzelmann (University of Duisburg-Essen), Sumit Gulwani (Microsoft Research) and Marcus Hutter (Austrian National University) organize Dagstuhl Seminar 13502 "Approaches and Applications of Inductive Programming" scheduled for Monday, December 09 to December 11, 2013. The seminar is a continuation of the AAIP workshop series.
Please visit the AAIP 13 Homepage.
4th Workshop AAIP 2011
Ute Schmid and Emanuel Kitzelmann organize the 4th Workshop on Approaches and Applications of Inductive Programming. It will take place on July 19, 2011, in Odense, Denmark. Co-located events are the 13th International ACM SIGPLAN Symposium on Principles and Practice of Declarative Programming (PPDP 2011) and the 21st International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2011).
Details can be found on the AAIP 2011 Homepage.
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
- a set of training inputs and corresponding outputs or an output evaluation function, describing the desired behavior of the intended program,
- traces or action sequences which describe the process of calculating specific outputs,
- constraints for the program to be induced concerning its time efficiency or its complexity,
- 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,
- 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.