Generowanie i optymalizacja harmonogramu za pomoca na przykładzie generatora planu zajęć Matematyka Stosowana i Informatyka Stosowana Wydział Fizyki Technicznej i Matematyki Stosowanej Politechnika Gdańska Praca inżynierska, 2011
Spis tresci 1 Przedstawienie tematu i postawionego problemu Harmonogram - plan zajęć Problem NP-zupełny 2 Idea rozwiazania Jak to działa, że to działa? - matematyczny opis działania algorytmu 3 Implementacja pomysłu Wykorzystanie algorytmu do wygenerowania planu - schemat rozwiazania Pomysły na udoskonalenie i poprawę działania algorytmu 4 Podsumowanie
Spis tresci 1 Przedstawienie tematu i postawionego problemu Harmonogram - plan zajęć Problem NP-zupełny 2 Idea rozwiazania Jak to działa, że to działa? - matematyczny opis działania algorytmu 3 Implementacja pomysłu Wykorzystanie algorytmu do wygenerowania planu - schemat rozwiazania Pomysły na udoskonalenie i poprawę działania algorytmu 4 Podsumowanie
Spis tresci 1 Przedstawienie tematu i postawionego problemu Harmonogram - plan zajęć Problem NP-zupełny 2 Idea rozwiazania Jak to działa, że to działa? - matematyczny opis działania algorytmu 3 Implementacja pomysłu Wykorzystanie algorytmu do wygenerowania planu - schemat rozwiazania Pomysły na udoskonalenie i poprawę działania algorytmu 4 Podsumowanie
Spis tresci 1 Przedstawienie tematu i postawionego problemu Harmonogram - plan zajęć Problem NP-zupełny 2 Idea rozwiazania Jak to działa, że to działa? - matematyczny opis działania algorytmu 3 Implementacja pomysłu Wykorzystanie algorytmu do wygenerowania planu - schemat rozwiazania Pomysły na udoskonalenie i poprawę działania algorytmu 4 Podsumowanie
Harmonogram - plan zajęć Spis tresci 1 Przedstawienie tematu i postawionego problemu Harmonogram - plan zajęć Problem NP-zupełny 2 Idea rozwiazania Jak to działa, że to działa? - matematyczny opis działania algorytmu 3 Implementacja pomysłu Wykorzystanie algorytmu do wygenerowania planu - schemat rozwiazania Pomysły na udoskonalenie i poprawę działania algorytmu 4 Podsumowanie
Harmonogram - plan zajęć Definicja - Harmonogram "Wykres obrazujacy kolejność i czas trwania poszczególnych czynności w ogólnym planie pracy." 1 Przykłady - Harmonogram plan lekcji harmonogram projektu harmonogram ekspedycyjny harmonogram produkcji harmonogram dostaw rozkład jazdy 1 "Nowy słownik języka polskiego PWN", PWN Warszawa 2002
Harmonogram - plan zajęć Definicja - Harmonogram "Wykres obrazujacy kolejność i czas trwania poszczególnych czynności w ogólnym planie pracy." 1 Przykłady - Harmonogram plan lekcji harmonogram projektu harmonogram ekspedycyjny harmonogram produkcji harmonogram dostaw rozkład jazdy 1 "Nowy słownik języka polskiego PWN", PWN Warszawa 2002
Problem NP-zupełny Spis tresci 1 Przedstawienie tematu i postawionego problemu Harmonogram - plan zajęć Problem NP-zupełny 2 Idea rozwiazania Jak to działa, że to działa? - matematyczny opis działania algorytmu 3 Implementacja pomysłu Wykorzystanie algorytmu do wygenerowania planu - schemat rozwiazania Pomysły na udoskonalenie i poprawę działania algorytmu 4 Podsumowanie
Problem NP-zupełny Definicja -Problem NP-zupełny Problem NP-zupełny, problem należacy do klasy problemów obliczeniowych, dla których nie sa znane algorytmy wielomianowe, ani nie udowodniono istnienia większej niż wielomianowa dolnej granicy złożoności obliczeniowej. Trudne zagadnienie teoretyczne algorytmiki. Przyklady -Problem NP-zupełny problem plecakowy problem drogi Hamiltona problem komiwojażera
Problem NP-zupełny Definicja -Problem NP-zupełny Problem NP-zupełny, problem należacy do klasy problemów obliczeniowych, dla których nie sa znane algorytmy wielomianowe, ani nie udowodniono istnienia większej niż wielomianowa dolnej granicy złożoności obliczeniowej. Trudne zagadnienie teoretyczne algorytmiki. Przyklady -Problem NP-zupełny problem plecakowy problem drogi Hamiltona problem komiwojażera
Spis tresci 1 Przedstawienie tematu i postawionego problemu Harmonogram - plan zajęć Problem NP-zupełny 2 Idea rozwiazania Jak to działa, że to działa? - matematyczny opis działania algorytmu 3 Implementacja pomysłu Wykorzystanie algorytmu do wygenerowania planu - schemat rozwiazania Pomysły na udoskonalenie i poprawę działania algorytmu 4 Podsumowanie
Figure: Schemat budowy populacji
Słowniczek pojęć gen - pojedyńczy element kodujacy dana własność chromosom - zbiór genów genotyp - zespół chromosomów (wykorzystuje się głównie 1 chromosom) osobnik - składa się z genotypu i innych wartości opisowych populacja - zbiór osobników o okreśłonej liczebności fenotyp - zestaw wartości odpowiadajacy genotypowi alle - wartośc danego genul locus - miejsce genu w chromosomie funkcja przystosowania - funkcja sprawdzajaca wartość dopasowania danego osbnika do środowiska
Figure: Ogólny schemat działania algorytmu
Inicjalizacja Losowy wybór poczatkowej populacji wielkości n z przestrzeni X. (Dla specyficznych warunków wybór może nie być w pełni losowy.) Ocena przystosowania Każdy osobnik z populacji jest oceniany poprzez funkcję przystosowania na podstawie poszczególnych alleli.
Inicjalizacja Losowy wybór poczatkowej populacji wielkości n z przestrzeni X. (Dla specyficznych warunków wybór może nie być w pełni losowy.) Ocena przystosowania Każdy osobnik z populacji jest oceniany poprzez funkcję przystosowania na podstawie poszczególnych alleli.
Warunek zatrzymania Warunek zakończenia pracy algorytmu: ograniczenie czasowe ograniczenie ilości pokoleń brak poprawy wyniku po m iteracjach znalezienie osobnika z wartościa funkcji przystosowania większej niż zalożona granica y znalezienie osobnika z wartościa maksymalna funkcji przystosowania
Selekcja Probabilistyczna operacja wyboru m osobników z populacji i służacych do wygenerowania populacji i+1. (Istnieje wiele różnych metod wyboru, dysponujacymi różnymi właściwościami) Zastosowanie operatorów genetycznych cz. 1 Operator krzyżowania Operator działajacy na dwóch elementach (osobnikach), krzyżujacy między nimi geny.
Selekcja Probabilistyczna operacja wyboru m osobników z populacji i służacych do wygenerowania populacji i+1. (Istnieje wiele różnych metod wyboru, dysponujacymi różnymi właściwościami) Zastosowanie operatorów genetycznych cz. 1 Operator krzyżowania Operator działajacy na dwóch elementach (osobnikach), krzyżujacy między nimi geny.
Selekcja Probabilistyczna operacja wyboru m osobników z populacji i służacych do wygenerowania populacji i+1. (Istnieje wiele różnych metod wyboru, dysponujacymi różnymi właściwościami) Zastosowanie operatorów genetycznych cz. 1 Operator krzyżowania Operator działajacy na dwóch elementach (osobnikach), krzyżujacy między nimi geny.
Zastosowanie operatorów genetycznych cz. 2 Operator mutacji Operator działajacy na jednym elemencie (osobniku), wprowadzajacy losowe zmiany w strukture genotypu. Nowa populacja Populacja powstała na skutek użycia operatorów genetycznych. Służy ona do przeprowadzenia kolejnych iteracji algorytmu.
Zastosowanie operatorów genetycznych cz. 2 Operator mutacji Operator działajacy na jednym elemencie (osobniku), wprowadzajacy losowe zmiany w strukture genotypu. Nowa populacja Populacja powstała na skutek użycia operatorów genetycznych. Służy ona do przeprowadzenia kolejnych iteracji algorytmu.
Zastosowanie operatorów genetycznych cz. 2 Operator mutacji Operator działajacy na jednym elemencie (osobniku), wprowadzajacy losowe zmiany w strukture genotypu. Nowa populacja Populacja powstała na skutek użycia operatorów genetycznych. Służy ona do przeprowadzenia kolejnych iteracji algorytmu.
Najlepszy osobnik Osbnik, którego wartość funkcji dopasowania jest największa spośród wszystkich innych osobników w populacji w momenice zakończenia pracy algorytmu.
Jak to działa, że to działa? - matematyczny opis działania algorytmu Spis tresci 1 Przedstawienie tematu i postawionego problemu Harmonogram - plan zajęć Problem NP-zupełny 2 Idea rozwiazania Jak to działa, że to działa? - matematyczny opis działania algorytmu 3 Implementacja pomysłu Wykorzystanie algorytmu do wygenerowania planu - schemat rozwiazania Pomysły na udoskonalenie i poprawę działania algorytmu 4 Podsumowanie
Jak to działa, że to działa? - matematyczny opis działania algorytmu Definicja - Schemat Schematem nazywamy zbiór chromosomów zawierajacych geny o ustalonych wartościach na wyszczególnionych pozycjach. Przykład - Schemat Weźmy pod uwagę chromosom o 3 genach, gdzie każdy gen przyjmuje wartości ze zbioru X={0,1}. Rozpatrzmy schemat (x 1,x 2,x 3 ), gdzie x 1 = 1 jest ustalone, x 2 =x 3 =,a oznacza dowolny element ze zbioru X,schemat taki będziemy zapisywać jako (1,, ).
Jak to działa, że to działa? - matematyczny opis działania algorytmu Definicja - Schemat Schematem nazywamy zbiór chromosomów zawierajacych geny o ustalonych wartościach na wyszczególnionych pozycjach. Przykład - Schemat Weźmy pod uwagę chromosom o 3 genach, gdzie każdy gen przyjmuje wartości ze zbioru X={0,1}. Rozpatrzmy schemat (x 1,x 2,x 3 ), gdzie x 1 = 1 jest ustalone, x 2 =x 3 =,a oznacza dowolny element ze zbioru X,schemat taki będziemy zapisywać jako (1,, ).
Jak to działa, że to działa? - matematyczny opis działania algorytmu Twierdzenie - Schemat Mówimy, że chromosom danego osobnika należy do schematu, jeżeli na każdej pozycji (locus) j=1,2,...,i, gdzie i jest długościa chromosomu, symbol na j-tej pozycji w chromosomie odpowiada symbolowi na j-tej pozycji w schemacie. Uwaga - Schemat Schemat w którym występuje n symboli jest zbiorem chromosomów o liczebności n j=1 g j, gdzie g j oznacza moc zbioru symboli możliwych do umieszczenia na j-tym miejscy oznaczonym. Ponadto każdy chromosom o długości i należy do i j=1 g j schematów.
Jak to działa, że to działa? - matematyczny opis działania algorytmu Twierdzenie - Schemat Mówimy, że chromosom danego osobnika należy do schematu, jeżeli na każdej pozycji (locus) j=1,2,...,i, gdzie i jest długościa chromosomu, symbol na j-tej pozycji w chromosomie odpowiada symbolowi na j-tej pozycji w schemacie. Uwaga - Schemat Schemat w którym występuje n symboli jest zbiorem chromosomów o liczebności n j=1 g j, gdzie g j oznacza moc zbioru symboli możliwych do umieszczenia na j-tym miejscy oznaczonym. Ponadto każdy chromosom o długości i należy do i j=1 g j schematów.
Jak to działa, że to działa? - matematyczny opis działania algorytmu Definicja - Rzad schematu Rzędem schematu S (oznaczanym przez o(s)) nazywamy liczbę pozycji ustalonych w schemacie. Definicja - Rozpiętość schematu Rozpiętościa schematu S (oznaczana przez d(s)) nazywamy odległość między pierwsza, a ostatnia ustalona pozycja schematu.
Jak to działa, że to działa? - matematyczny opis działania algorytmu Definicja - Rzad schematu Rzędem schematu S (oznaczanym przez o(s)) nazywamy liczbę pozycji ustalonych w schemacie. Definicja - Rozpiętość schematu Rozpiętościa schematu S (oznaczana przez d(s)) nazywamy odległość między pierwsza, a ostatnia ustalona pozycja schematu.
Jak to działa, że to działa? - matematyczny opis działania algorytmu Wpływ selekcji Wartość oczekiwana b(s,t), czyli liczba osobników w populacji M(t) pasujacych do schematu S, jest określona wzorem: E[b(S, t)] = c(s, t) F (S,t) F (t) Wpływ krzyżowania Prawdopodobieństwo, że osobnik z populacji P(t) należacy do schematu S zostanie wybrany do populacji M(t), ale schemat zostanie zniszczony wynosi d(s) p k L 1. Zaś prawdopodobieństwo, że osobnik z populacji P(t) należacy do schematu S zostanie wybrany do populacji M(t), ale schemat przetrwa wynosi d(s) 1 p k L 1.
Jak to działa, że to działa? - matematyczny opis działania algorytmu Wpływ selekcji Wartość oczekiwana b(s,t), czyli liczba osobników w populacji M(t) pasujacych do schematu S, jest określona wzorem: E[b(S, t)] = c(s, t) F (S,t) F (t) Wpływ krzyżowania Prawdopodobieństwo, że osobnik z populacji P(t) należacy do schematu S zostanie wybrany do populacji M(t), ale schemat zostanie zniszczony wynosi d(s) p k L 1. Zaś prawdopodobieństwo, że osobnik z populacji P(t) należacy do schematu S zostanie wybrany do populacji M(t), ale schemat przetrwa wynosi d(s) 1 p k L 1.
Jak to działa, że to działa? - matematyczny opis działania algorytmu Wpływ mutacji Dla danego osobnika należacego do schematu S, prawdopodobieństwo, że mutacja nie zniszczy schematu wynosi (1 p m ) o(s). Wniosek Zmiana ilości osobników, których chromosom pasuje do schematu S zmienia się z pokolenia na pokolenie według zależności E[c(S, t + 1) c(s, t) F (S,t) (1 p F (t) k d(s) L 1 )(1 p m) o(s).
Jak to działa, że to działa? - matematyczny opis działania algorytmu Wpływ mutacji Dla danego osobnika należacego do schematu S, prawdopodobieństwo, że mutacja nie zniszczy schematu wynosi (1 p m ) o(s). Wniosek Zmiana ilości osobników, których chromosom pasuje do schematu S zmienia się z pokolenia na pokolenie według zależności E[c(S, t + 1) c(s, t) F (S,t) (1 p F (t) k d(s) L 1 )(1 p m) o(s).
Jak to działa, że to działa? - matematyczny opis działania algorytmu Twierdzenie o schematach Schematy małego rzędu, o małej rozpiętości i o przystosowaniu powyżej średniej otrzymuja rosnaco wykładniczo liczbę swoich reprezentantów w kolejnych generacjach algorytmu. Hipoteza Algorytm dazy do osiagnięcia rezultatu bliskiego optimum poprzez zestawienie dobrych schematów ( o przystosowaniu powyżej średniej), małego rzędu i o małej rozpiętości. Schematy te sa nazywane blokami budujacymi.
Jak to działa, że to działa? - matematyczny opis działania algorytmu Twierdzenie o schematach Schematy małego rzędu, o małej rozpiętości i o przystosowaniu powyżej średniej otrzymuja rosnaco wykładniczo liczbę swoich reprezentantów w kolejnych generacjach algorytmu. Hipoteza Algorytm dazy do osiagnięcia rezultatu bliskiego optimum poprzez zestawienie dobrych schematów ( o przystosowaniu powyżej średniej), małego rzędu i o małej rozpiętości. Schematy te sa nazywane blokami budujacymi.
Wykorzystanie algorytmu do wygenerowania planu - schemat rozwiazania Spis tresci 1 Przedstawienie tematu i postawionego problemu Harmonogram - plan zajęć Problem NP-zupełny 2 Idea rozwiazania Jak to działa, że to działa? - matematyczny opis działania algorytmu 3 Implementacja pomysłu Wykorzystanie algorytmu do wygenerowania planu - schemat rozwiazania Pomysły na udoskonalenie i poprawę działania algorytmu 4 Podsumowanie
Wykorzystanie algorytmu do wygenerowania planu - schemat rozwiazania Przedstawienie struktury osobników oraz stworzonych operatorów genetycznych.
Pomysły na udoskonalenie i poprawę działania algorytmu Spis tresci 1 Przedstawienie tematu i postawionego problemu Harmonogram - plan zajęć Problem NP-zupełny 2 Idea rozwiazania Jak to działa, że to działa? - matematyczny opis działania algorytmu 3 Implementacja pomysłu Wykorzystanie algorytmu do wygenerowania planu - schemat rozwiazania Pomysły na udoskonalenie i poprawę działania algorytmu 4 Podsumowanie
Pomysły na udoskonalenie i poprawę działania algorytmu Przedstawienie pomysłów jak to udoskonalić.
Spis treści 1 Przedstawienie tematu i postawionego problemu Harmonogram - plan zajęć Problem NP-zupełny 2 Idea rozwiazania Jak to działa, że to działa? - matematyczny opis działania algorytmu 3 Implementacja pomysłu Wykorzystanie algorytmu do wygenerowania planu - schemat rozwiazania Pomysły na udoskonalenie i poprawę działania algorytmu 4 Podsumowanie
Appendix Bibliografia I L. Rutkowski, Metody i techniki sztucznej inteligencji, PWN, 2009. Z. Michalewicz, Algorytmy genetyczne + struktury danych = programy ewolucyjne, WNT, 1996.?, Algorytmy ewolucyjne jako narzędzie harmonogramowania produkcji, PWN, 1999.