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

Podobne dokumenty
Wykład 4. Droga i cykl Eulera i Hamiltona

Suma dwóch grafów. Zespolenie dwóch grafów

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Matematyka dyskretna

Wykłady z Matematyki Dyskretnej

TEORIA GRAFÓW I SIECI

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?

Algorytmiczna teoria grafów

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

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

KURS MATEMATYKA DYSKRETNA

Grafy dla każdego. dr Krzysztof Bryś. Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska.

Opracowanie prof. J. Domsta 1

Teoria grafów podstawy. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Grafy. Jeżeli, to elementy p i q nazywamy końcami krawędzi e. f a b c d e γ f {1} {1,2} {2,3} {2,3} {1,3}

Podstawowe własności grafów. Wykład 3. Własności grafów

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

Wykªad 4. Droga i cykl Eulera i Hamiltona

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza

Elementy teorii grafów Elementy teorii grafów

Graf. Definicja marca / 1

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Digraf. 13 maja 2017

Teoria grafów II. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Algorytmy mrówkowe (ang. Ant Colony Optimization)

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

Wybrane podstawowe rodzaje algorytmów

Algorytmy i Struktury Danych.

Algorytmika Problemów Trudnych

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Wyznaczanie optymalnej trasy problem komiwojażera

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

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

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

OPTYMALIZACJA W LOGISTYCE

Techniki optymalizacji

6a. Grafy eulerowskie i hamiltonowskie

TEORIA GRAFÓW I SIECI

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

Obliczenia inspirowane Naturą

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

Złożoność obliczeniowa klasycznych problemów grafowych

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Obliczenia Naturalne - Algorytmy Mrówkowe

SKOJARZENIA i ZBIORY WEWN. STABILNE WIERZCH. Skojarzeniem w grafie G nazywamy dowolny podzbiór krawędzi parami niezależnych.

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

TEORETYCZNE PODSTAWY INFORMATYKI

KURS MATEMATYKA DYSKRETNA

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Matematyka dyskretna - 5.Grafy.

Algorytm chińskiego listonosza Katarzyna Ignaszewska SPI51. Temat: Problem chińskiego listonosza, czyli jak obejść miasto najmniejszym nakładem sił.

Przykłady problemów optymalizacyjnych

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

Sortowanie topologiczne skierowanych grafów acyklicznych

Algorytmy mrówkowe w dynamicznych problemach transportowych

Wstęp do informatyki dr Adrian Horzyk, paw. H Wykład TEORIA GRAFÓW

Kombinatoryczne problemy optymalizacyjne to problemy wyboru najlepszego rozwiązania z pewnego zbioru rozwiązań

Matematyczne Podstawy Informatyki

Kolorowanie wierzchołków grafu

Algorytmy metaheurystyczne Wykład 6. Piotr Syga

Problem Komiwojażera - algorytmy metaheurystyczne

Grafy co o ich rysowaniu wiedzą przedszkolaki i co z tego wynika dla matematyków

Algorytmy wyznaczania centralności w sieci Szymon Szylko

G. Wybrane elementy teorii grafów

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

E ' E G nazywamy krawędziowym zbiorem

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

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Graf to nie tylko tytuł szlachecki

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki.

Wykłady z Matematyki Dyskretnej

a) 7 b) 19 c) 21 d) 34

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 7,8,9. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie

Programowanie dynamiczne cz. 2

Matematyka dyskretna dla informatyków

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Programowanie dynamiczne i algorytmy zachłanne

Wprowadzenie Podstawy Fundamentalne twierdzenie Kolorowanie. Grafy planarne. Przemysław Gordinowicz. Instytut Matematyki, Politechnika Łódzka

Algorytmy z powracaniem

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Matematyka od zaraz zatrudnię

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Kolorowanie wierzchołków

Metody Programowania

Optymalizacja. Wybrane algorytmy

Teoria grafów dla małolatów

Transkrypt:

Wykład 4. Droga i cykl Eulera i Hamiltona 1 / 92

Grafy Eulera Droga i cykl Eulera Niech G będzie grafem spójnym. Definicja Jeżeli w grafie G istnieje zamknięta droga prosta zawierająca wszystkie krawędzie grafu, to taką drogę nazywamy cyklem Eulera, a graf grafem eulerowskim albo grafem Eulera. 2 / 92

Grafy Eulera Droga i cykl Eulera Niech G będzie grafem spójnym. Definicja Jeżeli w grafie G istnieje zamknięta droga prosta zawierająca wszystkie krawędzie grafu, to taką drogę nazywamy cyklem Eulera, a graf grafem eulerowskim albo grafem Eulera. Definicja Jeżeli w grafie G istnieje droga prosta (nie koniecznie zamknięta) zawierająca wszystkie krawędzie grafu G, to taką drogę nazywamy drogą Eulera, zaś graf ten nazywamy grafem półeulerowskim. 3 / 92

Grafy Eulera Droga i cykl Eulera Niech G będzie grafem spójnym. Definicja Jeżeli w grafie G istnieje zamknięta droga prosta zawierająca wszystkie krawędzie grafu, to taką drogę nazywamy cyklem Eulera, a graf grafem eulerowskim albo grafem Eulera. Definicja Jeżeli w grafie G istnieje droga prosta (nie koniecznie zamknięta) zawierająca wszystkie krawędzie grafu G, to taką drogę nazywamy drogą Eulera, zaś graf ten nazywamy grafem półeulerowskim. 4 / 92

Przykład Droga i cykl Eulera z z y y z y w w w t x t x t x a) b) c) 5 / 92

Przykład Droga i cykl Eulera z z y y z y w w w t x t x t x a) b) c) a) graf eulerowski, cykl Eulera - txwzxyz 6 / 92

Przykład Droga i cykl Eulera z z y y z y w w w t x t x t x a) b) c) a) graf eulerowski, cykl Eulera - txwzxyz b) graf półeulerowski, droga Eulera - txywtzy 7 / 92

