ALHE. prof. Jarosław Arabas semestr 15Z

Podobne dokumenty
Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

Spacery losowe generowanie realizacji procesu losowego

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

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

dr inż. Jarosław Forenc

Algorytm selekcji Hoare a. Łukasz Miemus

Algorytmy metaheurystyczne Wykład 6. Piotr Syga

dr inż. Jarosław Forenc

dr inŝ. Jarosław Forenc

AiSD zadanie trzecie

Algorytmy mrówkowe w dynamicznych problemach transportowych

CMAES. Zapis algorytmu. Generacja populacji oraz selekcja Populacja q i (t) w kroku t generowana jest w następujący sposób:

Systemy uczące się Lab 4

Strategie ewolucyjne (ang. evolu4on strategies)

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH

Algorytmy sztucznej inteligencji

Aktualizacja baz danych systemu qs-stat

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

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

ALGORYTMY GENETYCZNE ćwiczenia

Budowa i generowanie planszy

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

Optymalizacja. Przeszukiwanie tabu

SZTUCZNA INTELIGENCJA

Mrówka Pachycondyla apicalis

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

Ćwiczenia: Ukryte procesy Markowa lista 1 kierunek: matematyka, specjalność: analiza danych i modelowanie, studia II

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

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

Algorytm genetyczny (genetic algorithm)-

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

Metody Optymalizacji: Przeszukiwanie z listą tabu

Wstęp do programowania

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

Matematyczne Podstawy Informatyki

Elementy modelowania matematycznego

Algorytmy genetyczne

MODELOWANIE RZECZYWISTOŚCI

Wyszukiwanie binarne

Sortowanie topologiczne skierowanych grafów acyklicznych

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

Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A

Metody Rozmyte i Algorytmy Ewolucyjne

Seminarium IO. Zastosowanie algorytmu UCT w Dynamic Vehicle Routing Problem. Michał Okulewicz

WPROWADZENIE DO ŚRODOWISKA SCICOS

Algorytmy zrandomizowane

Znajdowanie wyjścia z labiryntu

Teoretyczne podstawy informatyki

Procesy Markowa zawdzięczają swoją nazwę ich twórcy Andriejowi Markowowi, który po raz pierwszy opisał problem w 1906 roku.

Zadania laboratoryjne i projektowe - wersja β

Kultywator rolniczy - dobór parametrów sprężyny do zadanych warunków pracy

Materiały: kartki papieru (5 x 5 kolorów), piłeczki pingpongowe (5 x 5 kolorów), worek (nieprzeźroczysty).

Optymalizacja ciągła

Heurystyki. Strategie poszukiwań

Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa. Diagnostyka i niezawodność robotów

Elementy Modelowania Matematycznego

Techniki optymalizacji

Planowanie drogi robota, algorytm A*

Algorytmy genetyczne

ALHE Z11 Jarosław Arabas wykład 11

Instrukcja użytkownika NAUCZYCIELA AKADEMICKIEGO SYSTEMU ARCHIWIZACJI PRAC

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

Instrukcja Użytkownika (Nauczyciel Akademicki) Akademickiego Systemu Archiwizacji Prac

Plan. Zakres badań teorii optymalizacji. Teoria optymalizacji. Teoria optymalizacji a badania operacyjne. Badania operacyjne i teoria optymalizacji

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

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

Sieci komputerowe. Wykład 8: Wyszukiwarki internetowe. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

S P I S T R E Ś C I. Instrukcja obsługi

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )

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

1 Automaty niedeterministyczne

Instrukcja postępowania użytkownika programów LiderSim i ProLider w związku z wprowadzeniem od r. nowych stawek VAT.

Podejście memetyczne do problemu DCVRP - wstępne wyniki. Adam Żychowski

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

Każde wykonanie bloku instrukcji nazywamy pojedynczym przebiegiem lub iteracją pętli.

PRACA DYPLOMOWA MAGISTERSKA

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

Algorytmy ewolucyjne 1

Robert Barański, AGH, KMIW State Machine v1.0. Maszyna stanów (State Machine)

