Programowanie Współbieżne. Algorytmy

Podobne dokumenty
Programowanie Współbieżne. Algorytmy

Algorytm genetyczny (genetic algorithm)-

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

Algorytmy metaheurystyczne Wykład 6. Piotr Syga

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

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

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation)

Algorytmy genetyczne

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

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Metody przeszukiwania

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

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

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

ALGORYTMY GENETYCZNE ćwiczenia

Algorytmy genetyczne

Obliczenia Naturalne - Algorytmy Mrówkowe

Algorytmy mrówkowe (ang. Ant Colony Optimization)

Algorytmy genetyczne. Dariusz Banasiak. Katedra Informatyki Technicznej Wydział Elektroniki

6. Klasyczny algorytm genetyczny. 1

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

Problem Komiwojażera - algorytmy metaheurystyczne

Algorytmy mrówkowe. P. Oleksyk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Algorytmy genetyczne w optymalizacji

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

Wykład 14. Elementy algebry macierzy

Algorytmy ewolucyjne NAZEWNICTWO

Techniki optymalizacji

Algorytmy genetyczne

Równoważność algorytmów optymalizacji

Wykład 5. Metoda eliminacji Gaussa

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

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

Strategie ewolucyjne (ang. evolu4on strategies)

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

Algorytmy ewolucyjne. wprowadzenie

Inspiracje soft computing. Soft computing. Terminy genetyczne i ich odpowiedniki w algorytmach genetycznych. Elementarny algorytm genetyczny

Spacery losowe generowanie realizacji procesu losowego

Obliczenia ewolucyjne - plan wykładu

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Optymalizacja. Wybrane algorytmy

Wykład z Technologii Informacyjnych. Piotr Mika

Macierze. Rozdział Działania na macierzach

1 Macierze i wyznaczniki

Algorytmy stochastyczne, wykład 02 Algorytmy genetyczne

Dobór parametrów algorytmu ewolucyjnego

Algorytmy genetyczne

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny

Katedra Informatyki Stosowanej. Algorytmy ewolucyjne. Inteligencja obliczeniowa

Algorytmy ewolucyjne. Łukasz Przybyłek Studenckie Koło Naukowe BRAINS

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

Rozwiązywanie układów równań liniowych

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA ZADANIE KOMIWOJAŻERA METODY ROZWIĄZYWANIA. Specyfika zadania komiwojażera Reprezentacje Operatory

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Systemy mrówkowe. Opracowali: Dawid Strucker, Konrad Baranowski

1 Zbiory i działania na zbiorach.

MATLAB - laboratorium nr 1 wektory i macierze

Wybrane podstawowe rodzaje algorytmów

5. Rozwiązywanie układów równań liniowych

Metody Rozmyte i Algorytmy Ewolucyjne

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Wykład 4. Droga i cykl Eulera i Hamiltona

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Macierzowe algorytmy równoległe

Generowanie i optymalizacja harmonogramu za pomoca

Krótkie wprowadzenie do macierzy i wyznaczników

Algorytmy ewolucyjne 1

Algorytmy stochastyczne laboratorium 03

3. Macierze i Układy Równań Liniowych

UKŁADY RÓWNAŃ LINIOWYCH -Metody dokładne

MIO - LABORATORIUM. Imię i nazwisko Rok ak. Gr. Sem. Komputer Data / EC3 VIII LAB...

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Droga i cykl Eulera Przykłady zastosowania drogi i cyku Eulera Droga i cykl Hamiltona. Wykład 4. Droga i cykl Eulera i Hamiltona

Matematyka stosowana i metody numeryczne

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

UKŁADY RÓWNAŃ LINIOWYCH - Metody dokładne

Obliczenia inspirowane Naturą

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

Problem komiwojażera ACO. Zagadnienie optymalizacyjne, polegające na znalezieniu minimalnego cyklu Hamiltona w pełnym grafie ważonym.

METODY HEURYSTYCZNE wykład 3

Algorytmy metaheurystyczne podsumowanie

Wykład 6. Metoda eliminacji Gaussa: Eliminacja z wyborem częściowym Eliminacja z wyborem pełnym

