SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
1 | P a g e
SUDOKU SOLVER
Study and Implementation
Abstract
In this project we studied two algorithms to solve a Sudoku game and implemented a playable
application for all major operating systems.
Al-Abid [Leader], Arafath Bin Reza, Md. TasbirHoussainTas
2 | P a g e
Table of Contents
Introduction ...........................................................................................................................……03
Variants &Standard Sudoku...................................................................................................…….03
Small Sudoku,Mini Sudoku,Jigsaw Sudoku ..................................................................................04
Hyper Sudoku ...............................................................................................................................05
Dodeka Sudoku ............................................................................................................................05
Killer Sudoku ………………………….....................................................................................................05
Greater Than Sudoku ……………………..............................................................................................06
Sudoku Solving Algorithm .......................................................................................................……06
Flowchart…..........................................................................................................................………07
Filling Empty Grid .........................................................................................................................08
Experiments .........................................................................................................................………08
Filling Empty Grid (Worst Scenario) ..............................................................................................08
Solving Standard Sudoku ..............................................................................................................08
Optimization .......................................................................................................................….…...09
Concurrently Processing ...............................................................................................................09
Stochastic Value Selection ............................................................................................................10
Application ...................................................................................................................................10
Screenshots ..................................................................................................................................10
Summary ..................................................................................................................................... 11
References ...........................................................................................................................……….11
3 | P a g e
Introduction
Sudoku is a logic-based, combinatorial number placement puzzle game. The objective of
this game is to fill a 𝑁 ×𝑁 grid with digits so that every row, column and inner box is filled with
number from 1 to 𝑁 without duplicates. The shape of inner boxes may vary, but all must have
exactly𝑁 blocks. In most situations, a Sudoku game should have a unique solution. However,
there can be cases that a Sudoku game has multiple solutions. Usually a game with multiple
solution is considered to be more difficult than the one that has a unique solution.
Sudoku was originated in the late 16thcentury. La France developed the embryonic form of the
modern Sudoku of 9 by 9 grid with 93 × 3 inner boxes, and later, it was believed that the
modern Sudoku was mostly designed anonymously by Howard Garns in 1979. However, this
game became a worldwide phenomenon not until Nikoli introduced it to Japan in 1984 and
The name was later abbreviated to Sudoku) by Maki Kaji.
Sudoku is a trademark in Japan and the puzzle is generally referred to as Number Place, or
Number Place in short.
Variants
Though the 9 × 9 grid with 3 × 3 inner boxes is by far the most common Sudoku game, many
other variants exist. Our program natively implemented 8 variants including the standard one.
In
the following variants, different inner boxes are represented by different colors. In general, 2
colors are needed to mark all inner boxes. Also the number of inner boxes is 𝑁 in a 𝑁 × 𝑁 game
for most variants, there can be exceptions.
Standard Sudoku
Grid size: 9 × 9
Number of inner boxes: 9
Inner box shape: 3 × 3 Square
Number range: 1 to 9
4 | P a g e
Small Sudoku
Small Sudoku is probably the smallest and easiest
Sudoku variant.
Grid size: 4 × 4
Number of inner boxes: 4
Inner box shape: Square
Number range: 1 to 4
Mini Sudoku
Mini Sudoku is a relatively easy variant with non square
inner
boxes.
Grid size: 6 × 6
Number of inner boxes: 6
Inner box shape: 3 × 2 Rectangle
Number range: 1 to 6
Jigsaw Sudoku
Jigsaw Sudoku (or Nonomino Sudoku) is almost the
same as the standard Sudoku. The only difference
to the standard Sudoku is the shape of the inner
blocks. The difficulty is considered to be the same
as the standard Sudoku. There are also several
other variants like the Jigsaw Sudoku, where the
inner boxes are not rectangles. These variants
usually use multiple colors to distinguish different
inner boxes.
Grid size: 9 × 9
Number of inner boxes: 9
Inner box shape: Nonomino (polyomino of
order 9)
Number range: 1 to 9
5 | P a g e
Hyper Sudoku
Hyper Sudoku is one of the most popular variant.
It is very similar to the standard Sudoku, but with
4 extra interior squares. There are some overlaps,
which can logically reduce the number of values
for those blocks. In general, all inner boxes can be
represented by 2 colors, where the overlapping
blocks will use an average color of 2 colors.
Grid size: 9 × 9
Number of inner boxes: 13
Inner box shape: 3 × 3 Square
Number range: 1 to 9
Dodeka Sudoku
Dodeka Sudoku can be considered as a larger
version of Mini Sudoku. As the maximum number
allowed is greater than 9, alphabetic letter may be
used instead of digits. For example, 10 can be
replaced by 𝐴, 11 can be replaced by 𝐵, 12 can be
replaced by 𝐶.
Grid size: 12× 12
Number of inner boxes: 12
Inner box shape: 4 × 3 Rectangle
Number range: 1 to 12 or 1 to 9 and 𝐴 to 𝐶
Killer Sudoku
In this 9× 9 Sudoku, with the Sudoku strategy,
Kakuro strategy is also required. In the dotted
lines, which is also called cages, contain a set of
non-repeating digits. The sum of the numbers in
the cages will give the number that is shown in the
cage.
Grid size: 9 × 9
Number of inner boxes: 9
Inner box shape: 9 × 9 Square
Number range: 1 to 9
6 | P a g e
Greater Than Sudoku
In this 9× 9 Sudoku, a greater – than or a smaller –
than sign will appear between any two blocks in
the 3× 3 sub blocks, that indicates the relationship
between the numbers in those blocks.
Grid size: 9 × 9
Number of inner boxes: 9
Inner box shape: 9 × 9 Square
Number range: 1 to 9
Algorithm-
Step1. Start.
Step2. Enter how many time you want to play.
Step3. Chose gameplay mood .
Step4. Enter matrix or Sudoku problem
Step5. Press 0 to continue Or 1 to update.
Step6. If 0 then:
Continue
Else: update row, column, replacing element value and 0 to exit.
Step7. Checking for error.
Step8. If error then:
update row, column, replacing element value and 0 to exit.
Else: continue
Step9. Print the absolute Sudoku problem.
Step10. Processed by checking, pattern matching and elimination.
Step11. Checking for error.
Step12. If error then:
Print “no solution”.
Else: Print solution Sudoku .
Step13. Stop
7 | P a g e
Flowchart-
No
Yes
No (1)
Yes
start
Chose Play
Time
Input
Sudoku
Matrix
Press O to
continue || 1to
update
If 0
Update row,
column,
elements value
Checking for error
If error?
Show The
absolute Sudoku
problem
Checking Matching &
Eliminating
Checking for error
If error?
Print
Solution
stop
No Solution
8 | P a g e
Filling Empty Grid
There is a special algorithm that can fill an empty board quickly with computational complexity
(𝑁2), if the game satisfy the following conditions:
The grid must be completely empty
The width and height of the grid must be 𝑁 = 𝑛2
There must be exactly 𝑁 inner boxes
Every inner box must be a 𝑛 × 𝑛 square
No overlapping blocks
The pseudocode of this algorithm is shown on the right
(we did not implement this algorithm in our program,
since this algorithm is too restricted, which is not very
useful for our purpose.
Experiments
Filling Empty Grid (Worst Scenario)
We have tested the time to solve an empty grid of different grid sizes. We can see that the time
for small and mini Sudoku are quite short, but the ratio does not correspond to the ratio
calculated by the computational complexity. This may be caused by the overhead of internal
functions and CPU scheduling. But the time to fill an empty standard grid took a whole day to
run
and not yet finished. Larger grid size causes an exponential grow in the complexity. Larger grid
size such as 12× 12 and even larger variants should have much longer time to complete.
Solving Standard Sudoku
As the algorithm to solve all supported Sudoku variants is the same, we mainly test the time,
CPU
and memory usage for 200 preset values for standard Sudoku. Among the 200 presets, 100 are
easy level and 100 are hard level. The presets are crawled from the Internet, but the difficulty
levels are not quite uniform. We found that there could be some relatively hard presets in the
9 | P a g e
easy level set, and there are also some extremely hard presets in the hard level set.
Since easy levels generally have a smaller 𝒄value, the time needed for solving an easy level
standard Sudoku is far more less than solving a hard level. The CPU and memory usage are not
very precise, but the CPU usage for easy levels is usually below 8%, and above 13% for hard
levels.
Also the maximum memory usage we recorded for easy levels is less than 100 megabytes, but
for hard levels, the memory usage can easily go beyond 1.5 gigabytes, sometimes even 10
gigabytes.
Optimization
Exponential grow is a natural of Sudoku, which means there is no way that can really reduce the
complexity to solve a badly designed game. However, there are still 2 methods may be used.
Concurrently Processing
If a game has multiple solutions, usually these valid solutions and any other invalid solutions are
independent with each other. Hence concurrently processing or multi-threading can be applied
to speed up the searching process. Also possible values of any empty block can be checked
concurrently. For example, the row, column, and all inner boxes that contain the block can be
checked concurrently though multiple threads (1 thread for checking the row, 1 thread for
checking the column, 1 or more threads for checking inner boxes).
There are also several disadvantages of using concurrently processing, specifically
multithreading (assuming we have enough cores for multi-threading). For a small grid size, the
overhead of creating, executing, terminating threads may take longer time than single thread.
Also each thread has its own memory space, the overall memory usage will be much higher
than a single thread application. This is especially serious for this memory-consuming problem.
Another problem could be when to create threads. Obviously it is impossible to create a thread
for every iteration, if there is only one possible value for a block, multi-threading is not needed.
Multi-threading is only needed when a block has multiple possible values. But such block may
befound in any time in the process.
10 | P a g e
Stochastic Value Selection
Instead of testing possible values in order, a value can be randomly chosen. Theoretically this is
faster and resource efficient. But still, it can also reach the worst scenario, which is the same as
testing possible values in order. Also the implementation of this method will be more
complicated.
Application
Home Page: https://drive.google.com/open?id=0BwLELuWsad7EQmhSdEpUTFp1alU (Source
code avaiable)
Developer: Al-Abid[Leader],Arafat Bin Reza,Md. TasbirHoussainTas
Language: C
Support Platforms: Windows (x86/x64) *,(Other major operating systems are also
supported)
Features:
Include 3 Sudoku variants to play
Real-time validation is supported if the game is played by human
The time to solve the game automatically is provided
Easy to load presets
Easy to create and edit
Flexible to add more Sudoku variants
Screenshots -
11 | P a g e
12 | P a g e
Summary
In this project, we implemented a playable application to solve a variety of Sudoku games by
using heuristic search and multi-threading. The heuristic search is more efficient than brute
force search in most cases (though the worst can be the same). Our application is compatible
with most Sudoku variants and is flexible to add more variants. A solution is guaranteed (or no
solution will be given), though sometimes it is restricted by the hardware power. The
application does not only support solving a Sudoku game, users can also play the game by
themselves.
We have studied several facts that may affect the heuristic search, and proposed a stochastic
heuristic search model as a future work.
References
[1] https://en.wikipedia.org/wiki/Sudoku
[2] https://en.wikipedia.org/wiki/Brute-force_search
[3] https://en.wikipedia.org/wiki/Heuristic_(computer_science)
[4] https://en.wikipedia.org/wiki/Sudoku_solving_algorithms
[5] http://doc.qt.io/qt-5/qcolor.html - predefined-colors.
[6] http://www.lamsade.dauphine.fr/~cazenave/papers/sudoku.pdf
[7] http://publish.wm.edu/cgi/viewcontent.cgi?article=1077&context=caaurj
[8] http://www.sudokuwiki.org/sudoku_creation_and_grading.pdf
[9] http://www.sudoku-solutions.com
[10] http://angusj.com/sudoku/hints.php
[11] http://www.paulspages.co.uk/sudoku/howtosolve/
[12] http://www.bigfishgames.com/blog/how-to-solve-sudoku-puzzles-quickly-and-reliably/

