Sudoku Solver

A Sudoku Solver that can solve any sudoku.

Project Overview

Challenge: Make a Sudoku Solver that uses differnet algorithms to determine the most effiecent algorithm for solving a Sudoku. ​

Tools: Java ​

Team: Joshua Fried (Myself) and Michael Clearwater

The Program

The program can use three different algorithms to solve a Sudoku, Backtracking, Backtracking with Forward Checking, and Backtracking with arc Consistency.

Backtracking is also known as the brute force method. Backtracking recursively builds a solution by trying every path until it fails to satisfy the constraints of the problem.

Backtracking with forward checking recursively builds a solution by trying every path until it fails to satisfy the constraints of the problem, but also checks the constraints between the current variable and future variables to limit the number of paths in the problem.

Backtracking with arc consistency eliminates variables from the domain that cannot be part of the solution. It also maintains that there are values in all the neighbor values so that the constraints of the problem are satisfied.

How it Works

The program takes an incomplete Sudoku and returns a finished Sudoku as well as the number of moves it took to finshed the Sudoku.

My Project:

Incomplete Sudoku Finished Sudoku