METODY NUMERYCZNE. wykład. konsultacje: wtorek 10:00-11:30 środa 10:00-11:30. dr inż. Grażyna Kałuża pokój

Kolejny krok iteracji polega na tym, że przechodzimy do następnego wierzchołka, znajdującego się na jednej krawędzi z odnalezionym już punktem, w

Układy równań nieliniowych (wielowymiarowa metoda Newtona-Raphsona) f(x) = 0, gdzie. dla n=2 np.

Algorytmy numeryczne 1

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA ALGORYTM MRÓWKOWY (ANT SYSTEM) ALGORYTM MRÓWKOWY. Algorytm mrówkowy

RACHUNEK MACIERZOWY. METODY OBLICZENIOWE Budownictwo, studia I stopnia, semestr 6. Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska

Algorytmy Mrówkowe. Daniel Błaszkiewicz. 11 maja Instytut Informatyki Uniwersytetu Wrocławskiego

5. Algorytm genetyczny przykład zastosowania

Algorytmy ewolucyjne (3)

Obliczenia iteracyjne

Zad. 3: Układ równań liniowych

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Aproksymacja funkcji a regresja symboliczna

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA HISTORIA NA CZYM BAZUJĄ AG

Optymalizacja ciągła

Transkrypt:

Programowanie Współbieżne Algorytmy

Sortowanie przez scalanie (mergesort) Algorytm : 1. JEŚLI jesteś rootem TO: pobierz/wczytaj tablice do posortowania JEŚLI_NIE to pobierz tablicę do posortowania od rodzica 2

Sortowanie przez scalanie (mergesort) 2. JEŚLI ilość elementów tablicy > 2 i (ilość procesów < max procesów) [tu można dodać czy tablica nie jest już posortowana lub inny warunek zatrzymania dzielenia] TO twórz 2 procesy i wyślij im po jednej części tablicy (najlepiej w miarę równe). czekaj na posortowane 2 tablice scal w jedną posortowaną JEŚLI_NIE to posortuj to co masz. (w szczególnym przypadku będzie to 1 liczba do oddania lub dwie do porównania). 3

Sortowanie przez scalanie (mergesort) 3. JEŚLI jesteś rootem TO wyświetl/zapisz wynik JEŚLI_NIE to odeślij rodzicowi posortowaną tablicę. 4

Sortowanie przez scalanie 4,2,7,6,1,8,5,0,3,9 4,2,7,6,1 8,5,0,3,9 1,2,4,6,7 0,3,5,8,9 0 1 2 3 4 5 6 7 8 9 5

Sortowanie przez scalanie 4,2,7,6,1,8,5,0,3,9 4,2,7,6,1 8,5,0,3,9 4,2,7 6,1 8,5 0,3,9 4,2 7 1,6 5,8 2,4 2,4,7 0, 3, 5, 8, 9 1,2,4,6,7 0,1,2,3,4,5,6,7,8,9 6

Sortowanie oscylacyjne Dla ciągu długości n tworzymy dwa zestawy procesów. A 1,A 2,...A n B 0,B 1,...B n A 1 A 2 A n B 0 B 1 B 2 B n 7

Sortowanie oscylacyjne Zadania typu A i działają następująco: otrzymują 2 liczby mniejszą przesyłają do Bi-1 większą do Bi. 8

Sortowanie oscylacyjne Zadania typu B i działają następująco: otrzymują 2 liczby mniejszą przesyłają do Ai większa do Ai+1 Elementy skrajne nic nie robią tylko oddają liczbę Po 2n cyklach mamy gotowy wynik 9

Sortowanie oscylacyjne 4 4 5 5 3 3 4 4 5 5 3 3 10

Sortowanie oscylacyjne 4 4 5 3 5 3 4 4 5 3 5 3 11

Sortowanie oscylacyjne 4 4 3 5 3 5 4 4 3 5 3 5 12

Sortowanie oscylacyjne 4 3 4 3 5 5 4 3 4 3 5 5 13

Sortowanie oscylacyjne 3 4 3 4 5 5 3 4 3 4 5 5 14

Sortowanie oscylacyjne 3 3 4 4 5 5 3 3 4 4 5 5 15