Przykład Droga i cykl Eulera z z y y z y w w w t x t x t x a) b) c) a) graf eulerowski, cykl Eulera - txwzxyz b) graf półeulerowski, droga Eulera - txywtzy c) graf nie posiada ani cyklu, ani drogi Eulera 8 / 92

Historia Droga i cykl Eulera W Królewcu, na rzece Pregole są dwie wyspy A i B połączone ze sobą, a także z brzegami C i D za pomocą siedmiu mostów. Należy wyruszyć z dowolnej części lądowej miasta: A, B, C lub D, przejść przez każdy z mostów dokładnie jeden raz i powrócić do punktu wyjściowego (bez przepływania przez rzekę). C Brzeg C Rzeka A B Wyspa A Wyspa B Brzeg D D 9 / 92

Historia Droga i cykl Eulera W Królewcu, na rzece Pregole są dwie wyspy A i B połączone ze sobą, a także z brzegami C i D za pomocą siedmiu mostów. Należy wyruszyć z dowolnej części lądowej miasta: A, B, C lub D, przejść przez każdy z mostów dokładnie jeden raz i powrócić do punktu wyjściowego (bez przepływania przez rzekę). C Brzeg C Rzeka A B Wyspa A Wyspa B Brzeg D D W 1736 problem został rozwiązany przez szwajcarskiego matematyka Leonharda Eulera (1707-1783). Zbudował on graf przedstawiony na rysunku przyporządkowując obszarom lądu wierzchołki, a mostom - krawędzie. Należało teraz odpowiedzieć na pytanie: Czy tak otrzymany graf ma drogę zamkniętą, która zawiera wszystkie krawędzie tylko raz? 10 / 92

Lemat Jeżeli dla każdego wierzchołka grafu G, deg(v) 2, dla v V, wówczas graf zawiera cykl. 11 / 92

Lemat Jeżeli dla każdego wierzchołka grafu G, deg(v) 2, dla v V, wówczas graf zawiera cykl. Dowód. Jeżeli graf G zawiera krawędzie wielokrotne lub pętle wówczas twierdzenie jest prawdziwe. Zakładamy dalej, że graf G jest grafem prostym. Niech v 0 będzie dowolnym wierzchołkiem grafu G. Utwórzmy drogę prostą wychodząca z punktu v 0 według algorytmu: 1 v 0 dowolny wierzchołek grafu G, przyjmijmy v 1 = v 0 2 i 1 3 do drogi C dołączamy wierzchołek v 0 4 while droga C nie jest cyklem 5 do 6 niech v i v i 2 będzie sąsiadem wierzchołka v i 1, wybór jest możliwy, ponieważ deg(v i 1 ) 2 7 if v i jest wierzchołkiem należącym do drogi v i 1,..., v 0 8 then droga C zawiera cykl 9 else v i dołączamy do drogi C = v i, v i 1,..., v 0 10 i i + 1 12 / 92

