Skip to content

My code developed to solve the Abstract Reasoning Corpus challenge.

Notifications You must be signed in to change notification settings

DavenH/ArcSolver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ARC Solver

This project is the results of my attempt to solve the ARC challenge.

Background

The problems are psychometric-style puzzles that are very tricky for computers to solve. The best known methods employ a search over short programs.

In my approach, I built a domain-specific language (DSL) to generate the results for these puzzles. Also, I built an IDE to rapidly iterate on pieces of code written in this language to see if they solved the puzzle.

Media

A screenshot of the IDE

Here's a video of code interpretation part of the IDE in action:


And the power of masks:

Notable classes

viz.Previewer

This is the integrated environment that displays the problem examples, note-taking text areas,

gen.dsl.arc.Visitor

This class does the heavy lifting of interpreting the ARC dsl language.

gen.grid.Mask

This is the graphical backbone of the DSL. All shapes are Masks, and this class provides many utilities for spatial reasoning.

For example: mask.left() returns a mask of all the cells to the left of the positive cells in mask. You can chain any prepositional functions, like mask.above().left().around(), which will give you a new mask.

main.antlr4.gen.dsl.arc.Arc.g4

This file specifies the syntax of the ARC dsl language.

About

My code developed to solve the Abstract Reasoning Corpus challenge.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published