6. Algorytm genetyczny przykłady zastosowań.
|
|
- Stanisław Baranowski
- 7 lat temu
- Przeglądów:
Transkrypt
1 6. Algorytm genetyczny przykłady zastosowań. 1. Zagadnienie magicznych kwadratów. Opis działania algorytmu Zagadnienie magicznych kwadratów polega na wygenerowaniu kwadratu n n, w którym elementami są liczby 1, 2,..., n 2 ułożone tak, by w każdej kolumnie, wierszu i przekątnej suma wartości liczb była taka sama i wynosiła 1+n2 2 n Rysunek 1: Magiczny kwadrat dla n = 3. Jest to zadanie łatwe jeżeli n jest stosunkowo małe. W przypadku dużych n zagadnienie jest trudne do rozwiązania. Jeżeli chcielibyśmy sprawdzić wszystkie możliwości rozmieszczenie liczb w kwadracie to otrzymamy n 2! różnych rozmieszczeń, a to przy dużych n jest bardzo duża liczba. Algorytm genetyczny wykorzystujący operatory krzyżowania i mutacji Do rozwiązania zagadnienia magicznych kwadratów wykorzystaliśmy algorytmy genetyczne. Fenotypem w naszym zadaniu jest kwadrat o boku n z rozmieszczonymi liczbami naturalnymi od 1 do n 2. Rozmieszczenie liczb w kwadracie może być dowolne, nam jednak chodzi o takie rozmieszczenie, dla którego suma elementów każdego wiersza, kolumny i przekątnej będzie taka sama. Algorytm przebiega w etapach: 1) losowanie osobników, 2) tworzenie potomstwa, 3) ocena otrzymanego potomstwa, 4) usuwanie powtarzających się chromosomów, 1
2 5) sortowanie populacji. Pojedynczy genotyp (chromosom) wchodzący w skład populacji jest ciągiem n 2 elementowym o genach należących do zbioru {1, 2,..., n 2 } (przy czym wartość genu nie powtarza się - pojedynczy chromosom jest permutacją ciągu ( n 2 ). Tworzenie potomstwa odbywa się przy wykorzystaniu operatorów genetycznych mutacji i krzyżowania oraz dodatkowej operacji zamiany segmentów genów. Krzyżowanie polega na wymianie segmentów genów między dwoma chromosomami. Mamy dwóch rodziców: rodzica 1 i rodzica 2. Aby skrzyżować dwa chromosomy dokonujemy podzielenia każdego z nich na trzy segmenty w taki sposób aby segment środkowy był jednakowej długości w obu chromosomach. Długość segmentu może być jedną z wartości {1, 2,..., n2 }. Tworzymy dwa nowe chromosomy takie same jak 2 rodzic 1 i rodzic 2. Nowe chromosomy będziemy modyfikować tak, aby wymienić między nimi środkowe segmenty. Ponieważ geny nie są liczbami 0, 1 więc wymiana nie może być bezpośrednim zastąpieniem jednego segmentu drugim, ponieważ otrzymane chromosomy zawierałyby powtórzone geny. Aby tego uniknąć stosujemy zamianę elementów przeprowadzoną w sposób następujący. Modyfikujemy pierwszego potomka. Sprawdzamy jaki gen znajduje się na pierwszym miejscu w środkowym segmencie drugiego rodzica. Zamieniamy w pierwszym potomku gen o tej samej wartości z genem znajdującym się na pierwszym miejscu w segmencie środkowym. Tę samą procedurę powtarzamy dla wszystkich genów segmentu środkowego. W analogiczny sposób modyfikujemy drugiego potomka. Przykład działania operatora krzyżowania jest przedstawiony na rys. 2. Para rodziców: [ ] [ ] I iteracja: [ ] [ ] II iteracja: [ ] [ ] III iteracja: [ ] [ ] Para potoków: [ ] [ ] Rysunek 2: Przykład działania operatora krzyżowania dla n = 3. Mutacja chromosomu to zamiana losowych dwóch genów miejscami. Taki sposób mutacji wynika z wartości genów chromosomu. Ponieważ genami są różne liczby naturalne, a nie wartości binarne, to nie ma możliwości zmiany wartości genu na przeciwną. Ponieważ chromosom jest ciągiem n 2 liczb naturalnych, wiec mutacja jest losową transpozycją. Dodatkowo stosujemy operatory zamiany segmentów genów długości n odpowiadających kolumnom, wierszom lub przekątnym. Jest to na przykład zamiana miejscami dwóch wierszy, dwóch kolumn, wiersza i kolumny lub przekątnej z wierszem czy kolumną. Omówione operatory genetyczne są stosowane w udziale procentowym: transpozycja 50%, krzyżowanie 30%, zamiany 20%. Po wygenerowaniu potomstwa dokonujemy oceny potomków. Wykorzystując funkcję oceny tworzymy nową populację główną. Do populacji tej dołączane są te chromosomy, dla których wartość funkcji oceny jest największa. Funkcja oceny przyjmuje wartości odpowiadające ilości kolumn, wierszy i przekątnych, dla których suma 2
3 wartości genów wynosi 1+n2 2 n. Maksymalną wartością funkcji oceny jest wartość 2n + 2 odpowiadająca wygenerowaniu chromosomu spełniającego warunki zadania, tzn. chromosomu, któremu odpowiada kwadrat z jednakową sumą elementów w każdym wierszu, kolumnie i na przekątnych. Jeżeli nowowygenerowane chromosomy powtarzają się z chromosomami już istniejącymi to je usuwamy. Po utworzeniu nowej populacji dokonujemy sortowania chromosomów znajdujących się w populacji w taki sposób, aby chromosomy były ułożone od największej do najmniejszej wartości funkcji oceny. Do sortowania chromosomów używamy algorytmu sortowania przez zliczanie. Jest to algorytm działający w czasie liniowym. Program kończy działanie kiedy generuje chromosom, dla którego funkcja oceny wynosi 2n + 2. Jeżeli funkcja oceny nie osiągnie takiej wartości, wówczas program kończy działanie po wykonaniu maksymalnej ilości iteracji. Maksymalna ilość iteracji test ustalona w opcjach programu. W momencie wykonania maksymalnej ilości iteracji następuje sprawdzenie wartości funkcji oceny w ostatnich iteracjach (w połowie maksymalnej liczby iteracji). Jeżeli wzrastała wartość funkcji oceny wraz ze wzrostem ilości iteracji, to czas działania programu zostaje wydłużony o połowę maksymalnej ilości iteracji. Algorytm umożliwiający działanie programu w sposób rozproszony Program jest tak napisany aby móc działać na kilku komputerach wykonujących równolegle operacje generowania nowych potomków. Wszystkie komputery wykonują operacje obliczeniowe poza jednym komputerem zarządzającym pracą całej sieci zwanym serwerem. Serwer pośredniczy w przesyłaniu danych (chromosomów) między klientami. Serwer nie wykonuje żadnych operacji obliczeniowych. W serwerze znajduje się populacja generalna (główna) składająca się z N chromosomów o najwyższej funkcji oceny. Serwer odbiera pakiety od klientów ocenia i modyfikuje populację generalną i rozsyła chromosomy do klientów. Klient wykonując algorytm genetyczny generuje z populacji podstawowej zbiór potomków, aktualizuje populację główną i przesyła do serwera chromosomy o najwyższej funkcji oceny. Rysunek 3: Działanie serwera. Serwer ma dwa wątki podstawowe, wątek główny i wątek serwera połączeń oraz 3
4 wątki odbierające dane (po jednym dla każdego połączenia). Wysylanie danych do klientów realizowane jest przez wątek główny. Wątek główny nie obsługuje odbioru. Dane odbierają wątki odbiorcze (każdy ma swoje połączenie). Watek główny dołącza odebrane z sieci pakiety i dołącza je co jakiś czas do populacji głównej. Schemat działania serwera przedstawia rys. 3. Ogólnie można powiedzieć, że serwer połączeń: 1) nasłuchuje na gnieździe, 2) jeżeli łączy się z nim klient to tworzy połączenie i generuje nowy wątek odbiorcy dla tego połączenia, 3) dla kolejki połączeń jest synchronizacja dostępu do zasobu za pomocą mutexsu, 4) w sekcji krytycznej gniazd dodaje nowy element. Wątek odbiorcy: dodaje gniazdo sieciowe, nasłuchuje w nieskończonym czasie, jeśli odebrał cały chromosom to zapisuje go do populacji tymczasowej, jeśli otrzymał część genów chromosomu to czeka na pozostały fragment, Wątek główny (co X sekund): dołącza populację tymczasową do populacji głównej, sortuje chromosomy w populacji, wysyła niewysłane chromosomy do klientów. Poniewaą poszczególne wątki korzystają ze wspólnych zasobów konieczna jest ich synchronizacja. W programie serwera posiadamy dwa zasoby współdzielone: kolejkę połączeń z klientami oraz populację tymczasową. Do synchronizacji dostępu stosujemy mutexy. Ochrona zasobów realizowana jest w następujący sposób. Zasoby dzielone i synchronizacja serwera kolejka połączeń, każdy wpis to nowe połączenie, dodawanie w wątku serwera połączeń, usuwanie elementów w wątku odbiorcy po zerwaniu połączenia, przeglądanie kolejki w wątku głównym (ostanie trzy - synchronizacja dostępu do zasobu za pomocą mutexu), populacja tymczasowa, tablica i licznik osobników oczekujących do włączenia do populacji głównej wątki odbiorcy zapisują nowy odebrany chromosom, wątek główny odczytuje chromosom i dołącza go do poulacji głównej, 4
5 (ostanie dwa - synchronizacja dostępu do zasobu za pomocą mutexu), jeśli połączenie zostaje zerwane to ( w sekcji krytycznej gniazd) usuwa gniazdo z kolejki i kończy pracę, jeśli odbierze coś z sieci to: jeśli odebrał cały chromosom to zapisuje go do populacji tymczasowej, jeśli otrzymał część genów chromosomu to czeka na pozostały fragment, Rysunek 4: Komunikacja sieciowa serwera. Rysunek 5: Zarządzanie populacją w serwerze. Jeśli chodzi o komunikację sieciową serwer i klient działają podobnie. Działanie klienta w komunikacji sieciowej można podzielić na: wątek główny, generuje potomstwo nowej populacji, dołącza populację tymczasową, 5
6 sortuje, wątek odbiorcy, nasłuchuje na gnieździe sieciowym, jeśli zerwie połączenie to ponownie nawiązuje połączenie po upływie 10s (czynność te jest powtarzana wskazaną w programie ilość razy), jeśli odbiera dane to w przypadku gdy otrzymuje cały chromosom to dodaje go do populacji tymczasowej, jeśli zaś tylko fragment czeka na pozostałą część chromosomu, wątek wysyłący, co Xs wysyła do serwera chromosomy (jeszcze nie wysłane), czeka, terline Rysunek 6: Komunikacja sieciowa i zarządzanie populacją klienta. Klient przechowuje chromosomy w dwóch różnych populacjach. Populacja główna zawiera chromosomy, które będą wysyłane do serwera. Jest tworzona z populacji tymczasowej przez wybór najlepszych osobników. Populacja tymczasowa zawiera chromosomy pochodzące z sieci, czyli od serwera, służące do nowej generacji, oraz chromosomy otrzymane w wyniku stosowania operatorów genetycznych. Synchronizacja dostępu do zasobów klienta Program serwera, podobnie jak serwer, posiada zasoby współdzielone przez wiele wątków. Z tego powodu konieczna jest ich ochrona za pomocą mutexow. Program klienta posiada następujące zasoby dzielone: populacja główna, wątek główny przekazuje na niej cały czas, modyfikuje potomstwo i sortuje, wątek wysyłający musi co pewien czas odczytać wszystkie chromosomy, by móc wysłać nowe, (powyższe - synchronizacja dostępu do zasobu za pomocą mutexu), populacja tymczasowy, 6
7 wątek odbiorcy, dodaje odebranych z sieci osobników do populacji tymczasowej, wątek główny, dołącza do populacji głównej na podstawie kryterium. Każdy komputer kliencki wykonuje operacje obliczeniowe generowania nowych osobników. Posiada populację główną osobników, którą tworzy z osobników pochodzących z własnej generacji oraz z osobników otrzymywanych z sieci od serwera. Istotne jest, jakie kryteria decydują o dołączeniu osobnika z sieci do populacji głównej klienta. Osobniki dołączane do populacji głównej klienta pochdzą z dwóch źródeł: populacji tymczasowej klienta, która jest utworzona z potomków otrzymanych w ostatniej iteracji, oraz otrzymane od serwera. Istnieje kilka sposobów dołączania nowych osobników. Jednym z nich jest tryb jedno-stado. Kryterium to pozwala na dołączenie nowego osobnika tylko w oparciu o funkcję oceny. Po upływie pewnego czasu wszyscy klienci mają bardzo podobne populacje główne. Klienci wymieniają się osobnikami z najlepszymi ocenami tak, że większość osobników jest jednakowa. Tryb jedno stado: wszyscy klienci są tak jakby jednym klientem, wszyscy mają identyczny zestaw osobników (przeprowadzana jest co pewien czas synchronizacja, ale z czasem wszyscy klienci mają tę samą populację), Innym kryterium dołączania nowego osobnika do populacji głównej klienta jest kryterium X% emigrantów. Kryterium to uwzględnia dotychczasową strukturę populacji głównej klienta. Nowych elementów dołączonych do populacji głównej może być co najwyżej X%. Taki algorytm zachowuje dużą różnorodność populacji głównych klientów i tym samym dużą różnicę między generowanymi potomkami. X% emigrantów: tylko X% osobników może być pochodzenia obcego, jeżeli populacja główna zawiera już X% osobników obcego pochodzenia to nadpisywani są najlepsi spośród nich, nie pozwala na zdominowanie jednej gałęzi nad wszystkimi stadami, Trzecią metodą dołączania osobników obcego pochodzenia jest sposób proporcjonalny. W ramach chromosomów o tej samej wartości funkcji oceny ma się znajdować tyle samo osobników własnego pochodzenia co obcego. Takie kryterium pozwala na zachowanie różnic w populacjach głównych poszczególnych klientów i przez to prowadzi do generowania przez nich innych osobników. 7
8 Proporcjonalny: przyjmowanych jest tyle samo osobników obcego pochodzenia o danej ocenie ilu osobników własnego pochodzenia znajduje się w populacji, preferowana jest zawsze najlepsze oceny wypierając słabsze osobniki, nie pozwala na dominację obcych osobników. Z obserwacji wynika, iż dominacja wszystkich populacji przez jeden typ osobnikow moze uniemożliwić rozwiązanie zadania. Może się tak stać jeśli osobnik z wysoka ocena zostanie szybko znaleziony, ale jego modyfikacje nie prowadza do rozwiązania, a jedynie do osobników o bardzo wysokiej ocenie. Na przykład osobnik ma ocenę 40 a optymalne rozwiązanie ma ocenę 42. W takim przypadku może się nie udać tak zmodyfikować tego osobnika, żeby dostać wynik. Przykład dołączania chromosomu do populacji głównej klienta. Jedno-stado Populacja głowna składa się z 20 chromosomów: 10 chromosomów o ocenie 19 7 chromosomów o ocenie 17 3 chromosomów o ocenie 15 dołączamy chromosom o ocenie 18 Nowa populacja: 10 chromosomów o ocenie 19 1 chromosom o ocenie 18 7 chromosomów o ocenie 17 2 chromosomów o ocenie 15 Ponieważ wygrywa chromosom, którego funkcja oceny ma największą wartość. X% emigrantów Populacja głowna składa się z 20 chromosomów: 10 chromosomów o ocenie 19 w tym 5 obcych 7 chromosomów o ocenie 17 w tym 4 obce 3 chromosomów o ocenie 15 w tym 0 obcych dołączamy chromosom o ocenie 18 Nowa populacja: 10 chromosomów o ocenie 19 w tym 5 obcych 1 chromosom o ocenie 18 w tym 1 obcy 6 chromosomów o ocenie 17 w tym 3 obce 3 chromosomów o ocenie 15 w tym 0 obcych Ponieważ nowy chromosom zastąpił najsłabszego spośród obcych. W ramach chromosomów z oceną 17 nastąpiła wymiana chromosomu. 8
9 Proporcjonalny Populacja głowna składa się z 20 chromosomów: 10 chromosomów o ocenie 19 w tym 5 obcych 7 chromosomów o ocenie 17 w tym 3 obce 3 chromosomów o ocenie 15 w tym 1 obcy dołączamy chromosom o ocenie 18 Nowa populacja: 10 chromosomów o ocenie 19 w tym 5 obcych 7 chromosomów o ocenie 17 w tym 3 obce 3 chromosomów o ocenie 15 w tym 1 obcy Chromosom nie został dołączony do populacji ponieważ bazowa populacja nie zawierała chromosomu o ocenie 18. Gdyby dołączyć chromosom o ocenie 17 to nowa populacja: 10 chromosomów o ocenie 19 w tym 5 obcych 7 chromosomów o ocenie 17 w tym 3 obce 3 chromosomów o ocenie 15 w tym 1 obcy W ramach chromosomów z oceną 17 nastąpiła wymiana chromosomu. 2. Zadanie optymalizacji kształtu. Przedstawienie zadania. Mamy do rozwiązania typowe zadanie optymalizacyjne. Na pewnym obszarze Ω R 2 jest określona funkcja f : Ω R. Należy tak zmodyfikować obszar Ω, aby zmaksymalizować wartość funkcji na nim określonej. Jedynym dopuszczalnym sposobem modyfikowania obszaru jest wycinanie w nim dziur. Wycięcie dziury rozumiemy tutaj jako określenie wartości funkcji f na pewnym podobszarze obszaru Ω jako równych zero. Jest to więc zadanie typowe dla zastosowań algorytmów genetycznych, gdyż mamy tutaj do czynienia z dużą przestrzenią poszukiwań i potencjalnie z wieloma rozwiązaniami optymalnymi lub ε-optymalnymi, tj. różniącymi się od optymalnego o nie więcej jak pewne ustalone ε 1. Sprecyzowanie warunków zadania Na potrzeby praktycznej realizacji zadania przyjmijmy, że obszar Ω jest określony jak poniżej Ω = [0, 8] [0, 8]. Na obszarze tym określmy funkcję f jak poniżej f(x) = 20 gdy x [5, 5.5] [2, 2.5] [6, 6.5] [4.5, 5] [2, 2.5] [4, 4.5] 10 gdy x [5, 5.5] [2, 2.5] [6, 6.5] [4.5, 5] [2, 2.5] [4, 4.5] +10 gdy x [5, 5.5] [2, 2.5] [6, 6.5] [4.5, 5] [2, 2.5] [4, 4.5] 0 w pozostałych przypadkach. 1 Oczywiście nie możemy zagwarantować, że algorytm genetyczny znajdzie rozwiązanie ε- optymalne, ale z praktyki wiemy, że są duże szanse, iż tak się stanie. 9
10 Rysunek?? przedstawia rozkład obszarów na które funkcja f dzieli obszar Ω. Jak widać w tym konkretnym zadaniu dla uproszczenia można na obszar nałożyć siatkę, podobnie jak na wspomnianym rysunku. Dzięki temu zawęzimy dziedzinę poszukiwań do zbioru liczb {0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5}, które będą określały odpowiednie kwadraty z tak podzielonego obszaru. I tak np. kwadratowi o współrzędnych (2, 5.5) odpowiada podobszar [2, 2.5] [5.5, 6]; kwadratowi o współrzędnych (0, 0) (a więc w lewym górnym rogu) odpowiada podobszar [0, 0.5] [0, 0.5]; kwadratowi o współrzędnych (0, 7.5) (a więc w prawym górnym rogu) odpowiada podobszar [0, 0.5] [7.5, 8]; kwadratowi o współrzędnych (7.5, 0) (a więc w lewym dolnym rogu) odpowiada podobszar [7.5, 8] [0, 0.5]; kwadratowi o współrzędnych (7.5, 7.5) (a więc w prawym dolnym rogu) odpowiada podobszar [7.5, 8] [7.5, 8]. Mając tak uproszczone zadanie, możemy określić jak wygląda chromosom. Przyjmijmy, że jeden chromosom składa się z 6 genów. Sześciu, bo chcemy wyciąć 3 otwory a jeden otwór ma dwie współrzędne. Gen natomiast jest liczbą. Jako liczby przyjmijmy sobie liczby rzeczywiste z przedziału [0, 7.5] reprezentowane z dokładnością 0.5. Oznacza to, ze do reprezentacji liczb można użyć reprezentacji stałoprzecinkowej, przeznaczając 1 bit na znak liczby, 3 na zapisanie bitów reprezentujących część całkowitą i 1 na zapisanie bitów reprezentujących część ułamkową. Zatem format ten wygląda jak poniżej zc 2 c 1 c 0 u 1, gdzie u 1 część ułamkowa, c 1,..., c 3 część całkowita, z znak liczby. Wartość w takiego ciągu bitów wynosi: { +( 2i=0 c w = i 2 i + 1 i=1 u i 0.5 i ), gdy z = 0, ( 2 i=0 c i 2 i + 1 i=1 u i 0.5 i ), gdy z = 1. Oto wszystkie możliwe do reprezentowania w tak przyjętym formacie liczby rzeczywiste: = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
11 Pozostają jeszcze do określenia operatory genetyczne jakie będziemy stosować i jak one będą działać. Mutacja Operacji mutacji podlegają pojedyncze bity genu (liczby rzeczywistej). Aby przeprowadzić operację mutacji należy określić dwa prawdopodobieństwa: p 1 i p 2 oraz dwie liczby n 1 i n 2. Wartość p 1 określa z jakim prawdopodobieństwem gen (liczba) wybierany jest do mutacji. Wartość p 2 określa z jakim prawdopodobieństwem mutowany jest wybrany bit genu podlegającego mutacji. Wartość n 1 określa ile razy wybieramy bit do mutacji z części całkowitej, natomiast n 2 określa ile razy wybieramy bit do mutacji z części ułamkowej (w obu przypadkach ten sam bit może być wybrany kilka razy). Krzyżowanie Wybieramy bardzo prostą metodę krzyżowania prześledźmy ją na poniższym przykładzie. Dane mamy dwa chromosomy c 1 i c 2 : oraz c 1 = g 1,1 g 1,2 g 1,3 g 1,4 g 1,5 g 1,6 c 2 = g 2,1 g 2,2 g 2,3 g 2,4 g 2,5 g 2,6 gdzie g 1,i oraz g 2,i dla i = 1,..., 6 są genami. Wybieramy losowo pewien punkt krzyżowania powiedzmy, że wylosowaliśmy 4. Wykonujemy teraz krzyżowanie zgodnie z zadanym prawdopodobieństwem, otrzymując w jego wyniku dwa nowe chromosomy C 1 i C 2 : C 1 = g 2,1 g 2,2 g 2,3 g 1,4 g 1,5 g 1,6 oraz Selekcja C 2 = g 1,1 g 1,2 g 1,3 g 2,4 g 2,5 g 2,6. Również do selekcji osobników wchodzących w skład populacji użyjemy najprostszej metody metody ruletki. Metoda ta każdemu chromosomowi przypisuje pewien fragment koła fragment zależny od wartości funkcji oceny dla danego chromosomu. Im lepiej chromosom odpowiada warunkom zadania, tym większy fragment odpowiada jemu na kole. Następnie losuje się pewną liczbę z zadanego przedziału, powiedzmy, że od 0 dp 100, i przyjmując, że cały obwód koła ma 100, patrzymy do którego obszaru wpadnie wylosowana liczba. Obszar, do którego wpadła wyznacza nam chromosom. Taka metoda wyboru jest sprawiedliwa o tyle, że największe szanse wyboru mają osobniki najlepiej przystosowane, ale nie odrzuca się tych gorzej przystosowanych. Przy tak przyjętej metodzie wyboru należy pamiętać, że daje się ona stosować tylko wtedy, gdy wartości funkcji oceny są dodatnie. Jeśli takiej gwarancji nie mamy, a tak jest właśnie w omawianym zadaniu, wówczas musimy dokonywać tymczasowego przesunięcia otrzymanych wartości funkcji oceny. Tak więc algorytm utworzenia koła ruletki dla zadanej populacji o rozmiarze n wygląda następująco. 1. Przpisanie każdemu chromosomowi, wartości funkcji oceny v i, i = 1,..., n. 11
12 2. Wybranie najmniejszej z wartości v i i oznaczenie jej jako v min. 3. Przypisanie każdemu chromosomowi tymczasowej wartości funkcji oceny, wg. wzoru v tmp i = v i v min Jak widać z powyższego wzoru, najmniejsza tymczasowa wartość funkcji oceny wynosi Wyznaczenie przedziałów p i, i = 1,..., n, odpowiadających chromosomom, wg. poniższych wzorów (1) (2) gdzie p 1 = p i = [0.0, vtmp 1 sum [p gi, vtmp i sum ), ), dla i = 2,..., n, sum określone jest wzorem sum = n i=1 v tmp i, p g i określa górny kraniec przedziału p i. Szkic algorytmu Poniżej przedstawiamy szkic algorytmu genetycznego z uwzględnieniem jego najważniejszych etapów. 1. Ustalenie wartości zmiennej t na 1 (t jest zmienną czasową określającą kolejne populacje). 2. Utworzenie populacji pop(t) liczącej n osobników. 3. Ocena chromosomów (wyliczenie wartości v i, i = 1,..., n). 4. Wyliczenie tymczasowych wartości funkcji oceny v tmp i, i = 1,..., n. 5. Wyliczenie przedziałów p i, i = 1,..., n. 6. Krzyżowanie k par chromosomów. Po tym kroku, populacja liczy n+2kosobników. Zakładamy, że chromosomy potomne wchodzą w skład populacji a nie zastępują chromosomów rodzicielskich, czyli populacja składa się z rodziców (których jest n) oraz ich potomków (których jest 2k). 7. Ocena chromosomów (wyliczenie wartości v i, i = 1,..., n + 2k) Wyliczenie tymczasowych wartości funkcji oceny v tmp i, i = 1,..., n + 2k. 9. Wyliczenie przedziałów p i, i = 1,..., n + 2k. 10. Mutacja przeprowadzona z pewnym prawdopodobieństwem na wszystkich n + 2k osobnikach. 11. Ocena chromosomów (wyliczenie wartości v i, i = 1,..., n + 2k) 3. 2 Prawdę mówiąc, w tym przypadku wystarczy ocenić chromosomy od n + 1 do n + 2k 3 W tym przypadku trzeba ocenić chromosomy od 1 do n + 2k 12
13 12. Wyliczenie tymczasowych wartości funkcji oceny v tmp i, i = 1,..., n + 2k. 13. Wyliczenie przedziałów p i, i = 1,..., n + 2k. 14. Utworzenie populacji pop(t + 1) składającej się z n losowo wybranych osobników populacji pop(t). 15. Jeśli t jest mniejsze od zadanej ilości kroków, to powrót do punktu 3. 13
5. Algorytm genetyczny przykład zastosowania
5. Algorytm genetyczny przykład zastosowania Zagadnienie magicznych kwadratów Opis działania algorytmu Zagadnienie magicznych kwadratów polega na wygenerowaniu kwadratu n n, w którym elementami są liczby
Bardziej szczegółowoAlgorytmy 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ółowoAlgorytmy 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ółowoSCHEMAT 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ółowoALGORYTMY 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ółowo6. 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ółowoAlgorytm 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ółowoAlgorytmy 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ółowoStrategie 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ółowoPLAN 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ółowoAlgorytmy 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ółowoAlgorytmy 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ółowoZadanie 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ółowoAlgorytmy 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ółowoAlgorytmy 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ółowoAlgorytmy ewolucyjne. Łukasz Przybyłek Studenckie Koło Naukowe BRAINS
Algorytmy ewolucyjne Łukasz Przybyłek Studenckie Koło Naukowe BRAINS 1 Wprowadzenie Algorytmy ewolucyjne ogólne algorytmy optymalizacji operujące na populacji rozwiązań, inspirowane biologicznymi zjawiskami,
Bardziej szczegółowoMetody 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ółowoLABORATORIUM 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ółowoAlgorytmy 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ółowoAlgorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Bardziej szczegółowoAlgorytmy 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ółowoMetody 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ółowoZestaw 3. - Zapis liczb binarnych ze znakiem 1
Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zapis znak - moduł (ZM) Zapis liczb w systemie Znak - moduł Znak liczby o n bitach zależy od najstarszego bitu b n 1 (tzn. cyfry o najwyższej pozycji): b
Bardziej szczegółowoMetody 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ółowoObliczenia ewolucyjne - plan wykładu
Obliczenia ewolucyjne - plan wykładu Wprowadzenie Algorytmy genetyczne Programowanie genetyczne Programowanie ewolucyjne Strategie ewolucyjne Inne modele obliczeń ewolucyjnych Podsumowanie Ewolucja Ewolucja
Bardziej szczegółowoZadanie 1. Suma silni (11 pkt)
2 Egzamin maturalny z informatyki Zadanie 1. Suma silni (11 pkt) Pojęcie silni dla liczb naturalnych większych od zera definiuje się następująco: 1 dla n = 1 n! = ( n 1! ) n dla n> 1 Rozpatrzmy funkcję
Bardziej szczegółowoAlgorytmy stochastyczne, wykład 02 Algorytmy genetyczne
Algorytmy stochastyczne, wykład 02 Algorytmy genetyczne J. Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2014-02-27 1 Mutacje algorytmu genetycznego 2 Dziedzina niewypukła abstrakcyjna
Bardziej szczegółowoPodejście memetyczne do problemu DCVRP - wstępne wyniki. Adam Żychowski
Podejście memetyczne do problemu DCVRP - wstępne wyniki Adam Żychowski Na podstawie prac X. S. Chen, L. Feng, Y. S. Ong A Self-Adaptive Memeplexes Robust Search Scheme for solving Stochastic Demands Vehicle
Bardziej szczegółowoArytmetyka liczb binarnych
Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1
Bardziej szczegółowoAlgorytmy ewolucyjne (3)
Algorytmy ewolucyjne (3) http://zajecia.jakubw.pl/nai KODOWANIE PERMUTACJI W pewnych zastosowaniach kodowanie binarne jest mniej naturalne, niż inne sposoby kodowania. Na przykład, w problemie komiwojażera
Bardziej szczegółowoAlgorytmy genetyczne. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki
Dariusz Banasiak Katedra Informatyki Technicznej Wydział Elektroniki Obliczenia ewolucyjne (EC evolutionary computing) lub algorytmy ewolucyjne (EA evolutionary algorithms) to ogólne określenia używane
Bardziej szczegółowooperacje 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ółowoStrategie ewolucyjne. Gnypowicz Damian Staniszczak Łukasz Woźniak Marek
Strategie ewolucyjne Gnypowicz Damian Staniszczak Łukasz Woźniak Marek Strategie ewolucyjne, a algorytmy genetyczne Podobieństwa: Oba działają na populacjach rozwiązań Korzystają z zasad selecji i przetwarzania
Bardziej szczegółowo2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,
2 Arytmetyka Niech b = d r d r 1 d 1 d 0 będzie zapisem liczby w systemie dwójkowym Zamiana zapisu liczby b na system dziesiętny odbywa się poprzez wykonanie dodawania d r 2 r + d r 1 2 r 1 d 1 2 1 + d
Bardziej szczegółowoAplikacja Sieciowa wątki po stronie klienta
Aplikacja Sieciowa wątki po stronie klienta Na ostatnich zajęciach zajmowaliśmy się komunikacją pomiędzy klientem a serwerem. Wynikiem naszej pracy był program klienta, który za pomocą serwera mógł się
Bardziej szczegółowoKlient-Serwer Komunikacja przy pomocy gniazd
II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu
Bardziej szczegółowoMNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny)
MNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny) SPOSÓB 1 (z rozszerzeniem mnożnika): Algorytm jak zwykle jest prosty: lewostronne rozszerzenie mnożnej o kilka cyfr (na pewno wystarczy
Bardziej szczegółowoZADANIE 1. Ważenie (14 pkt)
ZADANIE 1. Ważenie (14 pkt) Danych jest n przedmiotów o niewielkich gabarytach i różnych wagach. Jest też do dyspozycji waga z dwiema szalkami, ale nie ma odważników. Kładąc na wadze przedmioty a i b,
Bardziej szczegółowoRozdział 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ółowoAlgorytmy genetyczne w interpolacji wielomianowej
Algorytmy genetyczne w interpolacji wielomianowej (seminarium robocze) Seminarium Metod Inteligencji Obliczeniowej Warszawa 22 II 2006 mgr inż. Marcin Borkowski Plan: Przypomnienie algorytmu niszowego
Bardziej szczegółowoAlgorytmy zrandomizowane
Algorytmy zrandomizowane http://zajecia.jakubw.pl/nai ALGORYTMY ZRANDOMIZOWANE Algorytmy, których działanie uzależnione jest od czynników losowych. Algorytmy typu Monte Carlo: dają (po pewnym czasie) wynik
Bardziej szczegółowoAlgorytmy genetyczne
Politechnika Łódzka Katedra Informatyki Stosowanej Algorytmy genetyczne Wykład 2 Przygotował i prowadzi: Dr inż. Piotr Urbanek Powtórzenie Pytania: Jaki mechanizm jest stosowany w naturze do takiego modyfikowania
Bardziej szczegółowoAlgorytm 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ółowoStrefa 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ółowoLABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q
LABORAORIUM PROCESORY SYGAŁOWE W AUOMAYCE PRZEMYSŁOWEJ Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q 1. Zasady arytmetyki stałoprzecinkowej. Kody stałopozycyjne mają ustalone
Bardziej szczegółowoZadanie 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ółowoPLAN WYKŁADU OPTYMALIZACJA GLOBALNA ZADANIE KOMIWOJAŻERA METODY ROZWIĄZYWANIA. Specyfika zadania komiwojażera Reprezentacje Operatory
PLAN WYKŁADU Specyfika zadania komiwojażera Reprezentacje Operatory OPTYMALIZACJA GLOBALNA Wykład 5 dr inż. Agnieszka Bołtuć ZADANIE KOMIWOJAŻERA Koncepcja: komiwojażer musi odwiedzić każde miasto na swoim
Bardziej szczegółowoProgramowanie 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ółowoWybrane 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ółowo5. Rozwiązywanie układów równań liniowych
5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a
Bardziej szczegółowoLuty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl
System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy
Bardziej szczegółowoPolitechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA I WSPOMAGANIA DECYZJI Rozproszone programowanie produkcji z wykorzystaniem
Bardziej szczegółowoArytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI
Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System
Bardziej szczegółowo0 + 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ółowoAlgorytmy sortujące. sortowanie kubełkowe, sortowanie grzebieniowe
Algorytmy sortujące sortowanie kubełkowe, sortowanie grzebieniowe Sortowanie kubełkowe (bucket sort) Jest to jeden z najbardziej popularnych algorytmów sortowania. Został wynaleziony w 1956 r. przez E.J.
Bardziej szczegółowoWstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym
Wstęp do programowania Reprezentacje liczb Liczby naturalne, całkowite i rzeczywiste w układzie binarnym System dwójkowy W komputerach stosuje się dwójkowy system pozycyjny do reprezentowania zarówno liczb
Bardziej szczegółowoSortowanie. Bartman Jacek Algorytmy i struktury
Sortowanie Bartman Jacek jbartman@univ.rzeszow.pl Algorytmy i struktury danych Sortowanie przez proste wstawianie przykład 41 56 17 39 88 24 03 72 41 56 17 39 88 24 03 72 17 41 56 39 88 24 03 72 17 39
Bardziej szczegółowoSamodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =
Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,
Bardziej szczegółowo1.1. Pozycyjne systemy liczbowe
1.1. Pozycyjne systemy liczbowe Systemami liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach. Dla dowolnego
Bardziej szczegółowoRachunek prawdopodobieństwa
Rachunek prawdopodobieństwa Sebastian Rymarczyk srymarczyk@afm.edu.pl Tematyka zajęć 1. Elementy kombinatoryki. 2. Definicje prawdopodobieństwa. 3. Własności prawdopodobieństwa. 4. Zmienne losowe, parametry
Bardziej szczegółowoStandardowy algorytm genetyczny
Standardowy algorytm genetyczny 1 Szybki przegląd 2 Opracowany w USA w latach 70. Wcześni badacze: John H. Holland. Autor monografii Adaptation in Natural and Artificial Systems, wydanej w 1975 r., (teoria
Bardziej szczegółowoPodstawy OpenCL część 2
Podstawy OpenCL część 2 1. Napisz program dokonujący mnożenia dwóch macierzy w wersji sekwencyjnej oraz OpenCL. Porównaj czasy działania obu wersji dla różnych wielkości macierzy, np. 16 16, 128 128, 1024
Bardziej szczegółowodr inż. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki
Bardziej szczegółowoSpacery losowe generowanie realizacji procesu losowego
Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z
Bardziej szczegółowoAlgorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze
Bardziej szczegółowoKod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.
Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Jeśli bit znaku przyjmie wartość 0 to liczba jest dodatnia lub posiada wartość 0. Jeśli bit
Bardziej szczegółowoRozdział 1 PROGRAMOWANIE LINIOWE
Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.1 Opis programów Do rozwiązania zadań programowania
Bardziej szczegółowoPodstawowe algorytmy i ich implementacje w C. Wykład 9
Wstęp do programowania 1 Podstawowe algorytmy i ich implementacje w C Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Element minimalny i maksymalny zbioru Element minimalny
Bardziej szczegółowo1259 (10) = 1 * * * * 100 = 1 * * * *1
Zamiana liczba zapisanych w dowolnym systemie na system dziesiętny: W systemie pozycyjnym o podstawie 10 wartości kolejnych cyfr odpowiadają kolejnym potęgom liczby 10 licząc od strony prawej i numerując
Bardziej szczegółowoZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.
POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie
Bardziej szczegółowoRozdział 3 ZADANIE TRANSPORTOWE I PROBLEM KOMIWOJAŻERA
Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 3 ZADANIE TRANSPORTOWE I PROBLEM KOMIWOJAŻERA 3.2. Ćwiczenia komputerowe
Bardziej szczegółowoInspiracje soft computing. Soft computing. Terminy genetyczne i ich odpowiedniki w algorytmach genetycznych. Elementarny algorytm genetyczny
Soft computing Soft computing tym róŝni się od klasycznych obliczeń (hard computing), Ŝe jest odporny na brak precyzji i niepewność danych wejściowych. Obliczenia soft computing mają inspiracje ze świata
Bardziej szczegółowoAlgorytmy ewolucyjne. wprowadzenie
Algorytmy ewolucyjne wprowadzenie Gracjan Wilczewski, www.mat.uni.torun.pl/~gracjan Toruń, 2005 Historia Podstawowy algorytm genetyczny został wprowadzony przez Johna Hollanda (Uniwersytet Michigan) i
Bardziej szczegółowoOpis protokołu komunikacji programu mpensjonat z systemami zewnętrznymi (np. rezerwacji online)
Opis protokołu komunikacji programu mpensjonat z systemami zewnętrznymi (np. rezerwacji online) Spis treści Opis protokołu komunikacji programu mpensjonat z systemami zewnętrznymi (np. rezerwacji online)...1
Bardziej szczegółowoMIO - LABORATORIUM. Imię i nazwisko Rok ak. Gr. Sem. Komputer Data ... 20 / EC3 VIII LAB...
MIO - LABORATORIUM Temat ćwiczenia: TSP - Problem komiwojażera Imię i nazwisko Rok ak. Gr. Sem. Komputer Data Podpis prowadzącego... 20 / EC3 VIII LAB...... Zadanie Zapoznać się z problemem komiwojażera
Bardziej szczegółowoCMAES. Zapis algorytmu. Generacja populacji oraz selekcja Populacja q i (t) w kroku t generowana jest w następujący sposób:
CMAES Covariance Matrix Adaptation Evolution Strategy Opracowanie: Lidia Wojciechowska W algorytmie CMAES, podobnie jak w algorytmie EDA, adaptowany jest rozkład prawdopodobieństwa generacji punktów, opisany
Bardziej szczegółowoZadanie 1. Algorytmika ćwiczenia
Zadanie 1 Algorytmika ćwiczenia Zadanie 2 Zadanie 3 Zadanie 4 Zadanie 5 Zadanie 6 Zadanie 7 Wiązka zadań Ułamki dwójkowe W systemach pozycyjnych o podstawie innej niż 10 można zapisywać nie tylko liczby
Bardziej szczegółowoAlgorytmy genetyczne
Politechnika Łódzka Katedra Informatyki Stosowanej Algorytmy genetyczne Wykład 2 Przygotował i prowadzi: Dr inż. Piotr Urbanek Powtórzenie Pytania: Jaki mechanizm jest stosowany w naturze do takiego modyfikowania
Bardziej szczegółowoSerwis jest dostępny w internecie pod adresem www.solidnyserwis.pl. Rysunek 1: Strona startowa solidnego serwisu
Spis treści 1. Zgłoszenia serwisowe wstęp... 2 2. Obsługa konta w solidnym serwisie... 2 Rejestracja w serwisie...3 Logowanie się do serwisu...4 Zmiana danych...5 3. Zakładanie i podgląd zgłoszenia...
Bardziej szczegółowoOdkrywanie 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ółowoSZTUCZNA INTELIGENCJA
SZTUCZNA INTELIGENCJA WYKŁAD 15. ALGORYTMY GENETYCZNE Częstochowa 014 Dr hab. nż. Grzegorz Dudek Wydzał Elektryczny Poltechnka Częstochowska TERMINOLOGIA allele wartośc, waranty genów, chromosom - (naczej
Bardziej szczegółowoZestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.
ZESTAWY A Zestaw 1 Organizacja plików: Wszystkie pliki oddawane do sprawdzenia nale»y zapisa we wspólnym folderze o nazwie b d cej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko ¹ródªa programów
Bardziej szczegółowoProgramowanie 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ółowoMETODY HEURYSTYCZNE wykład 3
METODY HEURYSTYCZNE wykład 3 1 Przykład: Znaleźć max { f (x)=x 2 } dla wartości całkowitych x z zakresu 0-31. Populacja w chwili t: P(t)= {x t 1,...x t n} Założenia: - łańcuchy 5-bitowe (x=0,1,...,31);
Bardziej szczegółowoKatedra Informatyki Stosowanej. Algorytmy ewolucyjne. Inteligencja obliczeniowa
Wydział Zarządzania AGH Katedra Informatyki Stosowanej Algorytmy ewolucyjne Treść wykładu Wprowadzenie Zasada działania Podział EA Cechy EA Algorytm genetyczny 2 EA - wprowadzenie Algorytmy ewolucyjne
Bardziej szczegółowoPrzesyłania danych przez protokół TCP/IP
Przesyłania danych przez protokół TCP/IP PAKIETY Protokół TCP/IP transmituje dane przez sieć, dzieląc je na mniejsze porcje, zwane pakietami. Pakiety są często określane różnymi terminami, w zależności
Bardziej szczegółowoProjekt ZSWS. Instrukcja uŝytkowania narzędzia SAP Business Explorer Analyzer. 1 Uruchamianie programu i raportu. Tytuł: Strona: 1 z 31
Strona: 1 z 31 Explorer Analyzer 1 Uruchamianie programu i raportu PoniŜsze czynności uruchamiają program Bex Analyzer oraz wybrany raport z hurtowni danych. 1. uruchom z menu Start>Programy>Business Explorer>Analyzer
Bardziej szczegółowoSystemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).
Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych
Bardziej szczegółowoZadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.
Zadania do wykonania Rozwiązując poniższe zadania użyj pętlę for. 1. apisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9
Bardziej szczegółowoAby lepiej zrozumieć działanie adresów przedstawmy uproszczony schemat pakietów IP podróżujących w sieci.
Struktura komunikatów sieciowych Każdy pakiet posiada nagłówki kolejnych protokołów oraz dane w których mogą być zagnieżdżone nagłówki oraz dane protokołów wyższego poziomu. Każdy protokół ma inne zadanie
Bardziej szczegółowoSYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska
SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ Częstochowa 2014 Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska DRZEWO REGRESYJNE Sposób konstrukcji i przycinania
Bardziej szczegółowoAlgorytmy ewolucyjne (2)
Algorytmy ewolucyjne (2) zajecia.jakubw.pl/nai/ ALGORYTM GEETYCZY Cel: znaleźć makimum unkcji. Założenie: unkcja ta jet dodatnia. 1. Tworzymy oobników loowych. 2. Stoujemy operacje mutacji i krzyżowania
Bardziej szczegółowoAlgorytmy ewolucyjne Część II
Wydział Zarządzania AGH Katedra Informatyki Stosowanej Algorytmy ewolucyjne Część II Metaheurystyki Treść wykładu Zastosowania Praktyczne aspekty GA Reprezentacja Funkcja dopasowania Zróżnicowanie dopasowania
Bardziej szczegółowoPodstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.
ZAMIANA LICZB MIĘDZY SYSTEMAMI DWÓJKOWYM I DZIESIĘTNYM Aby zamienić liczbę z systemu dwójkowego (binarnego) na dziesiętny (decymalny) należy najpierw przypomnieć sobie jak są tworzone liczby w ww systemach
Bardziej szczegółowoAlgorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2013/14 Znajdowanie maksimum w zbiorze
Bardziej szczegółowoWielokryterialne 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ółowo1. A 2. A 3. B 4. B 5. C 6. B 7. B 8. D 9. A 10. D 11. C 12. D 13. B 14. D 15. C 16. C 17. C 18. B 19. D 20. C 21. C 22. D 23. D 24. A 25.
1. A 2. A 3. B 4. B 5. C 6. B 7. B 8. D 9. A 10. D 11. C 12. D 13. B 14. D 15. C 16. C 17. C 18. B 19. D 20. C 21. C 22. D 23. D 24. A 25. A Najłatwiejszym sposobem jest rozpatrzenie wszystkich odpowiedzi
Bardziej szczegółowoGenerowanie 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