Zadanie 5 - Algorytmy genetyczne (optymalizacja)

Podobne dokumenty
Algorytm genetyczny (genetic algorithm)-

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

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

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

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

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

Algorytmy genetyczne

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

Algorytmy genetyczne w optymalizacji

Algorytmy ewolucyjne NAZEWNICTWO

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

6. Klasyczny algorytm genetyczny. 1

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

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

Algorytmy genetyczne

Zadania laboratoryjne i projektowe - wersja β

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

Algorytmy genetyczne

ALGORYTMY GENETYCZNE ćwiczenia

Algorytmy stochastyczne, wykład 01 Podstawowy algorytm genetyczny

Generowanie i optymalizacja harmonogramu za pomoca

METODY HEURYSTYCZNE wykład 3

Techniki optymalizacji

Metody przeszukiwania

Obliczenia ewolucyjne - plan wykładu

Algorytmy ewolucyjne. wprowadzenie

Algorytmy genetyczne

Algorytmy ewolucyjne 1

Katedra Informatyki Stosowanej. Algorytmy ewolucyjne. Inteligencja obliczeniowa

METODY HEURYSTYCZNE wykład 3

Strategie ewolucyjne (ang. evolu4on strategies)

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)

Algorytmy genetyczne (AG)

Równoważność algorytmów optymalizacji

Temat: Algorytmy zachłanne

Modyfikacje i ulepszenia standardowego algorytmu genetycznego

SZTUCZNA INTELIGENCJA

Standardowy algorytm genetyczny

Systemy Inteligentnego Przetwarzania wykład 4: algorytmy genetyczne, logika rozmyta

Wstęp do Sztucznej Inteligencji

Metody Rozmyte i Algorytmy Ewolucyjne

Dobór parametrów algorytmu ewolucyjnego

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

ALGORYTMY GENETYCZNE (wykład + ćwiczenia)

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

Algorytmy genetyczne służą głównie do tego, żeby rozwiązywać zadania optymalizacji

Algorytmy stochastyczne, wykład 02 Algorytmy genetyczne

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

Algorytmy genetyczne jako metoda wyszukiwania wzorców. Seminarium Metod Inteligencji Obliczeniowej Warszawa 26 X 2005 mgr inż.

SZTUCZNA INTELIGENCJA

