Dinamikus rendszerek identifikációja genetikus programozással Madár János, Abonyi János, Szeifert Ferenc
Veszprémi Egyetem, Folyamatmérnöki Tanszék www.fmt.vein.hu/softcomp,
[email protected] Kulcsszavak: Struktúra identifikáció, genetikus programozás, bemenet-kimenet modellek, OLS Identification of dynamic systems by genetic programming Abstract The genetic programming (GP) is an automatic method for identifying programs and complex structures. The GP supports the modeling of dynamic systems and selecting the structures of models. In this work, we present identification of structures of models which are linear in parameters. In practice, due to measurement noise, the overtraining and the demand of transparent modeling the GP often does not yields satisfying models. To handle this problem we incorporate the orthogonal least squares method into the GP, which yields better models. The usefulness of the GP is demonstrated by a simulation example where the input-output model of a polymerization reactor is identified. Kivonat A genetikus programozás (GP) alkalmas programok és egyéb komplex struktúrák automatikus identifikációjára. A GP a dinamikus rendszerek modellezésében a modell struktúra kiválasztásában segít. Ebben a cikkben a paramétereiben lineáris modellek struktúrájának GP-al történő identifikációját mutatjuk be. A gyakorlatban a zajos mérési adatok, a modell átláthatóság követelménye és a túlparaméterezés problémája miatt a szokásos algoritmus gyakran szolgáltat nem megfelelő modelleket. Ezért, ahogy ebben a cikkben bemutatjuk, ha bevezetjük az ortogonális legkisebb négyzetek módszerét a GP-ba, akkor robosztusabb és jobb modelleket kapunk. A GP hatékonyságát egy szimulációs példán és egy polimerizációs reaktor bemenet-kimenet modelljén és modellrendűségének meghatározásán keresztül mutatjuk be.
1. Bevezetés Egy rendszer identifikációja két fő lépésből áll: a modell struktúrájának a meghatározásából, majd a modellben szereplő paraméterek identifikációjából. A paraméterek identifikációjának módja függ a választott modellstruktúrától, így a különböző modellfajtákhoz elég sok hatékony paraméter identifikáló módszert
1
fejlesztettek ki az évek során. A modellstruktúra meghatározását azonban az esetek többségében az ember végzi el. A mérési adatokon alapuló modell struktúra identifikáció előnye a szokásos a priori modell struktúra felíráshoz képest az, hogy a fehér doboz modellezéshez a rendszer pontos elméleti ismeretére van szükség. Emiatt a fehér-doboz modellezés hosszadalmasabb és körülményesebb lehet a fekete-doboz modellezésnél, és ha nem minden jelenség ismert illetve formalizálható pontosan, akkor akár elvi hibákat is tartalmazhat [1]. Ez a vegyészmérnöki gyakorlatban felmerülő modellezési problémákra különösen jellemző, mert a modellek megalkotása gyakran a modellezendő rendszer mély ismeretét igényli. A genetikus programozás egy olyan eljárás, amely segítségével a mérési adatokból automatikusan lehet modell struktúrát generálni. A genetikus programozásról kitűnő történeti áttekintést nyújt [2], a genetikus programozást használták például kvantumszámítógépek algoritmusainak fejlesztésére, elektronikus áramkörök tervezésére. A GP többféle struktúra identifikációra használható: • Kinetikai rendűség meghatározása [3] • Stacioner modellek identifikációja [1] • Differenciálegyenletek identifikálása [4] Mi ebben a cikkben a GP-t paramétereiben lineáris dinamikus modellek struktúrájának a meghatározására használjuk. Mivel a gyakorlatban a mért adatok zajosak így a túlparaméterezés veszélye fennáll, aminek eredményeképpen a kapott modellben megjelenhetnek felesleges tagok. Bemutatjuk, hogy az ortogonális legkisebb négyzetek módszere (OLS) GP-ba történő bevezetésével már a GP alatt is eltávolíthatjuk ezeket a felesleges tagokat. A GP hatékonyságát szimulációs példákon keresztül mutatjuk be, amelyekben bemenet-kimenet modelleket identifikálunk, és modellrendűség meghatározásárát végezzük el.
2. Genetikus Programozás A genetikus programozás (GP) a genetikus algoritmus (GA) egy fajtája [5]. A GA egy olyan sztochasztikus optimalizáló algoritmus, amely egyszerre sok lehetséges
(potenciális) megoldást kezel. A Darwini evolúciós elmélet mintájára ezeket a potenciális megoldásokat, mint egyedeket fogjuk fel, amik közösen egy populációt alkotnak. Mindegyik egyedet egy kromoszómával reprezentálunk, ami egy vagy több génből áll. A GA-ban a kromoszóma nem más, mint a potenciális megoldás kódolva valamilyen formában. A populáció egyedei rendelkeznek ún. életképességi értékkel, ami azt határozza meg, hogy az adott egyed mennyire sikeres, vagyis az optimalizációs probléma szempontjából mennyire jó. A következő generációt a régi generáció egyedeiből állítjuk elő, követve a kiválasztódás elvét, vagyis a sikeresebb egyedek nagyobb valószínűséggel tudják tovább örökíteni a génjeiket. A GA-ban az új egyedeket a szelekció alapján rekombinációval és mutációval állítják elő.
1. táblázat: Fa struktúrában található elemek Terminális elemek Nem terminális elemek
Változók: x1, x2, … Paraméterek: p1, p2, … Operátorok: +,–,*,… Függvények: *log(), *exp(),…
2.2. Genetikus operátorok A GP-ban három genetikus operátor van: a szelekció, a rekombináció és a mutáció. Az algoritmus folyamatábrája a 2. ábrán látható. Kezdeti populáció generálása
Paraméterek optimálása
Kiértékelés Életképességi érték számítása
Szelekció
2.1. A modell kódolása A GP tulajdonképpen egy szimbolikus optimalizáló algoritmus. Míg a klasszikus optimalizáló algoritmusok számokkal reprezentálják az egyes megoldásokat (például egy többdimenziós vektorral), addig a szimbolikus algoritmusokban az egyes megoldásokat szimbólumok valamilyen struktúrájával reprezentálják. Az egyik legelterjedtebb módszer a fa struktúra használata. Példaként az 1. ábra mutatja az y = x1 − ( p 2 + x 2 ) / p1
Rekombináció
Kilépési feltétel?
nem
igen Vége
2. ábra: A GP folyamatábrája
–
A GP legelső lépése a kezdeti populáció előállítása. Ez legtöbbször véletlen kromoszómák előállítását jelenti, ugyanis ez teszi lehetővé a kezdeti populáció diverzitását, azaz azt, hogy a populáció sokféle potenciális megoldást tartalmazhasson. A következő lépés az aktuális populáció egyedeinek a kiértékelése, vagyis az életképességi értékek megállapítása. Ennek menete és módja jelentősen függ magától a problémától. Általában ez a feladat az optimalizálandó célfüggvény kiértékelését jelenti. A szelekció során véletlenszerűen kiválasztjuk a következő generáció egyedeinek szülőpárjait. A kiválasztásra többféle stratégiát dolgoztak ki, és igazából nem egyértelmű, hogy melyik a legjobb. A leginkább elterjedt szelekciós stratégia az életképességi értéken alapuló rulettkerék szelekció [1], ezért mi is ezt választottuk. Ennek a szelekciós stratégiának a lényege az, hogy egy egyed kiválasztásának a valószínűsége arányos annak életképességi értékével: f (1) p(szelekció)i = i ∑ fi
/ P1
+ P2
Mutáció
Új populáció
egyenletet fa struktúrában ábrázolva.
X1
Direkt reprodukció
X2
1. ábra: Egy egyenlet bináris fa struktúrában ábrázolva
Fa struktúrával nemcsak egyenleteket, hanem egyenletrendszereket vagy moduláris blokkokból összetett modelleket is reprezentálhatunk. Mi ebben a cikkben a szokásos bináris fa reprezentációt választottuk az egyenletek kódolására. A bináris fa olyan fa struktúra, amelyben minden csomópontnak két alága van. Kétféle eleme fordul elő egy bináris fában: a terminális és a nem terminális. A terminális olyan elem, aminek nincsen alága, vagyis amely lezárja a fát. A terminális elemekben mindig változók vagy paraméterek vannak, míg a nem terminális elemekben mindig operátorok és függvények vannak (ld. az 1. táblázat).
2
ahol a fi az i-ik egyed életképességi értéke, a p(szelekció)i pedig az i-ik egyed kiválasztási valószínűsége. Amikor egy egyedet kiválasztunk a reprodukcióra, akkor három fajta genetikus reprodukciós műveletet alkalmazhatunk: a direkt reprodukciót, a mutációt és a rekombinációt. A mutáció valószínűsége pm a rekombináció valószínűsége pc, a direkt reprodukció valószínűsége 1-pc-pm. Ez a két valószínűség a GP algoritmus paramétere. A direkt reprodukció a kiválasztott egyedet minden változtatás nélkül átmásolja a következő generációba. A mutáció során a kiválasztott egyeden egy véletlenszerűen megváltoztatunk egy elemet a fában (ha több fát tartalmaz a kromoszóma, akkor csak egy véletlenszerűen kiválasztott fát mutálunk). Amikor egy fában megváltoztatunk egy elemet, akkor akár a fa struktúrája is megváltozhat, ha egy nem terminális elemet terminális elemmel cserélünk ki vagy fordítva. Ilyenkor ügyelni kell arra, hogy jó fát kapjunk vissza, aminek az első feltétele az, hogy a legalsó még engedélyezett szinten csak terminális elemre cserélhetjük ki a mutálandó elemet. A másik feltétele az, hogy a még ’halott levek’ se legyenek üresek a bináris fákban, így mikor azok a mutáció során ’felélednek’ nem fog hibás struktúrájú fa létrejönni. (Ez a probléma megoldható úgy is, hogy egy véletlen fát generálunk és azt illesztjük be a mutálandó fába.) A rekombinációhoz a kiválasztott egyedhez még egy egyedet kell kiválasztani (ugyanazt a szelekciós stratégiát használva). Ezután a két fát úgy kombináljuk, hogy mindkét fában kiválasztunk egy pontot, majd az alatti fa részeket kicseréljük, így két új egyedet hozva létre. A keresztezési pontok kiválasztását kétféle módon végezhetjük el: vagy ugyanazon a véletlenszerűen kiválasztott helyen keresztezzük a két fát (egypontos rekombináció); vagy a két fában két különböző helyet választunk ki véletlenszerűen, és úgy végezzük el a rekombinációt (kétpontos rekombináció). Mielőtt az új generáció egyedeit előállítjuk, azoknak „helyet kell csinálni”, vagyis el kell dönteni, hogy a régi populációból mennyi egyed „haljon meg”. A legegyszerűbb módszer, ha a teljes populációt lecseréljük, de ennek az a hátránya, hogy a legjobb egyedek eltűnhetnek. Ezért általában az a szokás, hogy a legjobb egyedeket meghagyják a populációban. A Pgap paraméter (generációs különbség) adja meg, hogy a populáció mekkora hányada „haljon meg”. Ha például a Pgap=0.9, akkor a populáció egyedei közül a legjobb 10%-ot hagyjuk meg.
Az életképességi érték függvénye általában a mért és a jósolt adatok közötti hibán (legtöbbször a négyzetes hiba összegen) alapul. Azonban a szimbolikus regresszió esetén a négyzetes hiba helyett inkább érdemes a két adatsor közötti korrelációt tekinteni, ahogyan [6] ajánlja. Így ebben a cikkben az életképességi érték számítására a korrelációs koefficiens négyzetét használtuk (A korrelációs koefficiens abszolút értéke 0 és 1 között változik, minél közelebb van az 1-hez annál nagyobb a korreláció). Egy modell megítélésekor nemcsak az számít, hogy mennyire jól működik a modell, hanem az is számít, hogy minél egyszerűbb, áttekinthetőbb legyen. Erre azért is szükség van, mert a bonyolult modellek esetén fennáll a veszélye a túlparaméterezésnek. Ezért ahogyan [1] ajánlja bevezettük a büntetőfüggvény használatát az életképességi érték számításába: ri (2) fi = 1 + exp(a1 (L1 − a2 )) ahol fi az életképességi érték, ri a számított korrelációs koefficiens, Li a fa-struktúra mérete (leveleinek a száma), a1 és a2 a büntető függvény két paramétere.
3. Modellek identifikációja GP-al Általában a modellek egyenletekből állnak, és ezek az egyenletek paramétereket/konstansokat és változókat tartalmaznak. Mikor a GP-al előállítunk egy egyenletet, akkor az abban található paramétereket optimalizálni kell, mert még egy struktúrájában tökéletes egyenlet is teljesen rossz modellt szolgáltat, ha a benne szereplő paraméterek hibásak. Mivel általában a GP által előállított modellek a paraméterire nézve (is) nemlineárisak, így nemlineáris optimalizáló algoritmust kell használni. Ez azt jelenti, hogy minden egyes új egyed kiértékelésekor el kell végezni egy nemlineáris optimálást, aminek köszönhetően a GP nagyon számításigényes. 3.1. Paramétereiben lineáris modellek GP-ban A nemlineáris optimálási feladat elkerülhető, ha olyan modelleket használunk, amely modellek a paramétereikre nézve lineárisak, vagyis a következő formában írhatóak fel: m
yˆ (k ) = ∑ ai Fi ( x1 (k ),..., x n (k ))
(3)
i =1
ahol Fi függvények, ai a paraméterek, yˆ (k ) a modell kimenete a k-ik időpontban, és x(k) a modell bemenete a k-ik időpontban. A modell bemenetei vektora (a felhasználható adatok vektora) a k-ik időpontban x(k) = (x1(k),…, xn(k)). A mért kimenetek alkotják a kimeneti vektort: y = (y(1),…,y(N))T ahol N az adatpontok száma. A paraméterek identifikálására így használható a lineáris
2.3. Életképességi érték kiszámítása Az életképességi értékkel a GP által előállított struktúrákat értékeljük az adott probléma szempontjából.
3
legkisebb négyzetek módszere: a cél mért kimenet és a számolt kimenet közötti különbség négyzetösszegének a csökkentése, vagyis a N
m
megoldást. Az OLS módszerének a lényege az, hogy kiszámítjuk a (3) egyenletben szereplő Fi egyenletek hibacsökkentő hozzájárulását, vagyis azt, hogy mekkora részben járulnak hozzá a számolt kimenet és a mért adat közötti hiba csökkentéséhez. Az OLS a legkisebb négyzetek módszeréből indul ki. A kimenet felírható az (7) y = F ⋅a + e
χ 2 = ∑ y(k ) − ∑ a i Fi (x(k ))
(4) i =1 összeg csökkentése az a = (a1,...,am) paramétervektor optimálásával. A paramétervektort ekkor a szokásos: k =1
(
a = FT F
)
−1
FT y
(5)
formában, ahol e a hibavektor. Az OLS transzformálja az F mátrix oszlopvektorait ortogonális bázisvektorokká a (8) F =W ⋅ A alapján, ahol W az ortogonális mátrix, amelyre W T W = I egységmátrix, és A felső háromszögmátrix egység diagonális elemekkel. A (7) egyenletbe behelyettesítve a (4)-t y = W ⋅ A ⋅ a + e = W ⋅ g ⋅ e , ahol
összefüggéssel határozhatjuk meg, ahol F mátrix:
F1 (x(1)) L Fm (x(1)) (6) M O M F = F (x(N )) L F ( x(N )) m 1 Tehát GP során a fa struktúrákban nem szerepelnek paraméterek, azokat mi illesztjük hozzá az egyenlet tagjaihoz a (3) egyenlet szerint. Az Fi egyenletek egy fastruktúrában vannak, és úgy kapjuk meg őket, hogy a fát szétbontjuk a gyökérből kiindulva az összeadások mentén, erre a 3. ábrán látható példa.
g = A ⋅ a . Ha wi jelöli a W mátrix i-ik oszlopvektorát és gi a hozzá tartozó elemét az OLS megoldásvektornak a kimenet varianciája yTy/N kifejezhető felhasználva, hogy m
y T y = ∑ g i2 wiT wi + e T e
(9)
i =1
3.2. Az OLS módszer alkalmazása A GP futása során a generációszám növekedésével a modellek kimenetei a célfüggvény szerint egyre jobban megközelítik a mért adatokat. Sajnos a gyakorlatban a mért adatok mérési zajokat is tartalmaznak így a tökéletes illeszkedés nem lehetséges, sőt a túlzottan jó illeszkedés a túlparaméterezés veszélyével jár, és megjelenhetnek az egyenletekben felesleges, komplex tagok, amelyekre a helyes modellben nem lenne szükség. Az értékelő függvénybe bevezetett büntetőfüggvény részben tud segíteni ezen a problémán, mert a feleslegesen nagy fastruktúrák életképességi értékeit csökkenti. De a büntető függvény nem képes hatékony megoldást kínálni erre a problémára. Ennek az egyik oka az, hogy ha az ember nem tudja előre a végeredményt (márpedig a gyakorlatban nem tudja), akkor igen nehéz jól beállítani a büntetőfüggvény paramétereit. Ha túl nagy a súlya a büntetőfüggvénynek, akkor a modellek túlegyszerűsödnek és értékes tagok vesznek el; ha meg túl kicsi, akkor alig lesz valami hatása. De ha sikerül is jól beállítani a büntetőfüggvény paramétereit, önmagában akkor se tudja hatékonyan megoldani a problémát. Például egy olyan fa, ami struktúrájában teljesen jó csak tartalmaz egy-két felesleges tagot, a büntetőfüggvény következtében rosszabb életképességi értékkel fog rendelkezni, mint egy majdnem jó struktúrájú fa, ami viszont mentes ezektől a felesleges tagoktól. Látható, hogy a hatékony megoldás egy olyan algoritmus lenne, amely képes arra, hogy már a GP futása közben kiszűrje a fákból ezeket a felesleges tagokat. A paramétereiben lineáris modellek esetén erre az ortogonális legkisebb négyzetek (OLS) módszere kínál
Ebből a hibacsökkentés értéke:
[err ]i =
g i2 wiT wi yT y
(10)
ahol [err]i jelöli az Fi hibacsökkentő hozzájárulását. Azokat az Fi függvényeket, amelyeknek a hozzájárulása túl kicsi, kitöröljük a fából. Az életképességi érték kiszámítása csak ezután történik meg az új fát használva. A 3. ábrán látható erre egy példa: az eredeti fa tartalmazott három függvényt: F1, F2, F3, ezeket az OLS alapján sorba rendeztük és eldöntöttük, hogy az F1 függvényt kitöröljük a fából, így kaptuk az ábra jobb oldalán látható egyszerűbb fát. +
+
* x3
+ x1 F1
x2
F2
x2
*
F3
x2
x1
x2
*
+
x2
x1 F1
F2
3. ábra: A fa egy alágának kivágása az OLS-t alkalmazva
4. Alkalmazási példák Ebben a fejezetben szimulációs modellek alapján mutatjuk be az GP használhatóságát a modell struktúrájának a meghatározásában. A GP paraméterei mindegyik példában 2. táblázatban található értékek voltak.
4
4.2. Polimerizációs reaktor A következő esettanulmány egy folyamatosan működő polimerizációs reaktor modelljét mutatja be. A modell a metil-metakrilát gyökös polimerizációjára vonatkozik, melyben azo-bisz(izobutiro-nitril)-t használunk iníciátorként és toluolt oldószerként. További információk: [7]-ban találhatók. Feltételezzük, hogy a reakció tökéletesen kevert üstben zajlik és még néhány további egyszerűsítést téve a következő matematikai modell kapjuk:
2. táblázat: A GP paraméterei Populáció mérete Generált egyedek maximális száma Generációs különbség Rekombináció módja Rekombinációs valószínűség Mutációs valószínűség Elemtípus-váltás valószínűsége mutáció során (terminális - nem terminális)
50 2500 0.7 kétpontos 0.5 0.5 0.25
4.1. Nemlineáris bemenet-kimenet modell Az első példában egy egyszerű nemlineáris bemenetkimenet modell struktúráját határoztuk meg GP-t használva. A modell a következő: 2 y (k ) = 0.8u (k − 1) + 1.2 y (k − 1) − 0.9 y (k − 2) − 0.2 (11)
x&1 = 10(6 − x1 ) − 2.4568x1 x 2
(12)
x& 2 = 80u − 10.1022 x 2
(13)
x& 3 = 0.0024121x1 x 2 + 0.112191x 2 − 10 x3
(14)
x& 4 = 245.978 x1 x 2 − 10 x 4
(15)
A mérési adatsort szimulációval állítottuk elő és a kimenethez 4%-os relatív nagyságú normál eloszlású zajt adtunk, az adatsor a 4. ábrán látható:
y=
2 0
0
20
40
60
80
(16)
A dimenziómentes x1 állapotváltozó utal a monomer koncentrációjára, x2 az iníciátor koncentrációjára és x4/x3 az átlagos molekulasúlyra. Az u bemenet az iníciátor dimenziómentes térfogatárama. A következő példákban az u értéke 0.007 és 0.0015 között változik és mintavételezési ideje 0.2. Ilyen bemenet esetén az y kimenet 26000 és 34000 közötti értékeket vesz fel. A [8] szerint a modell jól felírható a következő formában: (17) y (t ) = G[ y (t − 0.2), u (t − 0.2), u (t − 0.4)] ,
4
-2
x4 x3
100
mivel a MARS modellezési technikát alkalmazva a jövőbeli kimenet pontosan jósolható belőle. Egy kérdés természetesen adódik ebből az eredményből: hogyan lehet az, hogy a regresszor vektor kisebb, mint a rendszer állapotainak a száma? Ennek magyarázata az lehet, hogy az állapotváltozók száma csak elégséges, de nem szükséges feltételt ad a regresszor vektor dimenziójára vonatkozóan. Ebben a konkrét példában a valós ok az, hogy a rendszer állapotváltozója közül kettőt nem megfigyelhető. Másrészt valószínű, hogy a folyamat alulmintavételezett, vagyis a mintavételezési idő túl nagy. Ezt néhány szimulációs vizsgálatunk is igazolta. Az adatsort a (12)-(16) differenciálegyenletrendszerrel megadott modellből szimulációval állítottuk elő, és az első példához hasonló módon identifikáltunk egy bemenet-kimenet modellt GP-al. Mivel a GP sztochasztikus eljárás, így a végeredmény se lesz minden futatás végén ugyanaz, itt látható két jellegzetes eredmény:
4. ábra: Adatsor a 4.1. példához A pontozott vonal a bemenet, a folytonos a kimenet
Az adatsor alapján a GP-át használva identifikáltuk a bemenet-kimenet modell egyenletet, úgy hogy az Fi függvények változói az u(k-1), u(k-2), y(k-1), y(k-2) voltak (pontosabban ezek közül választhatott a GP algoritmus a fastruktúrák generálása, mutálása során). Az OLS-t úgy alkalmaztuk a példában, hogy maximum öt tagot engedélyeztünk egy modellben (a bias-t természetesen nem beleértve). Ha ennél több volt az egyenletben, akkor az OLS alapján sorba rendeztük a tagokat és a legkisebb hibacsökkentési értékkel rendelkezőket kitöröltük a fából. Így használva a GP-t, az képes volt struktúrájában pontosan meghatározni a bemenet-kimenet modellt. A végeredmény minden futatás végén a következő formájú volt: y (k ) = −0.8903 y (k − 2 ) + 1.175 y (k − 1) + (8)
+ 0.8155u (k − 1)u (k − 1) − 0.2047 Az egyenletben szereplő paraméterek azért nem pontosak, mert az adatsor zajos volt. De az látható, hogy a bemenet-kimenet modell struktúrája jó.
y (k ) = 385.4 y (k − 1)u (k − 1)u (k − 2) + − 5.077 y (k − 1) u (k − 1) + 0.7276 y (k − 1) +
− 313397u (k − 2 ) + 25848, és
5
(18)
y (k ) = −0.01568 y (k − 1) y (k − 1)u (k − 1) +
− 6.404 y (k − 1)u (k − 2) + 1.620 y (k − 1) + 9525
(19)
Irodalom [1] McKay B., Willis M., Barton G., “Steady-state modelling of chemical process systems using genetic programming”, Computers chem. Engng, 21(9), 981-996 (1997)
Ahogyan a példákon is látszik az eredményül kapott bemenet-kimenet modellek rendűsége megegyezik azzal amit a (17) alapján vártunk. Tehát a genetikus programozás egy hatékony eszköz a dinamikus rendszerek bemenet-kimenet modellek rendűségének meghatározására. Sőt, az eredményül kapott modellekből az is látható, hogy hasonlóan a folyamatot leíró differenciálegyenletekhez a modellben megjelentek gyökös összefüggések is.
[2] Koza J. R., Keane M. A., Yu J., Bennett F. H., Mydlowec W., “Automatic creation of human-competitive programs and controllers by means of genetic programming”, Genetic Programming and Evolable Machines, 1, 121-164 (2000) [3] Cao H., Yu J., Kang L., Chen Y., Chen. Y., “The kinetic evolutionary modeling of complex systems of chemical reactions”, Computers & Chemistry, 23, 143-151 (1999)
5. Összefoglalás A genetikus programozás egy szimbolikus regressziós módszer, amely alkalmas modell struktúrák identifikálására. A cikkben bemutattuk, hogy hogyan lehet a GP-al dinamikus rendszerek bemenet-kimenet modelljét meghatározni és az ortogonális legkisebb négyzete módszert alkalmazni paramétereire lineáris modellek esetén. Egy folytonos polimerizációs rekator példáján keresztül bemutattuk, hogy a GP alkalmas a modell rendűségének a meghatározására.
[4] Sakamoto E., Iba H., “Inferring a system of differential equations for gene regulatory network by using genetic programming”, Inferring a system of differential equations for gene regulatory network by using genetic programming, 720726, (2001) [5] Alvarez L. F., Toropov V. V., Hughes D. C., Ashour A. F., “Approximation model building using genetic programming methodology: applications”, Second ISSMO/AIAA Internet Conference on Approximations and Fast Reanalysis in Engineering Optimization, (2000) [6] South, M. C., “The application of genetic algorithms to rule finding in data analysis” Ph.D. Theses, Dept. of Chemical and Process Eng., The University of Newcastle upon Tyne, UK (1994)
Köszönetnyilvánítás A szerzők ezúton szeretnék kifejezni köszönetüket a Vegyészmérnöki Intézet Koordinációs Kutatási Központjának (KKK-I-7 projekt) az Oktatási Minisztériumnak (FKFP-0073/2001), és az OTKA-nak (No. T037600) a támogatásért. Abonyi János munkáját a Magyar Tudományos Akadémia Bolyai János Kutatói Ösztöndíja is támogatta
[7] Doyle F. J., Ogunnaike B. A., Pearson R. K., “Nonlinear model-based control using second-order Volterra models” Automatica, (1995) [8] Rhodes C. , Morari M., “Determining the model order of nonlinear input/output systems”, AIChE Journal, (1998)
6