Twierdzenie Eulera Graf spójny ma cykl Eulera gdy każdy wierzchołek ma stopień parzysty. Warunek konieczny. Jeżeli graf G ma cykl Eulera, to ma wszystkie wierzchołki stopnia parzystego. g f d k h c y x z b t s g f d k h c y x z b t s g f d k h c y x z b t s g f d k h c y x z b t s g f d k h c y x z b t s g f d k h c y x z b t s g f d k h c y x z b t s g f d k h c y x z b t s g f d k h c y x z b t s g f d k h c y x z b t s g f d k h c y x z b t s g f d k h c y x z b t s g f d k h c y x z b t s g f d k h c y x z b t s g f d k h c y z b t s g f d k h c y z b t s g f d k h c y z b t s g f d k h c y z b t s x t y x d s f c b h g k t y x z d s f c b h g k t...... y x z d s f c b h g k t...... Niech C będzie cyklem Eulera (na rysunku C = zyxtsytz. Załóżmy, że startujemy z pierwszego wierzchołka cyklu (na rysunku z), idziemy od wierzchołka do wierzchołka naszego cyklu i odejmujemy krawędź (może to być pętla), po której ostatnio przeszliśmy. Dla każdego wierzchołka cyklu oprócz wierzchołka pierwszego odjęcie dwóch kolejnych krawędzi cyklu incydentnych z tym wierzchołkiem zmniejsza jego stopień o dwa. Gdy powrócimy do wierzchołka startowego (na rysunku z) pozostaną w grafie jedynie wierzchołki stopnia zerowego, co oznacza, że na początku wszystkie wierzchołki miały stopień parzysty. 13 / 92

Warunek dostateczny. Jeżeli graf G ma wszystkie wierzchołki stopnia parzystego, to ma cykl Eulera. Dowód oparty o zasadę indukcji matematycznej, ze względu na liczbę krawędzi m grafu. H H Niech m 1. Załóżmy, że twierdzenie jest prawdziwe dla wszystkich grafów posiadających mniej niż m krawędzi. Niech G będzie grafem spójnym, który posiada m krawędzi oraz stopień każdego wierzchołka jest liczbą parzystą. Ponieważ stopień każdego wierzchołka wynosi co najmniej H dwa, więc z poprzedniego lematu wynika, że graf G ma cykl C. Jeśli (V C, E G ) = G wówczas dowód jest zakończony. W przeciwnym razie każda składowa spójności grafu G E C spełnia założenie indukcyjne, więc jest eulerowska. Cykl Eulera w grafie G wyznaczamy następująco: przechodzimy przez kolejne wierzchołki cyklu C. Jeśli bieżący wierzchołek należy do pewnej składowej spójności, to od tego wierzchołka wyznaczamy cykl Eulera w danej składowej, powracając do tego samego wierzchołka cyklu C. 14 / 92

Twierdzenie Eulera o drodze Eulera Graf spójny mający dokładnie dwa wierzchołki stopnia nieparzystego ma drogę Eulera. 15 / 92

Twierdzenie Eulera o drodze Eulera Graf spójny mający dokładnie dwa wierzchołki stopnia nieparzystego ma drogę Eulera. Wniosek Z ostatniego twierdzenia wynika, że w grafie półeulerowskim, każda droga Eulera musi mieć początek w jednym wierzchołku nieparzystego stopnia, a koniec w drugim takim wierzchołku. 16 / 92

Twierdzenie Eulera dla grafów skierowanych Graf skierowany jest grafem Eulera wtedy i tylko wtedy, gdy dla dowolnego wierzchołka v grafu, stopień wejściowy jest równy stopniowi wyjściowemu. indeg(v) = outdeg(v) 17 / 92

Twierdzenie Eulera dla grafów skierowanych Graf skierowany jest grafem Eulera wtedy i tylko wtedy, gdy dla dowolnego wierzchołka v grafu, stopień wejściowy jest równy stopniowi wyjściowemu. indeg(v) = outdeg(v) x 4 x 3 Cykl: x 3x 2x 4x 1x 2x 1x 4x 3 x 2 x 1 18 / 92

Zadanie chińskiego listonosza Grafy de Bruijna Problem chińskiego listonosza Zadanie to zostało sformułowane przez chińskiego matematyka Mei Ku Kwana. Listonosz wychodząc z budynku poczty musi obejść wszystkie ulice w swoim rejonie i powrócić do budynku, przechodząc jak najkrótszą drogę. W języku teorii grafów należy w grafie spójnym znaleźć drogę zamkniętą z minimalną liczbą krawędzi albo, w przypadku grafu ważonego z najmniejszą sumą wag, która zawiera każdą krawędź co najmniej raz. Jeżeli graf jest eulerowski, to rozwiązanie problemu jest jednoznaczne i jest nim dowolny cykl Eulera. 19 / 92

Zadanie chińskiego listonosza Grafy de Bruijna Problem chińskiego listonosza Zadanie to zostało sformułowane przez chińskiego matematyka Mei Ku Kwana. Listonosz wychodząc z budynku poczty musi obejść wszystkie ulice w swoim rejonie i powrócić do budynku, przechodząc jak najkrótszą drogę. W języku teorii grafów należy w grafie spójnym znaleźć drogę zamkniętą z minimalną liczbą krawędzi albo, w przypadku grafu ważonego z najmniejszą sumą wag, która zawiera każdą krawędź co najmniej raz. Jeżeli graf jest eulerowski, to rozwiązanie problemu jest jednoznaczne i jest nim dowolny cykl Eulera. Jeżeli graf jest półeulerowski, to rozwiązaniem problemu jest droga Eulera i najkrótsza droga powrotna do punktu startowego. 20 / 92

Zadanie chińskiego listonosza Grafy de Bruijna Problem chińskiego listonosza Zadanie to zostało sformułowane przez chińskiego matematyka Mei Ku Kwana. Listonosz wychodząc z budynku poczty musi obejść wszystkie ulice w swoim rejonie i powrócić do budynku, przechodząc jak najkrótszą drogę. W języku teorii grafów należy w grafie spójnym znaleźć drogę zamkniętą z minimalną liczbą krawędzi albo, w przypadku grafu ważonego z najmniejszą sumą wag, która zawiera każdą krawędź co najmniej raz. Jeżeli graf jest eulerowski, to rozwiązanie problemu jest jednoznaczne i jest nim dowolny cykl Eulera. Jeżeli graf jest półeulerowski, to rozwiązaniem problemu jest droga Eulera i najkrótsza droga powrotna do punktu startowego. Gdy graf nie jest ani eulerowski, ani półeulerowski, to rozważany problem staje się trudny. Rozwiązanie problemu dostarczania poczty polega na wyznaczeniu pewnych krawędzi, którymi trzeba się poruszać kilka razy (innymi słowy rysunek grafu uzupełniamy krawędziami wielokrotnymi, czyniąc go grafem Eulera). Krawędzie, które dorysowujemy wyznacza się używając algorytmów: wyznaczania maksymalnego przepływu i najkrótszych dróg lub stosując algorytm najkrótszych ścieżek i wyznaczania skojarzenia. 21 / 92

Ciąg de Bruijna Droga i cykl Eulera Zadanie chińskiego listonosza Grafy de Bruijna Niech dla ustalonego k N A k := {0, 1, 2,..., k 1}. Zbiór A k będziemy nazywać alfabetem złożonym z k liter 0, 1, 2,..., k 1. 22 / 92

Ciąg de Bruijna Droga i cykl Eulera Zadanie chińskiego listonosza Grafy de Bruijna Niech dla ustalonego k N A k := {0, 1, 2,..., k 1}. Zbiór A k będziemy nazywać alfabetem złożonym z k liter 0, 1, 2,..., k 1. Definicja Słowem długości n nad alfabetem A k nazywamy każdy ciąg n wyrazowy zbudowany z liter alfabetu A k. 23 / 92

Ciąg de Bruijna Droga i cykl Eulera Zadanie chińskiego listonosza Grafy de Bruijna Niech dla ustalonego k N A k := {0, 1, 2,..., k 1}. Zbiór A k będziemy nazywać alfabetem złożonym z k liter 0, 1, 2,..., k 1. Definicja Słowem długości n nad alfabetem A k nazywamy każdy ciąg n wyrazowy zbudowany z liter alfabetu A k. Definicja Słowem cyklicznym długości s nad alfabetem A k nazywamy każdy cykliczny ciąg długości s zbudowany z liter alfabetu A k. 24 / 92

Ciąg de Bruijna Droga i cykl Eulera Zadanie chińskiego listonosza Grafy de Bruijna Niech dla ustalonego k N A k := {0, 1, 2,..., k 1}. Zbiór A k będziemy nazywać alfabetem złożonym z k liter 0, 1, 2,..., k 1. Definicja Słowem długości n nad alfabetem A k nazywamy każdy ciąg n wyrazowy zbudowany z liter alfabetu A k. Definicja Słowem cyklicznym długości s nad alfabetem A k nazywamy każdy cykliczny ciąg długości s zbudowany z liter alfabetu A k. Definicja Ciągiem de Bruijna rzędu n nad alfabetem A k nazywamy słowo cykliczne długości k n zawierające wszystkie możliwe słowa długości n. 25 / 92

Zadanie chińskiego listonosza Grafy de Bruijna Przykłady Dla alfabetu A = {0, 1} (k = 2) 26 / 92

Zadanie chińskiego listonosza Grafy de Bruijna Przykłady Dla alfabetu A = {0, 1} (k = 2) dla n = 1: 01 27 / 92

Zadanie chińskiego listonosza Grafy de Bruijna Przykłady Dla alfabetu A = {0, 1} (k = 2) dla n = 1: 01 dla n = 2: 0110 28 / 92

Zadanie chińskiego listonosza Grafy de Bruijna Przykłady Dla alfabetu A = {0, 1} (k = 2) dla n = 1: 01 dla n = 2: 0110 dla n = 3: 01110100 29 / 92

Zadanie chińskiego listonosza Grafy de Bruijna Przykłady Dla alfabetu A = {0, 1} (k = 2) dla n = 1: 01 dla n = 2: 0110 dla n = 3: 01110100 dla n = 4: 0000100110101111 30 / 92

Zadanie chińskiego listonosza Grafy de Bruijna Przykłady Dla alfabetu A = {0, 1} (k = 2) dla n = 1: 01 dla n = 2: 0110 dla n = 3: 01110100 dla n = 4: 0000100110101111 Dla alfabetu A = {0, 1, 2}) i n = 3: 011220210 31 / 92

