riešenie praktických problémov pomocou · bt 1 2 3 n bg 1. 2 0. 9 0. 1 n ic 1 1 2 4 2 m oc 3 5 4...

74
Riešenie praktických problémov pomocou bio-inšpirovaných výpočtových metód (BIOM) v MATLABe Ivan Sekaj Fakulta elektrotechniky a informatiky, Slovenská technická univerzita v Bratislave E-mail: [email protected]

Upload: others

Post on 20-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Riešenie praktických problémov pomocou bio-inšpirovaných výpočtových metód

(BIOM) v MATLABe

Ivan Sekaj

Fakulta elektrotechniky a informatiky, Slovenská technická univerzita v Bratislave

E-mail: [email protected]

Page 2: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Aké typy úloh vieme riešiť pomocou BIOM?

• optimalizácia

(minimalizácia / maximalizácia) • hľadanie riešení - prehľadávanie

priestoru potenciálnych riešení

2

Page 3: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Maximalizácia • zisk • výkon • efektivita • ...

Mimimalizácia • spotreba, energia • čas • náklady • chyba • odchýlka od požadovaného stavu ...

3

Page 4: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

G50

Optimalizačná úloha sa dá transformovať na minimalizáciu/maximalizáciu

funkcie n-premenných X* = [x1,x2,…xn] = ? ; F(X*) = min(F(X)); (resp. max)

účelová funkcia, kriteriálna funkcia, „fitness“ 4

Page 5: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

G50

Lokálne maximum

Globálne maximum

Optimalizačná úloha

5

Page 6: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Náš toolbox (genetic toolbox, Matlab) je minimalizačný. Lepšie riešenia sú tie, ktoré dosahujú nižšiu hodnoty účelovej funkcie. Prevedenie maximalizačnej úlohy na minimalizačnú:

xopt=max(F(x)) → xopt=min(-F(x))

6

Page 7: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Klasifikácia optimalizačných metód

- exaktné (analytické)

- numerické (približné)

- deterministické - stochastické (metaheuristické) - konvenčné (ne-evolučné) - evolučné - iné bio-inšpirované

7

Page 8: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Pomocou optimalizačného prístupu možno riešiť aj úlohy, ktoré nie sú v prvom ponímaní maximalizačné/minimalizačné úlohy. Prevedenie exaktnej úlohy - výpočet inverznej matice - na približnú minimalizačnú:

A-1 =? ; A*A-1=I A*A-1-I=0

X=? ; (A*X-I)→min

8

Page 9: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Bio-inšpirované výpočtové metódy

evolučné / iné

9

Page 10: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Motivácia vzniku evolučných algoritmov

(genetického algoritmu)

10

Page 11: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Biologická evolúcia

1 bunka - baktéria 6000 miliárd buniek - človek 11

Page 12: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Reprezentanti bio-inšpirovaných

prístupov

• Evolučné algoritmy

• ACO – kolónie mravcov

• PSO (kŕdľový alg.)

• Včelí algoritmus

• Kvetový algoritmus

(opelovací)

• Svetluškový algoritmus

• Kukučkový algoritmus

• Iné ...

12

Page 13: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Reprezentanti evolučných algoritmov

• Evolučné stratégie

• Evolučné programovanie

• Genetické algoritmy

• Genetické programovanie

• Diferenciálna evolúcia

• Umelý imunitný systém

• Gramatická evolúcia

• iné ...

13

Page 14: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Evolučný algoritmus

1. Inicializuj populáciu reťazcov

2. Vyhodnoť úspešnosť každého reťazca populácie

3. Vyber rodičov (úspešnejší majú väčšiu pravdepodobnosť byť vybraní)

4. Modifikácia rodičov = potomkovia (mutácia, kríženie)

5. Vytvor novú populáciu z potomkov a prežívajúcich jedincov

6. Skok na bod 2

14

Page 15: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Riešenie problému pomocou EA

Model problému -

vyhodnotenie úspešnosti

