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

Podobne dokumenty
Strategie ewolucyjne (ang. evolu4on strategies)

Algorytm genetyczny (genetic algorithm)-

Optymalizacja. Wybrane algorytmy

Generowanie i optymalizacja harmonogramu za pomoca

Metody Optymalizacji: Przeszukiwanie z listą tabu

Wybrane podstawowe rodzaje algorytmów

Metody Rozmyte i Algorytmy Ewolucyjne

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

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

Aproksymacja funkcji a regresja symboliczna

ALHE. prof. Jarosław Arabas semestr 15Z

Algorytmy ewolucyjne NAZEWNICTWO

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny

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

Algorytmy metaheurystyczne podsumowanie

Algorytmy genetyczne w optymalizacji

Algorytmy ewolucyjne 1

KARTA MODUŁU KSZTAŁCENIA

ALGORYTMY GENETYCZNE ćwiczenia

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

Algorytmy genetyczne

Zadania laboratoryjne i projektowe - wersja β

Dobór parametrów algorytmu ewolucyjnego

Heurystyczne metody przeszukiwania

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

Sztuczne sieci neuronowe. Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 311

STATYSTYKA MATEMATYCZNA

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

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Algorytmy genetyczne

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

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

STATYSTYKA MATEMATYCZNA

SZTUCZNA INTELIGENCJA

WYDZIAŁ BUDOWNICTWA LĄDOWEGO I WODNEGO

6. Klasyczny algorytm genetyczny. 1

7. Estymacja parametrów w modelu normalnym( ) Pojęcie losowej próby prostej

Uczenie sieci typu MLP

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

Metody przeszukiwania

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

Wykład Ćwiczenia Laboratorium Projekt Seminarium 30

Obliczenia ewolucyjne - plan wykładu

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

Katedra Informatyki Stosowanej. Algorytmy ewolucyjne. Inteligencja obliczeniowa

ALHE Z11 Jarosław Arabas wykład 11

PRZEWODNIK PO PRZEDMIOCIE

Estymacja parametrów w modelu normalnym

Strategie ewolucyjne (ang. evolution strategies)

Heurystyki. Strategie poszukiwań

Strategie ewolucyjne. Gnypowicz Damian Staniszczak Łukasz Woźniak Marek

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2017/2018

Zad. 4 Należy określić rodzaj testu (jedno czy dwustronny) oraz wartości krytyczne z lub t dla określonych hipotez i ich poziomów istotności:

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)

Algorytmy ewolucyjne (3)

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

Optymalizacja optymalizacji

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

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

Metody Programowania

Planowanie drogi robota, algorytm A*

Optymalizacja ciągła

Techniki optymalizacji

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

Symulacja w przedsiębiorstwie

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

OPTYMALIZACJA ZBIORNIKA NA GAZ PŁYNNY LPG

Odchudzamy serię danych, czyli jak wykryć i usunąć wyniki obarczone błędami grubymi

Gospodarcze zastosowania algorytmów genetycznych

Informatyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES)

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Sortowanie Shella Shell Sort

LABORATORIUM 3: Wpływ operatorów krzyżowania na skuteczność poszukiwań AE

Prawdopodobieństwo i statystyka

Elementy Modelowania Matematycznego Wykład 4 Regresja i dyskryminacja liniowa

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

MODEL OPTYMALIZACYJNY SYNCHRONIZACJI LINII TRAMWAJOWYCH

Wymagania egzaminacyjne z matematyki. Klasa 3C. MATeMATyka. Nowa Era. Klasa 3

WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

METODY SZTUCZNEJ INTELIGENCJI algorytmy ewolucyjne

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

Techniki optymalizacji

Informatyka I stopień (I stopień / II stopień) ogólno akademicki (ogólno akademicki / praktyczny) podstawowy (podstawowy / kierunkowy / inny HES)

Wykład 10 Estymacja przedziałowa - przedziały ufności dla średn

Wyznaczanie optymalnej trasy problem komiwojażera

Zadania ze statystyki cz. 8 I rok socjologii. Zadanie 1.

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