Graf de Bruijna Droga i cykl Eulera Zadanie chińskiego listonosza Grafy de Bruijna Definicja n-wymiarowym grafem de Bruijna alfabetu A k, nazywamy skierowany graf G = V, E, którego wierzchołki wzajemnie jednoznacznie odpowiadają słowom o długości n, natomiast E = {((v 1, v 2,..., v n), (v 2, v 3,..., v n, v)) : v 1, v 2,..., v n, v A k }. 32 / 92

Graf de Bruijna Droga i cykl Eulera Zadanie chińskiego listonosza Grafy de Bruijna Definicja n-wymiarowym grafem de Bruijna alfabetu A k, nazywamy skierowany graf G = V, E, którego wierzchołki wzajemnie jednoznacznie odpowiadają słowom o długości n, natomiast E = {((v 1, v 2,..., v n), (v 2, v 3,..., v n, v)) : v 1, v 2,..., v n, v A k }. Krawędziom grafu de Bruijna można przyporządkować wagi. Krawędzi e = ((v 1, v 2,..., v n), (v 2, v 3,..., v n, v)) przyporządkowujemy wagę v. 33 / 92

Graf de Bruijna Droga i cykl Eulera Zadanie chińskiego listonosza Grafy de Bruijna Definicja n-wymiarowym grafem de Bruijna alfabetu A k, nazywamy skierowany graf G = V, E, którego wierzchołki wzajemnie jednoznacznie odpowiadają słowom o długości n, natomiast E = {((v 1, v 2,..., v n), (v 2, v 3,..., v n, v)) : v 1, v 2,..., v n, v A k }. Krawędziom grafu de Bruijna można przyporządkować wagi. Krawędzi e = ((v 1, v 2,..., v n), (v 2, v 3,..., v n, v)) przyporządkowujemy wagę v. Ciąg de Bruijna rzędu n nad alfabetem A k może być skonstruowany przy użyciu cyklu Eulera w (n 1) wymiarowym grafie de Bruijna alfabetu A k. 34 / 92

Definicja Drogą Hamiltona nazywamy drogę, która przechodzi przez każdy wierzchołek grafu dokładnie jeden raz. 35 / 92

Definicja Drogą Hamiltona nazywamy drogę, która przechodzi przez każdy wierzchołek grafu dokładnie jeden raz. Definicja Cyklem Hamiltona nazywamy cykl przechodzący przez wszystkie wierzchołki grafu. 36 / 92

Definicja Drogą Hamiltona nazywamy drogę, która przechodzi przez każdy wierzchołek grafu dokładnie jeden raz. Definicja Cyklem Hamiltona nazywamy cykl przechodzący przez wszystkie wierzchołki grafu. Graf posiadający cykl Hamiltona nazywamy grafem hamiltonowskim, a graf posiadający tylko drogę Hamiltona - grafem półhamiltonowskim. 37 / 92

Definicja Drogą Hamiltona nazywamy drogę, która przechodzi przez każdy wierzchołek grafu dokładnie jeden raz. Definicja Cyklem Hamiltona nazywamy cykl przechodzący przez wszystkie wierzchołki grafu. Graf posiadający cykl Hamiltona nazywamy grafem hamiltonowskim, a graf posiadający tylko drogę Hamiltona - grafem półhamiltonowskim. w w v w z u z u z x y x y x y a) b) c) 38 / 92

Kod Greya Droga i cykl Eulera Zacznijmy od następującej obserwacji: 39 / 92

Kod Greya Droga i cykl Eulera Zacznijmy od następującej obserwacji: Niech ciąg (C 1, C 2,..., C m) zawiera wszystkie ciągi binarne C i długości k (jest ich 2 k ), przy czym C i różni się od C i+1 na dokładnie jednej współrzędnej. Wówczas ciąg C 10, C 20,..., C m0, C m1, C m 11,...C 11 zawiera wszystkie ciągi binarne długości k + 1, przy czym każde dwa sąsiednie ciągi różnią się na dokładnie jednej współrzędnej. 40 / 92

Kod Greya Droga i cykl Eulera Zacznijmy od następującej obserwacji: Niech ciąg (C 1, C 2,..., C m) zawiera wszystkie ciągi binarne C i długości k (jest ich 2 k ), przy czym C i różni się od C i+1 na dokładnie jednej współrzędnej. Wówczas ciąg C 10, C 20,..., C m0, C m1, C m 11,...C 11 zawiera wszystkie ciągi binarne długości k + 1, przy czym każde dwa sąsiednie ciągi różnią się na dokładnie jednej współrzędnej. W ten sposób konstruujemy prosty algorytm rekurencyjny generujący wszystkie ciągi binarne długości n. 41 / 92