:APOGEE PORTAL. skrócona instrukcja użytkownika. (Web Portal)

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Zasada średniego potencjału w grach ewolucyjnych. Paweł Nałęcz-Jawecki

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

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

Instrukcja postępowania krok po kroku podczas korzystania z programu

Algorytm Chaitin a. Problem kolorowania grafu. Krzysztof Lewandowski Mirosław Jedynak

Zaznaczanie komórek. Zaznaczenie pojedynczej komórki polega na kliknięciu na niej LPM

Podstawy OpenCL część 2

Kody splotowe. Zastosowanie

Grafy Alberta-Barabasiego

Instrukcja Użytkownika (Studenta) Systemu Obsługującego Lokalne Archiwum Dokumentów

Prawa potęgowe w grafach przepływu informacji dla geometrycznych sieci neuronowych

Wykład z Technologii Informacyjnych. Piotr Mika

5.4. Tworzymy formularze

WAE Jarosław Arabas Adaptacja i samoczynna adaptacja parametrów AE Algorytm CMA-ES

Biatel BIT S.A. BIT Rejestry. Instrukcja instalacji. Wersja 2

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 7. Karol Tarnowski A-1 p.

Wstęp do programowania

Transkrypt:

ALHE prof. Jarosław Arabas semestr 15Z Wykład 5 Błądzenie przypadkowe, Algorytm wspinaczkowy, Przeszukiwanie ze zmiennym sąsiedztwem, Tabu, Symulowane wyżarzanie 1. Błądzenie przypadkowe: Pierwszym krokiem jest wprowadzenie do logu punktu startu (S0), losowanego z całej przestrzeni rozwiązań. Selekcja zawsze wybiera najnowszy punkt z historii. Wariacja generuje losowo wybrane rozwiązanie z sąsiedztwa wyselekcjonowanego punktu, gdzie dla każdego sąsiada istnieje takie samo prawdopodobieństwo wyboru. Każdy punkt wygenerowany przez wariację jest akceptowany, niezależnie czy jest lepiej dopasowany czy tez nie. Błądzenie przypadkowe nie posiada naturalnego warunku kończącego.

Oto przedstawiona jest historia generowanych rozwiązań. Strzałki między punktami Sx oraz Sy oznaczają, że punkt Sy jest lokalną modyfikacją punktu Sx. Zawsze nowo wylosowany punkt staje się nowym roboczym, niezależnie od tego czy jest lepszy czy też nie. Okno historii może być minimalnie wielkości 1. W szczególności może się zdarzyć, że punkt S0 może być tym samym rozwiązaniem co punkt S2. Nic nie stoi na przeszkodzie, aby dany algorytm po wyjściu z pewnego rozwiązania zaraz do niego powrócił. Poniżej został przedstawiony poglądowy diagram, który przedstawia przykładowy ślad algorytmu dla przestrzeni dwuwymiarowej. Teoria błądzenia przypadkowego ma zastosowanie w zagadnieniach obsługi masowej i kolejek. Jest również wykorzystywana w teorii ruchów Browna.

2. Rozszerzony algorytm błądzenia przypadkowego. Zmodyfikowano selekcje, która wybiera teraz punkt poprzez losowanie z całego okna historii. Ta mała zmiana wpływa znacząco na ślad algorytmu: Jest tak, ponieważ w tym przypadku punkt losowany później jest w pewnym stopniu zależny od całej historii, a nie tylko od poprzedniego punktu jak we wcześniejszym przypadku. Oto log dla przykładowego wywołania algorytmu. Tym razem nie można ograniczyć okna w żaden sposób.

3. Algorytm wspinaczkowy Algorytm zaczyna działanie od wyboru z logu rozwiązania o najwyższej funkcji celu. Następnie generujemy całe jego sąsiedztwo i sortujemy je pod względem dopasowania. Rozwiązanie, które jest najbardziej dopasowane zostaje przyrównane do dotychczasowego najlepszego punktu i jeśli jest większe podmienia je. Potem następuje aktualizacja logu i proces zaczyna się od nowa.