Mais conteúdo relacionado

Mais procurados

Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1Stavros Vassos
 
Sudoku Solving with Computational Intelligence
Sudoku Solving with Computational IntelligenceSudoku Solving with Computational Intelligence
Sudoku Solving with Computational Intelligenceharaldhiss
 
Intermediate code generation1
Intermediate code generation1Intermediate code generation1
Intermediate code generation1Shashwat Shriparv
 
Control Strategies in AI
Control Strategies in AIControl Strategies in AI
Control Strategies in AIAmey Kerkar
 
Prolog Programming : Basics
Prolog Programming : BasicsProlog Programming : Basics
Prolog Programming : BasicsMitul Desai
 
Complexity Analysis
Complexity Analysis Complexity Analysis
Complexity Analysis Shaista Qadir
 
Algorithms Lecture 4: Sorting Algorithms I
Algorithms Lecture 4: Sorting Algorithms IAlgorithms Lecture 4: Sorting Algorithms I
Algorithms Lecture 4: Sorting Algorithms IMohamed Loey
 
Lecture 5 6_7 - divide and conquer and method of solving recurrences
Lecture 5 6_7 - divide and conquer and method of solving recurrencesLecture 5 6_7 - divide and conquer and method of solving recurrences
Lecture 5 6_7 - divide and conquer and method of solving recurrencesjayavignesh86
 