Kod Greya Droga i cykl Eulera Zacznijmy od następującej obserwacji: Niech ciąg (C 1, C 2,..., C m) zawiera wszystkie ciągi binarne C i długości k (jest ich 2 k ), przy czym C i różni się od C i+1 na dokładnie jednej współrzędnej. Wówczas ciąg C 10, C 20,..., C m0, C m1, C m 11,...C 11 zawiera wszystkie ciągi binarne długości k + 1, przy czym każde dwa sąsiednie ciągi różnią się na dokładnie jednej współrzędnej. W ten sposób konstruujemy prosty algorytm rekurencyjny generujący wszystkie ciągi binarne długości n. Otrzymany ciąg C 1, C 2,..., C 2 n nazywamy kodem binarnym Greya rzędu n. 42 / 92

Cykl Hamiltona w kostce Q n W kostce n-wymiarowej Q n, kolejność ciągów binarnych, wygenerowanych przez kod Grey a stanowi drogę Hamiltona w tej kostce. 100 101 110 111 010 011 000 001 43 / 92

Warunek konieczny istnienia cyklu Hamiltona Twierdzenie Jeżeli graf o n wierzchołkach jest hamiltonowski, to posiada co najmniej n krawędzi. 44 / 92

Warunki wystarczające istnienia cyklu Hamiltona Twierdzenie Każdy graf pełny K n jest grafem Hamiltona. 45 / 92

Warunki wystarczające istnienia cyklu Hamiltona Twierdzenie Każdy graf pełny K n jest grafem Hamiltona. K 3 K 4 K 5 46 / 92

Warunki wystarczające istnienia cyklu Hamiltona Twierdzenie Ore (1960) Niech graf G = V, E będzie grafem spójnym i niech V = n 3 (tzn. graf G ma co najmniej trzy wierzchołki). Jeżeli deg(u) + deg(w) n dla każdej pary wierzchołków u, w V, które nie są połączone krawędzią, to graf G jest grafem hamiltonowskim. 47 / 92

Warunki wystarczające istnienia cyklu Hamiltona Twierdzenie Ore (1960) Niech graf G = V, E będzie grafem spójnym i niech V = n 3 (tzn. graf G ma co najmniej trzy wierzchołki). Jeżeli deg(u) + deg(w) n dla każdej pary wierzchołków u, w V, które nie są połączone krawędzią, to graf G jest grafem hamiltonowskim. u z u z x 6 x 5 w v x 7 X 4 w x 8 x 3 x y x G 1 G 2 G 3 y x 1 x 2 a) b) c) 48 / 92

Warunki wystarczające istnienia cyklu Hamiltona Twierdzenie Dirac (1952) Jeżeli w grafie prostym i spójnym G = V, E o n wierzchołkach (n 3) oraz stopień każdego wierzchołka u V spełnia warunek deg(u) 1 n, to 2 graf G jest grafem hamiltonowskim. 49 / 92

Warunki wystarczające istnienia cyklu Hamiltona Twierdzenie Dirac (1952) Jeżeli w grafie prostym i spójnym G = V, E o n wierzchołkach (n 3) oraz stopień każdego wierzchołka u V spełnia warunek deg(u) 1 n, to 2 graf G jest grafem hamiltonowskim. Twierdzenie Jeżeli w grafie prostym i spójnym G o n wierzchołkach jest co najmniej (n 1)(n 2) + 2 krawędzi, to graf G jest grafem hamiltonowskim. 1 2 50 / 92

warunek konieczny Twierdzenie Niech G = (V 1 V 2, E) będzie grafem dwudzielnym Jeśli G ma cykl Hamiltona, to V 1 = V 2. Jeśli G ma drogę Hamiltona, to V 1 V 2 1. 51 / 92

pełnych warunek wystarczający Twierdzenie Niech G = (V 1 V 2, E) będzie grafem pełnym dwudzielnym Jeśli V 1 = V 2, to G ma cykl Hamiltona. Jeśli V 1 V 2 1, to G ma drogę Hamiltona. 52 / 92

Cykle Hamiltona rozłączne krawędziowo Definicja Dwa cykle są rozłączne krawędziowo, gdy każda krawędź należy tylko do jednego cyklu w grafie. 53 / 92

Cykle Hamiltona rozłączne krawędziowo Definicja Dwa cykle są rozłączne krawędziowo, gdy każda krawędź należy tylko do jednego cyklu w grafie. Twierdzenie Graf pełny K n zawiera [ ] n 1 2 rozłącznych krawędziowo cykli Hamiltona. 54 / 92

Cykle Hamiltona rozłączne krawędziowo Definicja Dwa cykle są rozłączne krawędziowo, gdy każda krawędź należy tylko do jednego cyklu w grafie. Twierdzenie Graf pełny K n zawiera [ ] n 1 2 rozłącznych krawędziowo cykli Hamiltona. W grafie K 5 mamy [ ] 5 1 = 2 2 W grafie K 4 mamy [ ] [ 4 1 = 1 1 ] = 1 2 2 55 / 92

Twierdzenie Graf pełny K n zawiera różnych cykli Hamiltona. (n 1)! 2 56 / 92

Twierdzenie Graf pełny K n zawiera różnych cykli Hamiltona. (n 1)! 2 W grafie K 4 mamy (4 1)! 2 = 3 różne cykle Hamiltona 57 / 92

Twierdzenie Graf pełny K n zawiera różnych cykli Hamiltona. (n 1)! 2 W grafie K 4 mamy (4 1)! 2 = 3 różne cykle Hamiltona W grafie K 5 mamy (5 1)! 2 = 12 cykli Hamiltona, 58 / 92

Twierdzenie Graf pełny K n zawiera różnych cykli Hamiltona. (n 1)! 2 W grafie K 4 mamy (4 1)! 2 = 3 różne cykle Hamiltona W grafie K 5 mamy (5 1)! 2 = 12 cykli Hamiltona, W grafie K 20 mamy 19! 2 > 1017 różnych cykli Hamiltona. 59 / 92

