Řešení sudoku pomocí optimalizace Supervizor: doc Ing. Jaromír Kukal, Ph.D. Tým: František Hájek, Šimon Let, Ráchel Sgallová, Václav Trličík
Výsledky Sudoku 2 a sudoku 3 v Matlabu Sudoku n v C++ Sudoku n v Pythonu Numerické experimenty Sudoku 3 Sudoku 2
Minimalizace F(x) = min a ≤ x ≤ b Náhodná střelba (RS) Nejstrmější sestup (SD) Simulované žíhání (SA)
Sudoku 2 X = D = A = B = x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 3 4 1 2 X = D = 1 3 4 2 4 3 1 2 A = B =
Sudoku 2: efektivita metod Metoda nalepení na okraj (cmeth = 1) hmax 1 2 3 4 5 6 7 10 15 Počet pokusů 24061 6320 4797 6619 7576 8019 10428 14734 26832 Metoda periodického rozšíření oblasti (cmeth = 2) hmax 1 2 3 4 5 6 7 10 15 Počet pokusů 4550 3602 5258 5393 9145 9608 10244 14517 25257
Permutační přístup V každém čtverci je náhodná permutace Prohazují se jen čísla ve stejném čtverci f(x)=počet řádkových a sloupcových chyb Počet stavů = ∏(počet děr ve čtverci)
Simulované žíhání
Sudoku 3: efektivita metod Metoda Účinnost Random Shooting 0% Shoot and Go (C++) 43,85% Shoot and Go (Python) 100%
Děkujeme ČVUT FJFI za poskytnutí prostor k našemu miniprojektu Děkujeme našemu supervizorovi doc. Ing. Jaromíru Kukalovi, Ph.D. Děkujeme Ing. Vojtěchu Svobodovi, CSc. za organizaci Týdne vědy