Programowanie genetyczne, gra SNAKE

Technologie Informacyjne

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Algorytm indukcji klasyfikatora za pomocą EA z automatycznym przełączaniem ukierunkowań

Statystyka. Wykład 1. Magdalena Alama-Bućko. 20 lutego Magdalena Alama-Bućko Statystyka 20 lutego / 19

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

Testowanie hipotez statystycznych. Wprowadzenie

PRZEWODNIK PO PRZEDMIOCIE

Metody optymalizacji dyskretnej

Algorytm hybrydowy dla alokacji portfela inwestycyjnego przy ograniczonych zasobach

Sortowanie - wybrane algorytmy

Algorytmy genetyczne w interpolacji wielomianowej

Transkrypt:

Politechnika Wrocławska Wydział Elektroniki INFORMATYKA SYSTEMÓW AUTONOMICZNYCH Autor: Łukasz Patyra indeks: 133325 Prowadzący zajęcia: dr inż. Marek Piasecki Ocena pracy: Wrocław 2007

Spis treści 1 Wstęp 3 1.1 Definicja..................................... 3 1.2 Algorytmy heurystyczne............................ 3 1.3 Potencjalne zastosowania............................ 3 2 Zastosowanie praktyczne 4 2.1 Założenia wstępne................................ 4 2.2 Określenie funkcji celu............................. 4 2.3 Wybór algorytmu................................ 5 2.3.1 Algorytm genetyczny.......................... 5 2.3.2 Symulowane wyżarzanie........................ 6 2.4 Projekt programu notacja UML...................... 7 Literatura 10 Politechnika Wrocławska Wydział Elektroniki 2

1 Wstęp 1.1 Definicja Heurystyka (grec. heurisko znajduję, odkrywam) umiejętność wykrywania nowych faktów i związków między faktami (a zwłaszcza stawiania hipotez). W informatyce heurystyka to metoda znajdowania rozwiązań, dla której nie ma gwarancji znalezienia rozwiązania optymalnego, a często nawet prawidłowego. Rozwiązań tych używa się np. wtedy, gdy pełny algorytm jest z przyczyn technicznych zbyt kosztowny, czasochłonny, lub gdy nie jest nawet znany. Metodę używa się też często do znajdowania rozwiązań przybliżonych, na podstawie których później wylicza się ostateczny rezultat pełnym algorytmem. To ostatnie zastosowanie szczególnie dotyczy przypadków, gdy heurystyka jest wykorzystywana do nakierowywania pełnego algorytmu ku optymalnemu rozwiązaniu, aby zmniejszyć czas działania programu w typowym przypadku bez poświęcania jakości rozwiązania. 1.2 Algorytmy heurystyczne Mianem algorytmów heurystyczych są określane algorytmy, które pozwalają na znalezienie przybliżonego rozwiązania problemu (często NP trudnego), który nie może być rozwiązany w sposób optymalny ze względu na: brak algorytmu jego rozwiązania, złożoność obliczeniową algorytmu optymalnego oraz (co bezpośrednio z tego wynika), nieopłacalnie długi czas działania czyli również wysokie koszty otrzymania optymalnego wyniku. 1.3 Potencjalne zastosowania szeregowanie zadań na procesorach, rozpoznawanie znaków, generowanie planu zajęć dla grupy osób,... Politechnika Wrocławska Wydział Elektroniki 3

