Generowanie planszy SUDOKU o zadanym stopniu trudności

Wielkość: px
Rozpocząć pokaz od strony:

Download "Generowanie planszy SUDOKU o zadanym stopniu trudności"

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

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

Bardziej szczegółowo

Materiał wykorzystany ze stron: SUDOKU

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"

Bardziej szczegółowo

AiSD zadanie trzecie

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

Bardziej szczegółowo

Optymalizacja systemów

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.

Bardziej szczegółowo

Maciej Piotr Jankowski

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

Bardziej szczegółowo

Optymalizacja systemów

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

Bardziej szczegółowo

Programowanie genetyczne, gra SNAKE

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

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ Temat pracy: SUDOKU - Algorytmy tworzenia i rozwiązywania

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,

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

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

Bardziej szczegółowo

Scenariusz zajęć. Moduł VI. Projekt Gra logiczna zgadywanie liczby

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

Bardziej szczegółowo

Programowanie w Baltie klasa VII

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

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

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

Bardziej szczegółowo

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

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

Bardziej szczegółowo

Programowanie i techniki algorytmiczne

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

Bardziej szczegółowo

Word. Korespondencja seryjna

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

Bardziej szczegółowo

Propozycje tematów zadań

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.

Bardziej szczegółowo

Mikroekonometria 5. Mikołaj Czajkowski Wiktor Budziński

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

Bardziej szczegółowo

I Łukowski Turniej Szkół Gimnazjalnych "SUDOKU 2011"

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

Bardziej szczegółowo

Metody numeryczne Wykład 4

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

Bardziej szczegółowo

Algorytm genetyczny (genetic algorithm)-

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

Bardziej szczegółowo

Programowanie dynamiczne cz. 2

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

Bardziej szczegółowo

Wykład 3. Metoda dziel i zwyciężaj

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

Bardziej szczegółowo

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

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

Bardziej szczegółowo

Klasyczne zagadnienie przydziału

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

Bardziej szczegółowo

Pomorski Czarodziej 2016 Zadania. Kategoria C

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

Bardziej szczegółowo

Teoretyczne podstawy informatyki

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

Bardziej szczegółowo

WOJEWÓDZTWO PODKARPACKIE

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

Bardziej szczegółowo

Stosowanie, tworzenie i modyfikowanie stylów.

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

Bardziej szczegółowo

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

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

Bardziej szczegółowo

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

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

Bardziej szczegółowo

Podstawy OpenCL część 2

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

Bardziej szczegółowo

Temat 20. Techniki algorytmiczne

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

Bardziej szczegółowo

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

Bardziej szczegółowo

Struktury Danych i Złożoność Obliczeniowa

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

Bardziej szczegółowo

Ile waży arbuz? Copyright Łukasz Sławiński

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

Bardziej szczegółowo

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

Bardziej szczegółowo

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.

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

Bardziej szczegółowo

Wyszukiwanie binarne

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

Bardziej szczegółowo

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

Bardziej szczegółowo

Algorytmika i pseudoprogramowanie

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

Bardziej szczegółowo

5.4. Tworzymy formularze

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

Bardziej szczegółowo

Algorytmy i struktury danych

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

Bardziej szczegółowo

D O K U M E N T A C J A

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

Bardziej szczegółowo

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

Bardziej szczegółowo

dr inż. Jarosław Forenc

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

Bardziej szczegółowo

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

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ą

Bardziej szczegółowo

Instrukcja obsługi Nowego Punktatora

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

Bardziej szczegółowo

VI PUCHAR POLSKI W ROZWIĄZYWANIU ŁAMIGŁÓWEK. 13 grudnia 2009

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

Bardziej szczegółowo

Budowa i generowanie planszy

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

Bardziej szczegółowo

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 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,

Bardziej szczegółowo

PRZYKŁADOWY TEST EGZAMINACYJNY

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

Bardziej szczegółowo

idream instrukcja do gry klasowej z rankingiem

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

Bardziej szczegółowo

Część 11. Rozwiązywanie problemów.

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

Bardziej szczegółowo

MATEMATYKA WYMAGANIA EDUKACYJNE DLA KLASY V

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ć

Bardziej szczegółowo

REKURENCJA W JĘZYKU HASKELL. Autor: Walczak Michał

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.

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

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

