In this thesis, we will present the solving of the logical puzzle Sudoku, explore different solving approaches, and compare the execution time and efficiency of various algorithms. We will implement Sudoku-solving algorithms in the Java programming language, using solving methods similar to those employed by humans. These methods will be implemented based on the logic described on websites such as SudokuWiki and Learn-Sudoku. Additionally, we will develop a backtracking algorithm and an Algorithm X implementation using the Dancing Links method. The goal is to determine which algorithm correctly and most efficiently solves given puzzles of varying difficulty levels. We will source test Sudoku puzzles from the internet. The difficulty of each puzzle will be determined using a specialized program, and the puzzles will be grouped based on their difficulty levels. During algorithm execution, we will utilize the ALGator system, which allows us to measure and visualize various indicators of algorithm quality and correctness.
|