Graph coloring problem(DAA).pptx
Graph coloring problem(DAA).pptxGraph coloring problem(DAA).pptx
Graph coloring problem(DAA).pptxHome
 
15 puzzle problem using branch and bound
15 puzzle problem using branch and bound15 puzzle problem using branch and bound
15 puzzle problem using branch and boundAbhishek Singh
 
Stack using Linked List
Stack using Linked ListStack using Linked List
Stack using Linked ListSayantan Sur
 
Performance analysis and randamized agoritham
Performance analysis and randamized agorithamPerformance analysis and randamized agoritham
Performance analysis and randamized agorithamlilyMalar1
 
Oop lec 2(introduction to object oriented technology)
Oop lec 2(introduction to object oriented technology)Oop lec 2(introduction to object oriented technology)
Oop lec 2(introduction to object oriented technology)Asfand Hassan
 
DAA-Floyd Warshall Algorithm.pptx
DAA-Floyd Warshall Algorithm.pptxDAA-Floyd Warshall Algorithm.pptx
DAA-Floyd Warshall Algorithm.pptxArbabMaalik
 
I. AO* SEARCH ALGORITHM
I. AO* SEARCH ALGORITHMI. AO* SEARCH ALGORITHM
I. AO* SEARCH ALGORITHMvikas dhakane
 

Mais procurados (20)

Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1
Intro to AI STRIPS Planning & Applications in Video-games Lecture6-Part1
 
Huffman coding
Huffman coding Huffman coding
Huffman coding
 
Ch08
Ch08Ch08
Ch08
 
Sudoku Solving with Computational Intelligence
Sudoku Solving with Computational IntelligenceSudoku Solving with Computational Intelligence
Sudoku Solving with Computational Intelligence
 
Sudoku solver
Sudoku solverSudoku solver
Sudoku solver
 
Tower of hanoi
Tower of hanoiTower of hanoi
Tower of hanoi
 
Intermediate code generation1
Intermediate code generation1Intermediate code generation1
Intermediate code generation1
 
Control Strategies in AI
Control Strategies in AIControl Strategies in AI
Control Strategies in AI
 
Prolog Programming : Basics
Prolog Programming : BasicsProlog Programming : Basics
Prolog Programming : Basics
 
Complexity Analysis
Complexity Analysis Complexity Analysis
Complexity Analysis
 
Algorithms Lecture 4: Sorting Algorithms I
Algorithms Lecture 4: Sorting Algorithms IAlgorithms Lecture 4: Sorting Algorithms I
Algorithms Lecture 4: Sorting Algorithms I
 
Lecture 5 6_7 - divide and conquer and method of solving recurrences
Lecture 5 6_7 - divide and conquer and method of solving recurrencesLecture 5 6_7 - divide and conquer and method of solving recurrences
Lecture 5 6_7 - divide and conquer and method of solving recurrences
 
Graph coloring problem(DAA).pptx
Graph coloring problem(DAA).pptxGraph coloring problem(DAA).pptx
Graph coloring problem(DAA).pptx
 
15 puzzle problem using branch and bound
15 puzzle problem using branch and bound15 puzzle problem using branch and bound
15 puzzle problem using branch and bound
 
Stack using Linked List
Stack using Linked ListStack using Linked List
Stack using Linked List
 
Performance analysis and randamized agoritham
Performance analysis and randamized agorithamPerformance analysis and randamized agoritham
Performance analysis and randamized agoritham
 
Insertion sort algorithm power point presentation
Insertion  sort algorithm power point presentation Insertion  sort algorithm power point presentation
Insertion sort algorithm power point presentation
 
Oop lec 2(introduction to object oriented technology)
Oop lec 2(introduction to object oriented technology)Oop lec 2(introduction to object oriented technology)
Oop lec 2(introduction to object oriented technology)
 
DAA-Floyd Warshall Algorithm.pptx
DAA-Floyd Warshall Algorithm.pptxDAA-Floyd Warshall Algorithm.pptx
DAA-Floyd Warshall Algorithm.pptx
 
I. AO* SEARCH ALGORITHM
I. AO* SEARCH ALGORITHMI. AO* SEARCH ALGORITHM
I. AO* SEARCH ALGORITHM
 

Destaque

Presentation - Sudoku Assignment
Presentation - Sudoku  AssignmentPresentation - Sudoku  Assignment
Presentation - Sudoku AssignmentCj Uni
 
الابصلمودية
الابصلموديةالابصلمودية
الابصلموديةBassem Matta
 
The Sudoku Cipher
The Sudoku Cipher The Sudoku Cipher
The Sudoku Cipher Nefeli Zikou
 
