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
© Copyright 2024