Zadania i przykłady do wykonania



Podobne dokumenty
Zadania laboratoryjne i projektowe - wersja β

Zastosowania sieci neuronowych

Algorytm genetyczny (genetic algorithm)-

KARTA MODUŁU KSZTAŁCENIA

Algorytm wstecznej propagacji błędów dla sieci RBF Michał Bereta

ĆWICZENIE 4 ZASTOSOWANIE METOD I NARZĘDZI LOGIKI ROZMYTEJ DO KLASYFIKACJI DANYCH I APROKSYMACJI ODWZOROWAŃ STATYCZNYCH

Instrukcja realizacji ćwiczenia

Program "FLiNN-GA" wersja 2.10.β

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Inżynieria Wiedzy i Systemy Ekspertowe. Logika rozmyta. dr inż. Michał Bereta Politechnika Krakowska

Zastosowania sieci neuronowych

Temat: Model SUGENO. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Uczenie sieci typu MLP

ALGORYTMY GENETYCZNE ćwiczenia

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Metody i techniki sztucznej inteligencji / Leszek Rutkowski. wyd. 2, 3 dodr. Warszawa, Spis treści

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

Zagadnienia optymalizacji i aproksymacji. Sieci neuronowe.

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

Jeśli X jest przestrzenią o nieskończonej liczbie elementów:

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

1. Historia 2. Podstawy neurobiologii 3. Definicje i inne kłamstwa 4. Sztuczny neuron i zasady działania SSN. Agenda

1. Logika, funkcje logiczne, preceptron.

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

4.1. Wprowadzenie Podstawowe definicje Algorytm określania wartości parametrów w regresji logistycznej...74

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

Wstęp do teorii sztucznej inteligencji Wykład III. Modele sieci neuronowych.

Sztuczna inteligencja : Zbiory rozmyte cz. 2

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

Temat: ANFIS + TS w zadaniach. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Uczenie sieci radialnych (RBF)

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Standardowy algorytm genetyczny

SZTUCZNA INTELIGENCJA

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

Temat: Model TS + ANFIS. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Sztuczna inteligencja: zbiory rozmyte

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

PROGNOZOWANIE OSIADAŃ POWIERZCHNI TERENU PRZY UŻYCIU SIECI NEURONOWYCH**

Oprogramowanie Systemów Obrazowania SIECI NEURONOWE

Sieci neuronowe w Statistica

Wstęp do sieci neuronowych, wykład 04. Skierowane sieci neuronowe. Algorytmy konstrukcyjne dla sieci skierowanych

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

Temat: Sztuczne Sieci Neuronowe. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

8. Neuron z ciągłą funkcją aktywacji.

Systemy uczące się Lab 4

FOLIA POMERANAE UNIVERSITATIS TECHNOLOGIAE STETINENSIS Folia Pomer. Univ. Technol. Stetin. 2011, Oeconomica 285 (62), 45 50

6. Klasyczny algorytm genetyczny. 1

Niezawodność diagnostyka systemów laboratorium. Ćwiczenie 2

Sieci neuronowe jako sposób na optymalizacje podejmowanych decyzji. Tomasz Karczyoski Wydział W-08 IZ

Dobór parametrów algorytmu ewolucyjnego

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

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Sieci neuronowe do przetwarzania informacji / Stanisław Osowski. wyd. 3. Warszawa, Spis treści

Tworzenie rozmytego systemu wnioskowania

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

Podstawy Sztucznej Inteligencji

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

Obliczenia ewolucyjne - plan wykładu

Aproksymacja funkcji a regresja symboliczna

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

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka Adaline.

Optymalizacja optymalizacji

Wstęp do Programowania Lista 1

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

INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Elementy inteligencji obliczeniowej

Inteligencja obliczeniowa

Optymalizacja systemów

Algorytmy sztucznej inteligencji

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

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

6. Zagadnienie parkowania ciężarówki.

