Optimizacija in evolucijsko računanje Kaj je optimizacija?

Optimizacija in evolucijsko računanje
• Kaj je optimizacija?
• Evolucijsko računanje in genetski algoritmi
• Primer uporabe: Optimizacija procesnih parametrov v
metalurški proizvodnji
• Primer: Minimiziranje energetskih stroškov s časovnim
razporejanjem opravil
Kaj je optimizacija?
• Postopek iskanja najboljše med več možnimi rešitvami
nekega problema
• Zelo širok spekter nalog, od tehnično-operativnih do
upravljalskih
• Za reševanje potrebno definirati problem in izbrati
ustrezno metodo
1
Elementi optimizacijskega problema
• Množica možnih rešitev (njena definicija včasih vsebuje
tudi omejitve, ki morajo veljati, da so rešitve dopustne)
• Kriterijska (stroškovna, namenska) funkcija, s katero
vrednotimo rešitve
• Zahteva, ki jo je potrebno izpolniti, npr. poiskati najboljšo
rešitev, poiskati zadosti dobro rešitev, poiskati dopustno
rešitev ipd.
Optimiranje in odločanje
Značilnost postopka
Optimiranje
Odločanje
Število možnih rešitev
veliko
majhno
Poudarek pri reševanju
preiskovanje,
vrednotenje
gradnja modela,
razlaga
Način vrednotenja rešitev
izračun
presoja
Narava informacij
eksaktne
“mehke”
Vloga računalnika
izvedba
podpora
Nivo izvedbe
tehnično-operativni
upravljalski
Merljivost učinkov
enostavna
zahtevna,
pogosto nemogoča
2
Optimizacijski problem
• Dano:
– množica možnih rešitev problema
– omejitve, ki veljajo za rešitve
– kriterijska (stroškovna, namenska) funkcija, s katero
vrednotimo rešitve
• Iščemo:
– dopustno rešitev z najvišjo vrednostjo kriterijske
funkcije (oz. najmanjšimi stroški)
Zakaj je optimizacija (lahko) zahtevna?
• Število možnih rešitev je lahko zelo veliko.
• Delež dopustnih rešitev je lahko zelo majhen.
• Vrednotenje rešitev je lahko časovno zahtevno, drago,
nevarno, …
• Problem je lahko nezvezen, nelinearen, multimodalen, …
• Obstaja lahko več kriterijev.
• Kriteriji si lahko nasprotujejo.
• Problem se lahko s časom spreminja (je dinamičen).
• …
3
Kaj je evolucijsko računanje?
• Področje računalništva, ki se ukvarja z razvojem in
uporabo preiskovalnih in optimizacijskih algoritmov, ki
posnemajo principe biološke evolucije
• Ideja: računalniško simulirana evolucija kot metoda
reševanja problemov
• Analogija:
Biološka evolucija
Reševanje problema
Osebki
Možne rešitve
Uspešnost
Kakovost rešitev
Okolje
Problem
Razvrstitev področja
COMPUTATIONAL
INTELLIGENCE
or
SOFT COMPUTING
Neural
Networks
Evolutionary
Programming
Evolutionary
Algorithms
Evolution
Strategies
Fuzzy
Systems
Genetic
Algorithms
Genetic
Programming
4
Evolucijski cikel
Selekcija
Starši
Križanje
Populacija
Mutacija
Zamenjava
Potomci
Evolucijski algoritem
1. (Naključno) tvori začetno množico rešitev
rešitev.
2. Ovrednoti rešitve.
3. Kot rezultat privzemi najboljšo rešitev
rešitev.
4. V
Verjetnostno izberi podmnožico dobrih rešitev.
5. Tvori nove rešitve z variacijo obstoječih rešitev
rešitev.
6. Ovrednoti nove rešitve.
7. Če je dobljena boljša rešitev
rešitev, jo privzemi za rezultat.
8. Če je opravljenih zadosti iteracij, vrni rezultat in končaj,
sicer se vrni na korak 4.
5
Evolucijski algoritem
Terminologija
• Populacija: množica obravnavanih možnih rešitev
• Osebki, kromosomi: elementi populacije, možne rešitve
• Funkcija uspešnosti: (angl. fitness function), ciljna
(stroškovna) funkcija, s katero vrednotimo rešitve
• Generacije: iterativni koraki v izvajanju algoritma
• Selekcija: implementacija načela preživetja
najuspešnejših v populaciji
• Variacijski (genetski) operatorji: križanje, mutacija
6
Predstavitev možnih rešitev
• Odvisna od problema
• Primer: optimizacija 10 numeričnih spremenljivk,
predstavitev v obliki vektorja realnih števil
x1
x2
x3
x4
x5
x6
x7
x8
x9 x10
• Druge možnosti: dvojiški nizi, permutacije, tabele,
drevesne strukture itd.
Selekcija
• Multipliciranje rešitev glede na njihovo uspešnost:
uspešnejša kot je rešitev, večja je verjetnost, da bo
prispevala potomce v naslednjo generacijo
• Učinek: preživetje najuspešnejših (angl. survival of the
fittest), t.j. dobre rešitve se množijo, slabe odmirajo
• Različne implementacije, primer: turnirska selekcija
7
Kombiniranje rešitev: križanje
• Naključna izbira dveh „staršev“
• Naključna izbira mest križanja, izmenjava podnizov
Starša:
Potomca:
x1
x2
x3
x4
x5
x6
x7
x8
x9 x10
y1
y2
y3
y4
y5
y6
y7
y8
y9 y10
x1
x2
x3
y4
y5
x6
x7
y8
y9 y10
y1
y2
y3
x4
x5
y6
y7
x8
x9 x10
Mutacija
• Naključne spremembe vrednosti na naključno izbranih
mestih v rešitvah
x1
x2
x3
x4
x5
x6
x7
x8
x9 x10
x1
x2
x3 x4* x5
x6
x7
x8
x9 x10
• Pomen: tvorjenje kombinacij vrednosti, ki niso prisotne v
populaciji
8
Algoritem je stohastičen
2,5
Run 1
2,4
Run 2
Run 3
2,3
Run 4
Run 5
Cost
2,2
Average
2,1
2,0
1,9
1,8
0
50
100
150
200
250
300
350
400
Evaluations
Značilnosti evolucijskih algoritmov
• Stohastični
• Populacijski
• Lahko jih ustavimo kadarkoli (angl. any-time algorithms)
9
Razvoj in uporaba evolucijskega algoritma
za izbrani problem
• Predstavitev (kodiranje) možnih rešitev
• Funkcija uspešnosti
• Posebni operatorji (če so potrebni)
• Uglaševanje parametrov algoritma: velikost populacije,
število generacij, verjetnosti operatorjev
• Vrednotenje rezultatov
Področja uporabe
Biofizika
Proizvodni procesi
Energetika
10
Prednosti evolucijskih algoritmov
• Splošnost in široka uporabnost
• Zahtevajo le vrednotenje rešitev, ne pa tudi dodatnih
informacij o njih in posebnih lastnosti prostora rešitev
• Zaradi populacijskega načina preiskovanja dajejo
alternativne rešitve
• Omogočajo vključevanje drugih metod (hibridizacijo)
• Možno jih je paralelizirati
• Uspešno rešuje zahtevne praktične probleme
Slabosti evolucijskih algoritmov
• Suboptimalna metodologija (brez zagotovila o
optimalnosti rešitev)
• Računska zahtevnost
• Potrebno uglaševanje parametrov algoritma (velikost
populacije, število korakov, verjetnosti operatorjev)
11
Sklep
• Optimiranje je pomemben element načrtovanja sistemov
in naprav, vodenja procesov itd.
• Reševanje realnih optimizacijskih problemov ni trivialno
(formulacija problema, poznavanje metodologije,
iterativno reševanje, vrednotenje rezultatov)
• Stohastično optimiranje je pogosto edini možni pristop
• Evolucijski algoritmi so uveljavljena stohastična
optimizacijska metoda
Literatura
• Učbenik:
A. E. Eiben, J. E. Smith: Introduction to Evolutionary
Computing, Springer-Verlag, Berlin, 2003
• Spletna stran:
The Hitch-Hiker's Guide to Evolutionary Computation
http://www.aip.de/~ast/EvolCompFAQ/
12