(model, simulácia, výpočet, ...)

Model evolúcie

(EA, genetický algoritmus atď.)

(sub) optimálne riešenie

15

Page 16: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

G50

Optimalizácia funkcie n-premenných X* = [x1,x2,…xn] = ? ; F(X*) = min(F(X)); (resp. max)

Chromozóm = [x1,x2,…xn] potenciálne riešenie problému 16

Page 17: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Populácia

Množina „vhodného počtu“ chromozómov (napr. 30-100)

Genetický algoritmus operuje nad populáciou

chromozómov.

17

Page 18: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Kríženie chromozómov

1 2 3 4 5 6 7

7 6 5 4 3 2 1

1 2 3 4 5

6 7

2 1

7 6 5 4 3

rodičovské reťazce potomkovské reťazce

Príklad 1 18

Page 19: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Mutácia chromozómu

1 2 3 4 5 6 7

1 2 3 4 5 6 7 7

Príklad 2 19

Page 20: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

b a

c

d e f

g

h

roztočiť

ukazovatele

výberu

Ruletový výber

Príklad 3 20

Page 21: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

N generácií výpočtu

Mutácie

Koniec

?

Nie

Ano Najlepší jedinec

poslednej populácie

Riešenie

Genetický algoritmus

Inicializácia

počiat. popul.

Štart

Vyhodnotenie

fitness

n

n-b

Výber Nová

populácia

b

Kríženie

n-b

Príklad 4 21

Page 22: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

2. Genetic toolbox - Mathworks 3. GA – iné zdroje, internet

22

Genetic toolbox - Matlab (ÚRK FEI STU Bratislava, 2000)

Page 23: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Prehľad funkcií Genetic toolbox

among - medziľahlé kríženie

change - mutácia duplicitných reťazcov

crosgrp - kríženie medzi viacerými rodičmi

crossov - viacbodové kríženie dvoch rodičov

genrpop - vygenerovanie náhodnej reálnečíselnej populácie

invfit - doplnok účelovej funkcie

muta - aditívna mutácia

mutm - multiplikatívna mutácia

mutx - obyčajná mutácia

selbest - výber najlepších reťazcov

seldiv - výber podľa maximálnej diverzity

selrand - náhodný výber reťzcov

selsort - výber a zotriedenie reťazcov podľa úspešnosti

selsus - výber pomocou váhovaného ruletového kolesa

shake - náhodné premiešanie poradia reťazcov v populácii

swapgen - mutácia poradia génov v reťazci

swappart - vzájomná výmena poradia dvoch častí reťazcov

. . .

23

Page 24: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

selsus - výber jedincov pomocou váhovaného ruletového kolesa

Charakteristika:

Funkcia vyberie zo vstupnej populácie do výstupnej populácie určený počet

reťazcov pomocou výberu, ktorého ekvivalentom je otáčanie váhovaným

ruletovým kolesom. Váhované ruletové koleso je rozdelené na kruhové výseky, z

ktorých každý je priradený jednému reťazcu a jeho veľkosť je nepriamo úmerná

hodnote jeho účelovej funkcie (resp. priamo úmerná jeho úspešnosti).

Úspešnejšie reťazce majú väčšiu šancu byť vybrané.

Syntax:

Newpop=selsus(Oldpop,Objpop,Num);

Newpop - nová (výstupná) populácia

Oldpop - stará (vstupná) populácia

Objpop - vektor hodnôt účelovej funkcie starej populácie

Num – počet vybraných najúspešnejších reťazcov

24

Page 25: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

crossov - kríženie

Charakteristika:

Funkcia vytvorí novú populáciu reťazcov, ktorá vznikne skrížením všetkých

reťazcov starej populácie 1- až 4-bodovým krížením. Krížené sú všetky reťazce

(ak je ich párny počet). Výber párov je buď náhodný alebo sú vybrané susedné

reťazce v populácii podľa voľby parametra sel.

Syntax:

Newpop=crossov(Oldpop,num,sel)

Newpop - matica skríženej (výstupnej) populácie

Oldpop - pôvodná (vstupná) populácia

num - počet bodov kríženia (miest rozdelenia) od 1 do 4

sel - spôsob výberu dvojíc:

0 - náhodný

1 - susedné dvojice v populácii

25

Page 26: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

mutx - obyčajná mutácia

Charakteristika:

Funkcia zmutuje populáciu reťazcov s intenzitou úmernou parametru rate (z

rozsahu od 0 do 1). Mutovaných je len niekoľko génov v rámci celej populácie.

Mutované hodnoty sú zmenené na náhodné hodnoty z priestoru definovaného

ohraničeniami pomocou dvojriadkovej matice. Prvý riadok matice určuje dolné

ohraničenia jednotlivých génov reťazcov a druhý riadok ich horné ohraničenia.

Syntax:

Newpop=mutx(Oldpop,rate,Space)

Newpop - nová, zmutovaná populácia

Oldpop - stará populácia

Space - matica obmedzení, ktorej 1.riadok je vektor minimálnych a 2.

riadok je vektor maximálnych prípustných mutovaných hodnôt

rate - miera početnosti mutovania génov v populácii (od 0 do 1)

26

Page 27: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Aplikácie BIOM v praxi

27

Page 28: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Návrh regulačných obvodov

chromozóm = [p1,p2,…pn] pi – parametre regulátora

napr. PID regulátor: chromozóm = [P,I,D]

účelová funkcia: 28

Page 29: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

w

y Parametre/štruktúra regulátora =?

aby plocha bola minimalizána

Skok žiadanej

hodnoty

regulovanej

veličiny

Externá

porucha

1.Simulácia

(Simulink)

2

1

2