CNA Certification (dragged)
CNA Certification (dragged)CNA Certification (dragged)
CNA Certification (dragged)Anthony Zambella
 
「採用について思うこと。」新卒採用
「採用について思うこと。」新卒採用「採用について思うこと。」新卒採用
「採用について思うこと。」新卒採用Yamamoto Masahira
 
How do you get maximum value from government taxation (Value for Money)
How do you get maximum value from government taxation  (Value for Money)How do you get maximum value from government taxation  (Value for Money)
How do you get maximum value from government taxation (Value for Money)paul young cpa, cga
 
Урок 45 для 8 класу - Цикл з передумовою. Співвідношення типів даних та елеме...
Урок 45 для 8 класу - Цикл з передумовою. Співвідношення типів даних та елеме...Урок 45 для 8 класу - Цикл з передумовою. Співвідношення типів даних та елеме...
Урок 45 для 8 класу - Цикл з передумовою. Співвідношення типів даних та елеме...VsimPPT
 
Rule Formulation for the Election Committee
Rule Formulation for the Election CommitteeRule Formulation for the Election Committee
Rule Formulation for the Election Committeejo bitonio
 
Code Of Conduct
Code Of ConductCode Of Conduct
Code Of Conductlynn g
 

Destaque (16)

Presentation - Sudoku Assignment
Presentation - Sudoku  AssignmentPresentation - Sudoku  Assignment
Presentation - Sudoku Assignment
 
A notícia
A notíciaA notícia
A notícia
 
الابصلمودية
الابصلموديةالابصلمودية
الابصلمودية
 
The Sudoku Cipher
The Sudoku Cipher The Sudoku Cipher
The Sudoku Cipher
 
Sudoku
SudokuSudoku
Sudoku
 
La libertad y sus provincia
La libertad y sus provincia La libertad y sus provincia
La libertad y sus provincia
 
La drogadicción s&a
La drogadicción s&aLa drogadicción s&a
La drogadicción s&a
 
CNA Certification (dragged)
CNA Certification (dragged)CNA Certification (dragged)
CNA Certification (dragged)
 
Sudoku
SudokuSudoku
Sudoku
 
「採用について思うこと。」新卒採用
「採用について思うこと。」新卒採用「採用について思うこと。」新卒採用
「採用について思うこと。」新卒採用
 
How do you get maximum value from government taxation (Value for Money)
How do you get maximum value from government taxation  (Value for Money)How do you get maximum value from government taxation  (Value for Money)
How do you get maximum value from government taxation (Value for Money)
 
Sudoku
SudokuSudoku
Sudoku
 
Feedback
FeedbackFeedback
Feedback
 
Урок 45 для 8 класу - Цикл з передумовою. Співвідношення типів даних та елеме...
Урок 45 для 8 класу - Цикл з передумовою. Співвідношення типів даних та елеме...Урок 45 для 8 класу - Цикл з передумовою. Співвідношення типів даних та елеме...
Урок 45 для 8 класу - Цикл з передумовою. Співвідношення типів даних та елеме...
 
Rule Formulation for the Election Committee
Rule Formulation for the Election CommitteeRule Formulation for the Election Committee
Rule Formulation for the Election Committee
 
Code Of Conduct
Code Of ConductCode Of Conduct
Code Of Conduct
 

Semelhante a Sudoku solve rmain

Sudoku strategies richard dickerson
Sudoku strategies richard dickersonSudoku strategies richard dickerson
Sudoku strategies richard dickersonRodrigo
 
Solve Sudoku using Constraint Propagation- Search and Genetic Algorithm
Solve Sudoku using  Constraint Propagation- Search and Genetic AlgorithmSolve Sudoku using  Constraint Propagation- Search and Genetic Algorithm
Solve Sudoku using Constraint Propagation- Search and Genetic AlgorithmAi Sha
 
A Filtering Technique for Helping to Solve Sudoku Problems.pdf
A Filtering Technique for Helping to Solve Sudoku Problems.pdfA Filtering Technique for Helping to Solve Sudoku Problems.pdf
A Filtering Technique for Helping to Solve Sudoku Problems.pdfSabrina Baloi
 
Games in Maths
Games in MathsGames in Maths
Games in MathsJimmy Keng
 
Recreational mathematics for MichMATYC 10 10
Recreational mathematics for MichMATYC 10 10Recreational mathematics for MichMATYC 10 10
Recreational mathematics for MichMATYC 10 10nsattler
 
Solving Multiple Square Jigsaw Puzzles with Missing Pieces
Solving Multiple Square Jigsaw Puzzles with Missing PiecesSolving Multiple Square Jigsaw Puzzles with Missing Pieces
Solving Multiple Square Jigsaw Puzzles with Missing PiecesGravitate Project
 
Andrew Daws - Final Project Report
Andrew Daws - Final Project ReportAndrew Daws - Final Project Report
Andrew Daws - Final Project ReportAndrew Daws
 
computational_thinking_gcse.pptx
computational_thinking_gcse.pptxcomputational_thinking_gcse.pptx
computational_thinking_gcse.pptxbirulangit23
 
A sample Lab report on a game.
A sample Lab report on a game. A sample Lab report on a game.
A sample Lab report on a game. Junayed Ahmed
 
Diabolic Str8ts #6, #7, and #9
Diabolic Str8ts #6, #7, and #9Diabolic Str8ts #6, #7, and #9
Diabolic Str8ts #6, #7, and #9SlowThinker
 
Problem-Solving and Reasoning - Math - 5th grade by Slidesgo.pptx
Problem-Solving and Reasoning - Math - 5th grade by Slidesgo.pptxProblem-Solving and Reasoning - Math - 5th grade by Slidesgo.pptx
Problem-Solving and Reasoning - Math - 5th grade by Slidesgo.pptxblackhonet06
 
5.5 back track
5.5 back track5.5 back track
5.5 back trackKrish_ver2
 