Algorytmy genetyczne

Sztuczna inteligencja : Zbiory rozmyte cz. III


PRZEWODNIK PO PRZEDMIOCIE

Metody eksploracji danych Laboratorium 2. Weka + Python + regresja

Algorytm hybrydowy dla alokacji portfela inwestycyjnego przy ograniczonych zasobach

Sieci neuronowe w Statistica. Agnieszka Nowak - Brzezioska

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

PRZEWODNIK PO PRZEDMIOCIE

ZASTOSOWANIE PROGRAMOWANIA LINIOWEGO W ZAGADNIENIACH WSPOMAGANIA PROCESU PODEJMOWANIA DECYZJI

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

WYKORZYSTANIE SIECI NEURONOWEJ DO BADANIA WPŁYWU WYDOBYCIA NA SEJSMICZNOŚĆ W KOPALNIACH WĘGLA KAMIENNEGO. Stanisław Kowalik (Poland, Gliwice)

Metody Sztucznej Inteligencji II

Rozmyte systemy doradcze

Piotr Sobolewski Krzysztof Skorupski

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

synaptycznych wszystko to waży 1.5 kg i zajmuje objętość około 1.5 litra. A zużywa mniej energii niż lampka nocna.

SZTUCZNA INTELIGENCJA

Algorytmy genetyczne

Sztuczne sieci neuronowe

//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];

Zadanie 0 gdy nie mamy logiki rozmytej. Zadanie 1- gdy już mamy logikę rozmytą

KOMPUTERY W STEROWANIU. Ćwiczenie 6 Projektowanie układu regulacji rozmytej

Politechnika Warszawska

Metody przeszukiwania

I EKSPLORACJA DANYCH

Transkrypt:

Zagadnienia Sztucznej Inteligencji (studia zaoczne III rok Informatyka) Linki i literatura Zadania i przykłady do wykonania []J.S. R. Jang, C.T. Sun, E. Mizutani, Neuro-Fuzzy and Soft Computing, Prentice Hall, 997 http://neural.cs.nthu.edu.tw/jang/book/ [2] Rutkowska D., Piliński M., Rutkowski L., Sieci neuronowe, algorytmy genetyczne i systemy rozmyte, Wydawnictwo Naukowe PWN, Warszawa 999 [3] http://www.ncrg.aston.ac.uk/netlab/ [4] http://www.shef.ac.uk/acse/research/ecrg/gat.html pakiet Genetic Algorithm Toolbox (GA-Toolbox). A. Modelowanie rozmyte. Funkcje przynależności Zapoznaj się z M-plikami funkcyjnymi tri_mf.m, trap_mf.m, gbell_mf.m, gauss_mf.m []. Zapisano w nich często stosowane funkcje przynależności Wykresy tych funkcji można zobaczyć uruchamiając M-plik disp_mf.m (rysunek ). %...Jyh-Shing Roger Jang, 6-28-93. function y = tri_mf(x, parameter) % TRI_MF Triangular membership function with three parameters. % TRI_MF(x, [a, b, c]) returns a matrix y with the same size % as x; each element of y is a grade of membership. a = parameter(); b = parameter(2); c = parameter(3); if a > b, error('illegal parameters: a > b'); elseif b > c, error('illegal parameters: b > c'); elseif a > c, error('illegal parameters: a > c'); end y = max(min((x-a)/(b-a), (c-x)/(c-b)), 0); function y = trap_mf(x, parameter) % TRAP_MF Trapezoidal membership function with four parameters. % TRAP_MF(x, [a, b, c, d]) returns a matrix y with the same size % as x; each element of y is a grade of membership. a = parameter(); b = parameter(2); c = parameter(3); d = parameter(4); if a > b, error('illegal parameters: a > b'); elseif b > c, error('illegal parameters: b > c'); elseif c > d, error('illegal parameters: c > d'); end y = max(min(min((x-a)/(b-a), (d-x)/(d-c)), ), 0); function y = gbell_mf(x, parameter) % GBELL_MF Generalized bell-shaped membership function with three parameters. % GBELL_MF(x, [a, b, c]) returns a matrix y with the same size % as x; each element of y is a grade of membership. a = parameter(); b = parameter(2); c = parameter(3); y =./(+(((x - c)/a).^2).^b); function y = gauss_mf(x, parameter) %GAUSS_MF Gaussian membership function with two parameters. % GAUSSIAN(x, [sigma, c]) returns a matrix y with the same size % as x; each element of y is a grade of membership. c = parameter(); sigma = parameter(2); tmp = (x - c)/sigma; y = exp(-tmp.*tmp/2);