Bardziej szczegółowo

Metody eksploracji danych w odkrywaniu wiedzy (MED) projekt, dokumentacja końcowa

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

Bardziej szczegółowo

Założenia funkcjonalne narzędzia informatycznego wspierającego wdrożenie benchmarkingu

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

Bardziej szczegółowo

KOMBINATORYKA. Problem przydziału prac

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

Bardziej szczegółowo

lekcja 8a Gry komputerowe MasterMind

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

Bardziej szczegółowo

Scenariusz lekcji. rozpoznać prawidłową deklarację tablicy; podać odwołanie do określonego elementu tablicy.

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

Bardziej szczegółowo

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

Bardziej szczegółowo

Mikroekonometria 6. Mikołaj Czajkowski Wiktor Budziński

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

Bardziej szczegółowo

Kalipso wywiady środowiskowe

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:

Bardziej szczegółowo

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

Bardziej szczegółowo

Instrukcja Arkusz ZSZ

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

Bardziej szczegółowo

13. Równania różniczkowe - portrety fazowe

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 /

Bardziej szczegółowo

Wprowadzenie do kombinatoryki

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ą?",

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI PROGRAMU PRZEDSZKOLE (CZ.1)

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)

Bardziej szczegółowo

Złożoność obliczeniowa zadania, zestaw 2

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

Bardziej szczegółowo

X MISTRZOSTWA POLSKI W SUDOKU INSTRUKCJE. 22 luty 2015 r. KILKA WAŻNYCH INFORMACJI:

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

Bardziej szczegółowo

WYKORZYSTANIE NARZĘDZIA Solver DO ROZWIĄZYWANIA ZAGADNIENIA Problem przydziału

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,

Bardziej szczegółowo

AKADEMIA ŁAMANIA GŁOWY Część I KALEJDOSKOP --0--

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

Bardziej szczegółowo

Ekonometria - ćwiczenia 10

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

Bardziej szczegółowo

ALHE. prof. Jarosław Arabas semestr 15Z

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

Bardziej szczegółowo

REJESTRACJA PROJEKTÓW

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

Bardziej szczegółowo

Technologia informacyjna Algorytm Janusz Uriasz

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.

Bardziej szczegółowo

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

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

Bardziej szczegółowo

Automatyczny dobór parametrów algorytmu genetycznego

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

Bardziej szczegółowo

Generatory pomocy multimedialnych

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

Bardziej szczegółowo

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

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

Bardziej szczegółowo

Temat 1: Pojęcie gry, gry macierzowe: dominacje i punkty siodłowe

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

Bardziej szczegółowo

Lista 6. Kamil Matuszewski 13 kwietnia D n =

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

Bardziej szczegółowo

Liczby losowe i pętla while w języku Python

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

Bardziej szczegółowo

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

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

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4

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

Bardziej szczegółowo

Metoda List Łańcuchowych

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

Bardziej szczegółowo

7. Zagadnienie parkowania ciężarówki.

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

Bardziej szczegółowo

WSKAZÓWKI DO WYKONANIA SPRAWOZDANIA Z WYRÓWNAWCZYCH ZAJĘĆ LABORATORYJNYCH

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

Bardziej szczegółowo

UMOWY INSTRUKCJA STANOWISKOWA

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)

Bardziej szczegółowo

Podstawowe informacje potrzebne do szybkiego uruchomienia e-sklepu

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

Bardziej szczegółowo

Tworzenie formularzy w Microsoft Office Word 2007

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ą

Bardziej szczegółowo

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

Bardziej szczegółowo

AKADEMIA ŁAMANIA GŁOWY Część II KAKURO

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,

Bardziej szczegółowo

Co to jest niewiadoma? Co to są liczby ujemne?

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?

Bardziej szczegółowo

Ogólne zasady projektowania algorytmów i programowania

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

Bardziej szczegółowo

Księgowość Optivum. Jak zweryfikować poprawność kwot w zestawieniu budżetowym?

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

Bardziej szczegółowo

Scenariusz lekcji Ozobot w klasie: Ciąg Fibonacciego

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,

Bardziej szczegółowo

6. Zagadnienie parkowania ciężarówki.

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

Bardziej szczegółowo

AKADEMIA ŁAMANIA GŁOWY Część III HITORI

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

Bardziej szczegółowo