Komiwojażer ma odwiedzić kilka miast (każde dokładnie jeden raz) i powrócić do miasta, z którego wyruszył przebywając łącznie najkrótszą (najtańszą, lub najszybciej przebytą) drogę. Znane są odległości (koszty lub czas) przejazdu między każdą parą miast. Należy wyznaczyć komiwojażerowi trasę przejazdu tak, aby mógł odwiedzić każde miasto dokładnie jeden raz i całkowita droga (koszt lub czas) podróży była/był możliwie najkrótsza/najmniejszy. 60 / 92

Komiwojażer ma odwiedzić kilka miast (każde dokładnie jeden raz) i powrócić do miasta, z którego wyruszył przebywając łącznie najkrótszą (najtańszą, lub najszybciej przebytą) drogę. Znane są odległości (koszty lub czas) przejazdu między każdą parą miast. Należy wyznaczyć komiwojażerowi trasę przejazdu tak, aby mógł odwiedzić każde miasto dokładnie jeden raz i całkowita droga (koszt lub czas) podróży była/był możliwie najkrótsza/najmniejszy. Problem ten możemy sformułować w teorii n wierzchołkowej sieci pełnej, a następnie znaleźć najkrótszy (najtańszy lub najszybszy) cykl Hamiltona o n wierzchołkach. a b 20 75 40 c Przykładowo, w sieci na rysunku cykl a, b, c, d, e, a ma wagę 230, a cykl a, b, e, c, d, a ma wagę 110. 20 25 30 15 30 40 65 61 / 92

Teoretycznie problem komiwojażera można rozwiązać poprzez wyznaczenie 1 (n 1)! cykli Hamiltona i wybranie tego, który ma najmniejszą sumę wag. 2 Oczywiście, metoda ta jest bardzo nieefektywna. Bowiem, jeśli dysponujemy komputerem sprawdzającym milion permutacji na sekundę, to: 62 / 92

Teoretycznie problem komiwojażera można rozwiązać poprzez wyznaczenie 1 (n 1)! cykli Hamiltona i wybranie tego, który ma najmniejszą sumę wag. 2 Oczywiście, metoda ta jest bardzo nieefektywna. Bowiem, jeśli dysponujemy komputerem sprawdzającym milion permutacji na sekundę, to: n = 10 liczba cykli wynosi (10 1)!/2 = 181440 czas obliczeń = 1.8 s 63 / 92

Teoretycznie problem komiwojażera można rozwiązać poprzez wyznaczenie 1 (n 1)! cykli Hamiltona i wybranie tego, który ma najmniejszą sumę wag. 2 Oczywiście, metoda ta jest bardzo nieefektywna. Bowiem, jeśli dysponujemy komputerem sprawdzającym milion permutacji na sekundę, to: n = 10 liczba cykli wynosi (10 1)!/2 = 181440 czas obliczeń = 1.8 s n = 20 liczba cykli wynosi (20 1)!/2 = 60822550204416000 czas obliczeń ok. 29330 lat 64 / 92

Teoretycznie problem komiwojażera można rozwiązać poprzez wyznaczenie 1 (n 1)! cykli Hamiltona i wybranie tego, który ma najmniejszą sumę wag. 2 Oczywiście, metoda ta jest bardzo nieefektywna. Bowiem, jeśli dysponujemy komputerem sprawdzającym milion permutacji na sekundę, to: n = 10 liczba cykli wynosi (10 1)!/2 = 181440 czas obliczeń = 1.8 s n = 20 liczba cykli wynosi (20 1)!/2 = 60822550204416000 czas obliczeń ok. 29330 lat jest NP-zupełny. 65 / 92

Teoretycznie problem komiwojażera można rozwiązać poprzez wyznaczenie 1 (n 1)! cykli Hamiltona i wybranie tego, który ma najmniejszą sumę wag. 2 Oczywiście, metoda ta jest bardzo nieefektywna. Bowiem, jeśli dysponujemy komputerem sprawdzającym milion permutacji na sekundę, to: n = 10 liczba cykli wynosi (10 1)!/2 = 181440 czas obliczeń = 1.8 s n = 20 liczba cykli wynosi (20 1)!/2 = 60822550204416000 czas obliczeń ok. 29330 lat jest NP-zupełny. Rozwiązania problemu komiwojażera, możemy wybrać jedną z dwóch metod: 66 / 92

Teoretycznie problem komiwojażera można rozwiązać poprzez wyznaczenie 1 (n 1)! cykli Hamiltona i wybranie tego, który ma najmniejszą sumę wag. 2 Oczywiście, metoda ta jest bardzo nieefektywna. Bowiem, jeśli dysponujemy komputerem sprawdzającym milion permutacji na sekundę, to: n = 10 liczba cykli wynosi (10 1)!/2 = 181440 czas obliczeń = 1.8 s n = 20 liczba cykli wynosi (20 1)!/2 = 60822550204416000 czas obliczeń ok. 29330 lat jest NP-zupełny. Rozwiązania problemu komiwojażera, możemy wybrać jedną z dwóch metod: metodę dokładną, np. metodę podziału i ograniczeń, która wygeneruje dokładne rozwiązanie, ale działającą w czasie wykładniczym (a więc metoda wolna ), 67 / 92

Teoretycznie problem komiwojażera można rozwiązać poprzez wyznaczenie 1 (n 1)! cykli Hamiltona i wybranie tego, który ma najmniejszą sumę wag. 2 Oczywiście, metoda ta jest bardzo nieefektywna. Bowiem, jeśli dysponujemy komputerem sprawdzającym milion permutacji na sekundę, to: n = 10 liczba cykli wynosi (10 1)!/2 = 181440 czas obliczeń = 1.8 s n = 20 liczba cykli wynosi (20 1)!/2 = 60822550204416000 czas obliczeń ok. 29330 lat jest NP-zupełny. Rozwiązania problemu komiwojażera, możemy wybrać jedną z dwóch metod: metodę dokładną, np. metodę podziału i ograniczeń, która wygeneruje dokładne rozwiązanie, ale działającą w czasie wykładniczym (a więc metoda wolna ), metodę przybliżoną (inaczej nazywaną metodą aproksymacyjną), która generuje rozwiązanie bliskie optymalnemu ale działającą w czasie wielomianowym. 68 / 92

