Sudoku
Mi az a Sudoku? Szám alapú kombinatorikus rejtvény A cél kitölteni egy 9x9-es rácsot Minden cellában [1,9] értékek Adott sorban minden érték különböző Adott oszlopban minden érték különböző Az egyes 3x3-as régiókban minden érték különböző Kiindulásnak néhány cella már ki van töltve https://en.wikipedia.org/wiki/Sudoku
Minimális Sudoku Olyan tábla, amelyből nem vehető már el érték az egyértelműség megszűnése nélkül. Nagyjából 3.1 × 10 37 minimális tábla van. Ebből 2.55× 10 25 alapvetően különböző. Az ismert minimális táblák nagy része letölthető: http://staffhome.ecm.uwa.edu.au/~00013890/sudokumin.php
Megoldási stratégiák Backtracking: Ez van implementálva a példa kódban. Keresünk egy üres cellát Keresünk egy számot, amely beírható a cellába Az így kapott új táblát megpróbáljuk megoldani Amennyiben nem írható be szám a cellába, akkor visszalépünk a korábbi állapotba és megpróbálunk másik megfelelő számot keresni.
Megoldási stratégiák Sztochasztikus keresés Véletlen alapú keresés Véletlenszerűen töltsük ki az üres cellákat Keressük meg a hibákat a táblán Variáljuk át a hibás pozíciókban levő számokat Amennyiben a hibák száma nulla, akkor megoldottuk. Szimulált lehűtés, genetikus algoritmusok, tabu keresés, stb.
Megoldási stratégiák További lehetséges megoldások Kényszer alapú megoldások Papír-ceruza módszer (humanistic) Több egyszerű módszer kombinációja
Feladat Hatékony Sudoku megoldó készítése Minimum: normál 9x9-es tábla megoldása amennyiben nincs megoldás az algoritmus ezt jelezze amennyiben több megoldás is van, akkor az algoritmus adja meg a lehetséges megoldásokat Az algoritmus legyen képes nagyobb táblák megoldására is. Az algoritmus legyen képes Sudoku tábla generálására is.