Download Project specification

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Gene expression programming wikipedia , lookup

Machine learning wikipedia , lookup

Multiple instance learning wikipedia , lookup

Unification (computer science) wikipedia , lookup

Multi-armed bandit wikipedia , lookup

The Talos Principle wikipedia , lookup

Pattern recognition wikipedia , lookup

Stemming wikipedia , lookup

Genetic algorithm wikipedia , lookup

Transcript
Project specification
• Introduction
Sudoku is a popular game which consists of puzzles being solved in order to complete it. Given
the huge popularity with puzzles present in common papers and other places, it motivates an
mathematical analysis and algorithms that are capable of solving it efficiently.
Typically an instance is given as a grid of numbers ranging from 1-9, with nine subsquares
satisfying that all numbers in subsquares and every row and column are unique. Instances
usually contain a subset of the complete solution with only some parts of the grid given. A
solution consists of a fully populated grid that satisfies all the given requirements.
An algorithm that solves the problem will have certain characteristics and might do better or
worse on different instances. In order to determine the actual performance it is required to
benchmarks on multiple instances. There are also puzzles with varying difficulty, promoting a
more deep study of available algorithms.
• Problem statement
Sudoku have under recent years been a very popular game. Because of this it has also been
studied by many mathematicians and computer scientists. Of of the primary goals for computer
scientists have been to actually solve the puzzle and various algorithms have therefore been
developed. The goal of this project can be summarised as to compare different sudoku solving
algorithms and develop our own algorithm depending on which ideas and construction methods
that seems to work well for.
There should however be a clarification concerning which algorithms that will be considered.
There are hundreds of different sudoku solving algorithms and variations of these so an study
of all of these would be both impractical and beyond the possible scope of this project due to
time limitations. Instead only some algorithms will be chosen for the study. The algorithms that
are chosen for the study shall have some unique idea and they shall also be possible effecient
algorithms. Variation of these algorithms might also be studied if those seems to be able to
change the result considerable. At this state we know of some interesting algorithms, but as
we have not done extensive research about this yet, it is impossible to know or even to guess
which algorithms that will be in the study. The conclusion will as a result of this limitation not
be which algorithm is most suited for solving sudoko, but rather how the studied algorithms
measure against each other. The goal of the project will as mentioned also be to develop our
own algorithm and this will be done by studying the comparison and trying to identify which
ideas and construction methods that seems to work well. The resulting algorithm will also be
measured against the collected algorithms.
• Approach
The project will as already hinted, with collection of different sudoku solving algorithms as well
as some research concerning sudoku in general and the mathematical and computer science
aspects of sudoku to improve our chances to select good candidate algorithms as well as
construct a good comparison.
After that the actual comparison will be carried out and the manner this will be done in is not
entirely decided yet, but there are numerous aspects to consider for this. To fully apprieciate the
problematics, some mathematical properties of sudoku shall be presented first. The number of
possible sudoku puzzle are in the order of 6*10^21 and if only unique solutions are considered
(considering relabelling, reflections, rotations etc), there are approximately 5*10^9 solutions.
Since the problem that will be studied is an unfinished sudoku puzzle with a unique solution it is
more intresting to know how many such puzzles exist. These however far exceeds the number
of unique solutions since it is possible to construct multiple different puzzles from every solution.
The number of sudoku puzzles are in fact not even known. As a result of this, one can conclude
that it would be infeasible to try every puzzle for each algorithm and we could therefore say at
this point that the comparison will rather rely on a number of chosen puzzles. Those could for
example include the 48000 puzzles known with 17 clues (that is 17 numbers already filled in). It
is however at this point required more research to conclude which comparison methods should
be used and which data the algorithms should be tested on.
When the algorithms have been compared, the results should be analysed to be able to go into
the next phase of the project which will be to construct our own algorithm with regard to which
type of algorithms that seems to be most effiecent. There might be multiple attempts for this and
finally the resulting algorithm/algorithms will be compared to the previously analysed algorithms.
• References
Enumerating possible Sudoku grids
http://www.afjarvis.staff.shef.ac.uk/sudoku/sudoku.pdf
B Felgenhauer, 2005
A Search Based Soduku Solver
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.64.459&rep=rep1&type=pdf
T Cazenave - Labo IA Dept. Informatique Universite Paris, 2006 - Citeseer
Sudoku Solving with Cultural Swarms
http://www.stes.fi/step2008/proceedings/step2008proceedings.pdf#page=60
T Mantere - AI and Machine Consciousness, 2008 - stes.fi
Sudokusat—a tool for analyzing difficult sudoku puzzles
http://www.springerlink.com/index/w42642162243523g.pdf
M Henz - Tools and Applications with Artificial Intelligence, 2009 - Springer
• Time plan
The essay will be written during the whole process in order to distribute the workload across the
weeks available.
Time plan for every week:
7-8: Study of sudoku in order to fully understand the problem with all the properties.
9-10: Study of available algorithms, with focus on what makes them unique and selection of
candidates.
11-12: Implementation of the chosen algorithms and creation of benchmarks.
13-14: Design of our own sudoku solver based on the knowledge gathered so far. Comparison
of results.
15:
Completion of the written essay.