A Synopsis Report On SMART SUDOKU SOLVER USING IMAGE PROCESSING
A Synopsis Report On SMART SUDOKU SOLVER USING IMAGE PROCESSINGA Synopsis Report On SMART SUDOKU SOLVER USING IMAGE PROCESSING
A Synopsis Report On SMART SUDOKU SOLVER USING IMAGE PROCESSINGAmanda Moore
 
Constructionof heuristicsforasearch basedapproachtosolvingsudoku
Constructionof heuristicsforasearch basedapproachtosolvingsudokuConstructionof heuristicsforasearch basedapproachtosolvingsudoku
Constructionof heuristicsforasearch basedapproachtosolvingsudokuDevArena1
 

Semelhante a Sudoku solve rmain (20)

Sudokureport
SudokureportSudokureport
Sudokureport
 
P1
P1P1
P1
 
Sudoku strategies richard dickerson
Sudoku strategies richard dickersonSudoku strategies richard dickerson
Sudoku strategies richard dickerson
 
mini project new.pptx
mini project new.pptxmini project new.pptx
mini project new.pptx
 
Solve Sudoku using Constraint Propagation- Search and Genetic Algorithm
Solve Sudoku using  Constraint Propagation- Search and Genetic AlgorithmSolve Sudoku using  Constraint Propagation- Search and Genetic Algorithm
Solve Sudoku using Constraint Propagation- Search and Genetic Algorithm
 
A Filtering Technique for Helping to Solve Sudoku Problems.pdf
A Filtering Technique for Helping to Solve Sudoku Problems.pdfA Filtering Technique for Helping to Solve Sudoku Problems.pdf
A Filtering Technique for Helping to Solve Sudoku Problems.pdf
 
Games in Maths
Games in MathsGames in Maths
Games in Maths
 
Recreational mathematics for MichMATYC 10 10
Recreational mathematics for MichMATYC 10 10Recreational mathematics for MichMATYC 10 10
Recreational mathematics for MichMATYC 10 10
 
P5
P5P5
P5
 
FULL DOCUMENT.docx
FULL DOCUMENT.docxFULL DOCUMENT.docx
FULL DOCUMENT.docx
 
Solving Multiple Square Jigsaw Puzzles with Missing Pieces
Solving Multiple Square Jigsaw Puzzles with Missing PiecesSolving Multiple Square Jigsaw Puzzles with Missing Pieces
Solving Multiple Square Jigsaw Puzzles with Missing Pieces
 
Andrew Daws - Final Project Report
Andrew Daws - Final Project ReportAndrew Daws - Final Project Report
Andrew Daws - Final Project Report
 
computational_thinking_gcse.pptx
computational_thinking_gcse.pptxcomputational_thinking_gcse.pptx
computational_thinking_gcse.pptx
 
A sample Lab report on a game.
A sample Lab report on a game. A sample Lab report on a game.
A sample Lab report on a game.
 
Diabolic Str8ts #6, #7, and #9
Diabolic Str8ts #6, #7, and #9Diabolic Str8ts #6, #7, and #9
Diabolic Str8ts #6, #7, and #9
 
Problem-Solving and Reasoning - Math - 5th grade by Slidesgo.pptx
Problem-Solving and Reasoning - Math - 5th grade by Slidesgo.pptxProblem-Solving and Reasoning - Math - 5th grade by Slidesgo.pptx
Problem-Solving and Reasoning - Math - 5th grade by Slidesgo.pptx
 
5.5 back track
5.5 back track5.5 back track
5.5 back track
 
Sudoku puzzles
Sudoku puzzlesSudoku puzzles
Sudoku puzzles
 
A Synopsis Report On SMART SUDOKU SOLVER USING IMAGE PROCESSING
A Synopsis Report On SMART SUDOKU SOLVER USING IMAGE PROCESSINGA Synopsis Report On SMART SUDOKU SOLVER USING IMAGE PROCESSING
A Synopsis Report On SMART SUDOKU SOLVER USING IMAGE PROCESSING
 
Constructionof heuristicsforasearch basedapproachtosolvingsudoku
Constructionof heuristicsforasearch basedapproachtosolvingsudokuConstructionof heuristicsforasearch basedapproachtosolvingsudoku
Constructionof heuristicsforasearch basedapproachtosolvingsudoku
 

Mais de Arafat Bin Reza

Mais de Arafat Bin Reza (8)

C# Class Introduction.pptx
C# Class Introduction.pptxC# Class Introduction.pptx
C# Class Introduction.pptx
 
C# Class Introduction
C# Class IntroductionC# Class Introduction
C# Class Introduction
 
Inventory music shop management
Inventory music shop managementInventory music shop management
Inventory music shop management
 
C language 3
C language 3C language 3
C language 3
 
C language 2
C language 2C language 2
C language 2
 
C language updated
C language updatedC language updated
C language updated
 
C language
C languageC language
C language
 
string , pointer
string , pointerstring , pointer
string , pointer
 

Último

Summer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdf
Summer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdfSummer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdf
Summer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdfNaveenVerma126
 
Vertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptx
Vertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptxVertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptx
Vertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptxLMW Machine Tool Division
 
Basic Principle of Electrochemical Sensor
Basic Principle of  Electrochemical SensorBasic Principle of  Electrochemical Sensor
Basic Principle of Electrochemical SensorTanvir Moin
 
Renewable Energy & Entrepreneurship Workshop_21Feb2024.pdf
Renewable Energy & Entrepreneurship Workshop_21Feb2024.pdfRenewable Energy & Entrepreneurship Workshop_21Feb2024.pdf
Renewable Energy & Entrepreneurship Workshop_21Feb2024.pdfodunowoeminence2019
 
solar wireless electric vechicle charging system
solar wireless electric vechicle charging systemsolar wireless electric vechicle charging system
solar wireless electric vechicle charging systemgokuldongala
 
دليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide Laboratory
دليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide Laboratoryدليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide Laboratory
دليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide LaboratoryBahzad5
 
Guardians and Glitches: Navigating the Duality of Gen AI in AppSec
Guardians and Glitches: Navigating the Duality of Gen AI in AppSecGuardians and Glitches: Navigating the Duality of Gen AI in AppSec
Guardians and Glitches: Navigating the Duality of Gen AI in AppSecTrupti Shiralkar, CISSP
 