Mnożenie macierzy Zastosowanie: w matematyce, rozwiązywanie układów równań liniowych Metodą Gaussa Zapisanie obiektów geometrycznych w przestrzeni liniowej w fizyce tzw. Tensory Grafika trójwymiarowa, transformacje 16

Mnożenie macierzy Definicja Iloczynem macierzy A=[a ij ] nxp przez macierz B=[b ij ] pxm nazywamy taką macierz C=[c ij ] nxm piszemy C=A B, że p c ij = k =1 a ik b kj dla i=1,2,...,n;j=1,2,...,m 17

Mnożenie macierzy 18

Mnożenie macierzy Kilka przydatnych właściwości: Jeżeli A,B oraz C są macierzami o odpowiednich wymiarach to: 1. A(BC)=(AB)C 2. (AB)=(A)B 3. (A+B)C=AC+BC 4. C(A+B)=CA+CB 5. IA=A, gdy A nxn i I nxn 19

Mnożenie macierzy Algorytm dziel i rządź Uzyskanie macierzy C jest wynikiem niezależnych operacji arytmetycznych na wierszach macierzy A i kolumnach B. Stąd intuicyjny sposób podziału zadania na wiele wątków, tak by każdy obliczył niezależnie element macierzy C. Takich podziałów w tym wypadku musi być m*n (liczba wątków). Koszt operacji wynosi O(n3). 20

Mnożenie macierzy Każdy element A ij B jk C ik to mała podmacierz na której wykonujemy takie same operacje jak na pojedynczych elementach. A=[ A 11 A 12 A 21 A 22] B=[ B 11 B 12 B 21 B 22] C=[ C 11 C 12 C 21 C 22] 21

Mnożenie macierzy Przykład: [ 0 [0 1 2 3 1 2 0 8 5 9 1 4 1 2 2 3 1 2 9 16 8 13 0 2 2 1 1 1 2 3 6 9 6 11 1 2 1 2] [0 0 1 0 1]=[4 ] 5 10 6 9 Takie mnożenie można rozbić na 4 działania analogiczne do poniższego 1 4] 1 [ 0 1 3] 2 [ 2 3 2] 1 [ 1 1 1] 0 = [ 2 3 8 13] [ 2 5 3] 1 = [ 4 8 9 16] 22

Mnożenie macierzy Metoda Strassena - Z tak podzielonej macierzy wylicz 7 pomocniczych macierzy m i o rozmiarze n/2 m 1 =(A 12 -A 22 )*(B 21 +B 22 ) m 2 =(A 11 +A 22 )*(B 11 +B 22 ) m 3 =(A 11 -A 21 )*(B 11 +B 12 ) m 4 =(A 11 +A 12 )*B 22 m 5 =A 11 *(B 12 -B 22 ) m 6 =A 22 *(B 21 -B 11 ) m 7 =(A 21 +A 22 )*B 11 23

Mnożenie macierzy Oblicz składowe Cij macierzy wynikowej C C 11 =m 1 +m 2 -m 4 +m 6 C 12 =m 4 +m 5 C 21 =m 6 +m 7 C 22 =m 2 -m 3 +m 5 -m 7 Koszt powyższego algorytmu szacuje się na O(nlog 2 7) 24

Mnożenie macierzy Algorytm canona Zakładamy że mamy sieć zadań m x m. Każdy proces (t ij gdzie 0<i,j<m) wewnątrz zawiera bloki C ij, A ij i B ij. Na wstępie algorytmu proces na przekątnej diagonalnej (t ij gdzie i=j) przesyła swój blok A ij do wszystkich innych procesów w rzędzie i. Po transmisji A ii, wszystkie zadania obliczają A ii xb ij i dodają wynik do C ij. W kolejnym kroku kolumna bloków macierzy B jest obracana. Tzn. t ij przesyła swój blok t (i-1)j. Proces t 0j przesyła swój blok B do t (m-1)j. 25

Mnożenie macierzy Teraz procesy powracają do kroku pierwszego. A i(i+1) jest podstawową informacją dla wszystkich innych procesów w rzędzie i. Algorytm jest dalej kontynuowany. Po m iteracjach macierz C zawiera wynik mnożenia AxB, a obracana macierz B przyjmuje swoją początkową postać. 26

