Metody Programowania



Podobne dokumenty
Algorytmy i struktury danych

Tabu Search (Poszukiwanie z zakazami)

Optymalizacja. Wybrane algorytmy

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Projektowanie i analiza algorytmów

Metody Optymalizacji: Przeszukiwanie z listą tabu

Projektowanie i Analiza Algorytmów

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

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Algorytmy i struktury danych

Techniki optymalizacji

Techniki optymalizacji

Teoria obliczeń i złożoność obliczeniowa

Programowanie sieciowe. Tadeusz Trzaskalik

Algorytmy metaheurystyczne podsumowanie

Opracowanie prof. J. Domsta 1

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

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV

Optymalizacja. Przeszukiwanie lokalne

Algorytmy i Struktury Danych

Projektowanie i analiza algorytmów

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

Algorytmika Problemów Trudnych

Matematyka dyskretna

Grupowanie Witold Andrzejewski, Politechnika Poznańska, Wydział Informatyki 201/633

Zaawansowane programowanie

Wyznaczanie optymalnej trasy problem komiwojażera

10. Kolorowanie wierzchołków grafu

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

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

Algorytmiczna teoria grafów

Przykład planowania sieci publicznego transportu zbiorowego

Matematyczne Podstawy Informatyki

Sortowanie topologiczne skierowanych grafów acyklicznych

Metody Programowania

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

PRZEWODNIK PO PRZEDMIOCIE

Minimalizacja form boolowskich

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

SZTUCZNA INTELIGENCJA

Wybrane podstawowe rodzaje algorytmów

Algorytmy i Struktury Danych

Rozdział 8 PROGRAMOWANIE SIECIOWE

Rachunek podziałów i elementy teorii grafów będą stosowane w procedurach redukcji argumentów i dekompozycji funkcji boolowskich.

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)

Metoda Tablic Semantycznych

Koszt literału (literal cost) jest określony liczbą wystąpień literału w wyrażeniu boolowskim realizowanym przez układ.

Metody przeszukiwania

Kierunek: Informatyka. Przedmiot:

Algorytm dyskretnego PSO z przeszukiwaniem lokalnym w problemie dynamicznej wersji TSP

Problem kodowania w automatach

Metody optymalizacji dyskretnej. Metody przybliżone

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

ALGORYTMY I STRUKTURY DANYCH

Praktyczne metody weryfikacji. Wykład 9: Weryfikacja ograniczona.. p.1/40

Elementy teorii grafów Elementy teorii grafów

Wstęp do Sztucznej Inteligencji

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Matematyczne Podstawy Informatyki

7. Teoria drzew - spinanie i przeszukiwanie

KARTA MODUŁU KSZTAŁCENIA

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

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

Algorytmy aproksymacyjne i parametryzowane

Technologie Informacyjne

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Wykład 4. Droga i cykl Eulera i Hamiltona

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych

Problemy z ograniczeniami

5c. Sieci i przepływy

Document: Exercise*02*-*manual /11/ :31---page1of8 INSTRUKCJA DO ĆWICZENIA NR 2

dr inż. Małgorzata Langer Architektura komputerów

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

Sterowniki Programowalne (SP) Wykład 11

Programowanie liniowe metoda sympleks

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Adam Meissner SZTUCZNA INTELIGANCJA

Algorytmy ewolucyjne (3)

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.

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

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

Programowanie celowe #1

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

BADANIA OPERACYJNE i teoria optymalizacji. Prowadzący: dr Tomasz Pisula Katedra Metod Ilościowych

Agenda. Politechnika Poznańska WMRiT ZST. Piotr Sawicki Optymalizacja w transporcie 1. Kluczowe elementy wykładu. WPROWADZENIE Cel i zakres wykładu.

Optymalizacja ciągła

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Programowanie liniowe metoda sympleks

Matematyczne Podstawy Informatyki

Tworzenie gier na urządzenia mobilne

Schemat programowania dynamicznego (ang. dynamic programming)

