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

Slides:



Advertisements
Podobne prezentacje
Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
Advertisements

Metody rozwiązywania układów równań liniowych
Algorytm Dijkstry (przykład)
Zapraszamy do poznania kwadratu magicznego
Metody numeryczne wykład no 2.
Metody Numeryczne Wykład no 3.
POLA FIGUR PŁASKICH.
Dwie metody rozwiązywania układów równań liniowych:
Dwie metody rozwiązywania układów równań liniowych:
Liczby Pierwsze - algorytmy
Proste bazy danych w Excelu
Algorytm Rochio’a.
Tablice Informatyka Cele lekcji: Wiadomości: Uczeń potrafi:
Promotor: dr inż. Leszek Koszałka Autor: Markuszewski Kamil
I T P W ZPT 1 Jak smakuje Espresso I T P W ZPT 2.
Magda Kusiak Karol Walędzik prof. dr hab. Jacek Mańdziuk
Sieci Hopfielda.
Dr Anna Kwiatkowska Instytut Informatyki
Biokomputer.
Metody matematyczne w Inżynierii Chemicznej
The GAME. Ogólna hierarchia klas PLANSZA Hierarchia klas POLE TripBoxNormalBoxSpecialBox.
dr inż. Piotr Muryjas Wyższa Szkoła Przedsiębiorczości i Administracji
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
O relacjach i algorytmach
ADRESOWANIE WZGLĘDNE I BEZWZGLĘDNE Ćwiczenia
Przygotował: Marcin Horak
Wprowadzenie do edytorów tekstu.
Algorytmy i Struktury Danych Typy algorytmów
Zapraszamy na prezentację o kwadratach magicznych
TABLICE C++.
Algorytmy i struktury danych
II Zadanie programowania liniowego PL
Pola figur.
Instrukcja USOSweb Wersja: Opracował: Sebastian Sieńko Moduł sprawdzianów.
Modelowanie ekonometryczne
Materiały pochodzą z Platformy Edukacyjnej Portalu
Tworzenie programów, etapów oraz określanie wymagań etapowych
Technologie informacyjne EXCEL I
Technologie informacyjne EXCEL I
Dane INFORMACYJNE (do uzupełnienia)
Formatowanie tabel. Formatowanie warunkowe. Wstawianie funkcji.
DOŚWIADCZENIA LOSOWE.
Weronika Dziedzic kl. Vc
Tablice w Turbo Pascalu.
Analiza danych przy pomocy funkcji • przegląd wybranych funkcji Excela (m.in. wyszukaj.pionowo, jeżeli, suma.jeżeli) • przypisywanie nazw zakresom komórek.
Generatory pomocy multimedialnych
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Metody numeryczne szukanie pierwiastka metodą bisekcji
PHP Formularze Damian Urbańczyk. Do czego służą? Formularze to bardzo ważne elementy stron internetowych, dzięki nim dochodzi do wymiany danych pomiędzy.
Excel Filtrowanie Funkcje bazodanowe
Algorytmy- Wprowadzenie do programowania
Sudoku 数独.
Andrzej Majkowski informatyka + 1.
Opracowanie mgr Karol Adamczyk
Zagadnienie i algorytm transportowy
Szachy a grafy. Powiązanie szachownicy z grafem Szachownicę można przedstawić jako graf. Wierzchołek odpowiada polu, a krawędzie ruchowi danej figury.
Filtrowanie, Funkcje bazodanowe
Wstawianie funkcji i formatowanie tabel w Excelu FORMATOWANIE TABEL, ORAZ FORMATOWANIE WARUNKOWE.
„Filtry i funkcje bazodanowe w EXCELU”
Excel 2007 dla średniozaawansowanych Zajęcia z Prowadzący: Artur Kołos.
Ciekawostki matematyczne
i jego magiczny kwadrat
Wprowadzenie do edytorów tekstu.
Liczby pierwsze: szukanie, rozmieszczenie, zastosowanie, ciekawostki. Liczby pierwsze: szukanie, rozmieszczenie, zastosowanie, ciekawostki. Kinga Cichoń.
egzaminu gimnazjalnego 2017 / 2018
Programowanie I Bronisława Niespor.
Sudoku 数独.
Poszukiwania: ponowna ocena sytuacji
Cechy podzielności liczb
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

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

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

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

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

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

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

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ć

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

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

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ń

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)

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

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

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

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

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

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.)

Generowanie: Permutacje

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

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

Generowanie: Usuwanie

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

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

Wstępne porównanie wyników

Wstępne porównanie wyników

Wstępne porównanie wyników

Wstępne porównanie wyników

Gra Sudoku: Interfejs użytkownika