Design of Clutches and Brakes in Design of Machine Elements.pptx
Design of Clutches and Brakes in Design of Machine Elements.pptxDesign of Clutches and Brakes in Design of Machine Elements.pptx
Design of Clutches and Brakes in Design of Machine Elements.pptxYogeshKumarKJMIT
 
Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...
Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...
Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...Amil baba
 
Engineering Mechanics Chapter 5 Equilibrium of a Rigid Body
Engineering Mechanics  Chapter 5  Equilibrium of a Rigid BodyEngineering Mechanics  Chapter 5  Equilibrium of a Rigid Body
Engineering Mechanics Chapter 5 Equilibrium of a Rigid BodyAhmadHajasad2
 
nvidia AI-gtc 2024 partial slide deck.pptx
nvidia AI-gtc 2024 partial slide deck.pptxnvidia AI-gtc 2024 partial slide deck.pptx
nvidia AI-gtc 2024 partial slide deck.pptxjasonsedano2
 
Nodal seismic construction requirements.pptx
Nodal seismic construction requirements.pptxNodal seismic construction requirements.pptx
Nodal seismic construction requirements.pptxwendy cai
 
How to Write a Good Scientific Paper.pdf
How to Write a Good Scientific Paper.pdfHow to Write a Good Scientific Paper.pdf
How to Write a Good Scientific Paper.pdfRedhwan Qasem Shaddad
 
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docx
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docxSUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docx
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docxNaveenVerma126
 
Modelling Guide for Timber Structures - FPInnovations
Modelling Guide for Timber Structures - FPInnovationsModelling Guide for Timber Structures - FPInnovations
Modelling Guide for Timber Structures - FPInnovationsYusuf Yıldız
 
Phase noise transfer functions.pptx
Phase noise transfer      functions.pptxPhase noise transfer      functions.pptx
Phase noise transfer functions.pptxSaiGouthamSunkara
 
Gender Bias in Engineer, Honors 203 Project
Gender Bias in Engineer, Honors 203 ProjectGender Bias in Engineer, Honors 203 Project
Gender Bias in Engineer, Honors 203 Projectreemakb03
 
Dev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & LoggingDev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & LoggingMarian Marinov
 

Último (20)

Summer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdf
Summer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdfSummer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdf
Summer training report on BUILDING CONSTRUCTION for DIPLOMA Students.pdf
 
Vertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptx
Vertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptxVertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptx
Vertical- Machining - Center - VMC -LMW-Machine-Tool-Division.pptx
 
Basic Principle of Electrochemical Sensor
Basic Principle of  Electrochemical SensorBasic Principle of  Electrochemical Sensor
Basic Principle of Electrochemical Sensor
 
Présentation IIRB 2024 Chloe Dufrane.pdf
Présentation IIRB 2024 Chloe Dufrane.pdfPrésentation IIRB 2024 Chloe Dufrane.pdf
Présentation IIRB 2024 Chloe Dufrane.pdf
 
Renewable Energy & Entrepreneurship Workshop_21Feb2024.pdf
Renewable Energy & Entrepreneurship Workshop_21Feb2024.pdfRenewable Energy & Entrepreneurship Workshop_21Feb2024.pdf
Renewable Energy & Entrepreneurship Workshop_21Feb2024.pdf
 
solar wireless electric vechicle charging system
solar wireless electric vechicle charging systemsolar wireless electric vechicle charging system
solar wireless electric vechicle charging system
 
دليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide Laboratory
دليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide Laboratoryدليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide Laboratory
دليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide Laboratory
 
Guardians and Glitches: Navigating the Duality of Gen AI in AppSec
Guardians and Glitches: Navigating the Duality of Gen AI in AppSecGuardians and Glitches: Navigating the Duality of Gen AI in AppSec
Guardians and Glitches: Navigating the Duality of Gen AI in AppSec
 
Design of Clutches and Brakes in Design of Machine Elements.pptx
Design of Clutches and Brakes in Design of Machine Elements.pptxDesign of Clutches and Brakes in Design of Machine Elements.pptx
Design of Clutches and Brakes in Design of Machine Elements.pptx
 
Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...
Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...
Best-NO1 Best Rohani Amil In Lahore Kala Ilam In Lahore Kala Jadu Amil In Lah...
 
Engineering Mechanics Chapter 5 Equilibrium of a Rigid Body
Engineering Mechanics  Chapter 5  Equilibrium of a Rigid BodyEngineering Mechanics  Chapter 5  Equilibrium of a Rigid Body
Engineering Mechanics Chapter 5 Equilibrium of a Rigid Body
 
nvidia AI-gtc 2024 partial slide deck.pptx
nvidia AI-gtc 2024 partial slide deck.pptxnvidia AI-gtc 2024 partial slide deck.pptx
nvidia AI-gtc 2024 partial slide deck.pptx
 
Nodal seismic construction requirements.pptx
Nodal seismic construction requirements.pptxNodal seismic construction requirements.pptx
Nodal seismic construction requirements.pptx
 
How to Write a Good Scientific Paper.pdf
How to Write a Good Scientific Paper.pdfHow to Write a Good Scientific Paper.pdf
How to Write a Good Scientific Paper.pdf
 
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docx
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docxSUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docx
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docx
 
Présentation IIRB 2024 Marine Cordonnier.pdf
Présentation IIRB 2024 Marine Cordonnier.pdfPrésentation IIRB 2024 Marine Cordonnier.pdf
Présentation IIRB 2024 Marine Cordonnier.pdf
 
Modelling Guide for Timber Structures - FPInnovations
Modelling Guide for Timber Structures - FPInnovationsModelling Guide for Timber Structures - FPInnovations
Modelling Guide for Timber Structures - FPInnovations
 
Phase noise transfer functions.pptx
Phase noise transfer      functions.pptxPhase noise transfer      functions.pptx
Phase noise transfer functions.pptx
 
