Automatyczne strojenie algorytmów genetycznych

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

Download "Automatyczne strojenie algorytmów genetycznych"

Transkrypt

1 Automatyczne strojenie algorytmów genetycznych Mariusz MAKUCHOWSKI Politechnika Wrocławska, Instytut Informatyki, Automatyki i Robotyki Wrocław, Wybrzeże Wyspiańskiego 27, mariusz.makuchowski@pwr.wroc.pl 1 Wstęp W otaczającym nas świecie niemal na każdym kroku możemy natknąć się na różnego rodzaju problemy optymalizacji dyskretnej. Możemy do nich zaliczyć zarówno wybór trasy i środka lokomocji do pracy jak i ułożenie narzędzi w szafie. Umiejętność znajdowania rozwiązań dobrych w sensie wybranego kryterium (np. czas podróży, koszt podróży, dostępność narzędzi) zdecydowanie ułatwia nam życie. W przedstawionych przypadkach do znalezienia dobrych rozwiązań wystarcza przeważnie jakakolwiek intuicja. Inaczej jest jednakże w dużo większych przedsięwzięciach (np. planowanie ułożenia siatki rurociągów w dużym mieście czy wybór harmonogramu wykonywania podzespołów w produkcji masowej), gdzie znalezienie dobrego rozwiązania nie jest już takie proste. Ponadto zastosowanie lepszego rozwiązania (niż dotychczas stosowane) przyniesie wyraźne korzyści (np. w postaci ilości zużytych surowców czy skrócenia czasu produkcji). Do rozwiązywania tego typu problemów stosuje się różnego typu zaawansowane algorytmy. Część z tych algorytmów dedykowana dla bardzo wąskiej grupy problemów nie posiada swojej analogii w innych sytuacjach. Istnieją jednak algorytmy stosowane dla szerokiej klasy problemów bazujące na wspólnej idei. Przykładem takich ogólnych schematów postępowania są m.in. metoda dokładna dziel i ograniczaj (ang. Branch & Bound), metody przybliżone: poszukiwanie z zabronieniami (ang. Tabu Search), symulowane wyżarzanie (ang. Simulated Annealing) czy podejście ge- 1

2 netyczne (ang. Genetic Algorithm). Schematy te nie precyzują w jaki sposób należy zdefiniować rozwiązanie, jak zaimplementować poszczególne elementy algorytmu i jak dobrać parametry sterujące dla zadanego problemu, podają jedynie ogólny szkic algorytmu. Jednocześnie znana jest chęć badaczy do stworzenia algorytmu adaptującego swoje parametry dla danego problemu. Celem pracy jest próba stworzenia uniwersalnego algorytmu genetycznego dobierającego automatycznie wszystkie istotne parametry na podstawie statystycznych informacji instancji badanego problemu. Samostrojenie będzie odbywać się zarówno jednorazowo (dla danego zestawu przykładów) w fazie wstępnej algorytmu (ang. off-line) jak i na bieżąco podczas jego pracy (ang. on-line). Jakość procedur samostrojenia algorytmu będę weryfikował przy pomocy szerokich badań numerycznych. Konkretnie będę oceniał efektywność algorytmu genetycznego z zastosowaniem procedur samostrojenia w stosunku do analogicznego algorytmu wysterowanego ręcznie (możliwie najlepiej). Ponadto przeprowadzę test porównujący algorytm genetyczny wyposażony we wszystkie techniki samostrojenia w stosunku do znanego algorytmu literaturowego. 2 Opis problemu Testowane algorytmy dedykowane są dla problemu gniazdowego (ang. job shop problem) z dodatkowym ograniczeniem bez czekania (ang. no-wait). Jako kryterium optymalizacji przyjmuje się moment zakończenia wykonywania wszystkich zadań (ang. makespan). Rozważany problem, w trójpolowej notacji Graham a [2], oznaczany jest przez J no wait C max. Problem ten różni się od swego klasycznego odpowiednika (przez problem klasyczny rozumie się problem gniazdowy bez dodatkowych ograniczeń) wymogiem rozpoczęcia wykonywania operacji dokładnie w chwili zakończenia wykonywania się poprzednika technologicznego. Ograniczenie te najczęściej występują w gałęziach przemysłu w których przerabiany produkt zmienia szybko swoje własności fizyczno-chemiczne np. produkcja leków [8], żywności [4], wytop stali [14] czy wyrób elementów betonowych [3] choć także spotykane są w innych dziedzinach np. testowanie półprzewodników [12] czy systemach komputerowych [9]. 2

3 2.1 Model matematyczny Dany jest zbiór zadań J = {1, 2,..., n} które wykonywane są przy pomocy zbioru maszyn M = {1, 2,..., m}. Dodatkowo dla każdego zadania j J dany jest ciąg O k = (o 1 k, o 2 k,..., o r k k ) zawierający r k operacji produkcyjnych. Ilość wszystkich operacji w procesie oznaczy przez o = k J r k. Operacja o l k O k, l {1, 2,..., r k }, k J składa się z pary (m l k, p l k) określającej kolejno wykorzystywaną maszynę oraz czas trwania operacji. Ponadto w rozważanym problemie obowiązują następujące trzy typy ograniczeń: (1) kolejnościowe: operacje zadania k należy wykonać w kolejności O k, (2) synchroniczne: każda maszyna może wykonywać w danej chwili, co najwyżej jedną operację oraz nie można w tym samym czasie wykonywać więcej niż jednej operacji danego zadania, (3) bez czekania : każda nie pierwsza operacja danego zadania, musi rozpocząć się dokładnie w momencie zakończenia wykonywania operacji wcześniejszej tego samego zadania. Rozwiązanie klasycznego problemu gniazdowego zdefiniowane jest jako zestaw momentów S l k 0 rozpoczęcia wykonywania się operacji o k. Jednakże zauważmy, iż w przypadku dodatkowego ograniczenia bez czekania, zachodzi zawsze warunek S l+1 k = S l k + p l k, l (1, 2,..., r k 1). (1) Z powyższej równości wynika bezpośrednio, że jednoznaczne wyznaczenie terminu rozpoczęcia dowolnej operacji pewnego zadania może zostać dokonane na podstawie momentu rozpoczęcia dowolnej innej operacji tego samego zadania. Niech S k oznacza moment rozpoczęcia zadania k z definicji równy momentowi rozpoczęcia pierwszej operacji tego zadania, S k = Sk. 1 Jako rozwiązanie problemu gniazdowego z ograniczeniem bez czekania przyjmuje się wektor nieujemnych terminów rozpoczęcia zadań, S = (S 1, S 2,..., S n ). Na podstawie wektora S moment rozpoczęcia S l k wykonywania operacji o l k można wyznaczyć ze wzoru: l 1 Sk l = S k + p i k. (2) 3 i=1

4 Rozwiązanie spełniające wszystkie powyższe ograniczenia nazywamy rozwiązaniem dopuszczalnym. Niech C k oznacza moment zakończenia wykonywania się zadania k, (moment zakończenia wykonywania się wszystkich operacji danego zadania), C k = S k + r k i=1 p i k. (3) Długością C max (S) uszeregowania S nazywamy termin wykonania wszystkich zadań: C max (S) = max C k. (4) k J Problem polega na znalezieniu rozwiązania dopuszczalnego S o najmniejszej długości uszeregowania C max (S ). 2.2 Kodowanie rozwiązania Choć rozwiązaniem rozważanego problemu jest S wektor terminów rozpoczęcia zadań, wektor ten nie będzie zmienną decyzyjną w prezentowanych algorytmach. Wszystkie analizowane rozwiązania będą generowane przez algorytm pośredni zwany dalej procedurą upuchającą, natomiast zmienną decyzyjną będzie parametr sterujący tą procedurą zwany dalej permutacją ładującą. Niech π = (π(1), π(2),..., π(n)) oznacza permutację wszystkich n zadań zbioru J (permutacja ładująca). Zbiór wszystkich możliwych permutacji ładujących będziemy oznaczali symbolem Π. Procedura pakująca składa się z n identycznych kroków. W każdym z nich na podstawie uzyskanego już we wcześniejszych krokach rozwiązania częściowego szeregowane jest kolejne zadanie. Szeregowanie pojedynczego zadania k J oznacza wyznaczenie S k momentu jego rozpoczęcia. W i-tym kroku szeregowane jest zadanie π(i), tzn. wyznaczana jest możliwie najmniejsza wartość S π(i) w taki sposób by tworzone częściowe (lub końcowe w ostatnim kroku) uszeregowanie było rozwiązaniem dopuszczalnym. Podczas tej czynności momenty rozpoczęcia zadań, wyznaczone w wcześniejszych krokach, nie podlegają już żadnym zmianom. Efektywna implementacja procedury upychającej, wymaga zastosowania specyficznego sposobu kodowania bieżącego harmonogramu. Jest nim zestaw m list. Pojedynczym elementem każdej z listy jest parą (początek oraz koniec) momentów określająca przedział czasowy ciągłego wykorzystywania maszyny. Lista l zawiera uporządkowane chronologicznie zestaw wszystkich przedziałów czasowych wykorzystywania maszyny l. Zauważmy teraz, że wyzna- 4

5 czany moment rozpoczęcia wykonywania szeregowanego zadania, jest równy zero lub pewna operacja szeregowanego zadania rozpoczyna się dokładnie w momencie zakończenia innej operacji na tej samej maszynie (zadnie dosunięte jest do lewej strony na osi czasu). Wynika z tego, że w celu znalezienia najmniejszego dopuszczalnego momentu S k szeregowanego zadania k, należy sprawdzić moment zerowy oraz wszystkie momenty wynikające z rozpoczęcia operacji o l k O k we wszystkich mometach zwolnienia maszyny m l k. Zwróćmy uwagę na to, że rozpoczęcie zadania k w najpóźniejszym z analizowanych momentów tworzy zawsze (częściowe lub końcowe) rozwiązanie dopuszczalne. Nie istnieje więc niebezpieczeństwo braku możliwości utworzenia rozwiązania dopuszczalnego. Wynika z tego, że dla każdej możliwej permutacji ładującej odpowiada dokładnie jedno rozwiązanie dopuszczalne. Niech N oznacza największą liczbę operacji w zadaniach danej instancji, N = max k J r k ; o n N. Zauważmy teraz że, liczba możliwych momentów rozpoczęcia zadania k wynosi nie więcej niż o N. Dodatkowo w przypadku, gdy każda z operacji dokładanego zadania k wykonuje się na innej maszynie liczba ta nie przekracza wartość o. Sytuacja ta występuje we wszystkich testowanych przykładach, dlatego analiza złożoności obliczeniowej poszerzona zostanie o ten specyficzny przypadek, m a k m b k, 1 a < b r k, k J, (5) nazywany dalej przypadkiem szczególnym. Ponadto łatwo można zauważyć, iż w opisanej sytuacji wartość parametru N jest zawsze nie większa niż m; N m. Efektywny test dopuszczalności uszeregowania, zakłada analizę wszystkich badanych momentów w kolejności chronologicznej. Dla analizowanego momentu S k i danej operacji o l k wykluczamy wszystkie przedziały czasowe w liście m l k które kończą się przed S l k momentem rozpoczęcia tej operacji. W celu weryfikacji poprawnego (w sensie narzuconych ograniczeń synchronicznych) położenia czynności o l k wystarczy sprawdzić czy pierwszy z pozostawionych przedziałów rozpoczyna się nie wcześniej niż momencie S l k + p l k zakończenia wykonywania operacji o l k. Podczas testu wszystkich analizowanych momentów przedziały zajętości maszyny (dla danej operacji) testowane są kolejno a ich liczba jest nie większa niż o. Tak więc, w najgorszym przypadku test wszystkich momentów rozpoczęcia zadania, wymaga nie więcej niż o N analiz przedziałów (zarówno wykluczanie jak i sprawdzanie ograniczeń). Dodatkowo w przypadku szczególnym patrz wzór (5) liczba ta jest nie większa niż o. 5