1

)()()(T

T

T

TIAE dttytwdtteJ

2. Vyčíslenie kriteriálnej funkcie

Príklad 5

Page 30: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Min(JIAE) 2

1

2

1

)()()(T

T

T

TIAE dttytwdtteJ

Optimalizácia - GA

Matlab

Simulink

30

Page 31: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Fz

1

ms

1

s

sm sm*

s1

s2

K2

K1

sm

GF

B

Fm Fm*

PID LC

vm

IRC LO

Polohový systém s PID regulátorom, lead kompenzátorom (LC),

Luenbergerovým pozorovateľom (LO), generátor sily (GF).

0

01

bz

azaLC

chromozóm:

ch={P,I,D,a1,a0,b0}

T

dtteteteFitness0

)()()(

α=1, β=0.5, =0

Návrh riadenia polohového systému s PID regulátorom, lead kompenzátorom a Luenbergerovým pozorovateľom

31

Page 32: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-6

-4

-2

0

2

4

6

8x 10

-5

t [s]

erro

r [m

]

Position error

Pole Placement

GA

P I D a1 a2 B2

Pole-placement 4737.4 99220 75.3882 20 -19.8425 -0.8425

GA 45100 4.8020 780.2274 1.5315 -1.4123 -0.4219

P

o

s

i

t

i

o

n

32

Page 33: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Návrh riadenia MIMO systému

33

Page 34: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Fix (known) structure of the controller

Chromosome: ch = [ p1, p2, … , pi, … , pn ] PID controller : CPID(s) = P + I/s + Ds ch = [P,I,D] General linear controller : ch=[bn-1, … , a0]

+ -

w e u y

controller process

01

01

1

1

...

...

)(

)()(

asasa

bsbsb

sA

sBsC

n

n

n

n

Fix number of parameters - genes

1.Genetic Algorithms (GA) 2.Differential Evolution 3.PSO 4.Artificial Immune System 5.Evolutionary Strategies 6.other numerical optimisers ...

34

Page 35: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Process Controller

structure ?

Unknown structure of the controller ( unknown number of parameters)

1.Genetic Programming 2.Cartesian Programming 3.Grammatical Evolution 4. ...?

35

Page 36: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Evolúcia regulátora – Genetické programovanie

1

2

3

4

5

e

u1

Out1

Product

-1

Gain 22.5

Gain 1 z

1

Delay

1

In1

15.2

54321

14

010101023

KwDKwx

Regulátor v Simulinku - fenotyp Stavebné prvky

Stromová reprezentácia Tabulková reprezentácia - genotyp 36

Page 37: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Controller design - Kartesian genetic programming

Individual coding:

[1 2 3 1.2 0.9 0.1 1 1 2 4 2 3 5 4 5 6 1 3 1 3 2]

bt 1 2 3 N

bg 1.

2

0.

9

0.

1

N

ic 1 1 2 4 2 M

oc 3 5 4 5 6 M

m

c

1 3 1 3 2 M

Building blocks

Inputs

Output

37

Page 38: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Hydro-turbine controller obtained after evolution

38

Page 39: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Optimalizácia trajektórie robotického ramena – príklad ( Robot ABB IRB 6400 )

http://www.youtube.com/watch?v=p2wCSyl_f6M

39

Page 40: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Ďalšie kritériá

EPr,i - energia i-teho kĺbu na 1° rotácie

Presnosť polohovania

40

Page 41: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

TPr,i je čas pohybu i-teho kĺbu na 1° rotácie

41

Page 42: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Evolučný hardvér (Evolvable Hardware)

42

Page 43: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Evolúcia elektrických obvodov

43

Page 44: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Vyhodnotenie fitness:

- simulačný softvér elt.

obvodov

- rekonfigurovatelné elt.

obvody

(číslicové/analógové,

logické obvody,

hradlové polia, polia

operač.zosil. atď...)

44

Page 45: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Evolúcia logických obvodov

45

Page 46: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Návrh (riadiaceho) programu – genetické programovanie

stromová reprezentácia jedinca

IfWF

Right

else

Move

IfXR

Right

else

Left

end

end

Right

next

Move

IfXR

Right

Left

46

Page 47: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Výsledná trajektória robota IfWF

Right

IfXF

IfWL

IfWF

Left

else

IfWF

Move

Left

else

Move

end

Left

end

else

Move

Right

end

else

Move

... 47

Page 48: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

48

Page 49: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Počeš výpočtov ustáleného stavu ES SR (fitnes)

počas riešenia GA: 500 . 30 = 15 000

(počet generácií x veľkosť populácie)

Zníženie strát oproti skutočnému stavu o 2,42 % 49

Page 50: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Konštrukčné úlohy

50

Page 51: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Návrh tvaru vačky otáčavého stroja (GA)

Účelová funkcia: simulácia a

vyhodnotenie dynamických a

statických mechanických a tepelných

vlastností časti stroja

Reťazec: tvar a rozmery vačky

zakódované pomocou parametrov B-

spline funkcie

51

Page 52: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Rôzne konštrukčné aplikácie

Mechanické konštrukcie

Návrh antény satelitu

52

Page 53: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Spojenie EA s modelom na báze

metódy konečných prvkov (MKP)

(SW: Comsol, Ansys ...)

53

Page 54: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Optimalizácia platne namáhanej silou (GA) (SW: ANSYS)

F

54

Page 55: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Optimalizácia distribúcie teploty v byte

(SW: Comsol)

55

Page 56: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Optimalizácia tvaru prekážky v potrubí

pretekanom tekutinou

56

Page 57: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Populácia v 1. generácii výpočtu GA

57

Page 58: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Populácia v 10. generácii výpočtu GA

58

Page 59: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

výsledok

Účelová funkcia reprezentuje mieru turbulencií v potrubí,

ktoré sa minimalizujú

59

Page 60: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Aplikačné oblasti MKP

• elektromagnetické polia, elektrické, magnetické

polia

• sila, pružnosť, pevnosť, mechanické aplikácie

• šírenie tepla

• aerodynamika, hydrodynamika

• chémia ...

• riadenie v hore uvedených doménach

• a iné …

60

Page 61: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Princíp riešenia v Matlabe/Comsole

Optimalizácia – evolučný

algoritmus (Matlab)

Vyhodnotenie účelovej

funkcie (Matlab)

Simulácia regulačného

obvodu (Matlab)

Model objektu - FEM

(Comsol Multiphysics)

Optimálne

riešenie

Špecifikom tohto prístupu je, že

nevyužíva zjednodušenú náhradu

riadeného objektu (napr. linearizovaný

model, atď.), ale uvažuje model so

všetkými jeho nelinearitami, okrajovými

podmienkami a ohraničeniami.

61

Page 62: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Paralelizácia GA / BIOM

62

Page 63: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Paralelný GA

• Riešenie prebieha v jednotlivých ostrovoch (subpopuláciách) istý čas

izolovane.

• Vo vhodných okamihoch nastáva výmena informácia medzi ostrovmi –

migrácia.

Pri migrácii sa jeden

alebo viac jedincov zo

zdrojovej subpopulácie

skopíruje a nahradí

iných jedincov v cieľovej

subpopulácii.

63

Page 64: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Rôzne topológie paralel-GA

• Migrácie prebiehajú v smere šípok v definovaných okamihoch

• Okamihy migrácie a voľba a počet migrujúcich jedincov sú rôzne

• V jednotlivých ostrovoch môžu byť rovnaké/rôzne algoritmy a ich parametre (typ, selektívny tlak, diverzita)

a podobné ...

1 uzol = 1 subpopulácia

64

Page 65: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Matlab - parallel computing

Parallel Computing Toolbox

• Umožňuje paralelizovať výpočty v Matlabe

• využívame 2 módy: 1) parfor - parallelný for cyklus 2) spmd – Single Program Multiple Data