Algorytm wspinaczkowy w pewnym sensie modeluje zachowanie osoby, która w ciemności sprawdza nogą powierzchnie w celu omijania dołków. Może jedynie sprawdzać powierzchnie wokół siebie. Dany algorytm posiada zawsze jeden punkt roboczy. Zawsze generujemy wszystkich sąsiadów i wybieramy najlepszego. Kończymy, gdy w sąsiedztwie nie ma już lepszego. W niektórych przypadkach niemożliwe jest wygenerowanie całego sąsiedztwa lub też sąsiadów jest za dużo i stosowanie tego algorytmu traci sens. Wtedy możemy dyskretyzować sąsiedztwo (np. próbkowanie na siatce) lub wybrać punkty przez losowanie (zgodnie z ustalonym rozkładem prawdopodobieństwa). 4. Algorytm wspinaczkowy ze zmiennym sąsiedztwem. ( VNS ) Wadą algorytmu wspinaczkowego z pełnym przeglądem sąsiedztwa jest brak mechanizmu ochrony przed utknięciem w maksimum/minimum lokalnym, dlatego też powstał algorytm ze zmiennym sąsiedztwem. Realizuje się to poprzez dokładanie krawędzi w grafie przestrzeni przeszukiwań.

Zasadnicza zmiana w ogólnym działaniu algorytmu pojawia się, jeśli po przejrzeniu najbliższego sąsiedztwa nie znajdziemy lepszego rozwiązania. Wtedy następuje krok wymiany sąsiedztwa poziomu k na poziom k+1. Pętla wewnętrzna algorytmu działa dopóki nie znajdzie się lepsze rozwiązanie lub sprawdziliśmy już sąsiedztwo stopnia K, które definiuje zasięg naszego poszukiwania. Tak naprawdę mechanizm zabezpiecza nas przed utknięciem w ekstremum lokalnym z sąsiedztwem poziomu K. 5. Stochastyczny algorytm wspinaczkowy

W stochastycznym algorytmie wspinaczkowym wariacja generuje punkt z obszerniejszego sąsiedztwa przez losowanie bez zwracania. Jeśli jest lepszy to do niego przechodzimy i to on staje się punktem roboczym. Jeśli nie losujemy jeszcze raz i po każdym losowaniu dodajemy wylosowany punkt do logu. Jak zatrzymać algorytm? Wraz z liczbą losowań zakończonych porażką maleje szansa trafienia lepszego punktu. Po pewnym czasie możemy zakończyć proces dalszego losowania. Tak wygląda historia generowanych rozwiązań, gdzie strzałki między punktami Sx oraz Sy oznaczają, że punkt Sy jest lokalną modyfikacją punktu Sx.

Przedstawiony został ślad algorytmu, czyli zbiór wszystkich wygenerowanych punktów w pojedynczym uruchomieniu. Linie na wykresie symbolizują warstwice, które w tym wypadku łączą rozwiązania o tej samej wartości funkcji celu. 6. Algorytm symulowanego wyżarzania

Symulowane wyżarzanie jest w zachowaniu bardzo podobne do algorytmu wspinaczkowego, jednak w tym wypadku nie zależy nam aż tak bardzo na osiąganiu coraz to lepszych wyników. Po wylosowaniu punktu gorzej dopasowanego, na podstawie dodatkowego losowania decydujemy czy go przyjąć czy też odrzucić. Prawdopodobieństwo akceptacji pa jest zależne od różnicy pomiędzy wynikiem funkcji celu dla punktu roboczego oraz dla punktu, którego indeks jest aktualnie przechowywany w modelu. Istnieje również inny czynnik który wpływa na tę wartość temperatura (T). Temperatura jest funkcją energii wewnętrznej z jaka startuje nasz algorytm. Jest punktem odniesienia, który mówi nam o tym jak duża różnica jest pomiędzy wylosowanym rozwiązaniem a tym które jest aktualnie w modelu. W miarę działania algorytmu staje się ona coraz

