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.

15.03.2017
RuleML Blog Report about Dagstuhl Seminar AAIP'16

AAIP'16 in the RuleML Blog
http://via.aayo.ws/YmI4J

24.03.2016
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

1.11.2015
Wikipedia Page on Inductive Programming

José Hernández-Orallo and Ute Schmid created Wikipedia articles for Inductive Programming and Inductive Functional Programming.

15.01.2015
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.

07.10.2014
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.

31.03.2014
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.

15.12.2012
4th Workshop AAIP 2011

AAIP 2011 Homepage

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.

12.01.2011

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 February 21, 2019