2 Zastosowanie praktyczne Jako przykład zastosowania algorytmu heurystycznego wybrałem program asystenta organizującego czas/miejsce spotkań osób w dużych grupach zawodowych/towarzyskich. Dokładniej zaproponowałem sposób realizacji programu mającego na celu wygenerowanie planu zajęć dla grupy studentów w danym semestrze. 2.1 Założenia wstępne Program ma pozwalać na generowanie planów zajęć dla grupy studentów zgodnie z siatką zajęć określoną w katalogu kursów. Zajęcia będą generowane dla wybranej grupy studentów (np. kierunek, specjalność, profil dymplomowania) i na określony semestr studiów. 2.2 Określenie funkcji celu W celu generowania planu zajęć konieczne jest zdefiniowanie funkcji celu, która będzie określała jakość planu. W tym celu przyjąłem kryteria mówiące że: 1. plan jest lepszy, jeżeli zajęcia nie zaczynają się wcześnie rano i nie kończą późnym wieczorem. 2. plan jest tym lepszy, im mniej jest przerw między kolejnymi zajęciami, Wartość funkcji celu dla danego planu zależeć zatem będzie od wartości obu z tych kryteriów. Chcąc uwzgędnić kryterium 1 przyporządkowałem określone wagi dla zajęć rozpoczynających się o okreśłonej porze (tab. 1): Tabela 1: Wagi poszczególnych terminów zajęć godzina rozpoczęcia zajęć waga przed 9:00 3 od 9:00 2 od 11:00 1 od 15:00 2 od 18:00 3 Wartość kryterium 1 zapisałem wzorem: k 1 = ni=1 W i n n = liczba zajęć w tygodniu (1) Politechnika Wrocławska Wydział Elektroniki 4

Z kolei chcąc uwzględnić kryterium 2 zauważyłem, że minimalizacja liczby przerw między zajęciami to z praktycznego punktu widzenia to samo, co minimalizacja czasu jaki student spędza (powinien spędzać) na uczelni w ciągu tygodnia. Można zatem zapisać: k 2 = pt d=pn C o czas rozpoczęcia zajęć w danym dniu C z czas zakończenia zajęć w danym dniu C d, gdzie: C d = C z C o (2) Funkcja celu, którą należy zoptymalizować może mieć postać: F opt = min(k 1 k 2 ) (3) 2.3 Wybór algorytmu Kolejnym krokiem było wybranie odpowiednego typu algorytmu, który chciałbym użyć do rozwiązania zadania. Ponieważ dotychczas implementowałem dwa algorytmy heurystyczne (algorytm genetyczny oraz symulowane wyżarzanie), toteż najpierw rozpatrzyłem możliwość zastosowania właśnie jednego z nich. 2.3.1 Algorytm genetyczny Algorytm genetyczny polega na poszukiwaniu maksymalnej wartości funkcji przystosowania opartego na mechanizmach doboru naturalnego oraz dziedziczności łączącego ewolucyjną zasadę przeżycia najlepiej przystosowanych osobników z systematyczną i po części losową wymianą informacji. [1] [2] Kolejne kroki ogólnego algorytmu genetycznego: 1. Generacja populacji początkowej, 2. Wyznaczenie funkcji przystosowania osobników, 3. Wybór puli rodzicielskiej, 4. Krzyżowanie, 5. Mutacja nowych osobników, 6. Selekcja nowej populacji. Stosując algorytm genetyczny problem pojawiłby się przy krzyżowaniu osobników, ponieważ nawet jeśli krzyżowalibyśmy dwa osobniki, które określają dobry plan (zajęcia nie nachodzą na siebie) to potomek jakiego otrzymamy może tego warunku nie spełniać. Politechnika Wrocławska Wydział Elektroniki 5

