Using Program Synthesis and Inductive Logic Programming to solve Bongard Problems
The ability to recognise and make analogies is often used as a measure or test of human intelligence. The ability to solve Bongard problems is an example of such a test. It has also been postulated that the ability to rapidly construct novel abstractions is critical to being able to solve analogical problems. Given an image, the ability to construct a program that would generate that image is one form of abstraction, as exemplified in the Dreamcoder project. In this paper, we present a preliminary examination of whether programs constructed by Dreamcoder can be used for analogical reasoning to solve certain Bongard problems. We use Dreamcoder to discover programs that generate the images in a Bongard problem and represent each of these as a sequence of state transitions. We decorate the states using positional information in an automated manner and then encode the resulting sequence into logical facts in Prolog. We use inductive logic programming (ILP), to learn an (interpretable) theory for the abstract concept involved in an instance of a Bongard problem. Experiments on synthetically created Bongard problems for concepts such as 'above/below' and 'clockwise/counterclockwise' demonstrate that our end-to-end system can solve such problems. We study the importance and completeness of each component of our approach, highlighting its current limitations and pointing to directions for improvement in our formulation as well as in elements of any Dreamcoder-like program synthesis system used for such an approach.
Code (0)
등록된 구현이 없습니다.
Tasks
Inductive logic programmingProgram SynthesisMethods 이 논문이 사용한 방법론
Similar Papers 제목 키워드 기반
Program Synthesis using Inductive Logic Programming for the Abstraction and Reasoning Corpus
The Abstraction and Reasoning Corpus (ARC) is a general artificial intelligence benchmark that is currently unsolvable by any Machine Learning method, including Large Language Models (LLMs). It demands strong generalizat…
ARCInductive logic programmingProgram SynthesisParallel Constraint-Driven Inductive Logic Programming
Multi-core machines are ubiquitous. However, most inductive logic programming (ILP) approaches use only a single core, which severely limits their scalability. To address this limitation, we introduce parallel techniques…
Inductive logic programmingProgram SynthesisDifferentiable Inductive Logic Programming in High-Dimensional Space
Synthesizing large logic programs through symbolic Inductive Logic Programming (ILP) typically requires intermediate definitions. However, cluttering the hypothesis space with intensional predicates typically degrades pe…
Inductive logic programmingVocal Bursts Intensity PredictionKnowledge Refactoring for Inductive Program Synthesis
Humans constantly restructure knowledge to use it more efficiently. Our goal is to give a machine learning system similar abilities so that it can learn more efficiently. We introduce the \textit{knowledge refactoring} p…
Inductive logic programmingProgram inductionProgram SynthesisRelational program synthesis with numerical reasoning
Program synthesis approaches struggle to learn programs with numerical values. An especially difficult problem is learning continuous values over multiple examples, such as intervals. To overcome this limitation, we intr…
Inductive logic programmingProgram SynthesisRelational Reasoning