6 Złożoność obliczeniowa jednego kroku procedury upychającej w przypadku ogólnym wynosi zatem O(oN) = O(nN 2 ). Dlatego cała procedura posiada złożoność O(n 2 N 2 ). W przypadku szczególnym złożoność obliczeniowa jednego kroku wynosi O(o) = O(nm) a cała procedura ma złożoność O(n 2 m). Przedstawione podejście bazujące na funkcji upychającej charakteryzuje się następującymi własnościami: (1) dla każdej permutacji ładującej, generowane jest zawsze jedno rozwiązanie dopuszczalne, (2) generowane rozwiązania charakteryzują się bardzo wysoką jakością w sensie wartości funkcji celu, (3) ilość różnych permutacji ładujących jest znacznie mniejsza niż liczba wszystkich rozwiązań aktywnych, (4) różne permutacje ładujące mogą generować te same rozwiązania, (5) możliwości opuszczenia rozwiązania optymalnego nawet w przypadku analizy wszystkich możliwych permutacji ładujących. Dokładniejszą analizę, przykłady oraz badania numeryczne potwierdzające wymienione własności prezentowane są w pracy [6]. Praca [6] proponuje ponadto stosowanie obok procedury upychającej także jej symetrycznego odpowiednika, co znacznie poprawia efektywność algorytmu. Spowodowane jest faktem iż niektóre z instancji, trudne do rozwiązania, stają się instancjami znacznie łatwiejszymi gdy przyjrzymy się ich symetrycznym lustrzanym odpowiednikom. Ponieważ zmienną decyzyjną jest permutacja ładująca, sterująca niebanalną procedurą upychającą, trudno jest na wyselekcjonowanie pewnych jej cech i własności decydujących o jakości rozwiązania końcowego (np. własności blokowych). Jest więc to idealny przykład problemu dla zastosowania algorytmu genetycznego, ponieważ algorytmy tego typu nie wykorzystują wcale (lub sporadycznie) specyficzne własności problemu i bazują głównie na wartości funkcji celu badanych rozwiązań. 2.3 Przykłady testowe Wszystkie eksperymenty numeryczne przedstawione w tej pracy przeprowadzone zostały na 40 literaturowych przykładach testowych la01-la40. Przykłady te dedykowane są klasycznemu problemwi gniazdowemu i uważane są 6

7 przez badaczy za wyjątkowo trudne. Oczywiście w literaturze występuje także wiele innych zestawów trudnych przykładów testowych, jednakże dla naszych potrzeb zestaw zaproponowany przez Lawrence a wydaje się być wystarczająco duży i zróżnicowany. Jest on podzielony na osiem grupy po pięć instancji każda. W każdej grupie wszystkie przykłady charakteryzują się jednakowym rozmiarem a dokładniej jednakową liczbą zadań n, maszyn m i operacji o. Ponadto cechą charakterystyczną tych przykładów jest to, że liczba wszystkich operacji wynosi dokładnie o = n m oraz każde zadanie składa się dokładnie z m operacji r k = m, k J, wykonywanych na różnych maszynach spełniając warunek (5). W dalszej części pracy poszczególne grupy oznaczane są poprzez podanie rozmiaru instancji w nich zawartych n m. Prezentowane w tabelach wyniki odnoszące się do całych grup są wartościami średnimi odpowiednich wartości otrzymanych dla wszystkich przykładów z danej grupy. 3 Algorytm genetyczny Ogólna idea działania algorytmu genetycznego opisana jest w pracy [5] i naśladuje ona Darwinowską teorię ewolucji wstępującą w świecie biologii. Algorytm taki symuluje zarówno środowisko jak i życie wirtualnych osobników. Każdy z osobników identyfikowany jest z jednym rozwiązaniem, a jakość przystosowania oceniana się na podstawie wartości funkcji celu. Po zakończeniu symulacji danej liczby pokoleń algorytm kończy swe działanie, a jako rozwiązanie końcowe przyjmuje się rozwiązanie odpowiadające najlepszemu osobnikowi który pojawił się podczas całej symulacji. Właściwie dobrane parametry algorytmu genetycznego w szczególności odpowiednio dobrany mechanizm dziedziczenia wraz z selekcją promującą osobniki o żądanej cesze gwarantują iż w symulowanym świecie pojawi się ewolucja. Ewolucja rozumiana jest tutaj jako tendencja do generowania pokoleń z coraz lepiej przystosowanymi osobnikami. Zmieniając definicję przystosowania czyli sposobu oceny danego osobnika możemy dokonać wyboru kierunku ewolucji. W praktyce wartość przystosowania danego osobnika przyjmuje wartość optymalizowanej funkcji celu dla odpowiadającego mu rozwiązania. W życiu pojedynczego pokolenia, osobniki najsłabiej przystosowane giną zazwyczaj bezpotomnie, natomiast najlepiej przystosowane stają się rodzicami nowego pokolenia. Nowo powstałe osobniki dziedziczą geny (pewne atrybuty rozwiązań) swoich rodziców. Dzięki temu powstałe rozwiązania są kombinacją najlepszych rozwiązań pokolenia wcześniejszego. W celu uniknięcia zwyrodnienia pokolenia w którym 7

8 wszystkie nowo generowane osobniki są do siebie bardzo podobne, stosuje się niewielką ich mutację. Dzięki mutacji algorytm bada coraz to nowe obszary przestrzeni rozwiązań co sprzyja opuszczaniu minimów lokalnych oraz umożliwia wygenerowanie osobnika o pewnej zatraconej w całej populacji cesze. W każdym algorytmie genetycznym możemy więc wyróżnić następujące bazowe elementy: (1) generacja populacji startowej: generacja osobników pierwszego pokolenia, (2) selekcja: wybór rodziców z całego pokolenia (3) krzyżowanie: generowanie nowych osobników na podstawie materiału genetycznego rodziców (4) mutacja: wprowadzenie niewielkich zmian w materiale genetycznym nowo powstałych osobników (5) kryterium stopu: określa warunek zatrzymujący pracę algorytmu (najczęściej jest maksymalna liczba symulowanych pokoleń lub czas pracy algorytmu). Sprecyzowanie wymienionych elementów algorytmu GA, jest podstawowym problemem z jakim musi poradzić sobie projektant danej implementacji algorytmu ewolucyjnego. W dalszej części pracy proponuję uniwersalny sposób doboru najbardziej korzystnych wariantów poszczególnych elementów. 3.1 Poziom mutacji Zanim przejdę do omówienia poszczególnych metod samostrojenia algorytmu genetycznego wprowadzę najpierw pojęcie poziomu mutacji. Byt ten jest bezpośrednio powiązany z dobrze znanym z literatury prawdopodobieństwem mutacji. Różnice pomiędzy nimi mogą wydawać się subtelne jednakże są bardzo istotne ze względu na badania przeprowadzane w dalszej części pracy. Poziom mutacji L określa z definicji względną liczbę mutacji wykonywanych w całym pokoleniu, (liczba wszystkich mutacji = L liczba wszystkich genów), natomiast prawdopodobieństwo mutacji P z definicji jest prawdopodobieństwem tego, że pojedynczy gen zostanie zmutowany. 8

9 Zauważmy teraz, że w zależności od sposobu kodowania rozwiązania i stosowanego operatora mutacji, mutowany gen może zmieniać wartość w bardzo ograniczony sposób, podczas gdy w losowym rozwiązaniu wartość tego genu może przyjmować wartości z znacznie liczniejszego zbioru. W takim przypadku nawet dla P = 1 (każdy gen zostaje zmutowany) istnieje duże podobieństwo pomiędzy genotypem pierwotnym a zmutowanym. Przykładem powyższego zjawiska jest sytuacja w którym cały genotyp składa się z jednego chromosomu będącego permutacją. Jeżeli w takim przypadku mutacja polega na zamianie w permutacji miejscami dwóch sąsiednich elementów, wówczas nawet podczas mutacji każdego genu istnieje duże podobieństwo permutacji pierwotnej x i permutacji zmutowanej y. Dowodem tego jest odległość pomiędzy tymi permutacjami d(x, y), rozumiana jako najmniejsza liczba zamian sąsiednich potrzebna do przeprowadzenia permutacji x w permutację y. Z definicji odległości oraz ilości wykonanych mutacji równej ilości n elementów w permutacji, maksymalna odległość pomiędzy x i y może wynosić co najwyżej n; d(x, y) n, podczas gdy średnia odległość pomiędzy losową permutacją z a permutacją x wynosi AV E(d(x, z)) = n (n 1)/4, przy czym największa możliwa odległość pomiędzy permutacjami jest dwa razy większa. Oznacza to, że permutacja x i otrzymana poprzez mutację każdego genu permutacja y są do siebie (w sensie odległości d) podobne. Z powyższej własności wynika bezpośrednio, że mutowanie zmutowanych już wcześniej genów, powoduje wprowadzanie jeszcze większych zakłóceń w genotypie osobnika. Fakt ten w żaden sposób nie jest uwzględniany przez parametr P który informuje o prawdopodobieństwie przynajmniej jednokrotnej mutacji genu. Przeciwnie poziom mutacji o wartości większej niż 1 świadczy, że statystycznie w jednym osobniku dokonuje się więcej mutacji niż posiada on genów. W praktyce jednak optymalny poziom mutacji L jest na poziomie do kilku procent i w przybliżeniu jest równy P, a rozważania dla wartości L zbliżających się do 1 i większych mają charakter tylko teoretyczny. Przy założeniu, iż każda mutacja zmienia dokładnie k genów, można napisać zależność prawdopodobieństwa mutacji P od ilości g wszystkich genów w pokoleniu i L poziomu mutacji, P (η, L) = 1 ( ) g L g k. (6) Z przedstawionego wzoru 6 wynika, iż przy ustalonym poziomie mutacji L, ilość genów w pokoleniu nie ma dużego wpływu na wartość P. Ponadto dla g 9