A Mnożenie macierzy B [0 1 2 1 3 7 2 1 0 3 0 1 2 7 10 3 2 2 1] [1 2 3 0]=[4 4 7 10] C 0 1 0 1 1 0 2 3 0 1 0 0 0 1 0 3 2 0 2 2 0 2 3 0 1 0 0 27

Mnożenie macierzy 0 1 0 +=0x1 1 1 0 +=0x1 2 3 0 +=0x3 1 0 0 +=0x0 0 1 0 +=0x1 3 2 0 +=0x2 2 2 02 +=1x2 2 3 03 +=1x3 1 0 0 +=1x0 Z macierzy A bierzemy wartości leżące na diagonalnej Przysyłamy do sąsiadów w tym samym wierszu. Mnożymy wartości przesyłane z wartościami macierzy B i dodajemy do wyniku w C 28

Mnożenie macierzy 0 12 0 1 13 0 2 30 0 1 01 0 0 1 0 3 23 0 2 20 2 2 31 3 1 02 0 Kolumny macierzy B rolujemy w dół. 29

Mnożenie macierzy 0 2 04 +=2x2 1 3 06 +=2x3 2 0 0 +=2x0 1 1 01 +=1x1 0 1 01 +=1x1 3 3 03 +=1x3 2 0 2 +=2x0 2 1 35 +=2x1 1 2 04 +=2x2 Obniżamy diagonalną o jeden w dół. Przysyłamy do sąsiadów w tym samym wierszu. Mnożymy wartości przesyłane z wartościami macierzy B i dodajemy do wyniku w C 30

Mnożenie macierzy 0 20 4 1 31 6 2 02 0 1 12 1 0 13 1 3 30 3 2 01 2 2 1 5 1 23 4 Kolumny macierzy B rolujemy w dół. 31

Mnożenie macierzy 0 0 4 +=0x1 1 1 67 +=1x1 2 2 02 +=1x2 1 2 17 +=3x2 0 3 10 1 +=3x3 3 0 3 +=3x0 2 1 24 +=2x1 2 1 57 +=2x1 1 3 10 4 +=2x3 Obniżamy diagonalną o jeden w dół. Przysyłamy do sąsiadów w tym samym wierszu. Mnożymy wartości przesyłane z wartościami macierzy B i dodajemy do wyniku w C 32

Mnożenie macierzy w 3D A B [0 1 2 1 3 7 2 1 0 3 0 1 2 7 10 3 2 2 1] [1 2 3 0]=[4 4 7 10] C 0 1 0 1 0 3 1 0 1 1 1 2 2 2 2 3 2 0 1 1 1 1 1 3 0 0 0 1 0 2 3 2 3 3 3 0 2 1 2 1 2 3 2 0 2 1 2 2 1 2 1 3 1 0 33

Algorytm Genetyczny Algorytm genetyczny - rodzaj algorytmu przeszukującego przestrzeń alternatywnych rozwiązań problemu w celu wyszukania rozwiązań najlepszych. Zaliczany do grona algorytmów ewolucyjnych Twórcą jest John Henry Holland Źródło: wikipedia 34

Algorytm Genetyczny Problem definiuje środowisko Populacja zbiór osobników Genotyp zbiór informacji przypisany do pojedynczego osobnika Fenotyp zbiór cech osobnika podlegającemu ocenie funkcji przystosowania Funkcja przystosowania modeluje środowisko Chromosomy części składowe genotypu Geny elementy chromosomu Źródło: wikipedia 35

Algorytm Genetyczny Wspólne cechy algorytmów genetycznych Stosowanie operandów genetycznych takich jak krzyżowanie i mutacja, które dostosowane są do postaci rozwiązań Równoległe przeszukiwanie przestrzeni rozwiązań, startujące z różnych punktów Ukierunkowanie przestrzeni poszukiwań następuje na podstawie informacji o jakości rozwiązania (funkcja przystosowania) Celowe wprowadzenie elementów losowych 36