Byłby on bezużyteczny. W związku z tym zastosowanie algorytmu genetycznego do rozwiązania postawionego zadania nie jest trywialne. 2.3.2 Symulowane wyżarzanie Wyżarzanie jest pojęciem metalurgicznym. W sytuacji, gdy atomy w kawałku metalu są rozmieszczone przypadkowo, metal jest kruchy i łamliwy. W procesie wyżarzania metal podgrzewa się do wysokiej temperatury powodując gwałtowne wstrząsanie atomami. Jeżeli będzie on nagle ochłodzony to mikrostruktura zostanie uwięziona w niestabilnym stanie przypadkowym. Jeśli jednak ochładzanie będzie powolne to wraz ze spadkiem temperatury atomy będą tworzyły regularne układy, dość stabilne w danej temperaturze. Jeśli spadek temperatury jest dostatecznie wolny to w rezultacie metal osiągnie stabilną, uporządkowaną strukturę. [2] Podobny proces występuje przy optymalizacji. Symulowane wyżarzanie można zrealizować w zadaniu optymalizacji przez losowe zakłócenie zmiennych niezależnych i wybór najlepszej wartości funkcji dla każdego przypadkowego zbioru zmiennych. Na początku używa się generatora liczb losowych o dość dużym odchyleniu standardowym. Po wielu próbach zbiór, który daje najlepsze wartości funkcji staje się centrum, wokół którego wykonuje się ruchy dla następnej wartości temperatury (odchylenie standardowe generatora liczb losowych). Temperatura jest redukowana i przeprowadza się nowe próby. Bardzo ważnym zagadnieniem dla algorytmu wyżarzania jest wybór temperatury początkowej, końcowej a także sposób obniżania temperatury. Pewną metodą jest mnożenie za każdym razem przez liczbę stałą powiedzmy c, którą można obliczyć za pomocą następującego wzoru: c = exp(ln(koniec/start)/(n 1)) (4) gdzie start i koniec to temperatury początkowa i końcowa, a n to liczba temperatur. Powyższy opis algorytmu symulowanego wyżarzania można przedstawić w następujących krokach (minimalizacja funkcji F(w)): [3] 1. Losowy wybór punktu startowego w. Przyjęcie temperatury T = Tmax, 2. Wyznaczenie wartości funkcji w punkcie w - F(w), 3. Wyznaczenie w = w + w, gdzie w jest realizacją zmiennej, losowej o rozkładzie normalnym z medianą w punkcie w i średnią wariancją równą T, 4. Wyznaczenie wartości funkcji w nowym punkcie - F(w ), 5. Podstawienie wartości w do w z pewnym prawdopodobieństwem 6. Zmniejszenie temperatury T = ct, gdzie c jest stałą z przedziału (0,1), Politechnika Wrocławska Wydział Elektroniki 6

7. Zwiększenie kroku iteracyjnego i powrót do kroku 3. Algorytm ten jest zatem łatwiejszy do zaadaptowania, ponieważ nie istnieje niebezpieczeństwo popsucia planu w wyniku krzyżowania (jak to miałoby miejsce w przypadku algorytmu genetycznego). W przypadku wyżarzania modyfikacji poddawane zostają wybrane (najlepsze) plany, a sama modyfikacja może polegać np. na: 1. zmianie terminu danych zajęć na inny (wolny) lub też zamiana dwóch zajęć miejscami, 2. zmianie prowadzącego, 3. zmianie sali. Opcje 2 i 3 modyfikacji są mniej istotne ze względu na charakter optymalizacji. 2.4 Projekt programu notacja UML Ze względu na obszerność projektu programu generującego plany zajęc, w celu przybliżenia jego struktury poniżej zamieszczam wybrane diagramy UML przedstawiające fragment modelowanego przeze mnie systemu. Obejmują one: diagram klas rys. 1, diagram sekwencji przedstawiający proces generacji planu rys. 2, Na diagramie klas (rys. 1) na szczególną uwagę zasługują klasy Schedule (reprezentującą dany plan) oraz Annealing (odpowiedzialna za algorytm wyżarzania). Metodą, która wylicza funkcję celu dla danego planu jest metoda computeadjustment() z klasy Schedule. Politechnika Wrocławska Wydział Elektroniki 7

Rysunek 1: Diagram klas Politechnika Wrocławska Wydział Elektroniki 8

Rysunek 2: Diagram sekwencji generacja planu Politechnika Wrocławska Wydział Elektroniki 9

Literatura [1] D. E. Goldberg Algorytmy genetyczne i ich zastosowania, Wydaw. Naukowo Techniczne, Warszawa, 1995. [2] T. Walkowiak, Wykład: Metody optymalizacji globalnej. Algorytmy genetyczne i symulowane wyżarzanie, czerwiec, 2007. [3] http://pl.wikipedia.org, czerwiec 2007. Politechnika Wrocławska Wydział Elektroniki 10