10 małego poziomu mutacji (takie poziomy stosowane są w poprawnie wysterowanych algorytmach) jego wartość odpowiada niemal dokładnie prawdopodobieństwu mutacji P L, L < 0, 1. Dodatkową subiektywną zaletą uzależnienia testowanych w dalszej części parametrów algorytmu od poziomu mutacji zamiast od prawdopodobieństwa jest duża większa przejrzystość generowanych charakterystyk. 3.2 Wybór operatora mutacji Na wstępnie chciałbym przypomnieć, że algorytmy genetyczne nie pracują bezpośrednio na rozwiązaniach tylko na ich zakodowanych reprezentacjach (kodach). Istnieje więc potencjalna możliwość w której osobniki różniące się kodem reprezentują dokładnie te same rozwiązanie. Tłumacząc to na język biologii można powiedzieć, że istnieją różne genotypy którym odpowiada dokładnie ten sam fenotyp. W takim przypadku możliwa jest mutacja w której zmutowany osobnik mimo zmiany kodu, generuje rozwiązanie dokładnie te samo co osobnik pierwotny. Taką mutację będę nazywał mutacją jałową. Ponadto, niech ξ oznacza efektywność operatora z definicji równą prawdopodobieństwu, że losowo wykonana mutacja nie będzie mutacją jałową. Pomimo, iż mutacja w algorytmach genetycznych zachodzi sporadycznie, ma ona ogromne znaczenie dla efektywności całego algorytmu. Podstawowe cele mutacji to: (1) tworzenie osobników różniących się częściowo ale w istotny sposób od rodziców, co umożliwia przeniesienie poszukiwań w coraz to nowe część przestrzeni rozwiązań, (2) utworzenie osobnika posiadającego cechę niewystępującą w pokoleniu, co umożliwia znalezienie rozwiązania lokalnie optymalnego nawet w przypadku zatracenia się w pokoleniu pewnej cechy tego rozwiązania, (3) przeciwdziałanie stagnacji obliczeń, to znaczy sytuacji w której całe pokolenie zdominowane jest przez jeden rodzaj mało różniących się między sobą osobników. Aby zmutowany osobnik miał dużą szansę zostania rodzicem (warunek niezbędny do osiągnięcia celu 1), wartość jego przystosowania nie może być dużo gorsza niż pozostałych rozwiązań w pokoleniu. Wynika z tego, że mutacja powinna generować osobniki istotnie różniące się od osobnika pierwotnego 10

11 (w sensie kodu), jednocześnie wartość przystosowania zmutowanych osobników powinna być podobna do wartości przystosowania osobnika mutowanego. Zróżnicowanie funkcji przystosowania mutowanych osobników możemy zmierzyć tak zwaną autokorelacją przestrzeni rozwiązań [13]. Definiowana jest ona dla danej przestrzeni Π, funkcji celu C(π), π Π i miary odległości d(x, y), x, y Π, ϱ(d) = 1 AV E ( (C(x) C(y)) 2) d(x,y)=d AV E ( (C(x) C(y)) 2), (7) gdzie AV E((C(x) C(y)) 2 ) d(x,y)=d oznacza wartość średnią (C(x) C(y)) 2 wszystkich par x, y Π takich, że odległość d(x, y) wynosi dokładnie d, natomiast AV E((C(x) C(y)) 2 ) oznacza wartość analogiczną dla wszystkich możliwych par. Wartość ϱ(d) zmienia się od 0 do 1 i określa korelację rozwiązań oddalonych od siebie o d. Z naszego punktu widzenia para osobników x, y Π, x y gdzie y powstał z mutacji osobnika x, oddalona jest od siebie o 1 w mierze odpowiadającej danej mutacji (miarę tę można zdefiniować jako minimalną liczbę mutacji transformującą osobnika x w osobnika y). Wynika z tego, że interesujące nas zróżnicowanie funkcji przystosowania mutowanych osobników jest ściśle związane z wartością ϱ(1) odpowiedniej miary odległości. Wartość ϱ(1) bliska 1 oznacza małe zróżnicowanie, w sensie wartości funkcji celu, mutowanych osobników względem osobnika pierwotnego. Przeciwnie wartość ϱ(1) bliska 0 oznacza, brak relacji wartości funkcji celu pomiędzy zmutowanymi rozwiązaniami a rozwiązaniem pierwotnym. W celu wyznaczenia przybliżonej wartości ϱ(1), oznaczanej dalej przez ϱ proponuje się wyznaczyć zbiór X = {x 1, x 2,...} losowych osobników oraz zbiór Y = {y 1, y 2,...} mutantów, gdzie y i powstał porzez zmutowanie osobnika x i. Wartość ϱ można teraz wyznaczyć poprzez: AV E ( (C(x i ) C(y i )) 2) ϱ(1) ϱ = 1 2 ( AV E(C(x i ) 2 ) AV E(C(x i )) 2). (8) Zauważmy, że mała efektywność skutecznie zmniejsza chropowatość przestrzeni rozwiązań (zwiększa współczynnik ϱ). Jako jedno z kryterium wyboru operatora mutacji, proponuje się przyjąć zmodyfikowną szorstkość przestrzeni rozwiązań danego operatora zdefiniowaną jako ϱ. Oblicza ją się analogicznie jak wartość ϱ z tą różnicą, że nie uwzględnia się sytuacji w których pary 11

12 osobników x i i y i reprezentują te same rozwiązania. Operatory o dużej wartości ϱ mają dużą szansę na to, że stworzone przez nie osobniki (reprezentujące zupełnie nowe rozwiązania) zakwalifikują się do puli rodzicielskiej. Oznacza to, że operatory te skutecznie będą realizować powierzone im zadania. Podsumowując, z zestawu operatorów mutacji wśród operatorów o największych wartościach parametru ξ należy wybrać ten operator dla którego wartość ϱ jest największa. Dodatkową sugestią jest aby wyboru operatora dokonać jednorazowo przed uruchomieniem wysterowanego algorytmu. W przypadku przeciwnym, to jest zmiany operatora (on-line) w trakcie pracy algorytmu należy pamiętać także o zmianie wartość prawdopodobieństwa mutacji. Jest to potrzebne ze względu na to, iż dla różnych operatorów optymalna wartość prawdopodobieństwa mutacji jest różna. Pewnym ułatwieniem jest zastosowanie automatycznego doboru poziomu mutacji opisanego w dalszej części pracy. Badania numeryczne Wszystkie prezentowane testy przeprowadzone został na komputerze klasy PC wyposażonym w procesor Athlon (1667MHz) w środowisku wielozadaniowym Windows XP. Wszystkie opisane algorytmy zostały zaprogramowanie w języku C++ i skompilowane przez Dev C++ w wersji Ponieważ zmienną decyzyjną jest permutacja (konkretnie permutacja ładująca) do przetestowania wybrałem następujące cztery powszechnie stosowane (dla permutacji) operatory mutacji: (1) small swap: polegający na zamianie losowych dwóch sąsiednich elementów permutacji, oznaczany dalej w skrócie przez SSw, (2) swap: polegający na zamianie miejscami dwóch różnych losowych elementów permutacji, oznaczany dalej w skrócie prze Swp, (3) insert: polegający na wyciągnięciu losowego elementu z permutacji i ponownym włożeniu go na losową pozycję (z wykluczeniem pierwotnej pozycji), oznaczany dalej w skrócie przez Ins, (4) invert: polegający na odwróceniu kolejności elementów losowej części permutacji, oznaczany dalej w skrócie przez Inv. Pierwszy z testów polega na zbadaniu chropowatości ϱ, zmodyfikowanej chropowatości ϱ oraz efektywności ξ wymienionych operatorów mutacji. 12

13 Tabela 1: Średnia wartości parametrów ϱ, ϱ oraz ξ dla testowanych operatorów mutacji Grupa ϱ ϱ ξ n m SSw Swp Ins Inv SSw Swp Ins Inv SSw Swp Ins Inv wszystkie Średnie wartości otrzymanych parametrów dla poszczególnych grup przykładów przedstawiono w tabeli 1. Po dokładnej analizie danych można zauważyć szereg następujący prawidłowości. Wraz ze wzrostem n liczby zadań wartość ϱ ma tendencję malejącą (dla wszystkich badanych operatorów). Dokładnie przeciwny wpływ na ten parametr wywiera m liczba maszyn w problemie, wraz z jej wzrostem wartość ϱ także rośnie. Jednakże decydujący wpływ na parametr ϱ ma rodzaj zastosowanego operatora mutacji. Najbardziej wyróżniającym się operatorem jest SSw dla którego generowana przestrzeń rozwiązań jest dużo bardziej gładka (duże ϱ) niż w przypadku pozostałych operatorów. Spowodowane jest to dwoma czynnikami: (1) operator SSw często zmienia tylko genotyp osobnika nie zmieniając jego fenotypu (wskazuje na to mała wartość ξ), (2) operator SSw jest szczególnym przypadkiem (możliwie najmniejszą wersją) każdego z pozostałych trzech operatorów. Kolejność wszystkich operatorów względem chropowatości generowanej przestrzeni rozwiązań (według nierosnącego ϱ) to SSw, Ins, Swp i Inv. Analiza wartości zmodyfikowanych chropowatości ϱ pokazuje dużą dodatnią korelację z wartością ϱ. Wszystkie własności zaobserwowane dla ϱ odnoszą się także do wartości zmodyfikowanej ϱ. Jednakże tym razem, wpływ operatora mutacji ma nieco mniejsze znaczenie a wartość ϱ operatora SSw nie odbiega już tak bardzo od analogicznej wartości pozostałych operatorów. 13

14 10 ρ [%] SSw Swp Ins Inv 5 0 L -5 0,0001 0,001 0,01 0, Rysunek 1: Zależność średniej jakość ϱ w stosunku do poziomu mutacji L dla testowanych operatorów mutacji Tłumaczy to bezpośrednio z fakt, iż zmodyfikowana wartość chropowatości przestrzeni nie zależy (w przeciwieństwie do wartości niezmodyfikowanej) od efektywności operatora ξ. Analizując wartości efektywności poszczególnych operatorów można zauważyć, że wartość ξ mocno zależy od wybranego operatora. Operator SSw jest niezwykle mało efektywny, średnio aż 35% mutacji nie zmienia w najmniejszym stopniu rozwiązania (pomimo zmian w permutacji ładującej odpowiadające mu rozwiązanie nie ulega zmianie). Drugi z testów pokazuje wpływ wartości poziomu mutacji danego operatora na jakość generowanych rozwiązań. Jakość rozwiązania rozumiana jest tutaj jako błąd względny otrzymanego rozwiązania x względem rozwiązania referencyjnego x, ρ = C max(x) C max (x ) 100%. (9) C max (x ) Jako rozwiązanie referencyjne przyjmuje się rozwiązanie utrzymane algorytmem GASA opisanym w pracy [11]. Testowany algorytm uruchmiany był z następującymi parametrami: liczba symulowanych pokoleń , liczba osobników w pokoleniu - 50, operator krzyżowania - P MX, selekcja - metoda ruletki. Wykres na rysunku 1 przedstawia średnią wartość ρ jakości generowanych 14