Matlab Distributed Computing Server

• Lokálny režim paralelizácie: do 12 výpočtových uzlov (max. 12 jadier na 1 procesore – 1 PC). Dokáže rozdeliť úlohu v Matlabe na viac jadier na 1 PC bez inštalácie MDCS.

• Pokiaľ chceme využiť viac PC, je potrebné inštalovať MDCS

65

Page 66: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Iné aplikačné domény BIOM

66

Page 67: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Matematika • extremalizácia funkcií

• kombinatorika

• grafové úlohy

• regresná analýza

• teória hier, optimálne stratégie

• a veľa iného ...

67

Page 68: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Ekonómia a finančníctvo

• optimalizácia výrobného sortimentu

• plánovanie výroby

• dopravné úlohy

• alokácia investícií

• optimalizácia finančných operácií

• a veľa iného ...

68

Page 69: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Technika

• konštrukčné úlohy, stavby

• strojové učenie

• optim. chemických reakcií

• evolučný hardvér

• a veľa iného ...

69

Page 70: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Informatika a komunikácia

• optim. spojenia v poč./telekom. sieti

• de / šifrovanie

• automatizované programovanie

• strojové učenie

• ...

• ?

70

Page 71: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Umenie (Design)

• „evolúcia“ výtvarných diel

• evolúcia hudby

• ... ?

71

Page 72: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Evolutionary Art … 72

Page 73: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Zhrnutie - BIOM

• veľmi efektívne/výkonné metódy v porovnaní s bežnými optimalizačnými prístupmi

• širokospektrálne, univerzálne použiteľné • jednoduché použitie z hľadiska

používateľa – prenášajú ťažisko riešenia problému z človeka na počítač

73

Page 74: Riešenie praktických problémov pomocou · bt 1 2 3 N bg 1. 2 0. 9 0. 1 N ic 1 1 2 4 2 M oc 3 5 4 5 6 M m c 1 3 1 3 2 M Building blocks Inputs Output 37 . Hydro-turbine controller

Koniec

Ivan Sekaj

Ústav robotiky a kybernetiky

FEI STU Bratislava

E-mail: [email protected]