Algorytm Genetyczny Wspólne cechy algorytmów genetycznych Stosowanie operandów genetycznych takich jak krzyżowanie i mutacja, które dostosowane są do postaci rozwiązań Równoległe przeszukiwanie przestrzeni rozwiązań, startujące z różnych punktów Ukierunkowanie przestrzeni poszukiwań następuje na podstawie informacji o jakości rozwiązania (funkcja przystosowania) Celowe wprowadzenie elementów losowych Źródło: wikipedia 37

Algorytm Genetyczny Podstawowy algorytm Losowana populacja początkowa (inicjacja) Rozwój osobników, ocena ich przystosowania Sprawdzenie warunku wyjścia Losowanie (najlepsi mają największe szanse) Zastosowanie operatorów genetycznych Krzyżowanie Mutacja Powstaje nowe pokolenie. Tu algorytm wraca do punktu 2. Źródło: wikipedia 38

Algorytm Genetyczny Kodowanie Chromosom przedstawiam zwykle jako wektor genów Geny reprezentowane są przez liczby binarnych, całkowitych lub rzeczywistych (genów) Kodowanie logarytmiczne Struktury drzewiaste Źródło: wikipedia 39

Algorytm Genetyczny Ocena Chromosomy są parametrem funkcji oceny f(x) Badając wartość f(x) wiemy w jaki sposób jest przystosowany osobnik o chromosomie x Przy optymalizacji, szukamy maximum lub minimum f(x) Źródło: wikipedia 40

Algorytm Genetyczny Dobór naturalny Według koła ruletki Całe koło ruletki odpowiada sumie wartości funkcji przystosowania wszystkich chromosomówdanej populacji. Dla każdego chromosomu ch i, dla i=1,2,...,n, gdzie N liczebność populacji, odpowiada wycinek koła zgodnie ze wzorem Ch i = p s 100 Gdzie prawdopodobieństwo wyrażone jest p s ch i = F ch i F ch F(ch i ) oznacza funkcje przystosowania i i=1 chromosomu ch i Losowanie odbywa się N razy N przy i=1,2,..., N 41

Algorytm Genetyczny Dobór naturalny Metoda elitarna najlepszy osobnik przechodzi bez zmian Metda turniejowa Osobniki dzielone są na grupy i z poszczególnych grup wybierane nalepsze rozwiązania. Metoda rankingowa. Rozwiązania sortowane są według jakości rozwiązania i nadawane rangi. Potem zwykle funkcją liniową wybiera się odpowiednią ilość osobników poczynając od najlepszego Źródło: wikipedia 42

Krzyżowanie Algorytm Genetyczny Podstawowe poprzez cięcie w wybranym punkcie (locus) 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 1 Źródło: wikipedia 43

Algorytm Genetyczny Inne metody krzyżowania Krzyżowanie z częściowym odwzorowaniem (PMX) Krzyżowanie z porządkowaniem (OX) 44

Przykład Algorytm Genetyczny Znalezienie maximum funkcji f(x)=x 2 w przedziale 0..31 Wybieramy system kodowania zmiennej decyzyjnej x (5b) Populacja złożona z 4 ciągów 01101 11000 01000 10011 45

Algorytm Genetyczny Przykład Nr ciągu Popul acja począt kowa War tość x f(x) pra wdo pod obie ńst wo Ocze kiwa na liczb a kopii Liczb a kopii wylos owan ych Wylos owana pula rodzici elska Los owo wyb rany part ner Los owy pun kt krzy żow ania Nowa populacja x f(x) 1 01101 13 169 0,14 0,58 1 011 01 2 4 01100 12 144 2 11000 24 576 0.49 1,92 2 110 00 1 4 11001 25 625 3 01000 8 64 0,06 0,22 0 11 000 4 2 11011 27 729 4 10011 19 361 0,31 1,23 1 10 011 3 2 10000 16 256 suma 1170 1,00 4 4 1754 średnia 293 0,25 1 1 439 maksimu m 576 0,49 1,97 2 729 46

Algorytm Genetyczny Zastosowanie w programowaniu współbieżnym Głównie układ master-slaves Master zleca procesom roboczym rozwój populacji, całych grup lub tylko pojedynczych osobników na proces Procesy Slave zwracają wartość funkcji przystosowania Master decyduje o doborze naturalnym W układzie P2P Dobór naturalny bez procesu zarządzającego. Wymiana chromosomów bezpośrednia. 47

