Programmieren durch analoges Schließen

SummaryWe propose an approach to programming by analogy that is based on the notion of recursive program schemes. If there are no examples with sufficient structural similarity to a new problem, the program scheme is inferred from the scratch using induction from inputoutput examples. Program schemes are stored in a hierarchically organized knowledge structure by constructing generalized schemes from concrete programs. Our approach handles the following processes of analogical reasoning: the similarity between new problems and example solutions is calculated by a structural measure defined on trees. In addition, this similarity measure defines which modifications have to be performed to adapt the example solution to the new problem. In the case of successful transfer the new solution together with a generalized structure, is stored in memory. The problem of handling non-isomorphic structures is discussed and possibilities for handling transfer in such cases are proposed. Our approach is implemented as a first prototype in Lisp.ZusammenfassungEs wird ein Ansatz zum Programmieren durch analoges Schließen dargestellt, der auf dem Konzept rekursiver Programmschemata basiert. Ist kein hinreichend ähnliches Beispiel zu einem aktuellen Problem vorhanden, so werden solche Schemata induktiv aus Ein-Ausgabe-Beispielen aufgebaut. Das Gedächtnis ist hierarchisch organisiert, indem ausgehend von konkreten Programmschemata generalisierte Strukturen gebildet und gespeichert werden. Beim analogen Schließen werden folgende Teilprozesse modelliert: Die Ähnlichkeit zwischen einem aktuellen Problem und bereits gelösten Beispielen wird über ein strukturelles Distanzmaß auf (Term-)Bäumen bestimmt. Dieses Ähnlichkeitsmaß definiert gleichzeitig die Modifikationen, die notwendig sind, um ein Beispielprogramm an die neuen Anforderungen anzupassen. Bei erfolgreichem analogen Transfer wird das neu inferierte Schema sowie eine über Beispiel und aktuelles Problem generalisierende Struktur in das Gedä chtnis eingefügt. Das Problem des analogen Transfers bei nicht-isomorphen Strukturen wird diskutiert, und es werden Lösungsideen aufgezeigt. Der Ansatz ist als erster Prototyp in Lisp implementiert.

[1]  D. Gentner Structure‐Mapping: A Theoretical Framework for Analogy* , 1983 .

[2]  Stephen K. Reed,et al.  Use of examples and procedures in problem solving , 1991 .

[3]  John R. Anderson,et al.  Rules of the Mind , 1993 .

[4]  Rainer Goebel,et al.  Das Lösen rekursiver Programmierprobleme: Ein Simulationsmodell , 1991, Kognitionswissenschaft.

[5]  Guillaume Le Blanc,et al.  BMWk Revisited - Generalization and Formalization of an Algorithm for Detecting Recursive Relations in Term Sequences , 1994, ECML.

[6]  F. Klix Analytische Betrachtungen über Struktur und Funktion von Inferenzen , 1993 .

[7]  John R. Anderson,et al.  MACHINE LEARNING An Artificial Intelligence Approach , 2009 .

[8]  Christopher K. Riesbeck,et al.  Inside Case-Based Reasoning , 1989 .

[9]  Gerhard Weber Episodic Learner Modeling , 1996 .

[10]  Nils J. Nilsson,et al.  Principles of Artificial Intelligence , 1980, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[11]  K. Holyoak,et al.  Mathematical problem solving by analogy. , 1991, Journal of experimental psychology. Learning, memory, and cognition.

[12]  Makoto Haraguchi,et al.  Analogical Logic Program Synthesis from Examples , 1995, ECML.

[13]  P. Pirolli,et al.  The role of learning from examples in the acquisition of recursive programming skills. , 1985 .

[14]  Alan W. Biermann,et al.  Automatic Program Construction Techniques , 1984 .

[15]  Zohar Manna,et al.  Knowledge and Reasoning in Program Synthesis , 1974, IJCAI.

[16]  A. Ortony,et al.  Similarity and Analogical Reasoning , 1991 .

[17]  Fritz Wysotzki Representation and Induction of Infinite Concepts and Recursive Action Sequences , 1983, IJCAI.

[18]  Shin-Yee Lu A Tree-to-Tree Distance and Its Application to Cluster Analysis , 1979, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[19]  L. R. Novick Analogical transfer, problem similarity, and expertise. , 1988, Journal of experimental psychology. Learning, memory, and cognition.

[20]  B. Ross,et al.  Generalizing from the use of earlier examples in problem solving , 1990 .

[21]  John R. Anderson,et al.  Use of analogy in a production system architecture , 1989 .

[22]  F. Wysotzki,et al.  Induktion von Rekursiven Programmschemata und Analoges Lernen , 1997 .

[23]  Joost Engelfriet,et al.  Simple Program Schemes and Formal Languages , 1974, Lecture Notes in Computer Science.

[24]  Donald A. Norman,et al.  Accretion, tuning and restructuring: Three modes of learning , 1976 .

[25]  Brian Falkenhainer,et al.  The Structure-Mapping Engine: Algorithm and Examples , 1989, Artif. Intell..

[26]  U. Schmid,et al.  Analogical learning in recursive programming , 1995 .

[27]  Stella Vosniadou,et al.  Similarity and analogical reasoning: a synthesis , 1989 .

[28]  John H. Holland,et al.  Induction: Processes of Inference, Learning, and Discovery , 1987, IEEE Expert.

[29]  Paul Thagard,et al.  Analogical Mapping by Constraint Satisfaction , 1989, Cogn. Sci..

[30]  Robert S. Williams Learning to Program by Examining and Modifying Cases , 1988, ML.