2 Sprawdź (poprzez modyfikację pliku disp_mf.m), jaki wpływ na kształt funkcji przynależności mają ich parametry. (a) Triangular MF (b) Trapezoidal MF Membership Grades Membership Grades 0.5 0 0 20 40 60 80 00 (c) Gaussian MF 0.5 0 0 20 40 60 80 00 Membership Grades Membership Grades 0.5 0 0 20 40 60 80 00 (d) Generalized Bell MF 0.5 0 0 20 40 60 80 00 Rysunek. Wykresy funkcji przynależności rezultat działania M-pliku disp_mf.m 2. Operacje na zbiorach rozmytych Zapoznaj się z kodem źródłowym M-pliku fuzsetop.m [], który ilustruje podstawowe operacje na zbiorach rozmytych. Zapisz jakie są to operacje i algorytmy, które je realizują. Wykonaj te operacje dla innych funkcji przynależności (poprzez modyfikację pliku fuzsetop.m). 3. Relacje i wnioskowanie rozmyte Zapoznaj się z kodem źródłowym M-pliku fuzimp.m [], który ilustruje relacje i implikacje rozmyte. Wypisz wszystkie relacje i implikacje rozmyte pokazane w oknach graficznych, otwieranych przy uruchomieniu tego pliku. Zapisz algorytmy, które realizują te relacje i implikacje rozmyte. Sprawdź jak działa M-plik fuzimp.m dla innych funkcji przynależności. 4. Modele Mamdani Zapoznaj się ze sposobem tworzenia i działania modelu Mamdani z jednym wejściem i jednym wyjściem, poprzez uruchomienie i analizę kodu źródłowego pliku mam.m[] (odwzorowanie funkcji jednej zmiennej). Zapisz reguły dla tego modelu. Zapoznaj się ze sposobem tworzenia i działania modelu Mamdani z dwoma wejściami i jednym wyjściem, poprzez uruchomienie i analizę pliku mam2.m[] (odwzorowanie powierzchni funkcji dwóch zmiennych). Zapisz reguły dla tego modelu. Poznaj metody defuzyfikacji (ostrzenia), dostępne w M-pliku funkcyjnym defuzzy.m zapisz ich wzory. W plikach mam.m i mam2.m funkcja defuzzy jest wołana z option=. function out = defuzzy(x, mf, option) [] %DEFUZZY Defuzzification of MF. % DEFUZZY(x, mf, option) returns a representative value of mf % using different defuzzification strategies: % option = ---> center of area -> metoda środka ciężkości % option = 2 ---> bisecter of area -> metoda środka sum % option = 3 ---> mean of max -> metoda środka maksimum, Sprawdź jaki wpływ na uzyskane odwzorowania funkcji i powierzchni, realizowane w plikach mam.m i mam2.m,mają: różne metody defuzyfikacji (dostępne w M-pliku defuzzy.m) różne funkcje przynależności i ich parametry. 2