Gender Bias in Engineer, Honors 203 Project
Gender Bias in Engineer, Honors 203 ProjectGender Bias in Engineer, Honors 203 Project
Gender Bias in Engineer, Honors 203 Project
 
Dev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & LoggingDev.bg DevOps March 2024 Monitoring & Logging
Dev.bg DevOps March 2024 Monitoring & Logging
 

Sudoku solve rmain

  • 1. 1 | P a g e SUDOKU SOLVER Study and Implementation Abstract In this project we studied two algorithms to solve a Sudoku game and implemented a playable application for all major operating systems. Al-Abid [Leader], Arafath Bin Reza, Md. TasbirHoussainTas
  • 2. 2 | P a g e Table of Contents Introduction ...........................................................................................................................……03 Variants &Standard Sudoku...................................................................................................…….03 Small Sudoku,Mini Sudoku,Jigsaw Sudoku ..................................................................................04 Hyper Sudoku ...............................................................................................................................05 Dodeka Sudoku ............................................................................................................................05 Killer Sudoku ………………………….....................................................................................................05 Greater Than Sudoku ……………………..............................................................................................06 Sudoku Solving Algorithm .......................................................................................................……06 Flowchart…..........................................................................................................................………07 Filling Empty Grid .........................................................................................................................08 Experiments .........................................................................................................................………08 Filling Empty Grid (Worst Scenario) ..............................................................................................08 Solving Standard Sudoku ..............................................................................................................08 Optimization .......................................................................................................................….…...09 Concurrently Processing ...............................................................................................................09 Stochastic Value Selection ............................................................................................................10 Application ...................................................................................................................................10 Screenshots ..................................................................................................................................10 Summary ..................................................................................................................................... 11 References ...........................................................................................................................……….11
  • 3. 3 | P a g e Introduction Sudoku is a logic-based, combinatorial number placement puzzle game. The objective of this game is to fill a 𝑁 ×𝑁 grid with digits so that every row, column and inner box is filled with number from 1 to 𝑁 without duplicates. The shape of inner boxes may vary, but all must have exactly𝑁 blocks. In most situations, a Sudoku game should have a unique solution. However, there can be cases that a Sudoku game has multiple solutions. Usually a game with multiple solution is considered to be more difficult than the one that has a unique solution. Sudoku was originated in the late 16thcentury. La France developed the embryonic form of the modern Sudoku of 9 by 9 grid with 93 × 3 inner boxes, and later, it was believed that the modern Sudoku was mostly designed anonymously by Howard Garns in 1979. However, this game became a worldwide phenomenon not until Nikoli introduced it to Japan in 1984 and The name was later abbreviated to Sudoku) by Maki Kaji. Sudoku is a trademark in Japan and the puzzle is generally referred to as Number Place, or Number Place in short. Variants Though the 9 × 9 grid with 3 × 3 inner boxes is by far the most common Sudoku game, many other variants exist. Our program natively implemented 8 variants including the standard one. In the following variants, different inner boxes are represented by different colors. In general, 2 colors are needed to mark all inner boxes. Also the number of inner boxes is 𝑁 in a 𝑁 × 𝑁 game for most variants, there can be exceptions. Standard Sudoku Grid size: 9 × 9 Number of inner boxes: 9 Inner box shape: 3 × 3 Square Number range: 1 to 9
  • 4. 4 | P a g e Small Sudoku Small Sudoku is probably the smallest and easiest Sudoku variant. Grid size: 4 × 4 Number of inner boxes: 4 Inner box shape: Square Number range: 1 to 4 Mini Sudoku Mini Sudoku is a relatively easy variant with non square inner boxes. Grid size: 6 × 6 Number of inner boxes: 6 Inner box shape: 3 × 2 Rectangle Number range: 1 to 6 Jigsaw Sudoku Jigsaw Sudoku (or Nonomino Sudoku) is almost the same as the standard Sudoku. The only difference to the standard Sudoku is the shape of the inner blocks. The difficulty is considered to be the same as the standard Sudoku. There are also several other variants like the Jigsaw Sudoku, where the inner boxes are not rectangles. These variants usually use multiple colors to distinguish different inner boxes. Grid size: 9 × 9 Number of inner boxes: 9 Inner box shape: Nonomino (polyomino of order 9) Number range: 1 to 9
  • 5. 5 | P a g e Hyper Sudoku Hyper Sudoku is one of the most popular variant. It is very similar to the standard Sudoku, but with 4 extra interior squares. There are some overlaps, which can logically reduce the number of values for those blocks. In general, all inner boxes can be represented by 2 colors, where the overlapping blocks will use an average color of 2 colors. Grid size: 9 × 9 Number of inner boxes: 13 Inner box shape: 3 × 3 Square Number range: 1 to 9 Dodeka Sudoku Dodeka Sudoku can be considered as a larger version of Mini Sudoku. As the maximum number allowed is greater than 9, alphabetic letter may be used instead of digits. For example, 10 can be replaced by 𝐴, 11 can be replaced by 𝐵, 12 can be replaced by 𝐶. Grid size: 12× 12 Number of inner boxes: 12 Inner box shape: 4 × 3 Rectangle Number range: 1 to 12 or 1 to 9 and 𝐴 to 𝐶 Killer Sudoku In this 9× 9 Sudoku, with the Sudoku strategy, Kakuro strategy is also required. In the dotted lines, which is also called cages, contain a set of non-repeating digits. The sum of the numbers in the cages will give the number that is shown in the cage. Grid size: 9 × 9 Number of inner boxes: 9 Inner box shape: 9 × 9 Square Number range: 1 to 9
  • 6. 6 | P a g e Greater Than Sudoku In this 9× 9 Sudoku, a greater – than or a smaller – than sign will appear between any two blocks in the 3× 3 sub blocks, that indicates the relationship between the numbers in those blocks. Grid size: 9 × 9 Number of inner boxes: 9 Inner box shape: 9 × 9 Square Number range: 1 to 9 Algorithm- Step1. Start. Step2. Enter how many time you want to play. Step3. Chose gameplay mood . Step4. Enter matrix or Sudoku problem Step5. Press 0 to continue Or 1 to update. Step6. If 0 then: Continue Else: update row, column, replacing element value and 0 to exit. Step7. Checking for error. Step8. If error then: update row, column, replacing element value and 0 to exit. Else: continue Step9. Print the absolute Sudoku problem. Step10. Processed by checking, pattern matching and elimination. Step11. Checking for error. Step12. If error then: Print “no solution”. Else: Print solution Sudoku . Step13. Stop
  • 7. 7 | P a g e Flowchart- No Yes No (1) Yes start Chose Play Time Input Sudoku Matrix Press O to continue || 1to update If 0 Update row, column, elements value Checking for error If error? Show The absolute Sudoku problem Checking Matching & Eliminating Checking for error If error? Print Solution stop No Solution
  • 8. 8 | P a g e Filling Empty Grid There is a special algorithm that can fill an empty board quickly with computational complexity (𝑁2), if the game satisfy the following conditions: The grid must be completely empty The width and height of the grid must be 𝑁 = 𝑛2 There must be exactly 𝑁 inner boxes Every inner box must be a 𝑛 × 𝑛 square No overlapping blocks The pseudocode of this algorithm is shown on the right (we did not implement this algorithm in our program, since this algorithm is too restricted, which is not very useful for our purpose. Experiments Filling Empty Grid (Worst Scenario) We have tested the time to solve an empty grid of different grid sizes. We can see that the time for small and mini Sudoku are quite short, but the ratio does not correspond to the ratio calculated by the computational complexity. This may be caused by the overhead of internal functions and CPU scheduling. But the time to fill an empty standard grid took a whole day to run and not yet finished. Larger grid size causes an exponential grow in the complexity. Larger grid size such as 12× 12 and even larger variants should have much longer time to complete. Solving Standard Sudoku As the algorithm to solve all supported Sudoku variants is the same, we mainly test the time, CPU and memory usage for 200 preset values for standard Sudoku. Among the 200 presets, 100 are easy level and 100 are hard level. The presets are crawled from the Internet, but the difficulty levels are not quite uniform. We found that there could be some relatively hard presets in the
  • 9. 9 | P a g e easy level set, and there are also some extremely hard presets in the hard level set. Since easy levels generally have a smaller 𝒄value, the time needed for solving an easy level standard Sudoku is far more less than solving a hard level. The CPU and memory usage are not very precise, but the CPU usage for easy levels is usually below 8%, and above 13% for hard levels. Also the maximum memory usage we recorded for easy levels is less than 100 megabytes, but for hard levels, the memory usage can easily go beyond 1.5 gigabytes, sometimes even 10 gigabytes. Optimization Exponential grow is a natural of Sudoku, which means there is no way that can really reduce the complexity to solve a badly designed game. However, there are still 2 methods may be used. Concurrently Processing If a game has multiple solutions, usually these valid solutions and any other invalid solutions are independent with each other. Hence concurrently processing or multi-threading can be applied to speed up the searching process. Also possible values of any empty block can be checked concurrently. For example, the row, column, and all inner boxes that contain the block can be checked concurrently though multiple threads (1 thread for checking the row, 1 thread for checking the column, 1 or more threads for checking inner boxes). There are also several disadvantages of using concurrently processing, specifically multithreading (assuming we have enough cores for multi-threading). For a small grid size, the overhead of creating, executing, terminating threads may take longer time than single thread. Also each thread has its own memory space, the overall memory usage will be much higher than a single thread application. This is especially serious for this memory-consuming problem. Another problem could be when to create threads. Obviously it is impossible to create a thread for every iteration, if there is only one possible value for a block, multi-threading is not needed. Multi-threading is only needed when a block has multiple possible values. But such block may befound in any time in the process.
  • 10. 10 | P a g e Stochastic Value Selection Instead of testing possible values in order, a value can be randomly chosen. Theoretically this is faster and resource efficient. But still, it can also reach the worst scenario, which is the same as testing possible values in order. Also the implementation of this method will be more complicated. Application Home Page: https://drive.google.com/open?id=0BwLELuWsad7EQmhSdEpUTFp1alU (Source code avaiable) Developer: Al-Abid[Leader],Arafat Bin Reza,Md. TasbirHoussainTas Language: C Support Platforms: Windows (x86/x64) *,(Other major operating systems are also supported) Features: Include 3 Sudoku variants to play Real-time validation is supported if the game is played by human The time to solve the game automatically is provided Easy to load presets Easy to create and edit Flexible to add more Sudoku variants Screenshots -
  • 11. 11 | P a g e
  • 12. 12 | P a g e Summary In this project, we implemented a playable application to solve a variety of Sudoku games by using heuristic search and multi-threading. The heuristic search is more efficient than brute force search in most cases (though the worst can be the same). Our application is compatible with most Sudoku variants and is flexible to add more variants. A solution is guaranteed (or no solution will be given), though sometimes it is restricted by the hardware power. The application does not only support solving a Sudoku game, users can also play the game by themselves. We have studied several facts that may affect the heuristic search, and proposed a stochastic heuristic search model as a future work. References [1] https://en.wikipedia.org/wiki/Sudoku [2] https://en.wikipedia.org/wiki/Brute-force_search [3] https://en.wikipedia.org/wiki/Heuristic_(computer_science) [4] https://en.wikipedia.org/wiki/Sudoku_solving_algorithms [5] http://doc.qt.io/qt-5/qcolor.html - predefined-colors. [6] http://www.lamsade.dauphine.fr/~cazenave/papers/sudoku.pdf [7] http://publish.wm.edu/cgi/viewcontent.cgi?article=1077&context=caaurj [8] http://www.sudokuwiki.org/sudoku_creation_and_grading.pdf [9] http://www.sudoku-solutions.com [10] http://angusj.com/sudoku/hints.php [11] http://www.paulspages.co.uk/sudoku/howtosolve/ [12] http://www.bigfishgames.com/blog/how-to-solve-sudoku-puzzles-quickly-and-reliably/