
Figure 2: Illustration of ARGA’s constraint-guided search. Note that a reconstructed 2D image is used at each node for better
visualization. Nodes in the actual search tree consists a set of abstracted graphs.
based DSL makes it possible to define complex but in-
terpretable solution programs for tasks of the ARC. This
is in contrast to pure neural network-type approaches that
attempt to map input to output in an often black-box fash-
ion.
–Search: With the representation and DSL in place, we
opt for a complete tree search algorithm. Given a task,
the search seeks a program in the DSL that produces the
correct outputs for each of the task’s training examples.
Whenever a correct program for a task exists in our DSL,
the search can find it given sufficient time.
–Constraints: Leveraging the observation that (solved)
training examples not only tell us what a correct program
does but also what it should not do (e.g., in Fig. 1 (left),
objects should not move), we use constraint acquisition
to simplify our combinatorial search space. Constraints
are expressed in the very same graph DSL and may be
acquired by an arbitrary algorithm.
Fig. 2 illustrates the DSL, Search, and Constraints compo-
nents of ARGA; Fig. 4 illustrates the Representation. With
ARGA, we hope to provide AI researchers who are inter-
ested in the ARC and similar few-shot reasoning situations
with the first such system upon which they can build and ex-
plore the capabilities of graph and search-based reasoning.
Our implementation is available on GitHub1.
Because object-oriented abstraction and reasoning are
major failure modes of state-of-the-art ARC solvers, we de-
fine criteria to select a subset of object-oriented ARC tasks
as a testbed for the evaluation of our methods in compari-
son to other top solvers. The 160 tasks in question span a
wide range of challenging problems that can be categorized
as object recoloring, object movement, and object augmen-
tation. We show how ARGA’s design and performance are
favorable in the following ways:
–Extensibility and Modularity: Every component of
ARGA can be extended almost independently to target
additional ARC tasks or optimize performance: novel
graph abstractions can be added, additional object filters
1https://github.com/khalil-research/ARGA-AAAI23
and transformations can be appended to the DSL, new
search strategies can be tested, and faster constraint ac-
quisition algorithms may seamlessly replace ours.
–Computational Efficiency: Our DSL contains a num-
ber of object-based selection filters as well as transfor-
mations (e.g., recoloring, moving, etc.). Because these
can be composed together to form a candidate program
for an ARC task, the resulting search space is combina-
torially large. Nonetheless, through experiments on 160
object-based ARC tasks, we show that when ARGA finds
a solution, it does so by exploring a minute number of
possible solutions, effectively three orders of magnitude
fewer than the winner of the Kaggle competition.
–Effectiveness: Our current DSL includes only 4 base
filters and 11 transformations. Yet, we solve 57 of 160
tasks, only slightly behind the Kaggle winner’s 64 of 160.
The latter includes a much larger body of transformations
that were obtained by examining many more ARC tasks.
System overview
We propose a two-stage framework that takes an object-
centric approach to solving an ARC task. First, the graph ab-
straction stage inspired by work on Go (Graepel et al. 2001),
where the 2D grid images are mapped to (multiple) undi-
rected graph representations that capture information about
the objects in the images at a higher abstracted level. Sec-
ond, the solution synthesis stage, where a constraint-guided
search is used to formulate the series of operations to be ap-
plied to the abstracted graphs that will lead to a solution. The
space of possible operations is defined by an ARGA-specific
relational Domain Specific Language (DSL).
Since the DSL defines operations on the abstracted
graphs, we will first describe the graph abstraction stage and
formally define the structure of the abstracted graphs. Then,
the DSL will be defined in detail. Finally, the solution syn-
thesis stage will be discussed.
Graph Abstraction
Graph abstraction allows us to search for a solution at a
macroscopic level. In other words, we are modifying groups