3 Zapisz reguły dla modeli z M-plików mam.m i mam2.m Określ jakie zastosowano metody rozmywania i wnioskowania. 5. Modele Takagi-Sugeno Zapoznaj się ze sposobem tworzenia i działania modelu Takagi-Sugeno z jednym wejściem i jednym wyjściem, poprzez uruchomienie i analizę kodu źródłowego M-pliku sug.m [] (odwzorowanie funkcji jednej zmiennej). Zapisz reguły dla tego modelu. Zapoznaj się ze sposobem tworzenia i działania modelu Takagi-Sugeno z dwoma wejściami i jednym wyjściem, poprzez uruchomienie i analizę kodu źródłowego M-pliku sug2.m [] (odwzorowanie powierzchni funkcji dwóch zmiennych). Zapisz reguły dla tego modelu. Zapoznaj się z metodami obliczania wartości wyjściowych (ostrych) w modelach Takagi-Sugeno Na podstawie modeli Takagi Sugeno, które zapisano w plikach sug.m i sug2.m należy utworzyć M-plik z modelem, który opisano poniżej i wykonać wizualizację jego powierzchni wejścia-wyjścia. Dany jest model Takagi Sugeno zapisany dwiema regułami w postaci [2]: IF (x jest DUŻE AND x 2 jest ŚREDNIE) THEN y = 2 + 7x - 3x 2 IF (x jest MAŁE AND x 2 jest MAŁE) THEN y 2 = -2x +5x 2 Wyznaczono sygnał wyjściowy modelu y dla x = 2 i x 2 =3. Na podstawie rysunku 2 oraz zakładając, że wartości w k (k=,2) są wyznaczane za pomocą operacji typu min, otrzymuje się: w = min(0.3; 0,7) = 0,3 w 2 = min(0.75; 0,2) = 0,2 Rysunek 2. Funkcje przynależności dla rozpatrywanego modelu Takagi-Sugeno. 3

4 B. Sieci neuronowe Przykład. Funkcje aktywacji neuronu zapisano w M-pliku activati.m []. Ich wykresy uzyskuje się poleceniem: activati. Skopiować do swojego katalogu M-plik activati.m i przeanalizować jego zawartość. Zmodyfikować plik wprowadzając parametr β. Wykonać wykresy funkcji dla różnych wartości parametru β (beta). Przykład 3. Model opreracji logicznej XOR. Tabela poniżej przedstawia odpowiedzi funkcji XOR dla wszystkich możliwych danych wejściowych. Operacja logiczna XOR przyjmuje dwa parametry binarne i przyjmuje wartości 0 lub. X Y XOR 0 0 0 0 0 0 Zadanie polega na odwzorowaniu tej funkcji za pomocą sieci neuronowej.. Wykonać polecenie xordata (M-plik xordata.m []) i obejrzeć dane wejściowe dla symulacji funkcji XOR. 2. Wykonać polecenie mlpdm2 (M-plik mlpdm2.m []) i zapoznać się z odwzorowaniem funkcji XOR za pomocą wielowarstwowego perceptronu. 3. Skopiować i edytować M-plik mlpdm2.m. Zmodyfikować ten plik tak, aby realizowaną funkcją logiczną była funkcja AND oraz OR. 4. Zmodyfikować wektor train_opt oraz mlp_config i przetestować różne architektury i parametry algorytmu uczenia.. Czy funkcje AND oraz OR są liniowo separowalne? 2. Czy sieć jest w stanie nauczyć się odwzorowania funkcji XOR, AND, OR z jednym neuronem w warstwie ukrytej? Sprawdzić to, modyfikując odpowiednie parametry w M-pliku mlpdm2.m Przykład 4. Aproksymacja funkcji jednej zmiennej z wykorzystaniem sieci MLP. Do aproksymacji funkcji użyto sieci neuronowej typu wielowarstwowy perceptron (ang. multilayer perceptron) tj. sieci MLP. Aproksymowana funkcja jest określona zestawem wartości: x=(-:.:)'; y=[-.9602 -.5770 -.0729.377.6405.6600.4609....336 -.203 -.4344 -.5000 -.3930 -.647.0988....3072.3960.3449.86 -.032 -.289 -.320]'. Poleceniem mlpdm uruchomić M-plik [], który ilustruje proces aproksymacji funkcji. 2. Skopiować plik mlpdm.m. Zapoznać się z jego zawartością oraz z możliwościami sterowania architekturą sieci (wektor mlp_config) i przebiegiem procesu uczenia (wektor train_opt). 3. Zmodyfikować zbiór danych uczących tak, by aproksymować inną funkcję. Wypróbować różne architektury sieci i parametry algorytmu uczenia.. Czy sieć o danej architekturze radzi sobie równie dobrze (lub równie źle) niezależnie od zbioru danych uczących? 2. Jaki wpływ na jakość odwzorowania mają poszczególne parametry algorytmu uczenia? Przykład 5. Funkcja Gaussa. Wykonaj wykres funkcji Gaussa korzystając z M-pliku funkcyjnego gauss_mf.m []. Sprawdzić wpływ wartości jej parametrów (centrum c, wariancja δ) na jej kształt. Przykład 6. Aproksymacja funkcji jednej zmiennej z wykorzystaniem sieci RBF. Aproksymowana funkcja jest określona zestawem wartości obliczonych ze wzoru jak poniżej []: x = linspace(-,, 5)'; y = 0.6*sin(pi*x) + 0.3*sin(3*pi*x) + 0.*sin(5*pi*x); trn_data = [x y]; Wykonać polecenie rbfndm i przeanalizować rezultaty aproksymacji funkcji. 4

