# Puzzle solving AI?

I have a book containing lots of puzzles with instructions like:

"Find a path through all the white squares."

"Connect each black circle to a white circle with a straight line without crossing lines".

"Put the letters A to G in the grid so that no letters are repeated in any row or collumn"


I thought it might be fun to (1) Try and write a program to solve each individual puzzle (2) Write a program that can solve more general problems, and even more interesting (3) Try to write a program that parses the English instructions and then solves the problem.

I think that in general there would be common themes like, "draw a path", "connect the dots", "place the letters in the grid", and so forth.

The program would have general knowledge of thing like squares, cells, rows, collumns, colours, letters, numbers and so on.

I wondered if there is anything similar out there already?

If an AI could read instructions and solve the puzzles could we say that it is in someway intelligent?

The program would have general knowledge of thing like squares, cells, rows, collumns, colours, letters, numbers and so on.

What do you mean by "general knowledge" of this objects ? If you intend to give it similar knowledge that a human would have about them you are going to have a realy hard time.

It's a broader task but the Cyc project is attempting to assemble a comprehensive knowledge base that spans the basic concepts that every little child know and have worked on it for the last 35 years (https://en.wikipedia.org/wiki/Cyc). You could check what they have on their database about the thing that interest you but even so it will be a really hard task.

Basically what Cyc is trying to do is to create a huge dataset which contain every "common knowledge" about the world. In your case the world would be limited to just the dot, line, grid, letter, etc but it would still be a huge work to create this database.

This is the way AI community dealed with "general knowledges" for a long time. An alternative to this approach would be to use machine learning but I have no idea how it could be used for this objective (apart from using NLP to help you create the database which is what Cyc is now doing)

I wondered if there is anything similar out there already?

As far as I know there is nothing of the sort as of now. There exist AI which can learn to play multiple video game but they don't read the rule (like : "Find a path through all the white squares."), they just try things until they find the "good" way to play a game. This AI generally use reinforcement learning.

If an AI could read instructions and solve the puzzles could we say that it is in someway intelligent?

The concept of intelligence is not something on which everyone agree and even so most of the people think that there is different level of intelligence.

From my point of view this AI would have a certain level of intelligence if it had the possibility to learn a new kind of game (even if somewhat similar to the ones it already know) in just a few try (I can't give you a number but definitively not the thousands that actual method would require). Just like you presented it this ability would probably require your AI to have some level of understanding of the different common concepts between games (lines, dots, path ...).

• Yes, I think the tricky thing would be to not over engineer it so it could adapt to new puzzles. But I think every time a new puzzle comes along I would probably say "Well I just need to update my program to account for this new puzzle" which is not really the idea! It should just be able to work out what to do from the instructions. – zooby Sep 23 at 16:31