An AI-powered app to help solve pen-and-paper Sudokus

The Sudoku Assistant is an AI assistant that uses a combination of machine learning and constraint programming techniques, to interpret and explain a pen-and-paper Sudoku scanned with a smartphone. Although the demo is about Sudoku, the underlying techniques are equally applicable to other constraint solving problems like timetabling, scheduling, and vehicle routing.

How to start ?

To use the app, start by taking a picture of a Sudoku puzzle. The puzzle should be aligned with the given overlay.

Hints and solving

The user is then given 2 options:

  1. Ask for a hint
  2. Get the Sudoku’s solution
Both asking for a hint and asking for the solution prompts the app to solve the Sudoku in the background.

The way this is done is one of the key novelties we present in this app, the way we generate hints is another.

Digit classification

Based on this alignment, the puzzle is segmented into its 81 cells.

Each cell’s visual content (a vector of pixel values) is fed into a Convolutional neural network (CNN) that has been trained to classify digits ranging from 1 to 9, as well as empty cells.