5 W M-pliku rbfndm.m zmienić: liczbę neuronów radialnych, parametr uczenia η (eta), aproksymowaną funkcje i jej zakres.. Jaki wpływ mają dokonane zmiany na efekt uczenia? 2. Jaki algorytm uczenia jest zaimplementowany w rbfndm.m? Przykład 7. Odwzorowanie funkcji XOR z wykorzystaniem sieci RBF. Wykonać polecenia: rbfnxor, rbfnxor, rbfnxor2. Skopiować i edytować odpowiadające tym poleceniom M-pliki [].. Sprawdzić w jakich miejscach przestrzeni umieszczone są centra funkcji radialnych. 2. Zachowując te same centra funkcji radialnych zrealizować operację logiczną NOT XOR. 3. Zmienić położenia centrów funkcji radialnych i zmodyfikować pliki tak, aby nadal realizowana była funkcja XOR. Przykład 8. Wizualizacja sieci Kohonena na płaszczyźnie.. Poleceniem kfm2 uruchomić M-plik [] ilustrujący uczenie sieci SOM. Sieć uczy się przestrzennego rozkładu danych wejściowych na płaszczyźnie. 2. Wywołać polecenie kfm2 z parametrami 5 i zaobserwować efekt uczenia sieci za pomocą danych uczących o różnym okładzie (trójkąt, koło itd.). 3. Edytować plik kfm2.m. Zmodyfikować parametry sieci (liczba neuronów w każdym wymiarze sieci SOM) oraz parametry algorytmu uczenia sieci. Zaobserwować ich wpływ na zdolność sieci do prawidłowego odwzorowania zbiorów danych uczących. 4. Zaprojektować własny rozkład danych uczących, przykładowo w postaci pokazanej na rysunku 3. Rysunek 3. Przykładowy rozkład danych uczących. Pytanie: Jakiego rodzaju sąsiedztwo zastosowano w M-pliku kfm2.m? Przykład 9. Przygotowanie danych uczących dla sieci MLP w pakiecie Netlab [3] Przygotować dane uczące dla zadania aproksymacji funkcji sinus. Wykorzystać następujące polecenia: x=0:0.:5 x=x, t=sin(x), datwrite( sinusdata.dat,x,t) Utworzony plik sinusdata.dat może być użyty przez demtrain [3]. Zapisane w nim dane można pobrać za pomocą funkcji datread. [x, t, nin, nout, ndata]=datread(filename) Przykład 0. Aproksymacja funkcji jednej zmiennej z wykorzystaniem sieci MLP. (dostępnych poprzez funkcje pakietu Netlab [3]). Utworzyć sieć, która aproksymuje funkcję sinus w przedziale [0;6], korzystając z funkcji mlp [3]. clear, net=mlp(,4,,'linear') Zostaje utworzona nowa sieć z losowo zainicjowanymi wagami. W polach struktury o nazwie net zapisane są parametry utworzonej sieci. Wartości pól struktury są dostępne przez jej nazwę (tu net). Utworzyć dane uczące dla sieci: x=0:0.:6; x=x'; y=sin(x); Sprawdzić jak odpowiada sieć nie nauczona: net_y = mlpfwd(net,x); Wyświetlić dane uczące oraz odpowiedź sieci: plot(x,y,'r',x,y,'k+',x,net_y,'g') Następnie sieć jest uczona przez 50 epok: [net, err]=mlptrain(net,x,y,50) Ponownie obliczane są odpowiedzi sieci i tworzony jest nowy wykres net_y = mlpfwd(net,x); plot(x,y,'r',x,y,'k+',x,net_y,'g') 5