Algorytm Mrówkowy Kilka słów na temat mrówek Są praktycznie ślepe Mają bardzo dobre zmysły węchu Mają znikome mózgi. Gdy działają w stadzie potrafią znaleźć najkrótszą drogę pomiędzy pożywieniem a mrowiskiem Korzystają z feromonów i zjawiska stygmerii (zjawisko pośredniej komunikacji poprzez wywoływanie zmian w środowisku i odczytywanie ich) Mrówki maszerując zostawiają na swej drodze feromon Feromony nieustannie parują Mrówki podczas decyzji którą z dróg wybrać kierują się intensywnością zapachu feromonu. 48

Działanie algorytmu Algorytm Mrówkowy Mrówki losowo rozchodzą się z mrowiska szukając pożywienia. Te mrówki które trafią krótszą dogą, szybciej też wrócą po swoich śladach Na krótszych trasach ilość mrówek w jednostce czasu jest większa a więc i odświeżanie śladu feromonowego jest intensywniejsze Trasy dłuższe, jako rzadziej odwiedzane wyparowują. 49

Algorytm Mrówkowy Działanie algorytmu w przypadku podjęcia decyzji Mrówki mają ustaloną trasę Gdy trafią na przeszkodę część pójdzie z jednej strony część z drugiej 50

Algorytm Mrówkowy Działanie algorytmu w przypadku podjęcia decyzji Mrówki idące krótszą drogą szybciej połączą ślady feromonowe dając jednocześnie sygnał dla pozostałych mrówek która trasa jest lepsza. 51

Algorytm Mrówkowy Działanie algorytmu w przypadku podjęcia decyzji Z czasem mrówki zoptymalizują swoją trasę. 52

Algorytm Mrówkowy Wyszukiwanie najlepszej trasy w problemie komiwojażera Punkt startu - dowolny Cel pojedynczej mrówki odwiedzić wszystkie miasta tylko 1 raz Poruszanie się po krawędziach grafu Mrówki działają iteracyjnie Feromon nakładany dopiero po znalezieniu tras przez wszystkie mrówki w danej iteracji Ilość feromonu odwrotnie proporcjonalna do znalezionej drogi lub nakładana tylko przez najlepszą mrówkę 53

Algorytm Mrówkowy Wyszukiwanie najlepszej trasy w problemie komiwojażera Na początku każda krawędź ma równą ilość feromonu Każda mrówka wybiera sobie dowolny punkt startu Wybierając kolejny i-ty węzeł na swojej trasie kieruje się tablicą decyzyjną A = i [ aij ( t)] [ Ni ] 54

Algorytm Mrówkowy ij Elementy tablicy decyzyjnej określone są wzorem: a ij [ τ = l N - ilość feromonu pomiędzy węzłem i oraz j i ij [ τ ( t)] ij α ( t)] [ η α ij [ η ] β il ] β j N i ij = c Wartość heurystyczna informująca o atrakcyjności danego d ij połączenia punktu i oraz j. c to stała d odległość pomiędzy i a j N i - zbiór możliwych połączeń wychodzących z węzła i αβ parametry dostrajające algorytm, można nimi regulować jaki udział w podjęciu decyzji ma heurystyka a jaki ilość feromonu. 55

Algorytm Mrówkowy Prawdopodobieństwo wybrania węzła podczas t-iteracji jest: j N i k dla k mrówek w pozycji i p k ij ( t) = l a k N i ij ( t) a il ( t) Gdzie N k i N i jest zestawem sąsiednich węzłów nie odwiedzonych. 56

Algorytm Mrówkowy Gdy wszystkie mrówki znajdą drogę wybieramy najlepszą z nich lub proporcjonalnie dla wszystkich uaktualniamy ilość feromonu na każdej krawędzi wchodzącej w skład trasy poprzez dodanie m/l feromonu gdzie m stała, L długość znalezionej trasy. Do tego dochodzi jeszcze parowanie. Z każdej krawędzi grafu odparowujemy pewną stałą część feromonu: τ τ * ρ ij = ij 57