15 rozwiązań uzyskaną dla różnych wartości L poziomów mutacji wszystkich testowanych operatorów mutacji. Ocena wyników Z wykresu zamieszczonego na rysunku 1 wynika, że szeregując operatory mutacji według średniej jakości ρ (przy optymalnym dla danego operatora poziomie mutacji) uzyskujemy następującą kolejność: SSw, Ins, Swp, Inv. Zauważmy, że sekwencja ta została już wcześniej wytypowana na podstawie parametru ϱ. Drugim narzucającym się spostrzeżeniem jest fakt, iż dla przykładów w których n = 10 (przykłady te charakteryzują się stosunkowo małą przestrzenią rozwiązań) najmniejsza osiągana wartość ρ jest tylko nieznacznie mniejsze niż w przypadku wartości ρ odpowiadającej dużym wartością poziomu L. Spowodowane jest to bardzo małą przestrzenią rozwiązań, w której algorytmy losowe (sprawdzające stosunkowo dużą, zadaną, ilość rozwiązań losowych) radzą sobie całkiem nieźle oraz faktem iż algorytm genetyczny przy bardzo dużym poziomie mutacji staje się właśnie takim losowym algorytmem. Można więc powiedzieć, że zastosowanie w analizowanym problemie podejścia bazującego na algorytmie pakującym, tak silnie redukującego przestrzeń rozwiązań z (n!) m do n! spowodowało, iż tylko w grupach 20 5, 20 10, 15 15, 30 10, zawierających większe instancje dobrze uwidaczniają się wszystkie własności algorytmów GA. Trzecim spostrzeżeniem jest fakt, iż rodzaj zastosowanego operatora mutacji nie ma decydującego wpływu na efektywność algorytmu. Z wykresu 1 wynika, że dla optymalnych poziomów mutacji (innego dla każdego operatora) jakość generowanych rozwiązań jest zbliżona. Jednocześnie zauważyć można, że źle dobrany poziom mutacji zdecydowanie obniża jakość znajdowanych rozwiązań. Dlatego w dalszej części pracy przedstawiony jest pewien sposób jego automatycznego doboru. Z przedstawionych tu spostrzeżeń, w szczególności oceny operatorów mutacji które są prawie niezależne od instancji oraz stosunkowo małego wpływu operatora mutacji na efektywność algorytmu wynika, iż nie ma potrzeby automatycznego doboru operatora metodą on-line (na bieżąco podczas pracy algorytmu). Ostatecznie dla konkretnego algorytmu genetycznego dedykowanego danemu problemowi proponuję przeprowadzenie jednego wstępnego badania off-line w wyniku którego na podstawie efektywności ξ oraz zmodyfikowanej chropowatości ϱ wybierze się jeden, potencjalnie najlepszy 15

16 5000 f. celu L = 0,0002 L = 0,0100 L = 0, nr. pokolenia Rysunek 2: Przebieg przykładowego algorytmu genetycznego dla różnych wartości poziomu mutacji. Przykład LA31 operator mutacji, niezmiennie stosowany przez cały przebieg algorytmu. 3.3 Dobór prawdopodobieństwa mutacji Z badań przeprowadzonych w wcześniejszym punkcie, niektóre z spostrzeżeń dotyczą bezpośrednio poziomu mutacji. Najważniejszym z nich jest fakt, iż wartość poziomu mutacji ma decydujący wpływ na efektywność algorytmu. Poza tym, optymalna wartość poziomu mutacji zależy od stosowanego operatora jak i od danych problemu (patrz rysunek??). Relacje optymalnych wartości poziomu mutacji różnych operatorów są proste do przewidzenia, to znaczy wraz z wzrostem efektywności stosowanego operatora, optymalny poziom mutacji spada oraz wraz z wzrostem chropowatości krajobrazu przestrzeni danego operatora (zmniejszaniem ϱ) wartość optymalnego poziomu mutacji także nieznacznie spada. W celu dokładniejszego zrozumienia zjawisk zachodzących w algorytmie genetycznym na rysunku 2 przedstawiono przebieg takiego algorytmu o zbyt małym, względnie dobrym i zbyt dużym poziomie mutacji. Przy zbyt małej wartości poziomu mutacji w algorytmie GA następuje stagnacja obliczeń (patrz pierwszy przebieg na rys. 2). Dzieje się tak dlatego, ponieważ pokolenie zdominowane jest przez tak zwane super osobniki, dominujące zarówno jakościowo jak i ilościowo. Osobniki te są praktycznie 16

17 identyczne, co najwyżej różnią między sobą w sposób nieistotny dla rozwiązania i kryterium funkcji celu. Super osobniki są na tyle dobre w sensie wartości funkcji przystosowania iż, często dochodzi do krzyżowania się ich między sobą, tworząc nowego super osobnika w następnym pokoleniu. Wszystkie pozostałe krzyżowania w pokoleniu generują potomstwo słabsze w sensie wartości funkcji przystosowania, w konsekwencji po selekcji naturalnej nowe pokolenie zdominowane jest znowu przez super osobniki identyczne jak w pokoleniu wcześniejszym. W tej sytuacji, możliwe są tylko trzy dalsze scenariusze symulowanego życia: (1) pewien zmutowany osobnik, będzie lepiej przestosowany niż super osobniki, (ze względu na to iż super osobniki charakteryzują się bardzo wysoką funkcją przystosowania oraz faktem nielicznych mutacji w pokoleniu wariant ten jest mało prawdopodobny), (2) w nowym pokoleniu nie pojawią się super osobniki (wariant ten jest także mało prawdopodobny, gdyż istnieje duża szansa wzięcia do krzyżowania dwóch super osobników), (3) nowo powstałe pokolenie będzie tak samo zdominowane przez super osobniki, jak pokolenie wcześniejsze (wariant najbardziej prawdopodobny). Nastąpiła więc stagnacja obliczeń, algorytm wpadł w pewien rodzaj optimum lokalnego z bardzo małymi szansami na jego opuszczenie. Przy zbyt wysokiej wartości poziomu mutacji, algorytm GA wykazuje cechy algorytmu sprawdzającego losowe rozwiązania (patrz trzeci przebieg na rys. 2). Jest tak dlatego, iż w nowo powstających osobnikach zachodzi stosunkowo duża liczba mutacji co skutkuje tym, że zatraca się większość cechy przeniesionych z rodziców. Przestaje więc działać mechanizm dziedziczenia, a w jego miejscu pojawia się generowanie losowych rozwiązań. W tej sytuacji nowo powstające pokolenie nie jest coraz lepszą odmianą osobników z wcześniejszych pokoleń, lecz zbiorem losowych rozwiązań mających niewiele wspólnego z wcześniejszymi pokoleniami. Sytuację w której poziom mutacji jest prawidłowy, czyli na tyle duży by nie zaszło zjawisko stagnacji obliczeń oraz na tyle mały by nowo powstające osobniki dziedziczyły cechy swoich rodziców, przedstwiony jest w drugim przebiegu rysunku 2. Na wykresie tym widać podstawowe zjawiska zachodzące w poprawnie wysterowanym algorytmie genetycznym. Są nim szybkie schodzenie algorytmu do minimum lokalnego oraz efektywna dywersyfikacja obliczeń uwidaczniająca się opuszczaniem znalezionych minimów lokalnych. Ponieważ dokładne wyznaczenie optymalnej wartości poziomu mutacji w sposób analityczny na dzisiejszym poziomie wiedzy jest niemożliwe, jedyna metoda jego wyznaczenia to eksperymenty numeryczne. A ponieważ dla róż- 17

