Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałBożydar Kulma Został zmieniony 10 lat temu
1
Problem generowania i rozwiązywania plansz sudoku o określonym poziomie trudności
Mateusz Mikłuszka Mikołaj Szkutnik Kamil Markuszewski
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ć po przeką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
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 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 )
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.