ALGORYTMY EWOLUCYJNE. INTELIGENTNE TECHNIKI KOMPUTEROWE wykład 011. Napór selekcyjny (selektywny nacisk. Superosobniki: SELEKCJA

Techniki ewolucyjne - algorytm genetyczny i nie tylko

Algorytmy ewolucyjne (2)

KARTA MODUŁU KSZTAŁCENIA

Algorytmy genetyczne Michał Bereta Paweł Jarosz (część teoretyczna)

Automatyczny dobór parametrów algorytmu genetycznego

Algorytmy genetyczne w interpolacji wielomianowej

Optymalizacja optymalizacji

FOLIA POMERANAE UNIVERSITATIS TECHNOLOGIAE STETINENSIS Folia Pomer. Univ. Technol. Stetin. 2009, Oeconomica 275 (57), 53 58

LABORATORIUM 5: Wpływ reprodukcji na skuteczność poszukiwań AE. opracował: dr inż. Witold Beluch

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

BIOCYBERNETYKA ALGORYTMY GENETYCZNE I METODY EWOLUCYJNE. Adrian Horzyk. Akademia Górniczo-Hutnicza

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

Optymalizacja parametryczna (punkt kartezjańskim jest niewypukła).

Algorytmy ewolucyjne

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

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

ALGORYTMY GENETYCZNE I EWOLUCYJNE

Problem Komiwojażera - algorytmy metaheurystyczne

LICZEBNOŚĆ POPULACJI OBLICZENIA EWOLUCYJNE. wykład 3. Istotny parametr AG...

przetworzonego sygnału

ALGORYTMY GENETYCZNE

Optymalizacja. Wybrane algorytmy

Algorytmy ewolucyjne `

Programowanie genetyczne, gra SNAKE

Wybrane podstawowe rodzaje algorytmów

ZASTOSOWANIE ALGORYTMU GENETYCZNEGO DO WYZNACZANIA OPTYMALNYCH DECYZJI STERUJĄCYCH

Obliczenia Naturalne - Algorytmy genetyczne

Obrona rozprawy doktorskiej Neuro-genetyczny system komputerowy do prognozowania zmiany indeksu giełdowego

INTELIGENCJA OBLICZENIOWA. dr Katarzyna Grzesiak-Kopeć

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

OBLICZENIA EWOLUCYJNE

Inteligencja obliczeniowa Laboratorium 2: Algorytmy genetyczne

ALHE Z11 Jarosław Arabas wykład 11

METODY HEURYSTYCZNE 3

Zaawansowane programowanie

Odkrywanie algorytmów kwantowych za pomocą programowania genetycznego

Algorytm hybrydowy dla alokacji portfela inwestycyjnego przy ograniczonych zasobach

Program "FLiNN-GA" wersja 2.10.β

OBLICZENIA EWOLUCYJNE

Programowanie Współbieżne. Algorytmy

Algorytmy ewolucyjne (3)

6. Algorytm genetyczny przykłady zastosowań.

Testy De Jonga. Problemy. 1 Optymalizacja dyskretna i ciągła

Strategie ewolucyjne (ang. evolution strategies)

5. Algorytm genetyczny przykład zastosowania

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

KONSPEKT ZAJĘĆ KOŁA INFORMATYCZNEGO LUB MATEMATYCZNEGO W KLASIE III GIMNAZJUM LUB I LICEUM ( 2 GODZ.)

Zadanie transportowe i problem komiwojażera. Tadeusz Trzaskalik

Teoria algorytmów ewolucyjnych

Transkrypt:

Zadanie 5 - Algorytmy genetyczne (optymalizacja) Marcin Pietrzykowski mpietrzykowski@wi.zut.edu.pl wersja 1.0 1 Cel Celem zadania jest zapoznanie się z Algorytmami Genetycznymi w celu rozwiązywanie zadania optymalizacji. Zadaniem, które należy rozwiązać będzie dyskretny problem plecakowy. Program jest do napisania w środowisku Matlab. Osoby chętne chcące napisać ww. program w innym języku odsyłam do punktu 5. Wszystkie informacje zostały podane na zajęciach. Przypomnienie najważniejszych informacji znajduje się poniżej. 2 Dyskretny problem plecakowy Problem plecakowy często przedstawia się jako problem złodzieja rabującego sklep znalazł on N towarów; i ty przedmiot jest wart v i oraz posiada określoną objętość c j. Złodziej dąży do zabrania ze sobą jak najwartościowszego łupu, przy czym nie może przekroczyć objętości plecaka C max. Nie może też zabierać ułamkowej części przedmiotów (byłoby to możliwe w ciągłym problemie plecakowym). Formalna definicja problemu jest następująca. Do dyspozycji posiadamy I przedmiotów, a każdy z nich jest opisany jako para (v i, c i ): A = {(v i, c i )} i=1...n (1) Zadaniem jest znalezienie takiego podzbioru B, w którym wartość przedmiotów jest maksymalna, ale ich objętość nie przekracza maksymalne objętości plecaka, czyli: B A, v i max, c i C max (2) 3 Algorytm Genetyczny (v i,c i ) B (v i,c i ) B Algorytm genetyczny jest to rodzaj heurystyki przeszukującej przestrzeń alternatywnych rozwiązań problemu w celu wyszukania rozwiązań najlepszych. Sposób działania algorytmów genetycznych przypomina zjawisko ewolucji biologicznej. Obecnie zalicza się go do grupy algorytmów ewolucyjnych. Środowisko, w którym istnieje pewna populacja osobników, jest zdefiniowane przez problem, który należy rozwiązać. Każdy z osobników ma przypisany pewien zbiór chromosomów składający się z genów. Jest to genotyp danego osobnika i stanowi on podstawę do utworzenia fenotypu. Fenotyp to zbiór cech podlegających ocenie funkcji przystosowania modelującej środowisko. Innymi słowy - genotyp opisuje proponowane rozwiązanie problemu, a funkcja przystosowania ocenia, jak dobre jest to rozwiązanie. Każdy z osobników prezentuje lepsze lub gorsze rozwiązanie danego problemu. Każdy z osobników może posiadać kilka chromosomów, jednak bardzo często w algorytmach genetycznych wybrany osobnik posiada jeden chromosom. W literaturze oba pojęcia: chromosom oraz osobnik bardzo często używane są wymiennie. Algorytm genetyczny posiada następujące kroki: 1. Wybór populacji początkowej 2. Ocena przystosowania osobników w populacji 3. Wyprowadzenie najlepszego osobnika 1

4. Sprawdzenie warunków zatrzymania 5. Selekcja chromosomów 6. Zastosowanie operatorów genetycznych 7. Utworzenie nowej populacji 3.1 Kodowanie informacji Każdy chromosom koduje pewien zbiór informacji. Na potrzeby niniejszego zadania rozpatrzymy chromosom binarny, w którym każdy z genów może przyjmować tylko jedną wartość 0 lub 1. Każdy chromosom będzie prezentowała jedno możliwe rozwiązanie tj. pewien podzbiór przedmiotów, które mogą zostać włożone do plecaka. Długość chromosomy będzie równa liczbie wszystkich przedmiotów I. Pojedynczy gen będzie definiował, czy dany przedmiot znajduje się w plecaku (wartość genu 1) czy też danego przedmiotu w tym plecaku nie ma (wartość genu 0). Przykładowy chromosom, dla zadania w którym występuje 15 przedmiotów, prezentuje diagram poniżej. nr przedmiotu 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 chromosom 1 1 0 0 0 1 0 1 0 0 0 0 0 1 0 Chromosom koduje informacje, o tym że w plecaku znajdują się przedmioty: 1, 2, 6, 8, 14 3.2 Operatory genetyczne Operatory genetyczne mają na celu rekombinacje genów w chromosomach. Wyróżniamy dwa operatory genetyczne: krzyżowanie, mutację. Niekiedy podaje się jeszcze trzeci operator - inwersja. Najbardziej popularne i najczęściej stosowane są dwa pierwsze. Każdy z operatorów genetyczny wykonywany jest z pewnym prawdopodobieństwem, które definiujemy na początku programu i które jest stałe w trakcie jego trwania. Typowe zakresy prawdopodobieństw dla poszczególnych operatorów genetycznych są następujące: Krzyżowanie 0.5 1.0 Mutacja 0.0 0.1 3.2.1 Krzyżowanie Krzyżowanie jest operacją mającą na celu wymianę materiału genetycznego między osobnikami. Krzyżowanie jednopunktowe Krzyżowanie to polega na wylosowaniu jednego punktu krzyżowania, a następnie wymianie materiału genetycznego w następujący sposób: Rysunek 1: Przykład krzyżowania jednopunktowego. Krzyżowanie dwupunktowe Krzyżowanie dwupunktowe jest wykonywane analogicznie do krzyżowania jednopunktowego z tą różnicą, że losowane są dwa punkty: 2

Rysunek 2: Przykład krzyżowania dwupunktowego. 3.2.2 Mutacja Mutacja ma na celu wprowadzić różnorodność genetyczną populacji Prawdopodobieństwo mutacji wylicza się dla każdego genu. Mutacja w chromosomie binarnym polega na zmianie bitu na wartość przeciwną. Rysunek 3: Przykład mutacji, która zaistniała dla 3 genów. 3.3 Funkcja przystosowania Funkcja przystosowania ocenia jak dobrze dany osobnik jest przystosowany do środowiska (z punktu widzenia rozwiązywanego problemu). Dla dyskretnego problemu plecakowego będzie to wartość przedmiotów, jeżeli suma ich objętości nie przekracza maksymalnej objętości plecaka C max, w przeciwnym razie będzie to 0. Matematycznie funkcję przystosowania dla danego osobnika można zapisać jako: 3.4 Funkcja selekcji { (v f(b) = i,c i ) B v i, 0, (v i,c i ) B c i C max (v i,c i ) B c (3) i > C max Metoda selekcji ma za zadanie wyselekcjonowanie najlepiej przystosowanych osobników przy jednoczesnym zachowaniu różnorodności genetycznej populacji. W wyniku selekcji dany osobnik może zostać wylosowany więcej niż jeden raz. 3.4.1 Selekcja koła ruletki Polega na budowaniu wirtualnego koło, którego wycinki odpowiadają poszczególnym osobnikom. Im lepszy osobnik, tym większy wycinek koła zajmuje. Zajętość koła dla chromosomu ch i w populacji złożonej z J osobników definiujemy z następującego wzoru: p(ch i ) = f(ch i ) Jj=1 f(ch j ) Rozmiar wycinków może zależeć od wartości funkcji oceny, jeśli wysoka wartość oceny oznacza wysokie przystosowanie. W takim układzie prawdopodobieństwo, że lepszy osobnik zostanie wybrany jako rodzic, jest większe. Niestety ewolucja przy takim algorytmie z każdym krokiem zwalnia. Jeżeli osobniki są podobne, to każdy dostaje równy wycinek koła fortuny i presja selekcyjna spada. Algorytm słabiej rozróżnia osobniki dobre od słabszych. (4) 3

Rysunek 4: Przykład selekcji koła ruletki. 3.4.2 Selekcja turniejowa Polega na wylosowaniu grupy k-elementowej z populacji a następnie wyborze osobnika o najlepszym przystosowaniu. Całą operację powtarzamy tyle razy ile jest osobników w populacji. 3.4.3 Selekcja rankingowa Osobniki ustawiane są kolejno zgodnie z wartością funkcji przystosowania - od najlepszego do najgorszego. Każdy osobnik ma numer określający jego pozycję na liście, czyli swoją rangę. Liczba kopii każdego osobnika wprowadzana do populacji jest zdefiniowana przez wcześniej ustaloną funkcję, która zależy od rangi osobnika. Rysunek 5: Przykład funkcji określającej zależność liczby osobników w nowej populacji od wartości rangi. 4 Polecenia 4.1 Na zajęciach Napisać skrypt do losowania problemu plecakowego dla zadanej liczby przedmiotów - n. 4

Napisać ogólny skrypt realizujący ewolucję algorytmu genetycznego. Parametrami dla skryptu powinny być m.in.: rozmiar populacji, liczba iteracji, wskaźnik na funkcję przystosowania, wskaźnik na funkcję selekcji, wskaźnik na funkcję krzyżowania, wskaźnik na funkcję mutacji. Napisać funkcję (skrypt) obliczającą dla całej populacji wektor wartości przystosowania dla problemu plecakowego. Napisać funkcje realizujące: selekcję ruletkową, krzyżowanie jednopunktowe, mutację (wszystkie te funkcje powinny przyjmować na wejście całą populację). 4.2 Do domu Napisać dodatkowe dwie funkcje selekcyjne realizujące: selekcję rankingową i turniejową. Napisać funkcję do krzyżowania dwupunktowego. Dla wylosowanego problemu plecakowego przeprowadzić ewolucję algorytmu genetycznego. W każdej iteracji odnotować: (1) średnie przystosowanie populacji, (2) przystosowanie najlepszego osobnika w danym pokoleniu, (3) przystosowanie najlepszego osobnika wykrytego w dotychczasowej historii. Wielkości (2) i (3) nie zawszę muszą się pokrywać. Wartości te powinny zostać przedstawione na wykresie. Napisać skrypt rozwiązujący problem plecakowy poprzez indukcję (opartą na kracie) w sposób dokładny - zgodnie z wiadomościami podanymi na wykładzie. Dla wylosowanego problemu plecakowego (lub kilku) sprawdzić, czy algorytm genetyczny zwraca ten sam wynik, co rozwiązanie dokładne. 5 Wersją do osób nielubiących Matlba Osoby chętne mogą napisać ww. program w języku innym niż Matlab jednakże niezbędne będzie wyświetlenie wykresów. Oprócz zastosowania zewnętrznej biblioteki natywnej dla danego języka rysującej wykresy istnieje możliwość skorzystania z Matlaba jedynie w celu rysowania wykresów bezpośrednio w kodzie programu. Przykład jak można to wykonać w aplikacji konsolowej napisanej w języka C# jest do pobrania tutaj. Zaprezentowane rozwiązanie wymaga instancji Matlaba zainstalowanej na maszynie, na której uruchamiany jest program. 5