6 Przykład. Analiza wpływu architektury sieci na osiągnięte wyniki. Przetestować, wpływ konfiguracji sieci na błąd aproksymacji wybranej funkcji, np. f(x) = 0.6*sin(pi*x) + 0.3*sin(3*pi*x) + 0.*sin(5*pi*x) w przedziale [-;] Przygotować plik z danymi uczącymi i wykonać ćwiczenie za pomocą interfejsu demtrain.. Dla jakiej liczby neuronów ukrytych sieć osiąga najmniejszy błąd? 2. Czy zawsze ze wzrostem liczby neuronów ukrytych otrzymujemy mniejszy błąd przy tej samej liczbie iteracji? 3. Czy zmiana funkcji aktywacji ma wpływ na osiągnięte wyniki? Jako że efekt uczenia zależy od początkowych wartości wag, trening należy powtórzyć kilkakrotnie dla każdego ustawienia. C. Algorytmy genetyczne Przykład - utworzenie populacji binarnej [4]. Chrom = crtbp(4,8) %utworzenie losowej populacji. %Cztery osobniki po osiem bitów (cztery bity na zmienną) Chrom = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FieldD =[4 4;- -;0 0; ;0 0 ; ; ]; %zdefiniowanie macierzy FieldD Phen=bs2rv(Chrom, FieldD) %przekształcenie macierzy binarnej na rzeczywistą Phen = 6.3333 0.0000 3.4000 0.0000 7.8000 4.333.2000 8.5333 Przykład 2 - jedna generacja (iteracja) klasycznego algorytmu genetycznego SGA [4]. ObjV = objfun(bs2rv(chrom,fieldd)); %objfun funkcja celu %wyliczenie wartości funkcji celu dla wszystkich osobników % FitnV = ranking(objv); %ranking rozwiązań %na podstawie wartości funkcji celu SelCh = select('sus', Chrom, FitnV); %selekcja metodą sus. SelCh = recombin('xovsp',selch,0.7); %krzyżowanie jednopunktowe z %prawdopodobieństwem 0.7 SelCh = mutate('mut', SelCh, NaN, 0.3); %mutacja równomierna ObjVSel = objfun(bs2rv(selch,fieldd));%obliczenie wartości funkcji celu %po działaniu operatorów genetycznych [Chrom ObjV]=reins(Chrom,SelCh,,,ObjV,ObjVSel); %zastąpienie starych populacji nowymi 6