ZADANIA OTWARTE. Uwaga! Każde poprawne, inne niż przykładowe, rozwiązanie powinno być punktowane maksymalną liczbą punktów.

Sortowanie Shella Shell Sort

Graf. Definicja marca / 1

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

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

Programowanie obiektowe

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

Załącznik Nr 5 do Zarz. Nr 33/11/ Kod przedmiotu:aisd2

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Heurystyczne metody przeszukiwania

Transkrypt:

POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Metody Programowania www.pk.edu.pl/~zk/mp_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl

Wykład 8: Wyszukiwanie lokalne. Tabu search. 1. Wprowadzenie. Koncepcja wyszukiwania lokalnego. 2. Przykład: problem spełnialności (SAT). 3. Wyszukiwanie lokalne w optymalizacji. 4. Przykłady: pokrycie wierzchołkowe grafu (VCP), minimalne drzewo rozpinające (MST), problem komiwojażera (TSP). 5. Przykładowe operacje i definicje sąsiedztwa. 6. Ulepszenia i modyfikacje wyszukiwania lokalnego. 7. Algorytm wyszukiwania z listą tabu (TS). 8. Przykład : problem MST z ograniczeniami. 9. Podsumowanie. Zalety i wady wyszukiwania lokalnego.

Wprowadzenie Metoda wyszukiwania lokalnego (ang. local search) jest jedną z najbardziej intuicyjnych technik projektowania algorytmów. Polega ona na niewielkich modyfikacjach rozwiązania początkowego (np. losowego), ocenie wszystkich uzyskanych w ten sposób rozwiązań pochodnych i wyborze najlepszego z nich jako nowego rozwiązania początkowego. Postępowanie jest kontynuowane do momentu, aż dalsza poprawa nie będzie już możliwa albo wyczerpał się czas przeznaczony na poszukiwanie rozwiązania. Przykładowe zastosowanie: decyzyjny problem spełnialności formuł boolowskich (SAT, z ang. satisfiability).

Problem spełnialności (SAT)

Algorytmy dla problemu SAT GSAT (Greedy SAT) i WalkSAT są algorytmami wyszukiwania lokalnego dla problemu spełnialności formuł boolowskich. Oba algorytmy mają zastosowanie do formuł boolowskich w postaci konjunkcyjnej normalnej. Punktem wyjścia jest losowe przyporządkowanie wszystkim zmiennym wartości logicznych 0 i 1. Algorytm kończy pracę, jeśli przyporządkowanie zapewnia wszystkim implicentom wartości 1. W przeciwnym wypadku jedna ze zmiennych może zmienić swoją wartość na przeciwną. Postępowanie jest kontyuowane aż do pozytywnego rezultatu. WalkSAT i GSAT różnią się metodami wyboru zmiennej do zanegowania. GSAT wybiera tę zmienną, której negacja minimalizuje liczbę implicentów o wartości 0. WalkSAT wybiera losowo implicent o wartości 0 przy aktualnym przyporządkowaniu a następnie neguje w tym implicencie losową zmienną, zmianiając wartość tego implicentu na 1. GSAT i WalkSAT kontynuują swoje postępowanie aż cała formuła przyjmie wartość 1. W przypadku braku postępu w zadanym czasie algorytmy mogą wystartować ponownie z nowym losowym przyporządkowaniem. W ten sposób mogą opuścić osiągniete minima lokalne (w SAT chodzi o optimum globalne!).

Wyszukiwanie lokalne w optymalizacji Wyszukiwanie lokalne jest bardzo popularną techniką stosowaną rozwiązywaniu problemów optymalizacyjnych. Przestrzeń rozwiązań problemu jest przeszukiwana iteracyjnie. W każdym kroku przechodzimy od najlepszego znalezionego dotąd rozwiązania do kolejnego tymczasowego optimum, wyznaczonego w jego sąsiedztwie. Otoczenie (sąsiedztwo) bieżącego rozwiązania musi być odpowiednio zdefiniowane. Algorytm wyszukiwania lokalnego nie gwarantuje osiągnięcia optimum globalnego, najczęściej uzyskane rozwiazanie jest optymalne lokalnie. Zastosowania do problemów optymalizacyjnych: pokrycie wierzchołkowe grafu (VCP), minimalne drzewo rozpinające (MST), problem komiwojażera (TSP).

