t5 algorytmy genetyczne


Akademia Morska w Gdyni
Katedra Automatyki Okrętowej
Metody sztucznej inteligencji
Układy sterowania z wykorzystaniem algorytmów
genetycznych
Anna Waszkiel, Mirosław Tomera
1. CEL ĆWICZENIA
Celem ćwiczenia jest zapoznanie się z procedurą optymalizacji wartości wzmocnień regulatorów
konwencjonalnych przy wykorzystaniu algorytmów genetycznych.
2. WPROWADZENIE
Algorytmy genetyczne zalicza się go do grupy algorytmów ewolucyjnych, które powstały i
zostały rozwinięte w celu znajdowania przybliżonych rozwiązań problemów optymalizacji w taki
sposób, by znajdować wynik w miarę szybko i uniknąć pułapek minimów lokalnych.
Algorytmy genetyczne znajdują swoje zastosowanie przy: adaptacyjnym opisie dokumentów,
klasyfikacji i grupowaniu danych, optymalizacji funkcji, rejestracji obrazów, konstrukcji portretów
pamięciowych oraz generacji bazy reguł rozmytych. W algorytmach genetycznych stosuje się pojęcia
zapożyczone z genetyki naturalnej, które są kluczowe do zrozumienia sposobu jego działania:
" populacja  zbiór osobników o określonej liczebności;
" osobniki  poszczególne rozwiązania problemu, zakodowane w postaci chromosomów zbiory
rozwiązań zadania;
" chromosomy  ciągi kodowe, czyli uporządkowane ciągi genów;
" gen  cecha, pojedynczy element łańcucha chromosomu (analogia do bitu w bajcie);
" genotyp  zespół chromosomów danego osobnika;
" fenotyp  zestaw wartości odpowiadający danemu genotypowi, czyli zdekodowana struktura
(genotyp);
" allel  wartość danego genu;
" locus  położenie danego genu w łańcuchu (chromosomie);
" funkcja przystosowania  funkcja oceny, wskaznik jakości, stanowi miarę przystosowania
danego osobnika w populacji, na jej podstawie wybiera się osobniki najlepiej przystosowane
(najsilniejsze w myśl teorii ewolucji), czyli takie które mają najwyższą wartość funkcji
przystosowania;
" generacja  kolejna iteracja w algorytmie genetycznym;
" pokolenie  nowo utworzona populacja osobników.
Ostatnia aktualizacja: 2012-01-12 M. Tomera 1
Metody sztucznej inteligencji Algorytmy genetyczne w sterowaniu
Algorytm genetyczny jest algorytmem probabilistycznym, w którym w każdej iteracji t generuje się
populację osobników P (t)={xt , xt2 , ... , xt } , gdzie każdy osobnik przedstawia możliwe
1 n
rozwiązanie rozpatrywanego zadania. Oceny rozwiązania xit  dokonuje się na podstawie miary
dopasowania, a nowa populacja jest tworzona w kolejnej iteracjipoprzez wyselekcjonowanie
osobników najlepiej dopasowanych. Nowe osobniki są poddawane transformacji za pomocą takich
operatorów genetycznych jak krzyżowanie i mutacja.
3. ALGORYTM GENETYCZNY  sposób realizacji, omówienie poszczególnych
kroków
Algorytm genetyczny można opisać jako działanie w pętli, która składa się z sześciu kroków. W
pierwszym z nich generowana jest populacja początkowa. Generacja populacji początkowe
uwzględnia określenie sposobu kodowania rzeczywistych parametrów problemu w postaci
chromosomu, a następnie przyjęcie funkcji przystosowania. Dzięki niej możliwa jest ocena
otrzymanego zestawu parametrów pod względem jakości poszukiwanego rozwiązania. Dopiero w
trzecim etapie następuje losowy dobór parametrów punktu startowego. Na tym etapie konieczne jest
określenie rozmiaru populacji i długości chromosomu. Im większa liczebność populacji  tym większe
zapotrzebowanie na zasoby (więcej zajmowanej pamięci, wydłużony czas obliczeń). Niemniej jednak
znacząca poprawa jest widoczna tylko do pewnego momentu, dlatego należy zwrócić uwagę na
stosunek zysk/koszt. Dłużej żyjąca populacja nie pochłania więcej pamięci, ale czas obliczeń jest
wprost proporcjonalny do ilości generacji. Zwykle wyniki polepszają się wraz ze wzrostem ilości
generacji (mimo to trafiają się populacje  chybione o niskiej wartości funkcji oceny przystosowania.
Drugim krokiem algorytmu genetycznego jest ocena jakości konkretnego chromosomu i
populacji. W tym celu wykorzystywana jest funkcja przystosowania, która mówi w jakim stopniu
dany chromosom rozwiązuje problem, czyli jest swego rodzaju wskaznikiem jakości. W przypadku
regulatorów wykorzystywanych w ćwiczeniu zastosowano wskaznik jakości ISE (Integral Square
Error), który ma dążyć do minimum jako funkcję oceny przystosowania.
Trzecim krokiem algorytmu genetycznego jest selekcja chromosomów do dalszego
przetwarzania. Na tym etapie wybór jest oparty o metody losowe. Funkcja SELECTION
wykorzystana w algorytmie wybiera osobniki proporcjonalnie do ich funkcji przeżycia. Najpierw
losowane są pozycje na które zostanie skopiowany najlepszy osobnik, pózniej pozycje na które
zostanie skopiowany drugi osobnik itd. Liczba osobników nie ulega zmianie.
W kolejnym kroku dochodzi do mutacji chromosomu. Jest to proces polegający na losowej
zmianie jednego lub więcej genów w chromosomie. Każdy gen każdego osobnika będącego w
populacji może mutować niezależnie od innych z prawdopodobieństwem mutacji pm, które jest
określane przez użytkownika. Zbyt małe prawdopodobieństwo mutacji  ma negatywny wpływ na
wyniki populacji (funkcja oceny przystosowania jest bardzo mała), natomiast zbyt duże 
uniemożliwia algorytmowi uzyskanie sensownego wyniku. Mutacja może być nazwana  dziką kartą
wprowadzaną do populacji, czyli genem nie pochodzącym od żadnego z rodziców.
Piąty krok algorytmu  to krzyżowanie. Krzyżowanie jest operacją łączącą cechy dwóch
chromosomów rodzicielskich w chromosomach dwóch potomków poprzez wymianę odcinków
chromosomów rodzicielskich. Na przykład mamy 2 chromosomy rodzicielskie: (a1, b1, c1, d1, e1) oraz
(a2, b2, c2, d2, e2). Losowo jest wybierany numer genu krzyżowania (np.3) i otrzymywane są 2 gey
potomków: (a1, b1, c1, d2, e2) oraz (a2, b2, c2, d1, e1). Krzyżowanie zachodzi podobnie jak mutacja z
prawdopodobieństwem pc określonym przez użytkownika. W ćwiczeniu krzyżowanie jest realizowane
przez funkcję XOVER. Brak krzyżowania nie zabroni algorytmowi znalezć optymalnego rozwiązania
(w takim wypadku uzyskiwana jest duża niestabilność populacji  czego wynikiem jest bardzo duże
odchylenie standardowe w tej populacji), natomiast duża wartość prawdopodobieństwa krzyżowania 
bardzo usprawnia algorytm. Z reguły prawdopodobieństwo krzyżowania jest o ok. 2 rzędy wielkości
większe od prawdopodobieństwa mutacji. Proces tworzenia nowych populacji został zilustrowany na
rysunku 2.
Ostatnim, szóstym krokiem algorytmu  jest ocena jakości nowego pokolenia. Funkcja
przystosowania jest liczona dla chromosomów nowej populacji.
Algorytm genetyczny opisany powyżej został zilustrowany graficznie na rysunku 1.
Ostatnia aktualizacja: 2012-01-12 ę. Waszkiel, M. Tomera 2
Metody sztucznej inteligencji Algorytmy genetyczne w sterowaniu
Start
Utwórz populację początkową
Oceń każdego
Zastąp
Nowe pokolenie
osobnika populacji
Wybierz
Nie
Tak
Warunek
Rodziców
Stop
stopu
Rys.1. Schemat blokowy algorytmu genetycznego
Rys.2. Ilustracja procesu tworzenia nowych populacji
Jako warunek stopu (kryterium zatrzymania algorytmu) można uwzględnić w zależności od potrzeb:
" kryterium czasowe  algorytm jest zatrzymywany w konkretnej chwili, w której wynik działania
algorytmu jest niezbędny, a sam wynik pobierany jest przez system (np. systemy czasu
rzeczywistego), lub algorytm gdy zostaje zakończy po określonej liczbie pokoleń (iteracji);
" obserwacja wyników algorytmu:
ć% wartość funkcji oceny osiągnęła założony poziom -  jest dobrze
Ostatnia aktualizacja: 2012-01-12 ę. Waszkiel, M. Tomera 3
Operatory genetyczne
Metody sztucznej inteligencji Algorytmy genetyczne w sterowaniu
ć% wartość funkcji oceny niewiele się zmieniła przez kilka ostatnich pokoleń -  lepiej już nie
będzie .
Rola mutacji oraz krzyżowania zostały przedstawione na rys.3.
Rys.3. Rola mutacji i krzyżowania w algorytmach genetycznych.
Istotą algorytmu genetycznego jest losowe przeszukiwanie przestrzeni możliwych rozwiązań. Jako
zaletę algorytmu genetycznego można uznać fakt, że jeżeli rozważany algorytm ma kilka rozwiązań,
to zostaną one wszystkie znalezione.
Pracując z wykorzystaniem algorytmów genetycznych należy pamiętać, że  ewolucja nigdy nie stara
się znalezć rozwiązania optymalnego. Ona głównie szerzy udoskonalenia wśród populacji. W trakcie
tego procesu, ewolucja przechodzi tajemniczą, krętą ścieżką poprzez przestrzeń poszukiwania.
Czasami ścieżka ta prowadzi do ślepego zaułka (przedwczesna zbieżność). Czasami kręci się w kółko.
Zdarza się, że ścieżka zaprowadzi do globalnego optimum - ale nie ma takiej gwarancji .
4. WYBÓR OPTYMALNEGO REGULATORA TYPU P Z WYKORZYSTANIEM
ALGORYTMU GENETYCZNEGO
Utworzony regulator jest klasycznym regulatorem liniowym P, który jest opisany zależnością (1).
u (t )=K e(t ) (1)
P
Podobnie jak w przypadku metod konwencjonalnych (np. tabelarycznej) w celu dostrojenia regulatora
konieczne jest dobranie odpowiedniej wartości wzmocnienia Kp tak, aby czas regulacji był jak
najkrótszy, a przeregulowanie jak najmniejsze. W tym celu może zostać wykorzystany algorytm
genetyczny ga_p_statek.m, który spośród możliwych wartości wzmocnień proporcjonalnych
regulatora umieszczonego w układzie sterowania statkiem (rys.4) wybierze wartość najbliższą
optymalnej.
Ostatnia aktualizacja: 2012-01-12 ę. Waszkiel, M. Tomera 4
Metody sztucznej inteligencji Algorytmy genetyczne w sterowaniu
Rys.4. Schemat blokowy układu regulatora typu P i statku.
4.1. Badania symulacyjne
Algorytm genetyczny pozwalający na dobór wzmocnienia regulatora typu P został zrealizowany jak s-
funkcja ga_p_statek.m, jak również przedstawiony poniżej.
w1 = 1;
w2 = 0.1;
tmax = 300;
% Ustawienie parametrów algorytmu genetycznego
Kp_min = 0;
Kp_max = ; %należy dokonać wyboru maksymalnego wzmocnienia według własnej
wiedzy
Kp = 0;
% Symulacja układu z regulatorem P
p_statek_name = 'p_statek_mdl';
open_system( p_statek_name)
set_param( [p_statek_name,'/P'], 'Kp', num2str(Kp))
max_gen = ; % 100  maksymalna liczba kroków ewolucji
%liczbę kroków ewolucji należy wybrać samodzielnie
size_pop = 8; % 8 - Rozmiar populacji chromosomów
% należy zmienić i zbadać wpływ na działanie
algorytmu i dobór wartości wzmocnienia
bits = [10]; % [10 14] Liczba bitów
terminate = 0.00001;
lchrom = bits;
vlb = [Kp_min];
vub = [Kp_max];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x0=[];
[fgen,lchrom] = encode(x0, vlb, vub, bits);
% wygenerowanie nowej populacji chromosomów
if size(fgen,1) fgen = [fgen; (rand(size_pop-size(fgen,1),lchrom)<0.5)];
Ostatnia aktualizacja: 2012-01-12 ę. Waszkiel, M. Tomera 5
Metody sztucznej inteligencji Algorytmy genetyczne w sterowaniu
end
new_gen = fgen;
Jcl = 0*ones(size_pop, max_gen);
Pc = 0.25; %0.25; % Prawdopodobieństwo wystąpienia krzyżowania
%należy zmienić i zbadać wpływ na zmianę działania
algorytmu
Pm = 0.01; %0.0333; % Prawdopodobieństwo wystąpienia mutacji
%należy zmienić i zbadać wpływ na zmianę działania
algorytmu
stats = [];
disp(['Numer generacji:']);
STOP_FLAG = 0;
OPT_STOP = 1;
k = 1;
while STOP_FLAG ~= 1,
disp(k);
old_gen = new_gen;
KpKd_pop = decode( new_gen, vlb, vub, bits);
for ss = 1:size_pop,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Regulator P:
Kp = KpKd_pop(ss, 1);
% Kd = KpKd_pop(ss, 2);
set_param( [p_statek_name,'/P'], 'Kp', num2str(Kp))
sim( p_statek_name, tmax)
u_tab = p_statek(:, 4)';
e_tab = p_statek(:, 5)';
[M,N] = size(e_tab);
Jcl(ss,k) = (w1*e_tab*e_tab' + w2*u_tab*u_tab')/N;
fitness(ss) = Jcl(ss, k);
end;
[Jbest(k),bestone(k)] = min(Jcl(:,k)); % Zachowaj najlepszy regulator
do wykreślenia
Kpbest(k) = KpKd_pop( bestone(k),1);
stats = [stats; min(fitness) max(fitness) mean(fitness) std(fitness)];
generation = k;
if terminate > 0,
if generation > 5,
if ( (stats(generation-5,1)-stats(generation,1))/ ...
stats(generation,1)(stats(generation,1)STOP_FLAG = 1;
end
elseif generation>1,
if ( (stats(generation-1,3)-stats(generation,3))/ ...
stats(generation,3)Ostatnia aktualizacja: 2012-01-12 ę. Waszkiel, M. Tomera 6
Metody sztucznej inteligencji Algorytmy genetyczne w sterowaniu
(stats(generation,3)STOP_FLAG = 1;
end
end
end
if STOP_FLAG,
fprintf('\n')
disp('Algorytm genetyczny jest zbieżny')
end
% Selekcja
new_gen = selection(old_gen, fitness);
% Mate
new_gen = mate(new_gen);
% Krzyżowanie
new_gen = xover(new_gen, Pc);
% Mutacja
new_gen = mutate(new_gen, Pm);
if k > max_gen,
STOP_FLAG = 1;
end;
if STOP_FLAG == 0,
k = k+1;
else
max_gen = k-1;
end
end; % max_gen
% Wygenerowanie przebiegu czasowego dla najlepszego rozwiązania
Kp = Kpbest(k);
disp(['Kp = ', num2str( Kp)]);
set_param( [p_statek_name,'/P'], 'Kp', num2str(Kp))
sim( p_statek_name, tmax)
% save_system
% close_system
t_tab = p_statek(:,1)';
r_tab = p_statek(:,2)';
y_tab = p_statek(:,3)';
u_tab = p_statek(:,4)';
e_tab = p_statek(:,5)';
figure(1)
clf
subplot(211)
plot( t_tab, y_tab, 'k-', t_tab, r_tab, 'k-.')
zoom
grid on
title('Kurs statku (ciągła) i zadany kurs statku (przerywana), deg.')
subplot(212)
plot(t_tab, u_tab, 'k-')
zoom
Ostatnia aktualizacja: 2012-01-12 ę. Waszkiel, M. Tomera 7
Metody sztucznej inteligencji Algorytmy genetyczne w sterowaniu
grid on
title('Zadany kąt wychylenia steru, wyjście z regulatora, deg.')
xlabel('Czas, sec')
%axis([0 tmax -10 10])
figure(2)
clf
plot([0:max_gen],Jbest,'k-')
zoom
grid on
title('Wskaznik jakości J_c_l dla najlepszego regulatora')
xlabel('Generacje')
figure(3)
clf
plot([0:max_gen],Kpbest,'k-')
zoom
grid on
title('Wzmocnienie K_p')
xlabel('Generacje')
W powyższym algorytmie należy samodzielnie dobrać:
" maksymalną wartość wzmocnienia;
" liczbę kroków ewolucji.
Należy również dokonać modyfikacji:
" rozmiaru populacji;
" wartości prawdopodobieństwa krzyżowania;
" wartości prawdopodobieństwa mutacji.
A następnie określić wpływ poszczególnych wartości na działanie algorytmu genetycznego. Miejsca,
w których należy dokonać modyfikacji s-funkcji zostały oznaczone jako komentarz w kolorze
czerwonym. Należy dokonać porównania jakości otrzymanego regulatora (najlepszego jaki uzyskano)
z regulatorem konwencjonalnym, którego nastawy zostały obliczone w ćwiczeniu 1.
5. WYBÓR OPTYMALNEGO REGULATORA TYPU PD Z WYKORZYSTANIEM
ALGORYTMU GENETYCZNEGO
Utworzony regulator jest klasycznym regulatorem liniowym PD, który jest opisany zależnością (2).
de(t )
u (t )=K e(t )+ K (2)
P D
dt
Podobnie jak w przypadku metod konwencjonalnych (np. tabelarycznej) w celu dostrojenia
regulatora konieczne jest dobranie odpowiedniej wartości wzmocnienia Kp oraz Kd tak, aby czas
regulacji był jak najkrótszy, a przeregulowanie jak najmniejsze. W tym celu może zostać
wykorzystany algorytm genetyczny ga_pd_statek.m, który spośród możliwych wartości wzmocnień
proporcjonalnych regulatora umieszczonego w układzie sterowania statkiem (rys.5) wybierze wartość
najbliższą optymalnej.
Ostatnia aktualizacja: 2012-01-12 ę. Waszkiel, M. Tomera 8
Metody sztucznej inteligencji Algorytmy genetyczne w sterowaniu
Rys.4. Schemat blokowy układu regulatora typu P i statku.
5.1. Badania symulacyjne
Algorytm genetyczny pozwalający na dobór wzmocnienia regulatora typu PD został zrealizowany jak
s-funkcja ga_pd_statek.m, jak również przedstawiony poniżej.
w1 = 1;
w2 = 0.1;
tmax = 200;
% Ustawienie parametrów algorytmu genetycznego
Kp_min = 0;
Kp_max = ; %należy dokonać wyboru maksymalnego wzmocnienia według własnej
wiedzy
Kd_min = 0;
Kd_max = ; %należy dokonać wyboru maksymalnego wzmocnienia według własnej
wiedzy
Kp = 0;
Kd = 0;
% Symulacja układu z regulatorem PD
pd_statek_name = 'pd_statek_mdl';
open_system( pd_statek_name)
set_param( [pd_statek_name,'/PD'], 'Kp', num2str(Kp),'Kd', num2str(Kd))
max_gen = ; % 100  maksymalna liczba kroków ewolucji
%liczbę kroków ewolucji należy wybrać samodzielnie
size_pop = 8; % 8 - Rozmiar populacji chromosomów (liczebność
%chromosomów w populacji)
% należy zmienić i zbadać wpływ na działanie
algorytmu i dobór wartości wzmocnienia
bits = [10 14]; % [10 14] Liczba bitów (długość chromosomu)
terminate = 0.00001;
lchrom = bits;
vlb = [Kp_min Kd_min];
vub = [Kp_max Kd_max];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x0=[];
Ostatnia aktualizacja: 2012-01-12 ę. Waszkiel, M. Tomera 9
Metody sztucznej inteligencji Algorytmy genetyczne w sterowaniu
[fgen,lchrom] = encode(x0, vlb, vub, bits);
% wygenerowanie nowej populacji chromosomów
if size(fgen,1) fgen = [fgen; (rand(size_pop-size(fgen,1),lchrom)<0.5)];
end
new_gen = fgen;
Jcl = 0*ones(size_pop, max_gen);
Pc = 0.25; %0.25; % Prawdopodobieństwo wystąpienia krzyżowania
%należy zmienić i zbadać wpływ na zmianę działania
algorytmu
Pm = 0.01; %0.0333; % Prawdopodobieństwo wystąpienia mutacji
%należy zmienić i zbadać wpływ na zmianę działania
algorytmu
stats = [];
disp(['Numer generacji:']);
STOP_FLAG = 0;
OPT_STOP = 1;
k = 1;
while STOP_FLAG ~= 1,
disp(k);
old_gen = new_gen;
KpKd_pop = decode( new_gen, vlb, vub, bits);
for ss = 1:size_pop,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Regulator PD:
Kp = KpKd_pop(ss, 1);
Kd = KpKd_pop(ss, 2);
set_param( [pd_statek_name,'/PD'], 'Kp', num2str(Kp),'Kd',
num2str(Kd))
sim( pd_statek_name, tmax)
u_tab = pd_statek(:, 4)';
e_tab = pd_statek(:, 5)';
Jcl(ss,k) = w1*e_tab*e_tab' + w2*u_tab*u_tab';
fitness(ss) = Jcl(ss, k);
end;
[Jbest(k),bestone(k)] = min(Jcl(:,k)); % Zachowaj najlepszy regulator
do wykreślenia
Kpbest(k) = KpKd_pop( bestone(k),1);
Kdbest(k) = KpKd_pop( bestone(k),2);
stats = [stats; min(fitness) max(fitness) mean(fitness) std(fitness)];
generation = k;
if terminate > 0,
if generation > 5,
if ( (stats(generation-5,1)-stats(generation,1))/ ...
stats(generation,1)(stats(generation,1)Ostatnia aktualizacja: 2012-01-12 ę. Waszkiel, M. Tomera 10
Metody sztucznej inteligencji Algorytmy genetyczne w sterowaniu
STOP_FLAG = 1;
end
elseif generation>1,
if ( (stats(generation-1,3)-stats(generation,3))/ ...
stats(generation,3)(stats(generation,3)STOP_FLAG = 1;
end
end
end
if STOP_FLAG,
fprintf('\n')
disp('Algorytm genetyczny jest zbieżny')
end
% Selekcja
new_gen = selection(old_gen, fitness);
% Mate
new_gen = mate(new_gen);
% Krzyżowanie
new_gen = xover(new_gen, Pc);
% Mutacja
new_gen = mutate(new_gen, Pm);
if k > max_gen,
STOP_FLAG = 1;
end;
if STOP_FLAG == 0,
k = k+1;
else
max_gen = k-1;
end
end; % max_gen
% Wygenerowanie przebiegu czasowego dla najlepszego rozwiązania
Kp = Kpbest(k);
Kd = Kdbest(k);
disp(['Kp = ', num2str( Kp)]);
disp(['Kd = ', num2str( Kd)]);
set_param( [pd_statek_name,'/PD'], 'Kp', num2str(Kp),'Kd', num2str(Kd))
sim( pd_statek_name, tmax)
% save_system
% close_system
t_tab = pd_statek(:,1)';
r_tab = pd_statek(:,2)';
y_tab = pd_statek(:,3)';
u_tab = pd_statek(:,4)';
e_tab = pd_statek(:,5)';
figure(1)
clf
subplot(211)
plot( t_tab, y_tab, 'k-', t_tab, r_tab, 'k-.')
zoom
Ostatnia aktualizacja: 2012-01-12 ę. Waszkiel, M. Tomera 11
Metody sztucznej inteligencji Algorytmy genetyczne w sterowaniu
grid on
title('Kurs statku (ciągła) i zadany kurs statku (przerywana), deg.')
subplot(212)
plot(t_tab, u_tab, 'k-')
zoom
grid on
title('Zadany kąt wychylenia steru, wyjście z regulatora, deg.')
xlabel('Czas, sec')
%axis([0 tmax -10 10])
figure(2)
clf
plot([0:max_gen],Jbest,'k-')
zoom
grid on
title('Wskaznik jakości J_c_l dla najlepszego regulatora')
xlabel('Generacje')
figure(3)
clf
plot([0:max_gen],Kpbest,'k-')
zoom
grid on
title('Wzmocnienie K_p')
xlabel('Generacje')
figure(4)
clf
plot([0:max_gen],Kdbest,'k-')
zoom
grid on
title('Wzmocnienie K_d')
xlabel('Generacje')
W powyższym algorytmie należy samodzielnie dobrać:
" maksymalną wartość wzmocnienia Kp oraz Kd;
" liczbę kroków ewolucji.
Należy również dokonać modyfikacji:
" rozmiaru populacji;
" wartości prawdopodobieństwa krzyżowania;
" wartości prawdopodobieństwa mutacji.
A następnie określić wpływ poszczególnych wartości na działanie algorytmu genetycznego. Miejsca,
w których należy dokonać modyfikacji s-funkcji zostały oznaczone jako komentarz w kolorze
czerwonym. Należy dokonać porównania jakości otrzymanego regulatora (najlepszego jaki uzyskano)
z regulatorem konwencjonalnym, którego nastawy zostały obliczone w ćwiczeniu 1.
9. OPRACOWANIE SPRAWOZDANIA
W sprawozdaniu należy opisać uruchomione i przebadane numerycznie układy sterowania
z regulatorami:
1. klasycznym P  nastawy obliczone przy wykorzystaniu algorytmu genetycznego
2. klasycznym PD  nastawy obliczone przy wykorzystaniu algorytmu genetycznego
Oraz dokonać ich porównania z regulatorami, których nastawy zostały obliczone metodą tabelaryczną.
Należy określić wpływ modyfikowanych parametrów na sposób działania regulatora i jakość
otrzymanego sterowania.
Ostatnia aktualizacja: 2012-01-12 ę. Waszkiel, M. Tomera 12
Metody sztucznej inteligencji Algorytmy genetyczne w sterowaniu
Uruchomione modele matematyczne układów regulacji z w/w regulatorami przesłać pocztą
elektroniczną na adres prowadzącego zajęcia.
LITERATURA
1. S.T. Wierzchon, Sztuczne systemy immunologiczne. Teoria i zastosowania. Akademicka
Oficyna Wydawnicza EXIT, Warszawa 2001
2. Prezentacja www.tuo.agh.edu.pl/Algorytmy_genetyczne.ppt
3. Passino K.M., Yurkovich S. (1998), Fuzzy Control, Addison Wesley Longman, Inc.
Available: www2.ece.ohio-state.osu.edu/~passino/FCbook.pdf.
Ostatnia aktualizacja: 2012-01-12 ę. Waszkiel, M. Tomera 13


Wyszukiwarka

Podobne podstrony:
Algorytmy genetyczne a logika rozmyta
Algorytmy genetyczne i procesy ewolucyjne Wykład 2
03 Implementacja komputerowa algorytmu genetycznego
Algorytm genetyczny – przykład zastosowania
Algorytmy genetyczne i procesy ewolucyjne Wykład 4
02 Podstawy matematyczne algorytmów genetycznych
Algorytmy genetyczne i procesy ewolucyjne Wykład 1
klasyczny algorytm genetyczny
Algorytmy Genetyczne
EA5 Algorytmy genetyczne
Lab5 Algorytmy genetyczne
ALGORYTMY GENETYCZNE DO MINIMALIZACJI RYZYKA ZAWODOWEGO ZWIĄZANEGO Z EKSPOZYCJA NA HAŁAS
algorytmy genetyczne i mrówkowe w transporcie
Algorytm Genetyczny wynik
algorytmy genetyczne 2
04 Niektóre zastosowania algorytmów genetycznych
Algorytmy genetyczne i procesy ewolucyjne Wykład 3

więcej podobnych podstron