Generowanie planszy SUDOKU o zadanym stopniu trudności
|
|
- Radosław Zieliński
- 8 lat temu
- Przeglądów:
Transkrypt
1 Kamil Markuszewski Mateusz Mikłuszka Mikołaj Szkutnik Systemy wspomagania decyzji i symulacja komputerowa Generowanie planszy SUDOKU o zadanym stopniu trudności Wstępna data oddania: Data oddania:
2 Spis treści 1. Wstęp Czym jest sudoku Odmiany sudoku Motywacja Opis modelu plansza sudoku Plansza Rozwiązywanie sudoku Opis problemu Użyte algorytmy generowania plansz Losowanie planszy Permutowanie kolumn i wierszy Usuwanie pól Usuwanie konkretnych pól Metryki trudności planszy Algorytmy rozwiązywania plansz Rule Based Solver Bactracking Solver Plan eksperymentu Wyniki eksperymentu Gra sudoku Podsumowanie Bibliografia
3 1. Wstęp 1.1 Czym jest sudoku Sudoku to popularna łamigłówka logiczna. Dzisiejsza wersja sudoku jako powstała w Japonii. W języku japońskim sudoku to: - 数独 - sūji wa dokushin ni kagiru - cyfry muszą być pojedyncze Celem gry jest uzupełnienie wszystkich pól planszy składającej się z 81 kwadratów. Plansza ta jest podzielona na 9 kwadratów. Poprawnie rozwiązana plansza musi spełniać trzy warunki: - cyfry w kolumnie nie mogą się powtarzać - cyfry w rzędzie nie mogą się powtarzać - cyfry w kwadracie 3x3 nie mogą się powtarzać 1.2 Odmiany sudoku Ponieważ gra jest popularna powstały jej różne wariacje. Odmianami sudoku w tym projekcie się nie zajmiemy, ale przedstawimy je ze względu na ich interesującą naturę. Te i inne modyfikacje oryginalnej wersji gry przyczyniły się do jej uatrakcyjnienia i utrudnienia. 1. Sudoku klasyczne Rys Przykładowa plansza klasycznego sudoku. 3
4 2. Sudoku samurai 5 kwadratów połączonych w kształcie litery X. Rys Przykładowa plansza samurai sudoku. 3. Sudoku diagonalne Cyfry nie mogą się powtarzać również po przekątnej. 4. Sudoku trójwymiarowe Rys Przykładowa plansza trójwymiarowego sudoku. 5. Sudoku killer Plansza nie ma wpisanych cyfr, ale ma sumę cyfr dla obszaru. Rys Przykładowa plansza killer sudoku. 6. Magnetyczne sudoku Cyfry nie mogą powtarzać się na rogach kwadratów. 4
5 2. Motywacja Problemy algorytmiczne związane z grą sudoku można podzielić na dwie grupy: - rozwiązywanie plansz sudoku - generowanie plansz sudoku Rozwiązywanie plansz sudoku jest problemem stosunkowo prostym do zaimplementowania. Algorytmy potrafią w bardzo krótkim czasie rozwiązać każdą, nawet najbardziej skomplikowaną planszę. Algorytmy rozwiązywania dzielą się na deterministyczne i niedeterministyczne. Algorytmy niedeterministyczne są to algorytmy, których czas wykonywania nie zależy od trudności planszy wejściowej. Algorytmy te bardzo często wykonują się w mniej więcej stałym, bardzo krótkim czasie. Jednak są trudne do nauczenia dla człowieka. Wśród tych algorytmów znajdują się algorytmy metaheurystyczne, ich specyfika polega na losowaniu wyniku, który będzie zbliżony do optymalnego. W przypadku sudoku, gdzie prawidłowe jest tylko jedno rozwiązanie te algorytmy się nie sprawdzą. Mogą one bowiem utknąć w tak zwanym lokalnym ekstremum wyniku który dla danej błędnie rozwiązanej gałęzi możliwości będzie najlepszy. Algorytmy deterministyczne wykonują się w różnym czasie w zależności od trudności planszy wejściowej. Spośród tych algorytmów można wyróżnić grupę takich, które rozwiązują sposobami podobnymi do ludzkich. Tego typu algorytm może być więc przydatny do oceny trudności wygenerowanej planszy sudoku. Im więcej iteracji będzie potrzebował na rozwiązanie problemu tym trudniejszy dla człowieka jest problem. Generowanie plansz sudoku to problem z całkiem innego gatunku. Samo wygenerowanie planszy może nie byś skomplikowane, jednak inaczej jest gdy chcemy by ta plansza była odpowiednio trudna. Dodatkowo nie jest łatwo określić co znaczy że plansza jest trudna. W naszym projekcie zajmujemy się tym właśnie tematem. Skupimy się na generowaniu plansz na kilka sposobów, ale spróbujemy także ocenić ich poziom trudności. Cele projektu: - Implementacja 2-3 algorytmów generowania plansz - Zaplanowanie metryk określających poziom trudności wygenerowanej planszy - Implementacja deterministycznego algorytmu rozwiązywania sudoku - Zbadanie efektywności algorytmów generowania plansz pod różnymi względami 5
6 3. Opis modelu plansza sudoku 3.1 Plansza W naszym projekcie zajmujemy się klasyczną planszą sudoku składającą się z 81 kwadratów. W każdym kwadracie może znaleźć się cyfra 1-9. Gra polega na wypełnieniu całej planszy cyframi, tak by były zachowane dodatkowe warunki. Rys Przykładowa plansza sudoku. Rysunek 3.1. przedstawia planszę sudoku. Jak widać jest to tablica 2 wymiarowa 9x9. Składa się ona z 81 kwadratów wypełnionych liczbami. Cała plansza jest podzielona na 9 mniejszych plansz 2 wymiarowych 3x3. Rys Niepowtarzalność cyfr w kwadracie 3x3 Reguły jakie musi spełniać poprawnie wypełniona plansza: Cyfry w obrębie kwadratu 3x3 nie mogą się powtarzać (Rys 3.2.) Cyfry w kolumnie 1x9 nie mogą się powtarzać Cyfry w rzędzie 9x1 nie mogą się powtarzać Z tych reguł wynikają kolejne, które mogą pomóc w rozwiązaniu planszy: W każdym kwadracie 3x3 znajdują się wszystkie cyfry 1-9 W każdej kolumnie 1x9 znajdują się wszystkie cyfry 1-9 W każdym rzędzie 9x1 znajdują się wszystkie cyfry 1-9 Te dodatkowe reguły pomagają w prosty sposób wypełnić dany rząd, kolumnę, kwadrat jeśli jest w nim wiele uzupełnionych pól. Pomogą one również przy definiowaniu poziomu trudności planszy. 6
7 3.2 Rozwiązywanie sudoku Istnieją 3 podstawowe metody rozwiązywania sudoku którymi operują ludzie. Metody te to eliminacja, dopełnianie oraz oznaczanie. Oczywiście algorytmy rozwiązujące sudoku niekoniecznie na nich bazują. A te bazujące są wrażliwe na stopień trudności planszy. Niektóre z nich podobnie jak człowiek nie potrafią rozwiązać wszystkich plansz. Rozwiązywanie metodą eliminacji polega na wykluczaniu miejsc, w których może znaleźć się cyfra na podstawie rzędu, kolumny, kwadratu. Bazuje ona na zasadach Cyfry w kolumnie, rzędzie, kwadracie nie mogą się powtarzać. Rozwiązywanie metodą dopełnienia polega na uzupełnianiu brakujących cyfr w rzędzie, kolumnie wierszu. Bazuje na zasadach W każdym rzędzie, kolumnie, kwadracie znajdują się wszystkie cyfry 1-9. Dla rozwiązywania tą metodą najprostsze plansze to takie, w których najwięcej jest uzupełnionych pól w kolumnie, rzędzie, kwadracie. Rozwiązywanie metodą oznaczania polega na zaznaczaniu na planszy możliwych rozwiązań. Ludzie, rozwiązujący tą metodą po prostu zaznaczają możliwości na planszy. Algorytmy również wykorzystują tę metodę do określania zbioru kandydatów na pole. Jednym z przykładów może być zaimplementowany przez nas algorytm wykorzystujący backtacking. Algorytm ten po wygenerowaniu kandydatów próbuje dla każdej możliwości wstawić brakującą cyfrę, a gdy okaże się to złym rozwiązaniem wycofać zmiany. 7
8 4. Opis problemu Nasze zadanie polegało na zaimplementowaniu algorytmów generujących plansze sudoku. Algorytmy te zostały zbadane pod różnymi aspektami: czas działania, przydatność w generowaniu plansz, możliwość definiowania poziomu trudności. W celu oceny algorytmów musiały zostać zaimplementowane odpowiednie metryki poziomów trudności. Metryki te zostały opracowane przez nas. Bazują one na ludzkich sposobach rozwiązywania plansz. Algorytmy powinny potrafić wygenerować odpowiednio trudne plansze. Na koniec spróbujemy zaproponowanym przez nas algorytmem wygenerować planszę o zadanej przez nas trudności. Wygenerowana plansza aby była poprawna musi spełniać 2 warunki: - musi istnieć rozwiązanie - rozwiązanie może być tylko jedno W celu sprawdzenia czy istnieje rozwiązanie sudoku postanowiliśmy po prostu rozwiązać je algorytmem wykorzystującym backtracking. Algorytm ten zawsze znajduje rozwiązanie problemu. Jest to jednak algorytm bazujący na przeglądzie zupełnym, zatem jego czas wykonywania jest stosunkowo długi. W celu sprawdzenia czy rozwiązanie jest tylko jedno należało zrobić przegląd zupełny z zapamiętaniem możliwych ścieżek. Jeśli plansza może być rozwiązana na kilka sposobów nie jest poprawna. 8
9 5. Użyte algorytmy generowania plansz Do generowania plansz sudoku zaimplementowaliśmy 4 algorytmy. Niestety nie każdy z nich może działać samodzielnie, jednak każdy okazuje się pomocny. Niestety najmniej efektywny z algorytmów musi być podstawą do użycia pozostałych. Zaimplementowane algorytmy: - losowanie planszy - permutowanie kolumn i wierszy - usuwanie pól - usuwanie konkretnych pól 5.1. Losowanie planszy Metoda generowania planszy polegająca na wylosowaniu pól a następnie sprawdzeniu poprawności planszy. Metoda ta musi przyjąć przynajmniej jeden argument liczbę wypełnionych pól. Zdajemy sobie sprawę, że czas działania pojedynczej iteracji algorytmu będzie krótki, ale bardzo rzadko wygenerowany wynik będzie poprawny. Zatem czas działania generowania poprawnego sudoku tym algorytmem będzie naprawdę duży, co więcej, będzie on bardzo losowy. Duża liczba zapełnionych pól będzie zmniejszała szansę na poprawność wylosowanej planszy. Mała liczba wypełnionych pól będzie zmniejszała szansę na tylko jedno poprawne rozwiązanie. Ogromną wadą pozostałych algorytmów jest fakt, że nie mogą funkcjonować samodzielnie bez wcześniejszego uruchomienia losowania planszy Permutowanie kolumn i wierszy Metoda permutowania kolumn i wierszy polega na odpowiednim przestawianiu planszy sudoku, tak by wygenerować jej inny wariant. W żaden sposób nie wpływa ona na stopień skomplikowania planszy, pomaga jednak tak ją przekształcić by stworzyć nową. Jeśli będzie takie plansze porównywać człowiek bardzo możliwe iż uzna je za całkiem inny przypadek. Metoda ta potrzebuje jako argumentu wejściowego już gotową poprawną planszę sudoku. Permutowanie kolumn i wierszy może się odbyć w kilku wariantach: - permutowanie kolumn 3x9 w obrębie kwadratu 9x9 (Rys ) - permutowanie wierszy 9x3 w obrębie kwadratu 9x9 (Rys ) - permutowanie kolumn 1x9 w obrębie kolumn 3x9 (Rys ) - permutowanie wierszy 9x1 w obrębie wierszy 9x3 (Rys ) c Rys Permutowanie kolumn 3x9 w obrębie kwadratu 9x9. 9
10 Rys Permutowanie wierszy 9x3 w obrębie kwadratu 9x9. Rys x3Permutowanie kolumn 1x9 w obrębie kolumn 3x9. Rys Permutowanie wierszy 9x1 w obrębie wierszy 9x3. Dodatkowo można zamienić cyfry ze sobą (Rys ) co da dodatkowe możliwości kolejnych różnych plansz. Również w żaden sposób nie zmieni to stopnia skomplikowania planszy. Wiadomo to zarówno z definicji samej permutacji jak i przez sprawdzenie zaimplementowanymi przez 10
11 nas metrykami. Z definicji zasad sudoku wynika, że po odpowiednim permutowaniu kolumn i wierszy plansza zawsze będzie poprawna i wciąż będzie posiadać tyle samo rozwiązań. Rys Permutowanie cyfr. Po tych działaniach otrzymaliśmy dla człowieka kompletnie inną planszę sudoku. Jest to jednak ten sam układ, o tym samym poziomie trudności, który przez nasze algorytmy zostanie rozwiązany w zbliżonym czasie. Śmiało można więc stwierdzić, iż metoda ta świetnie nada się do generowania dużej liczby plansz. 11
12 5.3 Usuwanie pól Algorytm usuwania pól jest algorytmem, który pozwala zmienić stopień skomplikowania planszy sudoku. Do rozpoczęcia działania algorytm potrzebuje gotowej rozwiązanej (przynajmniej w jakimś stopniu) planszy sudoku. Najlepiej na wejście podać mu w pełni rozwiązaną planszę, wtedy będzie miał najwięcej możliwości generowania nowych. W praktyce w naszym projekcie przed uruchomieniem tego algorytmu trzeba wygenerować planszę losując ją, następnie ją uzupełnić i przekazać jako argument. Dopiero wtedy można uruchomić algorytm usuwający pola. Wygenerowany wynik będzie się różnił od wylosowanej planszy. Dodatkowo należy wspomnieć, że po usunięciu jakiegoś pola cie wiemy czy plansza jest poprawna. Po każdej iteracji należy sprawdzić czy jest rozwiązywalna oraz czy istnieje tylko jedno rozwiązanie. Rys Usuwanie pól. Algorytm uruchomiony na uzupełnionej planszy: 1. Sprawdź czy liczba wypełnionych pól jest większa od oczekiwanej a. Jeśli liczba wypełnionych pól jest większa: Idź do punktu 2 b. Jeśli liczba oczekiwanych pól jest mniejsza lub równa: Idź do punktu 5 2. Wylosuj pole 3. Usuń wylosowane pole 4. Sprawdź czy istnieje dokładnie jedno rozwiązanie a. Jeśli istnieje wiele rozwiązań: Przywróć usunięte pole i wróć do punktu 1 b. Jeśli istnieje dokładnie 1 rozwiązanie: wróć do punktu 1 5. Zakończ Po wykonaniu się algorytmu można sprawdzić jak trudna plansza została wygenerowana, jeśli nie odpowiada wymaganiom, można wygenerować kolejną, nawet na podstawie tego samego wejścia. 12
13 5.4 Usuwanie konkretnych pól Jest to zaproponowany przez nas algorytm będący modyfikacją algorytmu usuwającego losowe pola. Różnica jest taka, że chcemy sami decydować jakie pola usuwać. Dokładne kryterium czy dane pole należy usunąć ustalamy na podstawie zaproponowanych przez nas metryk trudności oraz własnych przemyśleń, które powstały podczas analizy trudniejszych sudoku. Po przeanalizowaniu kilku trudniejszych naszym zdaniem plansz sudoku uznaliśmy, iż najlepiej doprowadzić do sytuacji gdy: - będzie najmniej pojedynczych kandydatów na dale pole (funkcja kandydatów) - niektóre cyfry wystąpią bardzo rzadko Na podstawie tych dwóch kryteriów wybierane są pola do usunięcia. Dodatkowo wprowadziliśmy pewną losowość by algorytm nie dawał zawsze takich samych wyników. 13
14 6. Metryki trudności planszy Określenie poziomu trudności nie jest trywialnym zadaniem. To czy plansza wydaje się być skomplikowana zależy miedzy innymi od wybranej metody rozwiązywania. Algorytmy bazujące na Brute Force lub metodach genetycznych właściwie nie są wrażliwe na poziom trudności planszy. Trudność planszy zależy miedzy innymi od liczby wypełnionych pól. Im jest ich mniej tym plansza jest trudniejsza. Jednak warunkiem poprawności planszy jest tylko jedno rozwiązanie. W przypadku plansz o mniejszej liczbie wypełnionych pól niż 17 zawsze istnieje wiele rozwiązań, co zostało udowodnione matematycznie. Obowiązuje jednak zasada Im więcej pustych pól tym trudniejsza plansza. Dla algorytmów próbujących wypełnić puste pola w kolumnie, wierszu lub kwadracie prostszymi planszami są te, które posiadają najmniej pustych pól, sprawia to że będą one bardzo łatwe do uzupełnienia. Następstwem uzupełnienia tych miejsc w prosty sposób będzie zmniejszenie poziomu całej planszy. Zasada ta powinna implikować fakt, że im więcej pustych pól w kolumnie, wierszu lub kwadracie tym trudniej jest uzupełnić kolejne pola. Nie jesteśmy jednak pewni, czy to założenie jest poprawne. Metryka ta jednak nie jest zaimplementowana w naszym projekcie mimo, że była bardzo prosta. Powodem jest fakt, iż implikuje ona kolejną metrykę związaną z funkcją kandydatów. Wiele algorytmów rozwiązywania sudoku korzysta z tak zwanej funkcji kandydatów. Polega ona na przypisaniu pustym polom planszy listy cyfr, które mogą być tam wstawione. Cyfry te są wybierane na podstawie metod dopełniania oraz eliminacji. Jeśli na dane pole jest tylko jeden kandydat zostaje on automatycznie wpisany. Algorytmy takie jak algorytm Crook a korzystają na samym początku z takiej funkcji dla uproszczenia planszy. Uznaliśmy, że warto zaimplementować funkcję kandydatów w celu sprawdzenia trudności planszy. Jest to najbardziej podobna do ludzkich metod analiza. Nasza metryka wywołuje taką funkcję a następnie sprawdza ile pól zostało w ten sposób wypełnione. Z pewnością można stwierdzić, że plansza jest trudniejsza jeśli jakaś cyfra wcale nie występuje lub występuje bardzo rzadko. Takich przypadków nie ma jednak wyjątkowo dużo, ponieważ plansza musi spełniać warunek posiadania dokładnie jednego rozwiązania. Dodatkowo taki warunek dość ciężko jest określić w sposób skalarny. Z tą metryką mieliśmy sporo trudności, jednak końcowo postanowiliśmy zapisać ją w prosty sposób. Uznaliśmy, że bardzo mała liczba wystąpień danej cyfry zwiększa poziom trudności. Jednak średnia liczba wystąpień nie zwiększa tego poziomu. Dlatego też ustaliliśmy granicę do dwóch wystąpień. Na sza miara zlicza więc cyfry które występują dwa lub mniej razy. Im takich cyfr jest więcej tym sudoku jest trudniejsze. 14
15 7. Algorytmy rozwiązywania plansz Do celu pomiarów generowanych przez nas plansz sudoku oraz do sprawdzania ich poprawności zaimplementowaliśmy 2 algorytmy rozwiązujące plansze sudoku. Jeden z tych algorytmów posłużył do sprawdzenia ile iteracji zajmie rozwiązanie planszy charakteryzującej się danymi pomiarami według naszych metryk. Sposób działania algorytmu jest zbliżony do rozwiązywania problemu przez człowieka. Drugi zaś algorytm posłużył głównie do sprawdzenia czy dana plansza jest rozwiązywalna oraz czy ma tylko jedno rozwiązanie, algorytm ten bazuje na przeglądzie zupełnym oraz backtrackingu. 7.1 Rule Based Solver Algorytm oparty na zasadach sudoku. Rozwiązuje plansze w taki sposób w jaki zrobiłby to człowiek. Fakt ten implikuje kilka konsekwencji: - Jest wrażliwy na stopień skomplikowania planszy - Działa znacznie szybciej niż Backtracking Solver - Nie wszystkie plansze mogą być rozwiązane z jego pomocą (tak jak nie wszystkie plansze rozwiąże człowiek bazują na standardowych sposobach) Główną częścią tego rozwiązania jest funkcja więzów użyta do znajdywania kandydatów. Funkcja ta wypełnia puste pola wpisując tam wszystkie możliwości, a następnie decyduje którą cyfrę wpisać. Możliwości wybierane są na podstawie podstawowych zasad sudoku. Po określeniu kandydatów automatycznie wstawiani są kandydaci pojedynczy. Następnie wstawiani są kandydaci ukryci. Rys Wstawianie ukrytych kandydatów. Po pierwszym wykonaniu takiej funkcji sprawdzane jest czy sudoku zostało rozwiązane. Jeśli nie, czynność jest powtarzana. Ponieważ za pomocą tego algorytmu nie da się rozwiązać każdej planszy po określonej liczbie prób algorytm jest przerywany. Algorytm wykonuje się bardzo szybko, więc nawet 1000 prób zajmuje około 1 milisekundę. 15
16 7.2 Bactracking Solver Algorytm oparty na backtrackingu oraz przeglądzie zupełnym. Potrafi rozwiązać każdą planszę sudoku. Przy jego pomocy można sprawdzić ile rozwiązań ma dana plansza (czy jest poprawna). Jednak działanie tego algorytmu zawsze jest stosunkowo długie. Algorytm polega na sprawdzeniu wszystkich możliwych kombinacji uzupełnienia pól. Przed uzupełnieniem pola zapamiętywany jest poprzedni stan do którego algorytm wraca. Algorytm przywraca stan gdy nie będzie mógł poprawnie wypełnić kolejnego pola lub gdy poprawnie rozwiąże całe sudoku. W przypadku rozwiązania całego sudoku powrót do poprzedniego stanu jest potrzebny aby określić ilość możliwych rozwiązań. 16
17 8. Plan eksperymentu W celu prezentacji algorytmów a także przeprowadzenia eksperymentu napisaliśmy program konsolowy w języku C++. Program ten ma 3 opcje w menu: - Prezentacja pojedynczego wykonania kolejnych algorytmów wraz z wynikami pomiarów - Wykonanie 100 wywołań kolejnych algorytmów - Próba wygenerowania odpowiednio trudnej planszy sudoku Pojedyncze wykonanie algorytmów pozwoli zweryfikować ich poprawność, przedstawi wygenerowane plansze, a także zaprezentuje pierwsze wyniki dotyczące pomiarów. Część z tych wyników nie będzie znacząco różnić się w przypadku 100 wywołań tych samych funkcji. Wykonanie 100 wywołań algorytmów pomoże nam ustalić średnie czasy wykonywania oraz ilości iteracji. Dzięki temu określimy również odchylenie standardowe, które powie nam jak różnią się wzajemnie pojedyncze pomiary. Przy analizie wyników należy uwzględnić, że np. w przypadku przeglądu zupełnego odchylenie standardowe nie ma znaczenia, jest uwarunkowane losowością, a nie trudnością planszy. Ostatni punkt czyli próba wygenerowania odpowiednio trudnego sudoku pozwoli nam zmierzyć wydajność naszego algorytmu. Będziemy mieli również możliwość sprawdzić czy wygenerowana plansza rzeczywiście jest trudniejsza. 17
18 9. Wyniki eksperymentu Wyniki w trakcie przygotowania. Dla 1 wywołania: Kroki BackTracking Kroki RuleBased Losowanie Usuwanie pól Permutacje 0,045 0,04 0,035 0,03 0,025 0,02 0,015 0,01 0,005 0 Losowanie Usuwanie pól Permutacje Czas Backtracking Czas RuleBased 18
19 iteracje losowanie iteracje usuwanie pól czas losowanie czas usuwanie pól
20 10. Gra sudoku W projekcie uwzględniliśmy prócz wykonania pomiarów stworzenie interfejsu użytkownika do gry opartej na naszych algorytmach. Gra wykorzystuje generowanie plansz o określonym poziomie trudności, sprawdza czy plansza jest poprawna oraz pozwala automatycznie ją rozwiązać. Program został napisany w środowisku Unity 3d w języku C#. Interfejs graficzny użytkownika widoczny jest na Rys Rys Gra sudoku oparta o nasze algorytmy. 20
21 11. Podsumowanie - Podczas generowania plansz sudoku należy pamiętać, że plansza może posiadać tylko jedno rozwiązanie oraz oczywiście musi być rozwiązywalna. - Do sprawdzenia warunków poprawności planszy sudoku potrzebny jest przegląd zupełny. - Przegląd zupełny rozwiązuje plansze sudoku w dość długim czasie. - Algorytmy rozwiązujące plansze w oparciu o zasady sudoku są bardzo szybkie, jednak nie są w stanie rozwiązać każdej planszy. - Algorytm permutujący kolumny i wiersze nie zmienia poziomu trudności planszy, nadaje się dobrze do generowania bazy plansz do gry. - Przedstawione przez nas algorytmy generowania plansz sudoku potrzebują już gotowej planszy, którą mogłyby zmodyfikować. Stworzenie gotowej planszy zajmuje nieporównywalnie więcej czasu niż jej zmiana. 21
22 10. Bibliografia A study of Sudoku solving algorithms Patrik Berggren, David Nilsson
Algorytmy sztucznej inteligencji
www.math.uni.lodz.pl/ radmat Przeszukiwanie z ograniczeniami Zagadnienie przeszukiwania z ograniczeniami stanowi grupę problemów przeszukiwania w przestrzeni stanów, które składa się ze: 1 skończonego
Materiał wykorzystany ze stron: SUDOKU
Materiał wykorzystany ze stron: www.sudoku.name/rules/pl; www.sudoku.betterweb.pl; www.krzyzowki.eu SUDOKU Zasady Sudoku - W Sudoku gra się na planszy o wymiarach 9x9 podzielonej na mniejsze "obszary"
AiSD zadanie trzecie
AiSD zadanie trzecie Gliwiński Jarosław Marek Kruczyński Konrad Marek Grupa dziekańska I5 5 czerwca 2008 1 Wstęp Celem postawionym przez zadanie trzecie było tzw. sortowanie topologiczne. Jest to typ sortowania
Optymalizacja systemów
Optymalizacja systemów Laboratorium Sudoku autor: A. Gonczarek Cel zadania Celem zadania jest napisanie programu rozwiązującego Sudoku, formułując problem optymalizacji jako zadanie programowania binarnego.
Maciej Piotr Jankowski
Reduced Adder Graph Implementacja algorytmu RAG Maciej Piotr Jankowski 2005.12.22 Maciej Piotr Jankowski 1 Plan prezentacji 1. Wstęp 2. Implementacja 3. Usprawnienia optymalizacyjne 3.1. Tablica ekspansji
Optymalizacja systemów
Optymalizacja systemów Laboratorium Zadanie nr 3 Sudoku autor: A. Gonczarek Cel zadania Celem zadania jest napisanie programu rozwiązującego Sudoku, formułując problem optymalizacji jako zadanie programowania
Programowanie genetyczne, gra SNAKE
STUDENCKA PRACOWNIA ALGORYTMÓW EWOLUCYJNYCH Tomasz Kupczyk, Tomasz Urbański Programowanie genetyczne, gra SNAKE II UWr Wrocław 2009 Spis treści 1. Wstęp 3 1.1. Ogólny opis.....................................
REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania
REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania Autor: Anna Nowak Promotor: dr inż. Jan Kowalski Kategorie: gra logiczna Słowa kluczowe: Sudoku, generowanie plansz, algorytmy,
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie
Scenariusz zajęć. Moduł VI. Projekt Gra logiczna zgadywanie liczby
Scenariusz zajęć Moduł VI Projekt Gra logiczna zgadywanie liczby Moduł VI Projekt Gra logiczna zgadywanie liczby Cele ogólne: przypomnienie i utrwalenie poznanych wcześniej poleceń i konstrukcji języka
Programowanie w Baltie klasa VII
Programowanie w Baltie klasa VII Zadania z podręcznika strona 127 i 128 Zadanie 1/127 Zadanie 2/127 Zadanie 3/127 Zadanie 4/127 Zadanie 5/127 Zadanie 6/127 Ten sposób pisania programu nie ma sensu!!!.
XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery
http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod
OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA
OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 16.01.2003 Algorytmy i Struktury Danych PIŁA ALGORYTMY ZACHŁANNE czas [ms] Porównanie Algorytmów Rozwiązyjących problem TSP 100 000 000 000,000 10 000 000
Programowanie i techniki algorytmiczne
Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej
Word. Korespondencja seryjna
1 (Pobrane z slow7.pl) Korespondencja seryjnajestto taki sposób utworzenia jednolitego dokumentu, który będzie różnił się jedynie zawartością wybranych pól. Pola te będą automatycznie wypełniane przez
Propozycje tematów zadań
Propozycje tematów zadań 1. WARCABY Opracować program do gry w warcaby dla dwu graczy. Program ma umożliwiać przesuwanie kursora na zmianę po polach białych lub czarnych, wskazywanie początku końca ruchu.
Mikroekonometria 5. Mikołaj Czajkowski Wiktor Budziński
Mikroekonometria 5 Mikołaj Czajkowski Wiktor Budziński Zadanie 1. Wykorzystując dane me.medexp3.dta przygotuj model regresji kwantylowej 1. Przygotuj model regresji kwantylowej w którym logarytm wydatków
I Łukowski Turniej Szkół Gimnazjalnych "SUDOKU 2011"
"Suuji wa dokushin ni kagiru - liczby muszą pozostać samotne" I Łukowski Turniej Szkół Gimnazjalnych "SUDOKU 2011" Spis treści: 1. Organizator Turnieju 2. Patronat i sponsorzy Turnieju 3. Cele Turnieju
Metody numeryczne Wykład 4
Metody numeryczne Wykład 4 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Metody skończone rozwiązywania
Algorytm genetyczny (genetic algorithm)-
Optymalizacja W praktyce inżynierskiej często zachodzi potrzeba znalezienia parametrów, dla których system/urządzenie będzie działać w sposób optymalny. Klasyczne podejście do optymalizacji: sformułowanie
Programowanie dynamiczne cz. 2
Programowanie dynamiczne cz. 2 Wykład 7 16 kwietnia 2019 (Wykład 7) Programowanie dynamiczne cz. 2 16 kwietnia 2019 1 / 19 Outline 1 Mnożenie ciągu macierzy Konstruowanie optymalnego rozwiązania 2 Podstawy
Wykład 3. Metoda dziel i zwyciężaj
Wykład 3 Metoda dziel i zwyciężaj 1 Wprowadzenie Technika konstrukcji algorytmów dziel i zwyciężaj. przykładowe problemy: Wypełnianie planszy Poszukiwanie (binarne) Sortowanie (sortowanie przez łączenie
Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1
Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem
Klasyczne zagadnienie przydziału
Klasyczne zagadnienie przydziału Można wyodrębnić kilka grup problemów, w których zadaniem jest odpowiednie rozmieszczenie posiadanych zasobów. Najprostszy problem tej grupy nazywamy klasycznym zagadnieniem
Pomorski Czarodziej 2016 Zadania. Kategoria C
Pomorski Czarodziej 2016 Zadania. Kategoria C Poniżej znajduje się 5 zadań. Za poprawne rozwiązanie każdego z nich możesz otrzymać 10 punktów. Jeżeli otrzymasz za zadanie maksymalną liczbę punktów, możesz
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 12a: Prawdopodobieństwo i algorytmy probabilistyczne http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Teoria prawdopodobieństwa
WOJEWÓDZTWO PODKARPACKIE
WOJEWÓDZTWO PODKARPACKIE UNIA EUROPEJSKA EUROPEJSKI FUNDUSZ ROZWOJU REGIONALNEGO Instrukcja instalacji generatora wniosku o dofinansowanie projektu ze środków EFRR w ramach I osi priorytetowej Regionalnego
Stosowanie, tworzenie i modyfikowanie stylów.
Stosowanie, tworzenie i modyfikowanie stylów. We wstążce Narzędzia główne umieszczone są style, dzięki którym w prosty sposób możemy zmieniać tekst i hurtowo modyfikować. Klikając kwadrat ze strzałką w
OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA
OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 20.11.2002 Algorytmy i Struktury Danych PIŁA ZŁOŻONE STRUKTURY DANYCH C za s tw or ze nia s tr uk tur y (m s ) TWORZENIE ZŁOŻONYCH STRUKTUR DANYCH: 00 0
Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)
Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych) Funkcja uwikłana (równanie nieliniowe) jest to funkcja, która nie jest przedstawiona jawnym przepisem, wzorem wyrażającym zależność wartości
Podstawy OpenCL część 2
Podstawy OpenCL część 2 1. Napisz program dokonujący mnożenia dwóch macierzy w wersji sekwencyjnej oraz OpenCL. Porównaj czasy działania obu wersji dla różnych wielkości macierzy, np. 16 16, 128 128, 1024
Temat 20. Techniki algorytmiczne
Realizacja podstawy programowej 5. 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych problemów; 2) formułuje ścisły opis prostej sytuacji problemowej, analizuje
Scenariusz zajęć z matematyki dla klasy I gimnazjum z wykorzystaniem programu edurom Matematyka G1
Scenariusz zajęć z matematyki dla klasy I gimnazjum z wykorzystaniem programu edurom Matematyka G1 Rozdział V: Równania i nierówności I stopnia z jedną niewiadomą Temat: Ćwiczenia utrwalające przekształcanie
Struktury Danych i Złożoność Obliczeniowa
Struktury Danych i Złożoność Obliczeniowa Zajęcia 2 Algorytmy wyszukiwania, sortowania i selekcji Sortowanie bąbelkowe Jedna z prostszych metod sortowania, sortowanie w miejscu? Sortowanie bąbelkowe Pierwsze
Ile waży arbuz? Copyright Łukasz Sławiński
Ile waży arbuz? Arbuz ważył7kg z czego 99 % stanowiła woda. Po tygodniu wysechł i woda stanowi 98 %. Nieważne jak zmierzono te %% oblicz ile waży arbuz teraz? Zanim zaczniemy, spróbuj ocenić to na wyczucie...
VII Mistrzostwa Dolnego Śląska w Sudoku - Eliminacje SP7/GIM/LIC str. 1. imię i nazwisko:... kl... szkoła:... 6 pkt. 3 pkt 4 pkt.
VII Mistrzostwa Dolnego Śląska w Sudoku - Eliminacje SP/GIM/LIC str. imię i nazwisko:... kl.... szkoła:... pkt pkt pkt pkt pkt pkt pkt NIEREGULARNE DIAGONALNE Dodatkowa reguła: na dwóch zaznaczonych przekątnych
operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.
Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie
Wyszukiwanie binarne
Wyszukiwanie binarne Wyszukiwanie binarne to technika pozwalająca na przeszukanie jakiegoś posortowanego zbioru danych w czasie logarytmicznie zależnym od jego wielkości (co to dokładnie znaczy dowiecie
Systemy operacyjne. Laboratorium 9. Perl wyrażenia regularne. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017
Systemy operacyjne Laboratorium 9 Perl wyrażenia regularne Jarosław Rudy Politechnika Wrocławska 28 lutego 2017 Temat obejmuje wykorzystanie wyrażeń regularnych w perlu. Wyrażenia same w sobie są w zasadzie
Algorytmika i pseudoprogramowanie
Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry
5.4. Tworzymy formularze
5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania
Algorytmy i struktury danych
Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie
D O K U M E N T A C J A
Państwowa Wyższa Szkoła Zawodowa w Tarnowie Instytut Politechniczny Informatyka Stosowana III r. D O K U M E N T A C J A Snake 3D Piotr Gębiś Paweł Gładysz Dokumentacja do projektu Snake 3D. W dokumencie
Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99
Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99 Techniki algorytmiczne realizowane przy pomocy grafiki żółwia w programie ELI 2,0. Przedmiot: Informatyka
dr inż. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki
Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.
Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą
Instrukcja obsługi Nowego Punktatora
Instrukcja obsługi Nowego Punktatora Nowy Punktator jest niezbędnym narzędziem do wygenerowania ankiety okresowej oceny wyników pracy nauczycieli akademickich, wynikającej z art. 132 ustawy z dnia 27 lipca
VI PUCHAR POLSKI W ROZWIĄZYWANIU ŁAMIGŁÓWEK. 13 grudnia 2009
VI PUCHAR POLSKI W ROZWIĄZYWANIU ŁAMIGŁÓWEK 13 grudnia 2009 ZADANIA FINAŁOWE CZĘŚĆ TRZECIA (60 MINUT) IMIĘ I NAZWISKO: PUNKTACJA: Punkty są przyznawane za liczbę poprawnie rozwiązanych zadań (nie za konkretne
Budowa i generowanie planszy
Gra Saper została napisana w. Jest dostępna w każdej wersji systemu Windows. Polega na odkrywaniu zaminowanej planszy tak, aby nie trafić na minę. Gra działa na bardzo prostej zasadzie i nie wymaga zaawansowanego
Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle
Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Paweł Szołtysek 12 czerwca 2008 Streszczenie Planowanie produkcji jest jednym z problemów optymalizacji dyskretnej,
PRZYKŁADOWY TEST EGZAMINACYJNY
European Computer Competence Certificate PRZYKŁADOWY TEST EGZAMINACYJNY Europejskiego Certyfikatu Kompetencji Informatycznych ECCC Moduł: IT M3 Arkusze kalkulacyjne Poziom: B Średniozaawansowany FUNDACJA
idream instrukcja do gry klasowej z rankingiem
idream instrukcja do gry klasowej z rankingiem idream instrukcja do gry Podstawowe informacje idream to sieciowa gra zespołowa przeznaczona do wykorzystania w sposób synchroniczny na lekcji w tradycyjnej
Część 11. Rozwiązywanie problemów.
Część 11. Rozwiązywanie problemów. 3 Rozwiązywanie problemów. Czy jest jakiś problem, który trudno Ci rozwiązać? Jeżeli tak, napisz jaki to problem i czego próbowałeś, żeby go rozwiązać 4 Najlepsze metody
MATEMATYKA WYMAGANIA EDUKACYJNE DLA KLASY V
MATEMATYKA WYMAGANIA EDUKACYJNE DLA KLASY V Na ocenę wyższą uczeń powinien opanować wiedzę i umiejętności na ocenę (oceny) niższą. Dział programowy: LICZBY NATURALNE podać przykład liczby naturalnej czytać
REKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał
REKURENCJA W JĘZYKU HASKELL Autor: Walczak Michał CZYM JEST REKURENCJA? Rekurencja zwana rekursją, polega na wywołaniu przez funkcję samej siebie. Algorytmy rekurencyjne zastępują w pewnym sensie iteracje.
Zapisywanie algorytmów w języku programowania
Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym
Metody eksploracji danych w odkrywaniu wiedzy (MED) projekt, dokumentacja końcowa
Metody eksploracji danych w odkrywaniu wiedzy (MED) projekt, dokumentacja końcowa Konrad Miziński 14 stycznia 2015 1 Temat projektu Grupowanie hierarchiczne na podstawie algorytmu k-średnich. 2 Dokumenty
Założenia funkcjonalne narzędzia informatycznego wspierającego wdrożenie benchmarkingu
Benchmarking narzędzie efektywnej kontroli zarządczej w urzędach miast na prawach powiatu, urzędach gmin i starostwach powiatowych Założenia funkcjonalne narzędzia informatycznego wspierającego wdrożenie
KOMBINATORYKA. Problem przydziału prac
KOMBINATORYKA Dział matematyki zajmujący się badaniem różnych możliwych zestawień i ugrupowań, jakie można tworzyć z dowolnego zbioru skończonego. Zbiory skończone, najczęściej wraz z pewną relacją obiekty
lekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
Scenariusz lekcji. rozpoznać prawidłową deklarację tablicy; podać odwołanie do określonego elementu tablicy.
Scenariusz lekcji 1 TEMAT LEKCJI: Zmienne tablicowe 2 CELE LEKCJI: 2.1 Wiadomości: Uczeń potrafi: podać definicję tablicy; podać definicję indeksu; wymienić cechy tablicy w VB.NET; podać postać deklaracji
Dokumentacja programu. Zoz. Uzupełnianie kodów terytorialnych w danych osobowych związanych z deklaracjami POZ. Wersja
Dokumentacja programu Zoz Uzupełnianie kodów terytorialnych w danych osobowych związanych z deklaracjami POZ Wersja 1.40.0.0 Zielona Góra 2012-02-29 Wstęp Nowelizacja Rozporządzenia Ministra Zdrowia z
Mikroekonometria 6. Mikołaj Czajkowski Wiktor Budziński
Mikroekonometria 6 Mikołaj Czajkowski Wiktor Budziński Metody symulacyjne Monte Carlo Metoda Monte-Carlo Wykorzystanie mocy obliczeniowej komputerów, aby poznać charakterystyki zmiennych losowych poprzez
Kalipso wywiady środowiskowe
Kalipso wywiady środowiskowe Instrukcja obsługi INFO-R Spółka Jawna - 2017 43-430 Pogórze, ul. Baziowa 29, tel. (33) 479 93 29, (33) 479 93 89 fax: (33) 853 04 06 e-mail: admin@ops.strefa.pl Spis treści:
Zadanie Wstaw wykres i dokonaj jego edycji dla poniższych danych. 8a 3,54 8b 5,25 8c 4,21 8d 4,85
Zadanie Wstaw wykres i dokonaj jego edycji dla poniższych danych Klasa Średnia 8a 3,54 8b 5,25 8c 4,21 8d 4,85 Do wstawienia wykresu w edytorze tekstu nie potrzebujemy mieć wykonanej tabeli jest ona tylko
Instrukcja Arkusz ZSZ
Krok 1 logujemy się na konto i wybieramy opcję Moduły Arkusze Krok 2 klikamy Dodaj oddział Krok 3 wybieramy Odpowiednio rozporządzenie MEN klasy: 1,2(tegoroczna) z 2013roku - klasa 3(tegoroczna) z 2010roku
13. Równania różniczkowe - portrety fazowe
13. Równania różniczkowe - portrety fazowe Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie rzegorz Kosiorowski (Uniwersytet Ekonomiczny 13. wrównania Krakowie) różniczkowe - portrety fazowe 1 /
Wprowadzenie do kombinatoryki
Wprowadzenie do kombinatoryki http://www.matemaks.pl/kombinatoryka.html Kombinatoryka jest działem matematyki, który pomaga odpowiedzieć na pytania typu: "ile jest możliwych wyników w rzucie monetą?",
INSTRUKCJA OBSŁUGI PROGRAMU PRZEDSZKOLE (CZ.1)
INSTRUKCJA OBSŁUGI PROGRAMU PRZEDSZKOLE (CZ.1) Uruchomienie programu Po uruchomieniu programu wyświetlane jest okno logowania, w którym wprowadza się nazwę użytkownika (opis w dalszej części instrukcji)
Złożoność obliczeniowa zadania, zestaw 2
Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze
X MISTRZOSTWA POLSKI W SUDOKU INSTRUKCJE. 22 luty 2015 r. KILKA WAŻNYCH INFORMACJI:
X MISTRZOSTWA POLSKI W SUDOKU 22 luty 2015 r. INSTRUKCJE KILKA WAŻNYCH INFORMACJI: 1. Formularz odpowiedzi można wysłać więcej niż raz. Pod uwagę brana będzie ostatnia, wysłana w regulaminowym czasie wersja
WYKORZYSTANIE NARZĘDZIA Solver DO ROZWIĄZYWANIA ZAGADNIENIA Problem przydziału
WYKORZYSTANIE NARZĘDZIA Solver DO ROZWIĄZYWANIA ZAGADNIENIA Problem przydziału Problem przydziału Przykład Firma KARMA zamierza w okresie letnim przeprowadzić konserwację swoich urządzeń; mieszalników,
AKADEMIA ŁAMANIA GŁOWY Część I KALEJDOSKOP --0--
AKADEMIA ŁAMANIA GŁOWY Część I KALEJDOSKOP W pierwszej części Akademii Łamania Głowy prezentujemy te łamigłówki, których rozwiązywania nauczycie się w następnych częściach. y są różne różne zadania, różne
Ekonometria - ćwiczenia 10
Ekonometria - ćwiczenia 10 Mateusz Myśliwski Zakład Ekonometrii Stosowanej Instytut Ekonometrii Kolegium Analiz Ekonomicznych Szkoła Główna Handlowa 14 grudnia 2012 Wprowadzenie Optymalizacja liniowa Na
ALHE. prof. Jarosław Arabas semestr 15Z
ALHE prof. Jarosław Arabas semestr 15Z Wykład 5 Błądzenie przypadkowe, Algorytm wspinaczkowy, Przeszukiwanie ze zmiennym sąsiedztwem, Tabu, Symulowane wyżarzanie 1. Błądzenie przypadkowe: Pierwszym krokiem
REJESTRACJA PROJEKTÓW
REJESTRACJA PROJEKTÓW Klawisze skrótów: F7 wywołanie zapytania (% - zastępuje wiele znaków _ - zastępuje jeden znak F8 wyszukanie według podanych kryteriów (system rozróżnia małe i wielkie litery) F9 wywołanie
Technologia informacyjna Algorytm Janusz Uriasz
Technologia informacyjna Algorytm Janusz Uriasz Algorytm Algorytm - (łac. algorithmus); ścisły przepis realizacji działań w określonym porządku, system operacji, reguła komponowania operacji, sposób postępowania.
1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.
1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb. Algorytmy przeszukiwania w głąb i wszerz są najczęściej stosowanymi algorytmami przeszukiwania. Wykorzystuje się je do zbadania istnienia połączenie
Automatyczny dobór parametrów algorytmu genetycznego
Automatyczny dobór parametrów algorytmu genetycznego Remigiusz Modrzejewski 22 grudnia 2008 Plan prezentacji Wstęp Atrakcyjność Pułapki Klasyfikacja Wstęp Atrakcyjność Pułapki Klasyfikacja Konstrukcja
Generatory pomocy multimedialnych
Generatory pomocy multimedialnych Storna 1 Praca z generatorem: parowanie, uzupełnianki, krzyżówki oraz testy.* *Projekt jest całkowicie finansowany z programu Kapitał Ludzki, III Wysoka jakoś systemu
Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.
ZAMIANA LICZB MIĘDZY SYSTEMAMI DWÓJKOWYM I DZIESIĘTNYM Aby zamienić liczbę z systemu dwójkowego (binarnego) na dziesiętny (decymalny) należy najpierw przypomnieć sobie jak są tworzone liczby w ww systemach
Temat 1: Pojęcie gry, gry macierzowe: dominacje i punkty siodłowe
Temat 1: Pojęcie gry, gry macierzowe: dominacje i punkty siodłowe Teorię gier można określić jako teorię podejmowania decyzji w szczególnych warunkach. Zajmuje się ona logiczną analizą sytuacji konfliktu
Lista 6. Kamil Matuszewski 13 kwietnia D n =
Lista 6 Kamil Matuszewski 3 kwietnia 6 3 4 5 6 7 8 9 Zadanie Mamy Pokaż, że det(d n ) = n.... D n =.... Dowód. Okej. Dla n =, n = trywialne. Załóżmy, że dla n jest ok, sprawdzę dla n. Aby to zrobić skorzystam
Liczby losowe i pętla while w języku Python
Liczby losowe i pętla while w języku Python Mateusz Miotk 17 stycznia 2017 Instytut Informatyki UG 1 Generowanie liczb losowych Na ogół programy są spójne i prowadzą do przewidywanych wyników. Czasem jednak
Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).
Algorytmy definicja, cechy, złożoność. Algorytmy napotykamy wszędzie, gdziekolwiek się zwrócimy. Rządzą one wieloma codziennymi czynnościami, jak np. wymiana przedziurawionej dętki, montowanie szafy z
Algorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Metoda List Łańcuchowych
Metoda List Łańcuchowych mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Sosnowiec, 2010 Celem metody jest utrzymanie zalet MLI (dobre czasy wyszukiwania), ale wyeliminowanie jej wad (wysoka
7. Zagadnienie parkowania ciężarówki.
7. Zagadnienie parkowania ciężarówki. Sterowniki rozmyte Aby móc sterować przebiegiem pewnych procesów lub też pracą urządzeń niezbędne jest stworzenie odpowiedniego modelu, na podstawie którego można
WSKAZÓWKI DO WYKONANIA SPRAWOZDANIA Z WYRÓWNAWCZYCH ZAJĘĆ LABORATORYJNYCH
WSKAZÓWKI DO WYKONANIA SPRAWOZDANIA Z WYRÓWNAWCZYCH ZAJĘĆ LABORATORYJNYCH Dobrze przygotowane sprawozdanie powinno zawierać następujące elementy: 1. Krótki wstęp - maksymalnie pół strony. W krótki i zwięzły
UMOWY INSTRUKCJA STANOWISKOWA
UMOWY INSTRUKCJA STANOWISKOWA Klawisze skrótów: F7 wywołanie zapytania (% - zastępuje wiele znaków _ - zastępuje jeden znak F8 wyszukanie według podanych kryteriów (system rozróżnia małe i wielkie litery)
Podstawowe informacje potrzebne do szybkiego uruchomienia e-sklepu
Podstawowe informacje potrzebne do szybkiego uruchomienia e-sklepu Niniejszy mini poradnik ma na celu pomóc Państwu jak najszybciej uruchomić Wasz nowy sklep internetowy i uchronić od popełniania najczęstszych
Tworzenie formularzy w Microsoft Office Word 2007
Tworzenie formularzy w Microsoft Office Word 2007 Opublikowano: 5 kwietnia 2007 Autor: Michał Staniszewski W życiu codziennym często wypełniamy różnego rodzaju formularze, podania i coraz częściej mają
Przyspieszenie obróbki CNC z edytorem ścieżki. narzędzia w ZW3D. ZW3D CAD/CAM Biała księga
Przyspieszenie obróbki CNC z edytorem ścieżki narzędzia w ZW3D Wstęp Podczas procesu obróbki, dobrze wykonane części zawsze wymagają doskonałych umiejętności wytwarzania i doświadczenia. Czy zdarzyło ci
AKADEMIA ŁAMANIA GŁOWY Część II KAKURO
AKADEMIA ŁAMANIA GŁOWY Część II KAKURO Kakuro po raz pierwszy zostało opublikowane w roku 1966 w amerykańskim czasopiśmie Dell Magazine pod nazwą Cross Sum. W latach 80-tych zeszłego wieku trafiło do Japonii,
Co to jest niewiadoma? Co to są liczby ujemne?
Co to jest niewiadoma? Co to są liczby ujemne? Można to łatwo wyjaśnić przy pomocy Edukrążków! Witold Szwajkowski Copyright: Edutronika Sp. z o.o. www.edutronika.pl 1 Jak wyjaśnić, co to jest niewiadoma?
Ogólne zasady projektowania algorytmów i programowania
Ogólne zasady projektowania algorytmów i programowania Pracuj nad właściwie sformułowanym problemem dokładna analiza nawet małego zadania może prowadzić do ogromnych korzyści praktycznych: skrócenia długości
Księgowość Optivum. Jak zweryfikować poprawność kwot w zestawieniu budżetowym?
Księgowość Optivum Jak zweryfikować poprawność kwot w zestawieniu budżetowym? Na wyliczenie kwoty w zestawieniu budżetowym ma wpływ wiele czynników, głównie jest to ustalona definicja na zakładce Kolumny
Scenariusz lekcji Ozobot w klasie: Ciąg Fibonacciego
Scenariusz lekcji Ozobot w klasie: Ciąg Fibonacciego Opracowanie scenariusza: Richard Born Adaptacja scenariusza na język polski: mgr Piotr Szlagor Tematyka: Informatyka, Matematyka, Rekurencja, Fibonacci,
6. Zagadnienie parkowania ciężarówki.
6. Zagadnienie parkowania ciężarówki. Sterowniki rozmyte Aby móc sterować przebiegiem pewnych procesów lub też pracą urządzeń niezbędne jest stworzenie odpowiedniego modelu, na podstawie którego można
AKADEMIA ŁAMANIA GŁOWY Część III HITORI
AKADEMIA ŁAMANIA GŁOWY Część III HITORI Hitori zostało wymyślone w japońskim wydawnictwie Nicoli, specjalizującym się w łamigłówkach. Po raz pierwszy opublikowano je w marcu 1990 r. w jednym z czasopism