18 nych instancji optymalna wartość poziomu mutacji jest różna, dobór właściwego poziomu należ dokonywać dla każdego przykładu z osobna lub zmieniać go na bieżąco podczas pracy (on-line) obserwując przebieg sterowanego algorytmu. Niemniej w niniejszej pracy proponowany sposób mutacji nieznacznie odbiega od jego klasycznego pierwowzoru. Dokładniej, zamiast dokonywać mutacji genów z ustalonym (na stałe lub dynamicznie zmienianym) prawdopodobieństwem, proponuje się wstępną analizę populacji a następnie na jej podstawie wyznaczonenie osobników które należy zmutować. Metoda ta nie tylko dobiera automatycznie ilość mutacji w pokoleniu, ale także wskazuje osobniki które należy poddać mutacji. Proponowana strategia bazuje na dwóch prostych spostrzeżeniach: (1) W przypadku, gdy cała populacja jest mocno zróżnicowana nie ma potrzeby mutowania jej osobników. Mutacja w takim przypadku pozbawia ich tylko odziedziczonych cech. (2) W przypadku, pojawienia się w pokoleniu kilku super osobników, należy dokonać ich mutacji. Taka mutacja zapewnia uniknięcia stagnacji obliczeń poprzez eliminację identycznych osobników. Ponadto umożliwia szybkie dojście do optimum lokalnego (w przypadku gdy super osobnicy reprezentują rozwiązanie bliskie rozwiązaniu lokalnie optymalnemu. Ponadto umożliwia łatwe opuszczenie minimum lokalnego. Strategia postępowania wydaje się więc oczywista. Należy zidentyfikować wszystkie klony, a następnie dokonać ich mutacji. Klonem nazywamy osobnika podobnego w pewnym sensie do innego osobnika istniejącego w danym pokoleniu. Takie podejście choć intuicyjne nie ma swojego odpowiednika w świecie przyrody. Przy implementacji proponowanej strategii, do rozstrzygnięcia pozostaje między innymi sposób detekcji klonów. W rozważanym problemie zastosowanie kodowania rozwiązania w postaci permutacji ładującej, skutecznie utrudnia efektywne porównanie rozwiązań (porównaie na podstawie permutacji ładującej bez wywoływania procedury upychającej). Dlatego do detekcji klonów zastosowano najprostrzą metodę to znaczy poprzez porównywanie wartości funkcji przystosowania osobników. Osobnicy o tej samej wartości funkcji przystosowania traktowani są jak klony. Ponadto klony wybrane do mutacji, powinny zostać zmutowane efektywnie, to znaczy w taki sposób by mutacja rzeczywiście zmieniła nie tylko genotyp ale także fenotyp osobnika. W tym celu można przykładowo kontrolować zmianę wartość funkcji przystosowania mutowanych osobników. 18

19 5000 f. celu L = 0,0100 L = auto "SINGLE" nr. pokolenia Rysunek 3: Przebieg przykładowego algorytmu genetycznego z optymalną oraz automatycznie dobieraną wartością poziomu mutacji. Przykład LA31 Efektami ubocznym wynikającym z wykrywania klonów oraz testowaniem zmiany mutowanego osobnika na podstawie wartości funkcji celu odpowiadających im rozwiązań jest możliwość stwierdzenia identyczności osobników mimo różnych fenotypów oraz dodatkowe bardzo czasochłonne obliczenia wyznaczające wartość funkcji celu zmutowanego klona. Pierwsze z wymienionych zjawisk zachodzi stosunkowo rzadko i nie powoduje żadnych poważnych zaburzeń w algorytmie, natomiast drugie zdecydowanie spowalnia jego pracę. Zaproponowana wcześniej strategia mutacji osobnika polegająca na jego mutacji, aż do zmiany wartości funkcji celu, jest bardzo wolna i zostaje nazwana strategią F U LL. Przyśpieszenie pracy algorytmu, można dokonać poprzez jej redukcję do strategii, nazwanej SIN GLE, polegającej na jednokrotnej mutacji i jednokrotnego obliczenia zmodyfikowanej wartości funkcji przystosowania (bez względu na to czy nastąpiła zmiana jej wartości czy też nie). Ostatnią strategią praktycznie niespowalniającą pracę algorytmu jest strategia BLIN D polegająca na jednokrotnej mutacji danego osobnika bez ponownego wyliczenia wartości funkcji przystosowania. Tak zmutowany osobnik podlega selekcji według pierwotnej wartości funkcji przystosowania. 19

20 Badania numeryczne Pierwszy z testów polega na wygenerowaniu przebiegu algorytmu genetycznego, to znaczy wykreśleniu wartości funkcji celu rozwiązania odpowiadającego najlepszemu osobnikowi w bieżącym pokoleniu. Na rysunku 3 przedstawiony jest przykładowy przebieg algorytmu genetycznego z automatyczną mutacją i strategią SIN GLE oraz dla porównania przebieg algorytmu z klasyczną mutacją przy prawidłowo dobranym poziomie mutacji. Z przebiegów tych widać, iż algorytm genetyczny z automatyczną mutacją generuje rozwiązania statystycznie lepsze niż w przypadku stałego (poprawnie dobranego) poziomu mutacji. Przewaga automatycznego doboru mutacji nad jego klasycznym odpowiednikiem widoczna jest także po osiągnięciu przez algorytm minimum lokalnego. W przypadku klasycznej mutacji algorytm pozostaje przez kilkadziesiąt iteracji zdominowany przez te same rozwiązania (fragmentami prosta linia wykresu), efekt ten prawie nie występuje przy automatycznej mutacji. Drugi z testów polega na porównaniu średniej wartości błędu ρ generowanych przez algorytm genetyczny wysterowany przez dobrany poziom mutacji L oraz automatyczną mutacją ze strategią SINGLE, F ULL i BLIND. Dobierany eksperymentalnie poziom mutacji L wybierany jest ze zbioru L { , , , 0.001, 0.002, 0.005, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 20, 50, 100 } jako poziom dla którego pojedynczy przebieg algorytmu okazał się najbardziej korzystny. Ze względu, iż wartość poziomu L wyznaczana jest eksperymentalnie jest ona tylko pewnym przybliżeniem wartości optymalnego poziomu L. Omawiane badania został wykonane dla każdego z testowanych operatorów mutacji a wszystkie otrzymane wyniki zamieszczone zostały w tabelach 2 i 3. Kolejno, tabela 2 zawiera wartość optymalnego poziomu L i średnią jakość ρ dla algorytmu o mutacji na poziomie L natomiast tabela 3 zawiera średnie wartości ρ algorytmu z automatyczną mutacją typu F U LL, SINGLE i BLIND. Wartość ρ obliczana jest ze wzoru (9) względem rozwiązania otrzymanego literaturowym [11] algorytmem GASA. Ponadto komentarza wymagają dwa ostatnie wiersze wszystkie i średnia zawarte w tabeli 2. Pierwszy z nich zawiera wartości parametrów uzyskane dla najlepiej dobranego, jednakowego dla wszystkich grup, poziomu mutacji. Ostatni wiersz zawiera natomiast średnie wartości parametrów uzyskane w przypadku gdy dla każdej z grup przykładów poziom mutacji wyznaczany był indywidualnie. 20

21 Tabela 2: Wyznaczony poziom mutacji L oraz odpowiadająca mu średnia jakość generowanych rozwiązań ρ [%], testowanych operatorów mutacji Optymalny poziom mutacji L Grupa Średni błąd ρ dla mutacji L n m SSw Swp Ins Inv SSw Swp Ins Inv wszystkie średnia Tabela 3: Średnia jakość ρ [%] generowanych rozwiązań dla badanych metod automatycznej mutacji, testowanych operatorów mutacja F U LL mutacja SIN GLE mutacja BLIN D Grupa n m SSw Swp Ins Inv SSw Swp Ins Inv SSw Swp Ins Inv wszystkie Ocena wyników Na początku rozdziału dotyczącego wyboru operatora mutacji, wypunktowane zostały główne cele stosowania mutacji w algorytmach genetycznych. 21

22 Z obserwacji przykładowego przebiegu algorytmu z automatycznie dobieraną mutacją (rysunek 3) widać dokładnie, iż w prezentowanym przykładzie spełnia ona wszystkie wymagania dotyczące prawidłowej mutacji. Główną wadą zaproponowanego podejścia okazał się fakt, iż istnieją operatory mutacji (w rozważanym przypadku operator SSw) dające mierne rezultaty prezentowanego automatycznego doboru mutacji. Niemniej dla pozostałych trzech operatorów Swp, Ins i Inv, wyniki zaproponowanej automatycznej mutacji są bardzo dobre. Ograniczając się do analizy wyżej wymienionych trzech operatorów mutacji, z porównania tabel 2 i 3 wynika, iż w rozważanym problemie, każdy z wariantów automatycznej mutacji jest statystycznie lepszy niż najlepiej dobrana mutacja klasyczna. Co więcej w przypadku gdy najlepszy możliwy poziom mutacji dobierany jest indywidualnie dla każdej z grup przykładów, algorytmy z automatyczną mutacją wypadają tylko nieznacznie słabiej. Należy tu zauważyć, że ostatnie z porównań stawia automatyczną mutację w niekorzystnej pozycji. Jest tak dlatego, gdyż omawiany test polegał na jednokrotnym uruchomieniu wszystkich algorytmów i otrzymane wyniki są częściowo losowe.w algorytmie o stałym poziomie mutacji zdarza się, że dla jakiegoś poziomu mutacji L (statystycznie słabszego niż poziom L bliższy poziomowi optymalnemu L ) wartości ρ z pojedynczych przebiegów będą korzystniejsze niż dla poziomu L. W takim przypadku do oceny porównawczej uwzględnia się najlepsze z otrzymanych rezultatów, to jest przebiegi dla poziomu L zamiast przebieg dla poziomu L. Eksperyment ten eliminuje więc pojedyncze wpadki algorytmu klasycznego dla poziomu L oraz wybiera wyjątkowo udane przypadki przebiegów o innych poziomach mutacji w szczególności o poziomie L. Natomiast w algorytmie z automatyczną mutacją do oceny podawany jest zawsze tylko jeden z przebiegów który mógł wypaść słabiej lub lepiej niż w przypadku średnim. 3.4 Wybór operator krzyżowania Zadaniem operatorów krzyżowania jest tworzenie nowych osobników z rozwiązań rodzicielskich. Pomimo, iż w procesie tworzenia nowego osobnika występuje pewna losowość, w prawidłowo dobrane operatory krzyżowania zapewniają, iż powstające osobniki dziedziczą geny (pewne własności reprezentowanych rozwiązań) po swoich rodzicach. Pewną analogią tłumaczącą znaczenie krzyżowania jest przyrównanie danego osobnika do pomysłu tworzącego rozwiązanie a całej populacji do ze- 22

23 stawu idei rozwiązań. W analogii tej nowy osobnik jest niczym innym jak innowacyjnym pomysłem. Zastanawiając się czym są nowatorskie pomysły dochodzimy do wniosku, iż są to najczęściej różnego rodzaju kombinacje koncepcji sprawdzających się w przeszłości. Tak też, generowane nowe osobniki są pewnego rodzaju krzyżówką najlepszych rozwiązań z przeszłości (klasycznie krzyżówką najlepiej przystosowanych osobników poprzedniego pokolenia). Sposób oceny przydatności operatorów krzyżowania wydaje się więc oczywisty. Operator jest tym lepszy im z danej populacji początkowej generuje lepsze w sensie wartości funkcji przystosowania osobniki. Ponieważ klasycznie operatory krzyżowania łączą ze sobą parę osobników, w celu utworzenia osobnika będącego krzyżówką więcej niż dwóch rozwiązań należy przeprowadzić kilka iteracji krzyżowań. Drugim z kryterium oceny operatora krzyżowania jest szybkość (liczona w pokoleniach algorytmu) znajdowanego minimum lokalnego. Na podstawie wyżej wymienionych spostrzeżeń, do oceny jakości operatora krzyżowania proponuję przyjąć wartość funkcji celu znalezionego rozwiązania w próbnym uruchomieniu algorytmu genetycznego bez mutacji z ustaloną stosunkowo niewielką liczbą symulowanych pokoleń. Taka ocena promuje operatory szybko znajdujące dobre minima lokalne. Zwiększając liczbę symulowanych pokoleń w testowym przebiegu algorytmu zmniejszamy wagę przywiązywaną do szybkości znajdowania minimum lokalnych koncentrując się na ich jakości. Pozwala to na ustalenie żądanych priorytetów pomiędzy szybkością i jakością znajdowanych rozwiązań. Ponieważ, w algorytmie genetycznym tak jak w ekosystemie istnieją bardzo różne i subtelne powiązania pomiędzy jego elementami, wydaję się, iż dobrze byłoby uwzględnienie wyboru operatora krzyżowania od wcześniej dobranych już parametrów mutacji. Druga, bardzo intuicyjna metoda doboru operatora krzyżowania polega na uruchomieniu wpełni wysterowanego algorytmu genetycznego na pewną liczbę iteracji dla wszystkich testowanych operatorów krzyżowania na pewnej puli przykładów testowych. Taki test jest oczywiście czasochłony i proponuje się wykonanie go jednorazowo dla nowo badanego problemu. Badania numeryczne Badaniom podane zostaną następujące operatory krzyżowania: {LX, RX, LRX, MX }. Pierwsze dwa są operatorami jedno-punktowymi, natomiast kolejne dwa to operatory dwu punktowe. Przed szczegółowym opisem poszczególnych operatorów zdefiniuję najpierw bazowe operacje na ciągach. 23

24 Operator łączący dwa ciągi w jeden poprzez ułożeniu kolejno wszystkich elementów ciągu będącego po lewej stronie operatora a następnie wszystkich elementów z ciągu będącego po prawej stronie operatora. Operator tworzący ciąg z elementów ciągu będącego po lewej stronie operatora pomniejszonego o elementy występujące w ciągu po prawej stronie operatora. Oba z operatorów są lewostronnie łączne oraz posiadają jednakowy priorytet kolejności wykonywania działań. Ponadto niech dla dowolnego ciągu X = (x 0, x 1,..., x n ) symbol X [j,k), 0 j k n + 1 oznacza ciąg X [j,k) = (x j, x j+1,..., x k 1 ). Oznaczenia rodzicielskich permutacji ładujących to odpowiednio A = (a 0, a 1,..., a n 1 ) oraz B = (b 0, b 1,..., b n 1 ). Dodatkowo niech j oznacza punkt krzyżowania dla operatorów jedno-punktowych oraz k oznacza drugi punkt krzyżowania dla operatorów dwu-punktowych. Stosując wprowadzoną notację opis testowanych operatorów krzyżowania przedstawić można zwięźle w postaci: LX(A, B, j) = A [0,j) (B A [0,j) ), (10) lewa część tworzonej permutacji skopiowana jest z rodzica A a pozostałe elementy permutacji ułożone są w kolejności występowania w rodzicu B. RX(A, B, j) = (B A [j,n) ) A [j,n), (11) prawa część tworzonej permutacji skopiowana jest z rodzica A a pozostałe elementy permutacji ułożone są w kolejności występowania w rodzicu B. LRX(A, B, j, k) = A [0,j) (B A [0,j) A [k,n) ) A [k,n), (12) lewa oraz prawa część tworzonej permutacji skopiowana jest z rodzica A zaś środek uzupełniany jest brakującymi elementami w kolejności występowania w B. MX(A, B, j, k) = (B A [j,k) ) [0,j) A [j,k) (B A [j,k) ) [j,j k+n), (13) środkowa część tworzonej permutacji skopiowana jest z rodzica A a lewa i prawa strona permutacji uzupełniana jest brakującymi elementami w kolejności występowania w rodzicu B. W tabeli 4 przedstawiono wartości jakości ρ rozwiązań uzyskanych dla przebiegu wstępnego i właściwego. Przebieg wstępny jest próbą oceny przydatności poszczególnych operatorów krzyżowania natomiast w przebiegu właściwym następuje dokładna weryfikacja tej oceny. Przebieg wstępny uzyskiwany jest poprzez uruchomienie algorytmu genetycznego bez mutacji oraz 24

SYSTEMY STEROWANIA. pod redakcją Włodzimierza Greblickiego i Czesława Smutnickiego

SYSTEMY STEROWANIA. pod redakcją Włodzimierza Greblickiego i Czesława Smutnickiego SYSTEMY STEROWANIA pod redakcją Włodzimierza Greblickiego i Czesława Smutnickiego 21 kwietnia 2006 Redakcja naukowa Włodzimierz Greblicki Czesław Smutnicki Instytut Cybernetyki Technicznej Politechniki

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

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO. Rzeczywistość (istniejąca lub projektowana).. Model fizyczny. 3. Model matematyczny (optymalizacyjny): a. Zmienne projektowania

Bardziej szczegółowo

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

Zadanie 5 - Algorytmy genetyczne (optymalizacja) Zadanie 5 - Algorytmy genetyczne (optymalizacja) Marcin Pietrzykowski mpietrzykowski@wi.zut.edu.pl wersja 1.0 1 Cel Celem zadania jest zapoznanie się z Algorytmami Genetycznymi w celu rozwiązywanie zadania

Bardziej szczegółowo

Algorytmy genetyczne

Algorytmy genetyczne 9 listopada 2010 y ewolucyjne - zbiór metod optymalizacji inspirowanych analogiami biologicznymi (ewolucja naturalna). Pojęcia odwzorowujące naturalne zjawiska: Osobnik Populacja Genotyp Fenotyp Gen Chromosom

Bardziej szczegółowo

NOWE WARIANTY OPERATORÓW GENETYCZNYCH DLA PROBLEMÓW Z KRYTERIUM SUMACYJNYM

NOWE WARIANTY OPERATORÓW GENETYCZNYCH DLA PROBLEMÓW Z KRYTERIUM SUMACYJNYM NOWE WARIANTY OPERATORÓW GENETYCZNYCH DLA PROBLEMÓW Z KRYTERIUM SUMACYJNYM Mariusz MAKUCHOWSKI Streszczenie: W pracy analizuje się własności sumacyjnego kryterium w permutacyjnym problemie przepływowym.

Bardziej szczegółowo

Zadania laboratoryjne i projektowe - wersja β

Zadania laboratoryjne i projektowe - wersja β Zadania laboratoryjne i projektowe - wersja β 1 Laboratorium Dwa problemy do wyboru (jeden do realizacji). 1. Water Jug Problem, 2. Wieże Hanoi. Water Jug Problem Ograniczenia dla każdej z wersji: pojemniki

Bardziej szczegółowo

Algorytmy genetyczne

Algorytmy genetyczne Algorytmy genetyczne Motto: Zamiast pracowicie poszukiwać najlepszego rozwiązania problemu informatycznego lepiej pozwolić, żeby komputer sam sobie to rozwiązanie wyhodował! Algorytmy genetyczne służą

Bardziej szczegółowo

6. Klasyczny algorytm genetyczny. 1

6. Klasyczny algorytm genetyczny. 1 6. Klasyczny algorytm genetyczny. 1 Idea algorytmu genetycznego została zaczerpnięta z nauk przyrodniczych opisujących zjawiska doboru naturalnego i dziedziczenia. Mechanizmy te polegają na przetrwaniu

Bardziej szczegółowo

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA PLAN WYKŁADU Operator krzyżowania Operator mutacji Operator inwersji Sukcesja Przykłady symulacji AG Kodowanie - rodzaje OPTYMALIZACJA GLOBALNA Wykład 3 dr inż. Agnieszka Bołtuć OPERATOR KRZYŻOWANIA Wymiana

Bardziej szczegółowo

Dobór parametrów algorytmu ewolucyjnego

Dobór parametrów algorytmu ewolucyjnego Dobór parametrów algorytmu ewolucyjnego 1 2 Wstęp Algorytm ewolucyjny posiada wiele parametrów. Przykładowo dla algorytmu genetycznego są to: prawdopodobieństwa stosowania operatorów mutacji i krzyżowania.

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

Algorytmy genetyczne. Paweł Cieśla. 8 stycznia 2009

Algorytmy genetyczne. Paweł Cieśla. 8 stycznia 2009 Algorytmy genetyczne Paweł Cieśla 8 stycznia 2009 Genetyka - nauka o dziedziczeniu cech pomiędzy pokoleniami. Geny są czynnikami, które decydują o wyglądzie, zachowaniu, rozmnażaniu każdego żywego organizmu.

Bardziej szczegółowo

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia niestacjonarne

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia niestacjonarne Algorytmy genetyczne Materiały do laboratorium PSI Studia niestacjonarne Podstawowy algorytm genetyczny (PAG) Schemat blokowy algorytmu genetycznego Znaczenia, pochodzących z biologii i genetyki, pojęć

Bardziej szczegółowo

Programowanie celowe #1

Programowanie celowe #1 Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem

Bardziej szczegółowo

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Autoreferat do rozprawy doktorskiej OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Michał Mazur Gliwice 2016 1 2 Montaż samochodów na linii w

Bardziej szczegółowo

Algorytmy ewolucyjne NAZEWNICTWO

Algorytmy ewolucyjne NAZEWNICTWO Algorytmy ewolucyjne http://zajecia.jakubw.pl/nai NAZEWNICTWO Algorytmy ewolucyjne nazwa ogólna, obejmująca metody szczegółowe, jak np.: algorytmy genetyczne programowanie genetyczne strategie ewolucyjne

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

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

Optymalizacja parametrów w strategiach inwestycyjnych dla event-driven tradingu - metodologia badań

Optymalizacja parametrów w strategiach inwestycyjnych dla event-driven tradingu - metodologia badań Raport 1/2015 Optymalizacja parametrów w strategiach inwestycyjnych dla event-driven tradingu - metodologia badań autor: Michał Osmoła INIME Instytut nauk informatycznych i matematycznych z zastosowaniem

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

Generowanie i optymalizacja harmonogramu za pomoca

Generowanie i optymalizacja harmonogramu za pomoca 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

Bardziej szczegółowo

ALGORYTMY GENETYCZNE ćwiczenia

ALGORYTMY GENETYCZNE ćwiczenia ćwiczenia Wykorzystaj algorytmy genetyczne do wyznaczenia minimum globalnego funkcji testowej: 1. Wylosuj dwuwymiarową tablicę 100x2 liczb 8-bitowych z zakresu [-100; +100] reprezentujących inicjalną populację

Bardziej szczegółowo

9.9 Algorytmy przeglądu

9.9 Algorytmy przeglądu 14 9. PODSTAWOWE PROBLEMY JEDNOMASZYNOWE 9.9 Algorytmy przeglądu Metody przeglądu dla problemu 1 r j,q j C max były analizowane między innymi w pracach 25, 51, 129, 238. Jak dotychczas najbardziej elegancka

Bardziej szczegółowo

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany. Przedstawiamy algorytmy porządkowania dowolnej liczby elementów, którymi mogą być liczby, jak również elementy o bardziej złożonej postaci (takie jak słowa i daty). Porządkowanie, nazywane również często

Bardziej szczegółowo

Optymalizacja parametrów w strategiach inwestycyjnych dla event-driven tradingu dla odczytu Australia Employment Change

Optymalizacja parametrów w strategiach inwestycyjnych dla event-driven tradingu dla odczytu Australia Employment Change Raport 4/2015 Optymalizacja parametrów w strategiach inwestycyjnych dla event-driven tradingu dla odczytu Australia Employment Change autor: Michał Osmoła INIME Instytut nauk informatycznych i matematycznych

Bardziej szczegółowo

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia stacjonarne i niestacjonarne

Algorytmy genetyczne. Materiały do laboratorium PSI. Studia stacjonarne i niestacjonarne Algorytmy genetyczne Materiały do laboratorium PSI Studia stacjonarne i niestacjonarne Podstawowy algorytm genetyczny (PAG) Schemat blokowy algorytmu genetycznego Znaczenia, pochodzących z biologii i genetyki,

Bardziej szczegółowo

Weryfikacja hipotez statystycznych. KG (CC) Statystyka 26 V / 1

Weryfikacja hipotez statystycznych. KG (CC) Statystyka 26 V / 1 Weryfikacja hipotez statystycznych KG (CC) Statystyka 26 V 2009 1 / 1 Sformułowanie problemu Weryfikacja hipotez statystycznych jest drugą (po estymacji) metodą uogólniania wyników uzyskanych w próbie

Bardziej szczegółowo

Priorytetyzacja przypadków testowych za pomocą macierzy

Priorytetyzacja przypadków testowych za pomocą macierzy Priorytetyzacja przypadków testowych za pomocą macierzy W niniejszym artykule przedstawiony został problem przyporządkowania priorytetów do przypadków testowych przed rozpoczęciem testów oprogramowania.

Bardziej szczegółowo

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych. Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą

Bardziej szczegółowo

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych Algorytm Genetyczny zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych Dlaczego Algorytmy Inspirowane Naturą? Rozwój nowych technologii: złożone problemy obliczeniowe w

Bardziej szczegółowo

Strefa pokrycia radiowego wokół stacji bazowych. Zasięg stacji bazowych Zazębianie się komórek

Strefa pokrycia radiowego wokół stacji bazowych. Zasięg stacji bazowych Zazębianie się komórek Problem zapożyczania kanałów z wykorzystaniem narzędzi optymalizacji Wprowadzenie Rozwiązanie problemu przydziału częstotliwości prowadzi do stanu, w którym każdej stacji bazowej przydzielono żądaną liczbę

Bardziej szczegółowo

Metody Rozmyte i Algorytmy Ewolucyjne

Metody Rozmyte i Algorytmy Ewolucyjne mgr inż. Wydział Matematyczno-Przyrodniczy Szkoła Nauk Ścisłych Uniwersytet Kardynała Stefana Wyszyńskiego Podstawowe operatory genetyczne Plan wykładu Przypomnienie 1 Przypomnienie Metody generacji liczb

Bardziej szczegółowo

Optymalizacja. Przeszukiwanie lokalne

Optymalizacja. Przeszukiwanie lokalne dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Idea sąsiedztwa Definicja sąsiedztwa x S zbiór N(x) S rozwiązań, które leżą blisko rozwiązania x

Bardziej szczegółowo

Algorytmy genetyczne w optymalizacji

Algorytmy genetyczne w optymalizacji Algorytmy genetyczne w optymalizacji Literatura 1. David E. Goldberg, Algorytmy genetyczne i ich zastosowania, WNT, Warszawa 1998; 2. Zbigniew Michalewicz, Algorytmy genetyczne + struktury danych = programy

Bardziej szczegółowo

Analiza składowych głównych. Wprowadzenie

Analiza składowych głównych. Wprowadzenie Wprowadzenie jest techniką redukcji wymiaru. Składowe główne zostały po raz pierwszy zaproponowane przez Pearsona(1901), a następnie rozwinięte przez Hotellinga (1933). jest zaliczana do systemów uczących

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

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych autor: Robert Drab opiekun naukowy: dr inż. Paweł Rotter 1. Wstęp Zagadnienie generowania trójwymiarowego

Bardziej szczegółowo

Politechnika Wrocławska Wydział Elektroniki INFORMATYKA SYSTEMÓW AUTONOMICZNYCH. Heurystyka, co to jest, potencjalne zastosowania

Politechnika Wrocławska Wydział Elektroniki INFORMATYKA SYSTEMÓW AUTONOMICZNYCH. Heurystyka, co to jest, potencjalne zastosowania Politechnika Wrocławska Wydział Elektroniki INFORMATYKA SYSTEMÓW AUTONOMICZNYCH Autor: Łukasz Patyra indeks: 133325 Prowadzący zajęcia: dr inż. Marek Piasecki Ocena pracy: Wrocław 2007 Spis treści 1 Wstęp

Bardziej szczegółowo

Optymalizacja. Wybrane algorytmy

Optymalizacja. Wybrane algorytmy dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Andrzej Jaszkiewicz Problem optymalizacji kombinatorycznej Problem optymalizacji kombinatorycznej jest problemem

Bardziej szczegółowo

PDF created with FinePrint pdffactory Pro trial version http://www.fineprint.com

PDF created with FinePrint pdffactory Pro trial version http://www.fineprint.com Analiza korelacji i regresji KORELACJA zależność liniowa Obserwujemy parę cech ilościowych (X,Y). Doświadczenie jest tak pomyślane, aby obserwowane pary cech X i Y (tzn i ta para x i i y i dla różnych

Bardziej szczegółowo

Zajęcia nr. 3 notatki

Zajęcia nr. 3 notatki Zajęcia nr. 3 notatki 22 kwietnia 2005 1 Funkcje liczbowe wprowadzenie Istnieje nieskończenie wiele funkcji w matematyce. W dodaktu nie wszystkie są liczbowe. Rozpatruje się funkcje które pobierają argumenty

Bardziej szczegółowo

Optymalizacja ciągła

Optymalizacja ciągła Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej

Bardziej szczegółowo

Obliczenia iteracyjne

Obliczenia iteracyjne Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej

Bardziej szczegółowo

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny Algorytmy stochastyczne, wykład 01 J. Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2014-02-21 In memoriam prof. dr hab. Tomasz Schreiber (1975-2010) 1 2 3 Różne Orientacyjny

Bardziej szczegółowo

Inteligentna analiza danych

Inteligentna analiza danych Numer indeksu 150946 Michał Moroz Imię i nazwisko Numer indeksu 150875 Grzegorz Graczyk Imię i nazwisko kierunek: Informatyka rok akademicki: 2010/2011 Inteligentna analiza danych Ćwiczenie I Wskaźniki

Bardziej szczegółowo

Nowe warianty operatorów genetycznych dla problemów z kryterium sumacyjnym

Nowe warianty operatorów genetycznych dla problemów z kryterium sumacyjnym Nowe warianty operatorów genetycznych dla problemów z kryterium sumacyjnym Mariusz MAKUCHOWSKI Politechnika Wrocławska, Instytut Informatyki, Automatyki i Robotyki 50-370 Wrocław, Wybrzeże Wyspiańskiego

Bardziej szczegółowo

LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE

LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania i mutacji na skuteczność poszukiwań AE Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny, Politechnika Śląska www.imio.polsl.pl METODY HEURYSTYCZNE LABORATORIUM 4: Algorytmy ewolucyjne cz. 2 wpływ operatorów krzyżowania

Bardziej szczegółowo

Porównywanie populacji

Porównywanie populacji 3 Porównywanie populacji 2 Porównywanie populacji Tendencja centralna Jednostki (w grupie) według pewnej zmiennej porównuje się w ten sposób, że dokonuje się komparacji ich wartości, osiągniętych w tej

Bardziej szczegółowo

Luty 2001 Algorytmy (4) 2000/2001

Luty 2001 Algorytmy (4) 2000/2001 Mając dany zbiór elementów, chcemy znaleźć w nim element największy (maksimum), bądź najmniejszy (minimum). We wszystkich naturalnych metodach znajdywania najmniejszego i największego elementu obecne jest

Bardziej szczegółowo

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności

Bardziej szczegółowo

przetworzonego sygnału

przetworzonego sygnału Synteza falek ortogonalnych na podstawie oceny przetworzonego sygnału Instytut Informatyki Politechnika Łódzka 28 lutego 2012 Plan prezentacji 1 Sformułowanie problemu 2 3 4 Historia przekształcenia falkowego

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

Programowanie genetyczne - gra SNAKE

Programowanie genetyczne - gra SNAKE PRACOWNIA Z 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

Metody przeszukiwania

Metody przeszukiwania Metody przeszukiwania Co to jest przeszukiwanie Przeszukiwanie polega na odnajdywaniu rozwiązania w dyskretnej przestrzeni rozwiązao. Zwykle przeszukiwanie polega na znalezieniu określonego rozwiązania

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

Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji

Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji Dr Joanna Banaś Zakład Badań Systemowych Instytut Sztucznej Inteligencji i Metod Matematycznych Wydział Informatyki Politechniki

Bardziej szczegółowo

LABORATORIUM 8 WERYFIKACJA HIPOTEZ STATYSTYCZNYCH PARAMETRYCZNE TESTY ISTOTNOŚCI

LABORATORIUM 8 WERYFIKACJA HIPOTEZ STATYSTYCZNYCH PARAMETRYCZNE TESTY ISTOTNOŚCI LABORATORIUM 8 WERYFIKACJA HIPOTEZ STATYSTYCZNYCH PARAMETRYCZNE TESTY ISTOTNOŚCI WERYFIKACJA HIPOTEZ Hipoteza statystyczna jakiekolwiek przypuszczenie dotyczące populacji generalnej- jej poszczególnych

Bardziej szczegółowo

Elementy modelowania matematycznego

Elementy modelowania matematycznego Elementy modelowania matematycznego Modelowanie algorytmów klasyfikujących. Podejście probabilistyczne. Naiwny klasyfikator bayesowski. Modelowanie danych metodą najbliższych sąsiadów. Jakub Wróblewski

Bardziej szczegółowo

Wybrane podstawowe rodzaje algorytmów

Wybrane podstawowe rodzaje algorytmów Wybrane podstawowe rodzaje algorytmów Tomasz Głowacki tglowacki@cs.put.poznan.pl Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii informatycznych

Bardziej szczegółowo

Sterowanie wielkością zamówienia w Excelu - cz. 3

Sterowanie wielkością zamówienia w Excelu - cz. 3 Sterowanie wielkością zamówienia w Excelu - cz. 3 21.06.2005 r. 4. Planowanie eksperymentów symulacyjnych Podczas tego etapu ważne jest określenie typu rozkładu badanej charakterystyki. Dzięki tej informacji

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 1 Kwantyzacja skalarna Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 10.05.005 Kwantyzacja polega na reprezentowaniu dużego zbioru wartości (być może nieskończonego) za pomocą wartości

Bardziej szczegółowo

Optymalizacja harmonogramów budowlanych - szeregowanie zadań. Mgr inż. Aleksandra Radziejowska AGH Akademia Górniczo-Hutnicza w Krakowie

Optymalizacja harmonogramów budowlanych - szeregowanie zadań. Mgr inż. Aleksandra Radziejowska AGH Akademia Górniczo-Hutnicza w Krakowie Optymalizacja harmonogramów budowlanych - szeregowanie zadań Mgr inż. Aleksandra Radziejowska AGH Akademia Górniczo-Hutnicza w Krakowie Opis zagadnienia Zadania dotyczące szeregowania zadań należą do szerokiej

Bardziej szczegółowo

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu 1 Metody rozwiązywania równań nieliniowych. Postawienie problemu Dla danej funkcji ciągłej f znaleźć wartości x, dla których f(x) = 0. (1) 2 Przedział izolacji pierwiastka Będziemy zakładać, że równanie

Bardziej szczegółowo

Strategie ewolucyjne (ang. evolu4on strategies)

Strategie ewolucyjne (ang. evolu4on strategies) Strategie ewolucyjne (ang. evolu4on strategies) Strategia ewolucyjna (1+1) W Strategii Ewolucyjnej(1 + 1), populacja złożona z jednego osobnika generuje jednego potomka. Kolejne (jednoelementowe) populacje

Bardziej szczegółowo

Wprowadzenie do analizy korelacji i regresji

Wprowadzenie do analizy korelacji i regresji Statystyka dla jakości produktów i usług Six sigma i inne strategie Wprowadzenie do analizy korelacji i regresji StatSoft Polska Wybrane zagadnienia analizy korelacji Przy analizie zjawisk i procesów stanowiących

Bardziej szczegółowo

Analiza wariancji - ANOVA

Analiza wariancji - ANOVA Analiza wariancji - ANOVA Analiza wariancji jest metodą pozwalającą na podział zmienności zaobserwowanej wśród wyników eksperymentalnych na oddzielne części. Każdą z tych części możemy przypisać oddzielnemu

Bardziej szczegółowo

8. Neuron z ciągłą funkcją aktywacji.

8. Neuron z ciągłą funkcją aktywacji. 8. Neuron z ciągłą funkcją aktywacji. W tym ćwiczeniu zapoznamy się z modelem sztucznego neuronu oraz przykładem jego wykorzystania do rozwiązywanie prostego zadania klasyfikacji. Neuron biologiczny i

Bardziej szczegółowo

Rozdział 1 PROGRAMOWANIE LINIOWE

Rozdział 1 PROGRAMOWANIE LINIOWE Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.2 Ćwiczenia komputerowe Ćwiczenie 1.1 Wykorzystując

Bardziej szczegółowo

t i L i T i

t i L i T i Planowanie oparte na budowaniu modelu struktury przedsięwzięcia za pomocą grafu nazywa sie planowaniem sieciowym. Stosuje się do planowania i kontroli realizacji założonych przedsięwzięć gospodarczych,

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

Metody Optymalizacji: Przeszukiwanie z listą tabu

Metody Optymalizacji: Przeszukiwanie z listą tabu Metody Optymalizacji: Przeszukiwanie z listą tabu Wojciech Kotłowski Instytut Informatyki Politechniki Poznańskiej email: imię.nazwisko@cs.put.poznan.pl pok. 2 (CW) tel. (61)665-2936 konsultacje: wtorek

Bardziej szczegółowo

Wstęp do Techniki Cyfrowej... Teoria automatów

Wstęp do Techniki Cyfrowej... Teoria automatów Wstęp do Techniki Cyfrowej... Teoria automatów Alfabety i litery Układ logiczny opisywany jest przez wektory, których wartości reprezentowane są przez ciągi kombinacji zerojedynkowych. Zwiększenie stopnia

Bardziej szczegółowo

LABORATORIUM 8 WERYFIKACJA HIPOTEZ STATYSTYCZNYCH PARAMETRYCZNE TESTY ISTOTNOŚCI

LABORATORIUM 8 WERYFIKACJA HIPOTEZ STATYSTYCZNYCH PARAMETRYCZNE TESTY ISTOTNOŚCI LABORATORIUM 8 WERYFIKACJA HIPOTEZ STATYSTYCZNYCH PARAMETRYCZNE TESTY ISTOTNOŚCI WERYFIKACJA HIPOTEZ Hipoteza statystyczna jakiekolwiek przypuszczenie dotyczące populacji generalnej- jej poszczególnych

Bardziej szczegółowo

Systemy uczące się Lab 4

Systemy uczące się Lab 4 Systemy uczące się Lab 4 dr Przemysław Juszczuk Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny 26 X 2018 Projekt zaliczeniowy Podstawą zaliczenia ćwiczeń jest indywidualne wykonanie projektu uwzględniającego

Bardziej szczegółowo

Analiza wielokryterialna wstęp do zagadnienia

Analiza wielokryterialna wstęp do zagadnienia Organizacja, przebieg i zarządzanie inwestycją budowlaną Analiza wielokryterialna wstęp do zagadnienia dr hab. Mieczysław Połoński prof. SGGW 1 Wprowadzenie Jednym z podstawowych, a równocześnie najważniejszym

Bardziej szczegółowo

VI WYKŁAD STATYSTYKA. 9/04/2014 B8 sala 0.10B Godz. 15:15

VI WYKŁAD STATYSTYKA. 9/04/2014 B8 sala 0.10B Godz. 15:15 VI WYKŁAD STATYSTYKA 9/04/2014 B8 sala 0.10B Godz. 15:15 WYKŁAD 6 WERYFIKACJA HIPOTEZ STATYSTYCZNYCH PARAMETRYCZNE TESTY ISTOTNOŚCI Weryfikacja hipotez ( błędy I i II rodzaju, poziom istotności, zasady

Bardziej szczegółowo

ALGORYTMY GENETYCZNE (wykład + ćwiczenia)

ALGORYTMY GENETYCZNE (wykład + ćwiczenia) ALGORYTMY GENETYCZNE (wykład + ćwiczenia) Prof. dr hab. Krzysztof Dems Treści programowe: 1. Metody rozwiązywania problemów matematycznych i informatycznych.. Elementarny algorytm genetyczny: definicja

Bardziej szczegółowo

Testy De Jonga. Problemy. 1 Optymalizacja dyskretna i ciągła

Testy De Jonga. Problemy. 1 Optymalizacja dyskretna i ciągła Problemy 1 Optymalizacja dyskretna i ciągła Problemy 1 Optymalizacja dyskretna i ciągła 2 Środowisko pomiarowe De Jonga Problemy 1 Optymalizacja dyskretna i ciągła 2 Środowisko pomiarowe De Jonga 3 Ocena

Bardziej szczegółowo

Obrona rozprawy doktorskiej Neuro-genetyczny system komputerowy do prognozowania zmiany indeksu giełdowego

Obrona rozprawy doktorskiej Neuro-genetyczny system komputerowy do prognozowania zmiany indeksu giełdowego IBS PAN, Warszawa 9 kwietnia 2008 Obrona rozprawy doktorskiej Neuro-genetyczny system komputerowy do prognozowania zmiany indeksu giełdowego mgr inż. Marcin Jaruszewicz promotor: dr hab. inż. Jacek Mańdziuk,

Bardziej szczegółowo

Wielokryterialne harmonogramowanie portfela projektów. Bogumiła Krzeszowska Katedra Badań Operacyjnych

Wielokryterialne harmonogramowanie portfela projektów. Bogumiła Krzeszowska Katedra Badań Operacyjnych Wielokryterialne harmonogramowanie portfela projektów Bogumiła Krzeszowska Katedra Badań Operacyjnych Problem Należy utworzyć harmonogram portfela projektów. Poprzez harmonogram portfela projektów będziemy

Bardziej szczegółowo

W kolejnym kroku należy ustalić liczbę przedziałów k. W tym celu należy wykorzystać jeden ze wzorów:

W kolejnym kroku należy ustalić liczbę przedziałów k. W tym celu należy wykorzystać jeden ze wzorów: Na dzisiejszym wykładzie omówimy najważniejsze charakterystyki liczbowe występujące w statystyce opisowej. Poszczególne wzory będziemy podawać w miarę potrzeby w trzech postaciach: dla szeregu szczegółowego,

Bardziej szczegółowo

Algorytmy ewolucyjne - algorytmy genetyczne. I. Karcz-Dulęba

Algorytmy ewolucyjne - algorytmy genetyczne. I. Karcz-Dulęba Algorytmy ewolucyjne - algorytmy genetyczne I. Karcz-Dulęba Algorytmy klasyczne a algorytmy ewolucyjne Przeszukiwanie przestrzeni przez jeden punkt bazowy Przeszukiwanie przestrzeni przez zbiór punktów

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik Zadanie transportowe i problem komiwojażera Tadeusz Trzaskalik 3.. Wprowadzenie Słowa kluczowe Zbilansowane zadanie transportowe Rozwiązanie początkowe Metoda minimalnego elementu macierzy kosztów Metoda

Bardziej szczegółowo

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH Jednym z zastosowań metod numerycznych jest wyznaczenie pierwiastka lub pierwiastków równania nieliniowego. W tym celu stosuje się szereg metod obliczeniowych np:

Bardziej szczegółowo

Analiza korespondencji

Analiza korespondencji Analiza korespondencji Kiedy stosujemy? 2 W wielu badaniach mamy do czynienia ze zmiennymi jakościowymi (nominalne i porządkowe) typu np.: płeć, wykształcenie, status palenia. Punktem wyjścia do analizy

Bardziej szczegółowo

Temat: Algorytmy zachłanne

Temat: Algorytmy zachłanne Temat: Algorytmy zachłanne Algorytm zachłanny ( ang. greedy algorithm) wykonuje zawsze działanie, które wydaje się w danej chwili najkorzystniejsze. Wybiera zatem lokalnie optymalną możliwość w nadziei,

Bardziej szczegółowo

1 n. s x x x x. Podstawowe miary rozproszenia: Wariancja z populacji: Czasem stosuje się też inny wzór na wariancję z próby, tak policzy Excel:

1 n. s x x x x. Podstawowe miary rozproszenia: Wariancja z populacji: Czasem stosuje się też inny wzór na wariancję z próby, tak policzy Excel: Wariancja z populacji: Podstawowe miary rozproszenia: 1 1 s x x x x k 2 2 k 2 2 i i n i1 n i1 Czasem stosuje się też inny wzór na wariancję z próby, tak policzy Excel: 1 k 2 s xi x n 1 i1 2 Przykład 38,

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

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

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

166 Wstęp do statystyki matematycznej

166 Wstęp do statystyki matematycznej 166 Wstęp do statystyki matematycznej Etap trzeci realizacji procesu analizy danych statystycznych w zasadzie powinien rozwiązać nasz zasadniczy problem związany z identyfikacją cechy populacji generalnej

Bardziej szczegółowo

0 + 0 = 0, = 1, = 1, = 0.

0 + 0 = 0, = 1, = 1, = 0. 5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,

Bardziej szczegółowo

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1) ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL 1. Problem Rozważmy układ dwóch równań z dwiema niewiadomymi (x 1, x 2 ): 1 x1 sin x2 x2 cos x1 (1) Nie jest

Bardziej szczegółowo

ALGORYTM PERTURBACYJNY DLA PROBLEMU PRZEPŁYWOWEGO

ALGORYTM PERTURBACYJNY DLA PROBLEMU PRZEPŁYWOWEGO ALGORYTM PERTURBACYJNY DLA PROBLEMU PRZEPŁYWOWEGO Mariusz MAKUCHOWSKI Streszczenie: Proponowany w tej pracy algorytm perturbacyjny PNEH (dedykowany permutacyjnemu problemowi przepływowemu) pozwala na dostarczanie

Bardziej szczegółowo

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego Piotr Rybak Koło naukowe fizyków Migacz, Uniwersytet Wrocławski Piotr Rybak (Migacz UWr) Odkrywanie algorytmów kwantowych 1 / 17 Spis

Bardziej szczegółowo

3a. Wstęp: Elementarne równania i nierówności

3a. Wstęp: Elementarne równania i nierówności 3a. Wstęp: Elementarne równania i nierówności Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2017/2018 Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 3a. Wstęp: w Krakowie) Elementarne równania

Bardziej szczegółowo