7 Przykład 3 sga.m jest demonstracyjnym M-plikiem z pakietu GA-Toolbox [4]. Zaimplementowano w tym pliku klasyczny algorytm genetyczny SGA. % sga.m zawiera implementowany klasyczny algorytm genetyczny NIND = 40; MAXGEN = 300; GGAP =.9; NVAR = 20; PRECI = 20; % Liczba osobników w populacji % liczba iteracji % Ile osobników jest tworzonych podczas selekcji % Liczba zmiennych optymalizowanej funkcji % Precyzja ile bitów reprezentuje jedną zmienną % Uworzenie macierzy opisującej populację FieldD = [rep([preci],[, NVAR]); rep([-52;52],[, NVAR]);... rep([; 0; ;], [, NVAR])]; % Utworzenie populacji - Inicjacja Chrom = crtbp(nind, NVAR*PRECI); % Wyzerowanie liczników wartości początkowe zmiennych sterujących Best = NaN*ones(MAXGEN,); % macierz najlepszej aktualnej populacji gen = 0; % licznik generacji (iteracji) % Ocena początkowej populacji Ocena przystosowania ObjV = objfun(bs2rv(chrom,fieldd)); % Wyliczenie i wizualizacja najlepszego rozwiązania Best(gen+) = min(objv); plot(log0(best),'ro');xlabel('generation'); ylabel('log0(f(x))'); text(0.5,0.95,['best = ', num2str(best(gen+))],'units','normalized'); drawnow; % Pętla Alorytmu while gen < MAXGEN, % Na podstawie funkcji przystosowanie określenie rankingu rozwiązań FitnV = ranking(objv); % Selekcja SelCh = select('sus', Chrom, FitnV, GGAP); % Zastosowanie operatorów genetycznych SelCh = recombin('xovsp',selch,0.7); % Krzyżowanie SelCh = mut(selch); % Mutacja % Wyliczenie funkcji celu dla nowej populacji ObjVSel = objfun(bs2rv(selch,fieldd)); % Utworzenie nowej populacji [Chrom ObjV]=reins(Chrom,SelCh,,,ObjV,ObjVSel); % Zwiększenie licznika generacji (iteracj) gen = gen+; % Aktualizacja wizualizacji zmian i zapis śladu najlepszego osobnika (Best) Best(gen+) = min(objv); %wyprowadzenie najlepszego chromosomu plot(log0(best),'ro'); xlabel('generation'); ylabel('log0(f(x))'); text(0.5,0.95,['best = ', num2str(best(gen+))],'units','normalized'); drawnow; end % End of GA 7

8. Określ zasady działania algorytmu genetycznego. 2. Czym charakteryzuje się klasyczny algorytm genetyczny (SGA)? 3. Wyjaśnij zasady selekcji metodą koła ruletki 4. Na czym polega krzyżowanie jednopunktowe? 5. Jakie są najważniejsze parametry algorytmu genetycznego wpływające na jego działanie? 6. Wyjaśnij pojęcia: chromosom, gen, populacja. 7. Podaj różnice pomiędzy kodowaniem binarnym a rzeczywistym. Zadanie. Zapisz na kartce papieru tj. wykonaj ręczną symulację jednej generacji (iteracji) algorytmu genetycznego dla zadania optymalizacji funkcji f(x)= 0.2*x 3 +0.*x 2-8*x. Optymalizacja polega na znalezieniu wartości x [-6,6], dla której funkcja przyjmuje wartość minimalną.. Utwórz przykładową populacje 0 osobników. Zastosuj kodowanie binarne. 2. Wykonaj selekcję metodą koła ruletki czy jest możliwe bezpośrednie zastosowanie tej metody? 3. Wykonaj krzyżowanie jednopunktowe 4. Wykonaj mutacje równomierną Korzystając ze środowiska MATLAB wykonaj wykres powyższej funkcji i wyznacz jej wartość minimalną w podanym zakresie, za pomocą funkcji fmin. Zadanie 2. Zapoznaj się z demonstracyjnym M-plikiem sga.m z pakietu GA-Toolbox [4]. Zaimplementowano w tym pliku klasyczny algorytm genetyczny, z wykorzystaniem funkcji dostępnych w pakiecie GA-Toolbox. Optymalizowaną funkcję, dla której poszukiwano minimum, zapisano w M-pliku objfun.m Korzystając z funkcji pakietu GA-Toolbox, zapisz w M-pliku program rozwiązujący problem określenia minimum funkcji z zadania. Wykonaj testy dla następujących konfiguracji algorytmu genetycznego: Nr testu Wielkość populacji Liczba generacji Prawdopodobieństwo krzyżowania 20 00 0.7 0. 2 20 00 0.7 0.0 3 20 00 0.7 0.005 4 20 00 0.5 0. 5 20 00 0.5 0.0 6 20 00 0.5 0.005 7 20 00 0.3 0. 8 20 00 0.3 0.0 9 20 00 0.3 0.005 0 40 00 0.7 0.005 40 200 0.7 0.005 Prawdopodobieństwo mutacji Każdy test należy wykonywać 5-krotnie. Jakie parametry algorytmu genetycznego dają najlepsze rezultaty? Zmiany, którego parametru mają największy wpływ na wynik działania algorytmu genetycznego? 8