mniejsza. Początkowo algorytm jest bardziej nastawiony na eksplorację, chętniej akceptuje gorsze wyniki, natomiast w późniejszej fazie stawiamy na eksploatację, dlatego algorytm będzie prowadził dłuższe przeszukiwanie lokalne. Temperatura w końcowej fazie algorytmu powinna być obniżana do wartości bliskiej 0. Na powyższych wykresach widać dokładnie w jaki sposób zmienia się prawdopodobieństwo akceptacji w miarę wykonywania kolejnych iteracji algorytmu. Poniżej zostały przedstawione ślady algorytmu dla różnego początkowego prawdopodobieństwa akceptacji: Należy również zaznaczyć że symulowane wyżarzanie przez swoją pobłażliwość może być metodą bardzo powolną. 7. Przeszukiwanie z tabu

Istnieje również inny mechanizm, który nie pozwoli zatrzymać się metodzie w ekstremum lokalnym. Jest on oparty na uszczuplaniu przestrzeni przeszukiwań o znalezione punkty ( usuwanie krawędzi z przestrzeni przeszukiwań ). Początkowo lista tabu jest pusta. Po wyborze najlepszego punktu sąsiadującego z punktem S0, wrzucamy go do listy tabu. Następnie aktualizujemy log i ponownie generujemy sąsiedztwo nowo wybranego punktu. Przy czym jeśli w danym sąsiedztwie znajduje się rozwiązanie umieszczone aktualnie na liście tabu- nie bierzemy go pod uwagę. Oczywiście po pewnej określonej liczbie iteracji punkty z listy tabu zostają usunięte. Dany algorytm nie ma naturalnego warunku zakończenia. Jego wadą jest również to, że trzeba przetrzymywać w pamięci listę tabu.

Mechanizm tabu można utworzyć na dwa sposoby: a) Wariancja nie może wygenerować punktu, który jest na liście tabu b) Selekcja nie może wybrać punktu, który jest na liście tabu Lista tabu również może być zorganizowana na wiele sposobów: a) Kolejka FIFO b) Losowy dostęp c) Kolejka priorytetowa wg: - funkcji celu - szacowanej funkcji celu - podobieństwa - wiedzy dziedzinowej Czasami zabranianie pewnych ruchów, mimo, że nie prowadzi do zapętleń, to może spowodować ogólną stagnację przy przeszukiwaniu lub wręcz całkowicie uniemożliwić ruch (sytuacja, gdy wszyscy sąsiedzi są na liście tabu). W tej sytuacji możliwe jest złamanie tabu. VNS i tabu zapobiegają stopowaniu algorytmów w ekstremum lokalnym przez modelowanie grafu przestrzeni przeszukiwań (dodawaniu lub usuwanie z niego krawędzi). Można również zmodyfikować samo działanie algorytmu, jak jest to pokazane w algorytmie stymulowanego wyżarzania. 8. Stabuizowane symulowane wyżarzanie Mechanizm tabu można równie dobrze dołączyć do stymulowanego wyżarzania jak i stochastycznego wzrostu. Przypadek pierwszy możemy zaobserwować poniżej:

Z tego pseudokodu możemy wywnioskować, że do wariancji dochodzi już niepełne sąsiedztwo punktu roboczego. Jest ono pomniejszone o sąsiedztwa rozwiązań obecnych aktualnie na liście tabu. Porównanie działania tego algorytmu z i bez mechanizmu tabu: Dla pa = 0.05 algorytm bez tabu zauważalnie dłużej oscylował wokół ekstremum lokalnego widocznego po lewej stronie płaszczyzny, lecz w końcu dotarł również do ekstremum globalnego. Ślad algorytmu po dodaniu listy tabu zmienił się znacząco w okolicach ekstremów lokalnych.

Zmniejszyła się liczba generowanych tam punktów w stosunku do dalszych okolic tych ekstremów. Jest to spowodowane tym, że zdecydowana większość punktów na liście tabu pochodzi z sąsiedztwa ekstremów. Po zwiększeniu prawdopodobieństwa akceptacji można zauważyć, że algorytm bez tabu poradził sobie znacznie lepiej. (dla pa = 0.05 było bardzo trudno zejść z pierwszego napotkanego ekstremum lokalnego). Natomiast algorytm wykorzystujący tabu znacznie się rozproszył. Przygotował: Kamil Kacperski