) ,..., , ( x x x = x )(x f ) ,..., ,( 2 x xx = x

Transkrypt

) ,..., , ( x x x = x )(x f ) ,..., ,( 2 x xx = x
ZASTOSOWANIE ALGORYTMÓW GENETYCZNYCH DO ESTYMACJI PARAMETRÓW MODELU MATEMATYCZNEGO SILNIKA
INDUKCYJNEGO
ESTIMATION OF PARAMETERS OF THE INDUCTION MOTOR MODEL
USING GENETIC ALGORITHMS
Grzegorz Paweł Korbaś
Politechnika Opolska
Streszczenie W artykule przedstawiono analizę
możliwości
zastosowania
algorytmów
genetycznych do estymacji parametrów modelu
silnika indukcyjnego. Głównym celem pracy była
analiza efektywności różnych odmian algorytmów
genetycznych, wraz z różnymi zestawami
parametrów do estymacji parametrów. Na wstępie
pracy omówiono ideę algorytmów genetycznych
oraz
zaprezentowano
wybrane
operatory
genetyczne. W dalszej części pracy przedstawiono
wybrany model silnika indukcyjnego o dwóch
klatkach zastępczych w wirniku. Dokonano
szeregu
prób
estymacji
parametrów
przedstawionego modelu analizując efektywność
poszczególnych algorytmów genetycznych z
różnymi zestawami parametrów.
1.
WSTĘP
W diagnostyce, projektowaniu, symulacji lub
sterowaniu niezwykle istotne jest zagadnienie
estymacji parametrów modeli matematycznych.
Proces estymacji parametrów jest w zasadzie
tożsamy z poszukiwaniem takiego punktu
x min  ( x1 min , x 2 min ,..., x N min )
(1)
w N-wymiarowej przestrzeni parametrów, dla
którego pewna funkcja wielu zmiennych o
wartościach rzeczywistych (funkcja celu)
f (x) , gdzie x  ( x1 , x 2 ,..., x N )
(2)
posiada wartość minimalną. Postać funkcji celu
może być różna – zazwyczaj jest ona miarą
odchylenia wartości pomiarowych od wartości
otrzymanych (dla danego zestawu parametrów) z
modelu matematycznego.
Szybkość i dokładność estymacji zależy zatem od
używanej metody minimalizacji funkcji wielu
zmiennych. Klasyczne podejście wiąże się z
użyciem gradientowych lub bezgradientowych
metod minimalizacji. Metody te charakteryzują się
zazwyczaj
dużą
zbieżnością
dużą
oraz
dokładnością uzyskiwanych wyników, niestety w
przypadku funkcji celu o wielu minimach
lokalnych okazują się często nieefektywne.
Rozważane w tej pracy algorytmy genetyczne
stanowią alternatywne podejście oparte na
procesach występujących w naturze – na ewolucji.
Algorytmy genetyczne zazwyczaj doskonale radzą
sobie z problemem minimum lokalnych i
niejednokrotnie
charakteryzują
się
dużą
zbieżnością.
Próby estymacji parametrycznej dla wybranego
modelu silnika przy użyciu gradientowych i
bezgradientowych metod minimalizacji były już
dokonywane i zostały przedstawione w [3, 4].
W ramach tej pracy dokonywana jest analiza
przydatności algorytmów genetycznych do
estymacji parametrów modelu matematycznego
silnika indukcyjnego. Algorytmy genetyczne, z
różnymi
operatorów,
zestawami
zostały
zaimplementowane
w
środowisku
programistycznym Borland Delphi. Implementacji
dokonano tworząc klasy minimalizacji przy
wykorzystaniu
wskazówek
dotyczących
programowania obiektowego zawartych w [5]. W
pierwszej części pracy omówiona zostaje idea
algorytmów
genetycznych
i
przykładowe
operatory. Następnie wskazane zostają sposoby
zwiększenia zbieżności algorytmów genetycznych
oraz dokonywana jest analiza zbieżności
algorytmów genetycznych w zależności od
prawdopodobieństwa użycia różnych operatorów
genetycznych dla wybranych funkcji testowych. W
dalszej części pracy przedstawiony jest model
matematyczny silnika indukcyjnego o dwóch
klatkach zastępczych w wirniku w wersji
uproszczonej do równań stanu ustalonego.
Określona zostaje funkcja celu i zaprezentowane
są wyniki estymacji parametrów tego modelu przy
użyciu algorytmów genetycznych.
2. ALGORYTM GENETYCZNY I WYBRANE OPERATORY
Sposób działania algorytmów genetycznych opiera
się na procesach rządzących ewolucją. Jeśli
dostępna jest pewna populacja osobników (zbiór
możliwych rozwiązań), to w kolejnej iteracji z
istniejącej populacji losowo tworzy się nową w ten
sposób, że osobniki najlepsze mają większą szansę
pojawienia się w niej. Oczywiście, w przypadku
minimalizacji funkcji, osobnikami najlepszymi
będą te, dla których wartość funkcji celu jest
najmniejsza. Nowa populacja może różnić się
rozmiarem od starej i może zawierać kilka kopii
tego samego osobnika. W tak utworzonej nowej
populacji można użyć operatorów genetycznych.
Klasycznie używa się mutacji równomiernej i
krzyżowania prostego. Ogólnie schemat algorytmu
genetycznego można przedstawić w postaci
następującego pseudokodu (na bazie [8]).
1.
2.
3.
4.
5.
6.
7.
8.
t0
ustal populację P(t)
oceń P(t)
jeśli warunek końca jest spełniony to zakończ
tt+1
wybierz P(t) z P(t-1)
zmień P(t) za pomocą operatorów
oceń P(t) i skok do punktu 4.
Parametr t oznacza numer kolejnej iteracji.
Warunek końca może mieć różną formę. Często
koniec następuje, gdy w trakcie pewnej (wcześniej
ustalonej) liczby iteracji nie zostanie znaleziony
osobnik lepszy niż już znany. W ramach oceny
populacji liczona jest wartość funkcji celu dla
każdego osobnika i na podstawie uzyskanych
wyników wyznaczane jest prawdopodobieństwo
wejścia osobnika do kolejnej populacji. Tworzenie
nowej populacji (selekcja) może mieć różną
formę. Klasycznie szansa wejścia osobnika do
nowej populacji jest wprost proporcjonalna do
jego przystosowania i nie zakłada zachowywania
najlepszego osobnika. Oznacza to, że choć średnio
biorąc następuje poprawa to w kolejnej populacji
najlepszy osobnik może okazać się gorszy niż w
populacji wcześniejszej. Często jednak odchodzi
się od formy klasycznej zachowując w różny
sposób osobnika najlepszego. Użycie na powstałej
populacji operatorów genetycznych uzależnione
jest od prawdopodobieństwa użycia tych
operatorów, które może być stałe lub też zmieniać
się w kolejnych iteracjach. Istnieje bardzo wiele
operatorów genetycznych. W ramach tej pracy
analizowano operatory zaproponowane w [8], inne
propozycje można znaleźć w [1, 2]. W poniższym
opisie używane jest nazewnictwo przyjęte dla
algorytmów genetycznych. Osobnik oznacza w
tym przypadku wektor liczb rzeczywistych,
natomiast gen oznacza liczbę rzeczywistą – jedną
ze składowych tego wektora. Populację stanowi
zatem zbiór wektorów – potencjalnych rozwiązań
zagadnienia
minimalizacji
(estymacji).
Przykładowo populację P o liczności POP
składającą się z osobników O1, O2, ... OPOP, z
których każdy ma K genów G1, G2, ..., GK można
zapisać w postaci P=[O1, O2, ..., OPOP], gdzie Oi=
[Gi1, Gi2, ..., GiK]. Standardowo używanymi
operatorami są różne odmiany mutacji i
krzyżowania. Mutacja jest nieodzowna, by
wprowadzić do populacji osobniki o zupełnie
nowych cechach. Operator krzyżowania jest
odpowiedzialny za wymianę informacji pomiędzy
osobnikami.
Jednym z dwu klasycznych operatorów
genetycznych jest mutacja równomierna. Jeśli
osobnik jest wybrany do mutacji to spośród jego
genów wybiera się jeden, który mutuje. Mutacja
oznacza tu losowanie nowej wartości z dziedziny
tego właśnie genu. Zbliżonym operatorem jest
mutacja niejednorodna. Różni się ona tym, że
nowa losowana wartość genu wraz z kolejnymi
iteracjami ma coraz większe szanse być zbliżona
do wartości genu przed zmutowaniem. Takie
podejście umożliwia dokładniejsze dostrojenie
lokalne w końcowej fazie minimalizacji.
Odmienną propozycją mutacji jest mutacja
brzegowa, w wyniku której gen może uzyskać
jedynie graniczne wartości swej dziedziny.
Operator ten może być użyteczny w sytuacjach,
gdy poszukiwane minimum znajduje się na granicy
obszaru dozwolonego, jednak jego użycie może
spowodować szybką degenerację populacji do
osobników o tych samych wartościach genów.
Drugim klasycznym operatorem jest krzyżowanie
proste. Dla dwóch wybranych osobników
(rodziców) losowany jest indeks L genu, który
stanowi tzw. linię rozcięcia. Tworzonych jest
dwóch potomków w ten sposób, że pierwszy
potomek ma L pierwszych genów od pierwszego
rodzica a resztę od drugiego, natomiast drugi
potomek ma L pierwszych genów od drugiego
rodzica, a resztę od pierwszego. Krzyżowanie takie
nazywane jest jednopunktowym, gdyż istnieje
tylko jedna linia rozcięcia. Stosuje się również
krzyżowanie o większej liczbie linii rozcięcia.
Kolejnym
operatorem
krzyżowanie
jest
arytmetyczne, które z rodziców O1 i O2 tworzy
potomków O1’ i O2’ zgodnie z zależnościami
O1’=aO2+(1-a)O1 i O2’=aO1+(1-a)O2, gdzie a jest
liczbą losową (lub z góry ustaloną) z przedziału od
0 do 1. Następny operator, krzyżowanie
heurystyczne,
jest
operatora
przykładem
tworzącego osobnika „w obiecującym kierunku”.
Dla dwu rodziców O1 i O2 gdzie O2 jest nie gorszy
niż O1 tworzony jest tylko jeden potomek O’
zgodnie z zależnością O’=r(O2-O1)+O2, gdzie r jest
liczbą losową z przedziału od 0 do 1. Operator ten
może utworzyć osobnika z niedozwolonymi
wartościami genów, wówczas można losować inną
wartość liczby r lub uznać, że potomek nie został
utworzony. Jest to przykład operatora, który
próbuje ukierunkować poszukiwanie minimum,
nie do końca zdając się na przypadek.
3. ANALIZA
DOBORU OPERATORÓW DLA WYBRANYCH
FUNKCJI TESTOWYCH
W ramach badań testowano efektywność
algorytmów genetycznych przy zastosowaniu
niektórych ulepszeń i różnych prawdopodobieństw
użycia operatorów. Przyjęto, że w algorytmie w
rzeczywistych zastosowaniach za najbardziej
kosztowne
należy
obliczeniowo
uznać
wyznaczenie wartości funkcji celu. Zatem słuszne
wydaje się badanie zbieżności w funkcji ilości
wywołań funkcji celu, a nie iteracji.
Przeprowadzono szereg badań statystycznych dla
prostych funkcji testowych.
celu o ponad 90 %. Kolejne badania wykonywano
na
genetycznego
bazie
algorytmu
zmodyfikowanego w opisany powyżej sposób.
W dalszej części badań dokonano analizy
efektywności
genetycznego
algorytmu
w
zależności od różnych prawdopodobieństw użycia
operatorów genetycznych. Na wstępie założono
jedynie używanie mutacji równomiernej i
krzyżowania prostego. Analizowano szereg
zestawów prawdopodobieństw wykorzystania tych
parametrów dla różnych dokładności szukania
minimum funkcji (3),(4) i (5), dla różnych
rozmiarów populacji (POP) z zakresu 10-500.
Badano średnią ilość wywołań funkcji celu
konieczną do znalezienia minimum z zadaną
dokładnością.
stwierdzono,
że
Generalnie
korzystne
są
wartości
niewielkie
prawdopodobieństwa mutacji równomiernej (pM) i
krzyżowania prostego (pK). Przykładowe rezultaty
przedstawia rysunek (1).
10
y   ix i2
(3)
y  (1  x1 ) 2  100( x 2  x12 ) 2
(4)
y   i xi  2i cos( x i )  2i 
(5)
i 1
5
i 1
Funkcja (3) to zwykła forma kwadratowa dla 10
zmiennych, podczas gdy funkcja (4) jest znaną
funkcją
Rosenbrocka
dwu
zmiennych,
niejednokrotnie wykorzystywaną do testów.
Obydwie te funkcje mają jedno minimum. Funkcja
pięciu zmiennych (5) charakteryzuje się wieloma
minimami lokalnymi i jednym globalnym.
Pierwsze badanie obejmowało wymuszenie
zachowania najlepszego osobnika do kolejnej
populacji. Zauważono, że zabieg ten średnio
zwiększa zbieżność o 60 %. Stwierdzono też, że
wiele osobników przechodzi do kolejnej populacji
bez zmian i dla tych osobników nie jest potrzebne
ponowne wyznaczanie wartości funkcji celu. Na
bazie tej obserwacji dokonano modyfikacji
algorytmu, co radykalnie zmniejszyło liczbę
wywołań funkcji celu nie zmieniając oczywiście
efektywności
liczby
w
funkcji
iteracji.
Modyfikacja polegała na wprowadzeniu tablicy, za
pomocą której śledzono zmiany populacji i
stwierdzano, czy jest konieczne obliczanie
wartości funkcji celu dla danego osobnika.
Łącznie obydwa zabiegi polepszyły zbieżność
algorytmu w zależności od liczby wywołań funkcji
Rys.1. Zależność zbieżności algorytmu od
prawdopodobieństw użycia mutacji równomiernej
i krzyżowania prostego. POP=20.
Najlepsze rezultaty uzyskiwano dla (pM=0,1;
pK=0,1) oraz dla (pM=0,1; pK=0) oraz dla
zestawów bliskich podanym. Wyniki te znacząco
odbiegają od zaprezentowanych w [7], gdzie
przedstawiono analizę zbieżności w funkcji liczby
iteracji.
W dalszej części pracy rozważano wykorzystanie
pozostałych operatorów. Zauważono, że mutacja
brzegowa w większości przypadków w znaczący
sposób
pogarsza
efektywność
algorytmu
genetycznego, lecz gdy rozwiązanie leży na
granicy obszaru dozwolonego to użycie tego
operatora z niewielkim prawdopodobieństwem
może
przyspieszyć
odszukanie
minimum.
Zauważono też, że dobre rezultaty daje zastąpienie
krzyżowania
prostego
krzyżowaniem
arytmetycznym. W sytuacji użycia jedynie dwu
operatorów jednocześnie zestawienie krzyżowania
arytmetycznego z mutacją równomierną okazało
się najkorzystniejsze. Przeanalizowano zatem
prawdopodobieństwa
mutacji
użycia
równomiernej (pM) i krzyżowania arytmetycznego
(pKA). Najlepsze rezultaty uzyskano dla wartości
pM=0,2-0,5 i dla pAR=0,6-1. Przykładowe wyniki
przedstawia rysunek (2).
Rys.2. Zależność zbieżności algorytmu od
prawdopodobieństw użycia mutacji równomiernej
i krzyżowania arytmetycznego. POP=20.
W końcowej fazie tej części badań analizowano
sytuację użycia wszystkich sześciu operatorów
jednocześnie szukając najlepszego zestawienia
prawdopodobieństwa mutacji równomiernej (pM),
niejednorodnej (pMN) i brzegowej (pMB),
krzyżowania prostego (pK), arytmetycznego
(pKA) i heurystycznego (pKH). W zasadzie nie
dało się wskazać zestawów szczególnie
efektywnych. Generalnie dobrze wypadały
zestawy, w których pKA było w granicach 0,2-0,8;
pK: 0-0,2; pKH: 0,2-0,4; pM: 0,05-0,3; pMN rzędu
0,1 i pMB najlepiej równe 0. Stanowczo najgorzej
wypadały zestawy, w których było wysokie pMB
lub pM równe 0. Analizowano też wpływ
wielkości populacji na szybkość zbieżności.
Stwierdzono, że warto używać populacji niezbyt
licznych o rozmiarach rzędu 20-50 osobników.
4. BADANY
SILNIK INDUKCYJNY ORAZ JEGO MODEL
MATEMATYCZNY
Istnieją różne modele silników indukcyjnych. W
ramach pracy wykorzystany został model silnika
indukcyjnego o dwóch klatkach zastępczych
zaczerpnięty z [6], skąd pobrano również przy-
kładowe charakterystyki pomiarowe. Są to
charakterystyki statyczne I=f(s) oraz M=f(s), gdzie
I – natężenie prądu stojana, M – moment
elektromagnetyczny, s – poślizg. Dane pomiarowe
zostały przedstawione w tabeli 1 (IN i MN
oznaczają
tu
wartości
znamionowe).
Charakterystyki te dotyczą silnika SZJre-134t o
mocy
znamionowej
1000kW,
napięciu
znamionowym
(uzwojenia
stojana
6000V
połączone w gwiazdę) i prędkości obrotowej 1490
obr/min.
Tab.1.
Statyczne charakterystyki silnika SZJre-134t
M
I
s
MN
IN
1
1.3
5.43
0.9
1.31
5.32
0.8
1.34
5.27
0.7
1.35
5.22
0.6
1.37
5.1
0.5
1.39
4.98
0.4
1.4
4.8
0.3
1.43
4.64
0.2
1.45
4.4
0.15
1.48
4.25
0.1
1.73
3.95
0.09
1.8
3.85
0.08
1.97
3.75
0.07
2.09
3.63
0.06
2.2
3.48
0.05
2.34
3.25
0.04
2.37
2.95
0.03
2.26
2.55
0.02
1.96
2.05
0.01
1.34
1.35
W pełnej postaci model prezentowany jest przez
układ równań różniczkowych. W przypadku stanu
ustalonego, przy pewnych założeniach, model ten
redukuje się do zwyczajnego układu równań, z
którego łatwo wyprowadzić wzory na natężenie
prądu stojana i moment elektromagnetyczny.
M ( s)  3U s2
I (s)  U s
pRr
 0 s( A 2  B 2 )
C2  D2
A2  B2
przy czym
Rr 
R1 R2 ( R1  R2 )  ( R1 X 22  R2 X 12 ) s 2
( R1  R2 ) 2  ( X 1  X 2 ) 2 s 2
Xr 
X 1 X 2 ( X 1  X 2 ) 2 s 2  R12 X 2  R22 X 1
( R1  R2 ) 2  ( X 1  X 2 ) 2 s 2
(6)
(7)
wywołań funkcji celu dla wybranych konfiguracji
algorytmu genetycznego. Starano się przedstawić
przebiegi przeciętne dla dwu różnych rozmiarów
populacji: POP=20 oraz POP=100. Jak już
wcześniej zauważono populacje zbyt liczne
charakteryzują
się
mniejszą
zbieżnością.
Ostatecznie w wyniku wielu estymacji otrzymano
następujący zestaw parametrów rozważanego
modelu silnika : R1=0,269 , R2=6,206 ,
X1=6,360 , X2=9,183 , Xs=1,284 .
Xr
Xm
R
D r
sX m
X
E  1 s
Xm
R
A  Rs C  r E
s
B  X s  X r E  Rs D
C  1
gdzie: Us – wartość skuteczna fazowego napięcia
zasilania, p – liczba par biegunów, 0 – pulsacja
napięcia zasilania, R1, R2, Rs – rezystancje klatek
wirnika i uzwojenia stojana, X1, X2 – reaktancje
synchroniczne klatek wirnika, Xm – reaktancja
magnesowania, Xs – reaktancja stojana.
W
rozważanym
przypadku
nieznanymi
parametrami były wielkości R1, R2, X1, X2 oraz Xs,
natomiast pozostałe wartości były znane dzięki
dostępnej informacji albo pomiarom.
5.
Rys.3. Przykładowe zależności minimalnej
wartości funkcji celu od liczby jej wywołań.
ESTYMACJA PARAMETRÓW MODELU SILNIKA
Dokonano szeregu prób estymacji szeregowej
parametrów R1, R2, X1, X2 oraz Xs modelu
matematycznego silnika opisanego równaniami (6)
i (7). Minimalizowana funkcja celu miała postać
sumy kwadratów odchyleń wartości pomiarowych
od wartości obliczanych z równań (6), (7) dla
danego punktu z przeszukiwanej przestrzeni
parametrów.
Na rysunkach 4 i 5 przedstawiono zestawienie
charakterystyk otrzymanych z najlepszego z
wyestymowanych zestawów parametrów z danymi
pomiarowymi. Można zauważyć, że w założonych
granicach możliwe było odszukanie zestawów
parametrów, które doskonale oddają zarówno
charakterystykę prądową jak i charakterystykę
momentu elektromagnetycznego.
f (x )   I p ( s )  I ( s , x) 2 
 M
s
p
( s )  M ( s, x) 2
(8)
s
gdzie x – wektor parametrów; s – poślizg; Ip, Mp –
unormowane pomiarowe wartości natężenia prądu
stojana i momentu elektromagnetycznego; I, M –
unormowane wartości natężenia prądu stojana i
momentu elektromagnetycznego otrzymane z
użytego modelu silnika. Zamiast normowania
wartości natężenia prądu stojana i momentu
elektromagnetycznego
można
dokonać
modyfikacji funkcji celu wprowadzając przed
poszczególne sumy współczynniki wagowe. W
ramach pracy próby takie były dokonywane.
Otrzymane
rezultaty
pokrywały
się
z
uzyskiwanymi dla funkcji celu (8).
Założono że parametry silnika mogą przybierać
wartości w granicach 0,01-10 Na rysunku 3
przedstawiono przykładowe zależności wartości
funkcji celu dla najlepszego osobnika od liczby
Rys.4. Zestawienie danych pomiarowych i
otrzymanych z wyestymowanych parametrów dla
momentu elektromagnetycznego.
4.
5.
Rys.5. Zestawienie danych pomiarowych i
otrzymanych z wyestymowanych parametrów dla
natężenia prądu stojana.
6.
6.
PODSUMOWANIE
W pracy pokazano, że algorytmy genetyczne są
przydatnym narzędziem do estymacji parametrów
modelu matematycznego silnika indukcyjnego.
Estymacja parametrów rozważanego modelu (6),
(7) za pomocą metod gradientowych i
bezgradientowych
przedstawiona
w
[3,4]
wykazywała
się
niejednokrotnie
większą
zbieżnością ale też napotykała na istotny problem
„wpadania” w minima lokalne. Algorytmy
genetyczne skutecznie rozwiązują problem
optymalizacji globalnej, ale ich słabą stroną jest
to, iż szybkość dostrojenia lokalnego opiera się na
prawdopodobieństwie. Istnieje możliwość, że
pojedyncza estymacja może trwać bardzo długo
(sytuacje takie sporadycznie miały miejsce w
ramach tej pracy). Obiecujące zatem wydają się
próby poszukiwania algorytmu łączącego w sobie
silne strony algorytmów genetycznych i
gradientowych (bezgradientowych).
Abstract
The paper presents the analysis of usefulness of
genetic algorithms in the estimation of parameters
of the induction motor model. The chosen methods
have been implemented in Borland’s Delphi. Statistical studies of genetic operators for chosen testing functions were done. In the paper the advantages as well as the problems of using genetic algorithms were presented.
LITERATURA
1. J. Arabas, J. Tenniel: Wykłady z algorytmów
ewolucyjnych, WNT, Warszawa 2001
2. D.E. Goldberg, K. Grygiel: Algorytmy
genetyczne i ich zastosowania, WNT,
Warszawa 1995
3. G.P. Korbaś: Minimalizacja funkcji wielu
zmiennych w języku C++ przy użyciu
7.
8.
biblioteki obiektowej TMINUIT – praca
dyplomowa, Politechnika Opolska, Opole
2001
G.P. Korbaś, K. Macek-Kamińska: Badanie
przydatności wybranych gradientowych i
bezgradientowych metod minimalizacji do
wyznaczania
parametrów
modelu
matematycznego
silnika
indukcyjnego,
XXXIX Seminarium Maszyn Elektrycznych,
Gdańsk-Jurata 2003
K. Macek-Kamińska, P. Wach, M. Kamiński:
Object oriented programming in estimation of
the parameters of the non-linear dynamic system, 15th Interational Conference on Electrical
Machines, ICEM 2002
K. Macek-Kamińska: Estymacja parametrów
modeli
silników
matematycznych
indukcyjnych
i
dwuklatkowych
głębokożłobkowych, WSI, Opole 1992
M. Marcinkowska: Dobór operatorów operacji
genetycznych i ich wartości a zbieżność
algorytmu
genetycznego,
Warsztaty
Algorytmów Genetycznych, Bielsko-Biała –
Szyndzielnia, kwiecień 2002
Z. Michalewicz: Algorytmy genetyczne +
struktury danych = programy ewolucyjne,
WNT, Warszawa 1996
Adres służbowy autora:
mgr inż. Grzegorz Paweł Korbaś
Politechnika Opolska
Wydział Elektrotechniki i Automatyki
Katedra Automatyzacji i Diagnostyki
Układów Elektromechanicznych
ul. Luboszycka 7, 45-036 Opole
tel. (077) 45-38-447
fax. (077) 45-38-447 w. 139
e-mail: [email protected]

Podobne dokumenty