9 Zadanie 3. Demonstracyjny M-plik sga.m [4] z pakietu GA-Toolbox, przetestuj dla funkcji Griewangk a (M-plik objfun8.m). Zastosuj następujące parametry algorytmu genetycznego: Kodowanie zmiennopozycyjne Selekcja sus (ang. stochastic universal sampling) Krzyżowanie wielopunktowe, arytmetyczne Mutacja Dobierz parametry zadania poprzez wykonanie testów z parametrami jak w tabelce dla zadania 2. Każdy test należy wykonywać 5-krotnie Przy jakich parametrach algorytmu genetycznego uzyskuje się najlepsze wyniki? Zadanie 4. Poleceniem MATLAB-a peaks, wykonaj wykres funkcji dwóch zmiennych peaks, zdefiniowanej w M-pliku funkcyjnym peaks.m Uruchom program plik demonstracyjny go_ga.m [], który wykorzystuje algorytm genetyczny do znalezienia maksimum tej funkcji. Zapoznaj się, z kodem źródłowym tego programu. Odszukaj miejsca definiowania parametrów algorytmu genetycznego. Sprawdź, jak zmieniają się wartości poszukiwanego maksimum funkcji - zmieniając: liczbę generacji, wielkość populacji, prawdopodobieństwo krzyżowania i mutacji. Czy parametry znalezione we wcześniejszych zadaniach jako najlepsze, również tu dają dobre wyniki? Zaobserwuj jak zmieniają się wartości: najlepszego, średniego i najgorszego osobnika w populacji? Wyjaśnij to zachowanie? Wyznacz maksimum funkcji peaks, korzystając z funkcji MATLAB-a fmins (pamiętaj o przekształceniu zadania do problemu minimalizacji). Zadanie 5. Problem komiwojażera jest formułowany następująco: należy znaleźć trasę komiwojażera, który chce odwiedzić wszystkie miasta na swoim terytorium tylko raz i wrócić do punktu startu tak, aby była ona najtańsza (najkrótsza). Przestrzeń rozwiązań zadania jest zbiorem permutacji n miast. Plik demonstracyjny tsp.m []zawiera wizualizację tego zadania i implementację jego rozwiązania metodą symulowanego wyżarzania. Jak wygląda osobnik reprezentujący rozwiązanie tego problemu? Jak wyliczyć wartość funkcji przystosowania? Jak zaimplementować krzyżowanie i mutacje dla tego problemu? Dla danych z pliku tsp.m (wzorując się na pliku go_ga.m ) napisz program w MATLAB-ie rozwiązujący problem komiwojażera. 9