Minima lokalne i globalne

Problem minimalnego drzewa rozpinającego (MST) - wyszukiwanie lokalne Usuwana jest jedna losowa krawędź drzewa i dodawana jest losowa krawędź zapewniająca spójność grafu. W wszystkich rozwiązań sąsiednich wybierane jest rozwiązania najlepsze.

Problem komiwojażera operacja 2-opt Z trasy początkowej usuwamy 2 krawędzie : ab oraz cd. Trasy sąsiednie powstają przez dodanie dwóch nowych krawędzi, łączących powstałe odcinki ac oraz bd, tak aby nadal były ze sobą połaczone wszystkie miasta. Są to np. krawędzie ad i bc.

Problem komiwojażera (TSP) - wyszukiwanie lokalne za pomocą operacji 2-opt Trasa początkowa ma długość 25. W pierwszym kroku operacja 2-opt zamienia parę krawędzi ae i cd krawędziami ad i ce. Nowa trasa ma długość 23. W drugim kroku operacja 2-opt zamienia parę krawędzi ab i ce krawędziami ac i be. Otrzymana trasa ma długość 19.

Problem komiwojażera (TSP) - operacja 3-opt Z trasy początkowej usuwamy 3 krawędzie : ab, cd oraz ef. Trasy sąsiednie powstają przez dodanie trzech nowych krawędzi, łączących powstałe odcinki af, de oraz bc, tak aby nadal były ze sobą połaczone wszystkie miasta. Są to np. krawędzie ad, be i cf lub ad, bf i ce.

Problem komiwojażera (TSP) - wyszukiwanie lokalne za pomocą operacji 3-opt

Problem komiwojażera (TSP) - operacja 1-shift Z trasy początkowej usuwamy losową krawędź 78, oraz dwie krawędzie sąsiadujące z losowym wierzchołkiem 3 : 23 i 34. Trasa sąsiednia powstaje przez dodanie trzech nowych krawędzi: dwóch krawędzi łączących końce usuniętej krawędzi z wierzchołkiem 3 : 37 i 38 oraz krawędź 24, która jest bypassem omijającym wierzchołek 3.

Wyszukiwanie z listą tabu (Tabu Search) jako uogólnienie wyszukiwania lokalnego

Wyszukiwanie z listą tabu (Tabu Search) - schemat blokowy

Wyszukiwanie z listą tabu (Tabu Search) algorytm

Wyszukiwanie z listą tabu (Tabu Search) zastosowanie do problemu MST z ograniczeniami

Wyszukiwanie z listą tabu (Tabu Search) zastosowanie do problemu MST z ograniczeniami

Wyszukiwanie z listą tabu (Tabu Search) zastosowanie do problemu MST z ograniczeniami

Wyszukiwanie z listą tabu (Tabu Search) zastosowanie do problemu MST z ograniczeniami

Podsumowanie 1. Algorytm wyszukiwania lokalnego jest szczególnie cenny w optymalizacji kombinatorycznej. 2. Algorytm wyszukiwania lokalnego znajduje zwykle jedynie rozwiązanie przybliżone danego problemu. 3. Wyszukiwanie lokalne jest użyteczną techniką, która może być dalej ulepszana (np. algorytm wyszukiwania z listę tabu), albo stosowana jako uzupełniająca w bardziej zaawansowanych algorytmach łączących kilka różnych technik (w tzw. algorytmach hybrydowych).

Źródła przykładów i rysunków : 1. Aho A.V., Hopcroft J.E., Ullman J.D. : Algorytmy i struktury danych, Helion/Addison-Wesley 2003. 2. Sait S.M., Youssef H. : Iterative computer algorithms with applications in engineering, IEEE computer Society Press 1999. 3. Strony tematyczne w sieci.