Historia TSP - Travelling salesman problem http://www.tsp.gatech.edu//history/pictorial/dfj.html 69 / 92

Historia TSP - Travelling salesman problem Dla 49 miast wojewódzkich według starego podziału administracyjnego Polski, długość drogi przybliżonej wynosi około 3699 km, a długość drogi optymalnej wynosi około 3580 km. 70 / 92

Optymalizacja naturalna. Heurystyki przeszukiwań Heurystyka (gr.heuriskein znaleźć, odkryć) to praktyczna, oparta na doświadczeniu reguła postępowania, która może znacznie uprościć lub skrócić proces rozwiązywania rozważanego problemu, gdy metoda rozwiązania nie jest znana lub jest zawiła i czasochłonna. Dla zadań, w których mamy do czynienia z wieloma rozwiązaniami, ważne jest wczesne odrzucenie nieobiecujących kierunków poszukiwania rozwiązania. Zapewnia to ogromne oszczędności na kosztach obliczeniowych, a w rezultacie przyspiesza znalezienie rozwiązania. Metody heurystyczne pozwalają na znalezienie w akceptowalnym czasie przynajmniej przybliżonego rozwiązania problemu, choć nie gwarantuje tego we wszystkich przypadkach. Skuteczności kroków heurystycznych nie można w pełni udowodnić teoretycznie, można jedynie pokazać doświadczalnie ich trafność. 71 / 92

Algorytmy mrówkowe, 1992 Marco Dorigo Mrówki poruszają się z mrowiska do ustalonego punktu (np. miejsca, gdzie znajduje się pożywienie). 72 / 92

Algorytmy mrówkowe, 1992 Marco Dorigo Mrówki poruszają się z mrowiska do ustalonego punktu (np. miejsca, gdzie znajduje się pożywienie). Wracając każda z nich przebywa dokładnie tę samą drogę w przeciwnym kierunku. 73 / 92

Algorytmy mrówkowe, 1992 Marco Dorigo Mrówki poruszają się z mrowiska do ustalonego punktu (np. miejsca, gdzie znajduje się pożywienie). Wracając każda z nich przebywa dokładnie tę samą drogę w przeciwnym kierunku. Każda z mrówek napotykając na swojej drodze rozgałęzienie dokonuje losowego wyboru drogi (na początku prawdopodobieństwo wyboru każdej z możliwości jest takie samo). 74 / 92

Algorytmy mrówkowe, 1992 Marco Dorigo Mrówki poruszają się z mrowiska do ustalonego punktu (np. miejsca, gdzie znajduje się pożywienie). Wracając każda z nich przebywa dokładnie tę samą drogę w przeciwnym kierunku. Każda z mrówek napotykając na swojej drodze rozgałęzienie dokonuje losowego wyboru drogi (na początku prawdopodobieństwo wyboru każdej z możliwości jest takie samo). 75 / 92

Algorytmy mrówkowe, 1992 Marco Dorigo Mrówki poruszają się z mrowiska do ustalonego punktu (np. miejsca, gdzie znajduje się pożywienie). Wracając każda z nich przebywa dokładnie tę samą drogę w przeciwnym kierunku. Każda z mrówek napotykając na swojej drodze rozgałęzienie dokonuje losowego wyboru drogi (na początku prawdopodobieństwo wyboru każdej z możliwości jest takie samo). Mrówki przechodząc trasę pozostawiają za sobą pewną ilość feromonu. 76 / 92

Algorytmy mrówkowe, 1992 Marco Dorigo Mrówki poruszają się z mrowiska do ustalonego punktu (np. miejsca, gdzie znajduje się pożywienie). Wracając każda z nich przebywa dokładnie tę samą drogę w przeciwnym kierunku. Każda z mrówek napotykając na swojej drodze rozgałęzienie dokonuje losowego wyboru drogi (na początku prawdopodobieństwo wyboru każdej z możliwości jest takie samo). Mrówki przechodząc trasę pozostawiają za sobą pewną ilość feromonu. W efekcie, z upływem czasu krótsze drogi pokryte są większą ilością feromonu. 77 / 92

Algorytmy mrówkowe, 1992 Marco Dorigo Mrówki poruszają się z mrowiska do ustalonego punktu (np. miejsca, gdzie znajduje się pożywienie). Wracając każda z nich przebywa dokładnie tę samą drogę w przeciwnym kierunku. Każda z mrówek napotykając na swojej drodze rozgałęzienie dokonuje losowego wyboru drogi (na początku prawdopodobieństwo wyboru każdej z możliwości jest takie samo). Mrówki przechodząc trasę pozostawiają za sobą pewną ilość feromonu. W efekcie, z upływem czasu krótsze drogi pokryte są większą ilością feromonu. Kolejne mrówki dokonują wyboru dróg losowo, ale z uwzględnieniem ilości pozostawionego feromonu. 78 / 92

Algorytmy mrówkowe, 1992 Marco Dorigo Mrówki poruszają się z mrowiska do ustalonego punktu (np. miejsca, gdzie znajduje się pożywienie). Wracając każda z nich przebywa dokładnie tę samą drogę w przeciwnym kierunku. Każda z mrówek napotykając na swojej drodze rozgałęzienie dokonuje losowego wyboru drogi (na początku prawdopodobieństwo wyboru każdej z możliwości jest takie samo). Mrówki przechodząc trasę pozostawiają za sobą pewną ilość feromonu. W efekcie, z upływem czasu krótsze drogi pokryte są większą ilością feromonu. Kolejne mrówki dokonują wyboru dróg losowo, ale z uwzględnieniem ilości pozostawionego feromonu. W efekcie końcowym mrówki wybierają najkrótszą z dróg. 79 / 92

Ant System - AS, zastosowanie do TSP Dany jest graf pełny G = N, E, gdzie: N = {1, 2,..., n} zbiór wierzchołków (miast), E zbiór krawędzi (bezpośrednich połączeń między miastami). Niech d ij oznacza długością krawędzi (i, j) E, czyli odległością między miastami i i j. 80 / 92

