1 / 28

Problem generowania i rozwiązywania plansz sudoku o określonym poziomie trudności

Mateusz Mikłuszka 171001 Mikołaj Szkutnik 156545 Kamil Markuszewski 171016. Problem generowania i rozwiązywania plansz sudoku o określonym poziomie trudności. Sudoku. Łamigłówka logiczna Jap. 数独 sūdoku Sū ji wa doku shin ni kagiru Cyfry muszą być pojedyncze. Zasady: plansza.

janus
Download Presentation

Problem generowania i rozwiązywania plansz sudoku o określonym poziomie trudności

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mateusz Mikłuszka 171001 Mikołaj Szkutnik 156545 Kamil Markuszewski 171016 Problem generowania i rozwiązywania plansz sudoku o określonym poziomie trudności

  2. Sudoku Łamigłówka logiczna Jap. 数独 sūdoku Sūji wa dokushin ni kagiru Cyfry muszą być pojedyncze

  3. Zasady: plansza Tablica dwuwymiarowa 9x9 Podzielona na 9 tablic dwuwymiarowych 3x3

  4. Zasady: niepowtarzalność Każdy kwadrat 3x3 musi być wypełniony cyframi 1-9 Cyfry w obrębie kwadratu 3x3 nie mogą się powtarzać

  5. Zasady: niepowtarzalność Cyfry w kolumnie 1x9 nie mogą się powtarzać (cyfra 2) Cyfry w rzędzie 9x1 nie mogą się powtarzać (cyfra 3) Rzędy i kolumny muszą być wypełnione cyframi 1-9

  6. Ciekawostka: rodzaje sudoku Sudoku samurai - składa się z pięciu kwadratów połączonych ze sobą w kształcie litery X Sudoku diagonalne - cyfry nie mogą się powtarzać poprzekątnych kwadratu Sudoku trójwymiarowe - w kształcie kostki sześciennej o wymiarach 9x9x9 Killer Sudoku – początkowa plansza nie ma żadnych wpisanych cyfr, ale zamiast tego ma zaznaczone obszary obejmujące od 2 do 7 pól, dla których podana jest suma zawartych w nich cyfr Sudoku magnetyczne - niedozwolone jest stykanie się takich samych cyfr w rogach kwadratów Sudoku na większej planszy - z większą liczbą symboli

  7. Rozwiązywanie: Sposób 1 - eliminacja Zaczynamy od cyfry która występuje najczęściej Eliminacja rzędów/kolum do których cyfry nie możemy wstawić

  8. Rozwiązywanie: Sposób 2 dopełnianie Dopełnianie Szukamy najbardziej zapełnionego rzędu / kolumny / kwadratu Wypełniamy brakującymi cyframi

  9. Rozwiązywanie: Sposób 3 -oznaczanie Sposób polegający na zaznaczaniu możliwości

  10. Generowanie plansz Rozwiązywanie jest o wiele prostsze niż generowanie plansz Liczba możliwych plansz 6 670 903 752 021 072 936 960 Plansza musi posiadać minimum 17 cyfr początkowych Poniżej 17 cyfr istnieje wiele rozwiązań

  11. Analiza trudności generowania plansz • Nie istnieje jeden sposób analizy trudności plansz – własne metryki • Analiza czasu działania wybranych algorytmów (Rule based)

  12. Metryki • Liczba łącznie wypełnionych pól • Puste pola w kolumnie/wierszu/kwadracie • Funkcja więzów i Ukryci kandydaci • Liczba wystąpień danej cyfry

  13. Sprawdzanie poprawności sudoku • Istnieje rozwiązanie • Dokładnie 1 rozwiązanie • Przeszukanie zbiorku rozwiązań – Brute Force

  14. Algorytmy rozwiązujące sudoku • Deterministyczne • Niedeterministyczne • Metaheurystyka – odpada • Backtracking – Brute Force • Rule Based – Funkcja więzów

  15. Algorytmy generujące sudoku • Wylosowanie planszy • Permutacje kolumn i wierszy • Usuwanie pól • Usuwanie konkretnych pól

  16. Generowanie: Wylosowanie planszy • Daje głównie złe wyniki • Jest niezbędny • Korzystają z niego pozostałe algorytmy • Bardzo wrażliwy na liczbę pól

  17. Generowanie: Permutacje • permutowanie kolumn 3x9 w obrębie kwadratu 9x9 • permutowanie wierszy 9x3 w obrębie kwadratu 9x9 • permutowanie kolumn 1x9 w obrębie kolumn 3x9 • permutowanie wierszy 9x1 w obrębie wierszy 9x3 (Rys 5.2.4.)

  18. Generowanie: Permutacje

  19. Generowanie: Permutacje • Można użyć do generowania bazy plansz • Można zamieniać też cyfry ze sobą

  20. Generowanie: Usuwanie • Zaczynamy od rozwiązanego sudoku • Usuwamy losowo pola • Co iterację sprawdzamy poprawność • Kończymy w zależności od sumy pól

  21. Generowanie: Usuwanie

  22. Generowanie: Usuwanie konkretnych pól • Zaczynamy od rozwiązanego sudoku • Usuwamy pola tak by zwiększyć trudność • Na podstawie metryk trudności • Co iterację sprawdzamy poprawność • Kończymy w zależności od sumy pól

  23. Gra Sudoku: Interfejs użytkownika • Stworzyliśmy grę wykorzystującą nasze algorytmy • Język C# • Środowisko Unity 3d

  24. Wstępne porównanie wyników

  25. Wstępne porównanie wyników

  26. Wstępne porównanie wyników

  27. Wstępne porównanie wyników

  28. Gra Sudoku: Interfejs użytkownika

More Related