Ant System - AS, zastosowanie do TSP Dany jest graf pełny G = N, E, gdzie: N = {1, 2,..., n} zbiór wierzchołków (miast), E zbiór krawędzi (bezpośrednich połączeń między miastami). Niech d ij oznacza długością krawędzi (i, j) E, czyli odległością między miastami i i j. W algorytmie AS, w każdej iteracji t (1 t t max), k ta mrówka (k = 1,..., m) przechodzi przez graf budując cykl długości n. 81 / 92

Ant System - AS, zastosowanie do TSP Dany jest graf pełny G = N, E, gdzie: N = {1, 2,..., n} zbiór wierzchołków (miast), E zbiór krawędzi (bezpośrednich połączeń między miastami). Niech d ij oznacza długością krawędzi (i, j) E, czyli odległością między miastami i i j. W algorytmie AS, w każdej iteracji t (1 t t max), k ta mrówka (k = 1,..., m) przechodzi przez graf budując cykl długości n. Załóżmy, że w iteracji t k ta mrówka znajduje się w wierzchołku i. 82 / 92

Ant System - AS, zastosowanie do TSP Dany jest graf pełny G = N, E, gdzie: N = {1, 2,..., n} zbiór wierzchołków (miast), E zbiór krawędzi (bezpośrednich połączeń między miastami). Niech d ij oznacza długością krawędzi (i, j) E, czyli odległością między miastami i i j. W algorytmie AS, w każdej iteracji t (1 t t max), k ta mrówka (k = 1,..., m) przechodzi przez graf budując cykl długości n. Załóżmy, że w iteracji t k ta mrówka znajduje się w wierzchołku i. Prawdopodobieństwo wyboru krawędzi do wierzchołka j jest określone za pomocą wzoru: 83 / 92

Ant System - AS, zastosowanie do TSP Dany jest graf pełny G = N, E, gdzie: N = {1, 2,..., n} zbiór wierzchołków (miast), E zbiór krawędzi (bezpośrednich połączeń między miastami). Niech d ij oznacza długością krawędzi (i, j) E, czyli odległością między miastami i i j. W algorytmie AS, w każdej iteracji t (1 t t max), k ta mrówka (k = 1,..., m) przechodzi przez graf budując cykl długości n. Załóżmy, że w iteracji t k ta mrówka znajduje się w wierzchołku i. Prawdopodobieństwo wyboru krawędzi do wierzchołka j jest określone za pomocą wzoru: pij k (τ ij (t)) α (η ij ) β (t) = Σ l N k (τ il (t)) α (η il ) β ) i 84 / 92

Ant System - AS, zastosowanie do TSP p k ij (t) = gdzie: τ ij (t) ilość feromonu w krawędzi (i, j) (τ ij (t)) α (η ij ) β Σ l N k i (τ il (t) α (η il ) β ) 85 / 92

Ant System - AS, zastosowanie do TSP p k ij (t) = gdzie: τ ij (t) ilość feromonu w krawędzi (i, j) (τ ij (t)) α (η ij ) β Σ l N k i (τ il (t) α (η il ) β ) η ij wartość heurystyczna określająca atrakcyjność wyboru krawędzi (i, j) np. η ij = 1 d ij 86 / 92

Ant System - AS, zastosowanie do TSP p k ij (t) = gdzie: τ ij (t) ilość feromonu w krawędzi (i, j) (τ ij (t)) α (η ij ) β Σ l N k i (τ il (t) α (η il ) β ) η ij wartość heurystyczna określająca atrakcyjność wyboru krawędzi (i, j) np. η ij = 1 d ij N k i lista nieodwiedzonych wierzchołków sąsiednich do i. 87 / 92

Ant System - AS, zastosowanie do TSP Po przejściu grafu przez k tą mrówkę ustalana jest ilość feromonu τ k ij (t), jaki pozostawi ona na każdej krawędzi (i, j) cyklu. 88 / 92

Ant System - AS, zastosowanie do TSP Po przejściu grafu przez k tą mrówkę ustalana jest ilość feromonu τ k ij (t), jaki pozostawi ona na każdej krawędzi (i, j) cyklu. Wielkość ta może być zdefiniowana np. jako τij k (t) = Q L k (t) gdzie Q jest tzw. współczynnikiem dawki feromonu a L k (t) długości znalezionej drogi. 89 / 92

Ant System - AS, zastosowanie do TSP Po przejściu grafu przez k tą mrówkę ustalana jest ilość feromonu τ k ij (t), jaki pozostawi ona na każdej krawędzi (i, j) cyklu. Wielkość ta może być zdefiniowana np. jako τij k (t) = Q L k (t) gdzie Q jest tzw. współczynnikiem dawki feromonu a L k (t) długości znalezionej drogi. Aby zapewnić zapominanie przez algorytm dłuższych cykli uwzględnia się występujące w naturze zjawisko parowania feromonu. W efekcie, po zakończeniu iteracji (czyli przejściu m mrówek) ustalana jest ostateczna ilość feromonu na poszczególnych krawędziach, która będzie wykorzystana w następnej iteracji zgodnie z zależnością: τ ij (t + 1) = γτ ij (t) + τ ij (t) gdzie τ ij (t) = Σ m k=1 τ k ij (t) i m jest ilością mrówek, natomiast γ odpowiada za wyparowywanie feromonu. 90 / 92

Algorytm AS Droga i cykl Eulera AS(t max) 1 for t 1 to t max 2 do 3 for każda mrówka k = 1,..., m 4 do 5 wybierz dowolne miasto 6 for każde nieodwiedzone miasto i 7 do 8 wybierz miasto j z listy Ni k, zgodnie z wartością pij k (t) 9 for każda krawędź (i, j) 10 do 11 wyznacz przyrost τij k (t) na drodze T k (t) 12 for każda krawędź (i, j) 13 do 14 przelicz ilość feromonu τ ij (t + 1) = γτ ij (t) + τ ij (t) 91 / 92

Dziękuję za uwagę!!! 92 / 92