140 likes | 256 Views
Neformalna Grupa za evolucijsko ra čunanje. Marin Golub Domagoj Jakobović Marko Čupić http://gp.zemris.fer.hr. Grupa u brojkama…. Predmeti: 1 preddiplomski 3 diplomska 2 doktorska Vođenje s tudenata (93) : preddiplomski : 26 diplomski : 35 FER1 : 16 poslijediplomski: 16
E N D
Neformalna Grupa za evolucijsko računanje Marin Golub Domagoj Jakobović Marko Čupić http://gp.zemris.fer.hr
Grupa u brojkama… • Predmeti: • 1 preddiplomski • 3 diplomska • 2 doktorska • Vođenje studenata (93): • preddiplomski: 26 • diplomski: 35 • FER1: 16 • poslijediplomski: 16 • Prosječna godišnja proizvodnja: • seminar: 28 • završni rad: 17 • diplomski rad: 15 (prva godina) • FER1 diplomski: 8 (u padu)
Pregled • ECF – programsko okruženje za evolucijsko računanje • Paralelizacija evolucijskih algoritama • Raspoređivanje uz pomoć genetskog programiranja
1. ECF – Evolutionary computation framework • C++ okruženje za evolucijske i srodne algoritme • Java inačica u razvoju • osnovne osobine: • jednostavnost – osim programiranja funkcije cilja, nije potrebno definirati druge parametre • proširivost – neovisnost algoritma o problemu • paralelno izvođenje – pokretanje na više procesora/računala uz pomoć MPI standarda • namjena: • brzo ostvarenje evolucijskog programa za korisnički problem (rapid prototyping) • usporedba učinkovitosti prikaza rješenja, algoritama, operatora... (test environment) • ispitivanje paralelizacije algoritama, primjena na grozdu/spletu računala
ECF komponente: genotip • Genotip – prikaz rješenja • postojeći: niz bitova, binarni realni vektor, permutacijski vektor, stablo • svaki genotip: predefinirani genetski operatori (mutacija, križanje) • kombinacije: jedinkasadrži bilo koje genotipe u bilo kojem broju • parametri genotipa (preciznost, dimenzija, završni čvorovi stabla...) dinamički iz konfiguracijske datoteke • u razvoju: floating point vektor
ECF komponente: algoritam • Algoritam – provedba evolucije • slijedni: GA/GP inačice, PSO • paralelni: više inačica • može biti neovisan ili ovisan o genotipu • npr: PSO inačica zahtijeva vektor realnih vrijednosti • u razvoju: GAn, DE, XCS
ECF komponente: sustav • dodavanje korisničkih komponenata: genotipa, algoritama, operatora • kriteriji zaustavljanja: generacije, vrijeme, funkcija cilja, stagnacija, algoritamski... • subpopulacije + operator migracije • u razvoju/planu: • skupno pokretanje • parsiranje algoritma (konfiguracijska datoteka) • OpenMP paralelizacija • višekriterijska optimizacija, koevolucija • deterministički optimizacijski algoritmi
2. Paralelizacija evolucijskih algoritama • razvoj u okviru ECF-a • temeljen na MPI tehnologiji (višeprocesni rad, razmjena poruka) • podjela po strukturi podataka: • globalno paralelni algoritmi – svaka jedinka u dodiru sa svakom drugom jedinkom • eksplicitno paralelni • implicitno paralelni • raspodijeljeni algoritmi - subpopulacije koje evoluiraju zasebno, uključen operator migracije • hijerarhijski paralelni algoritmi • globalni unutar raspodijeljenog algoritma • podjela po vrsti: • sinkroni • asinkroni (rad s podacima)
Globalno paralelni algoritmi • Eksplicitni paralelni algoritam: • algoritam uključuje uloge (voditelj, radnik) i/ili komunikacijske mehanizme (pošalji, primi) • dostupno: • sinkroni (voditelj čeka da radnici završe) • asinkroni (voditelj radi s nepotpunim jedinkama) • Implicitni paralelni algoritam: • izvodi se slijedni algoritam • korisnik bira operacije koje se izvode paralelno • dostupne paralelne operacije: • evaluacija, mutacija (+ evaluacija) • izvode se paralelno pod kontrolom sustava • načini implicitne paralelizacije: • sinkroni: jedinke se privremeno sklanjaju iz populacije • asinkroni: dio populacije čine nepotpune jedinke
Raspodijeljeni i hijerarhijski algoritmi • raspodijeljeni algoritam: • svaka subpopulacija evoluira zasebno • operator migracije za razmjenu jedinki • migracija: sinkrona i asinkrona (u razvoju) • hijerarhijski algoritam: • izvođenje globalnog paralelnog algoritma na razini subpopulacija • mogućnosti: različiti algoritmi (slijedni i/ili paralelni) na različitim subpopulacijama
3. Raspoređivanje uz pomoć genetskog programiranja • problem: raspoređivanje u proizvoljnoj okolini • heuristički algoritmi, dinamički uvjeti rada • praksa: korištenje pravila raspoređivanja • WSPT, EDD, ATC(S) ... • primjena: koje pravilo? • ovisno o okruženju i kriteriju raspoređivanja • kombinacije: nepostojanje odgovarajućeg pravila • rješenje: evolucija (učenje) pravila uz pomoć GP-a • moguće za bilo koju kombinaciju okruženja i kriterija • uvjet: postojanje skupa primjera za učenje
Struktura algoritma raspoređivanja • Meta-algoritam:dodjeljuje sredstva aktivnostima • ovisi o zadanom okruženju, definira se ručno • primjer: više strojeva, dinamički dolasci poslova • Funkcija prioriteta: ocjenjuje važnost poslova • funkciju prioriteta evoluira genetski program • elementi funkcije: svojstva poslova (trajanje, broj sljedbenika…), strojeva (brzina, iskorištenost...) i sustava (broj preostalih poslova, ukupno trajanje...) dok(ima poslova) { cekaj dok barem jedan stroj (M) i jedan posao nisu dostupni; pmin = trajanje najkraceg spremnog posla na stroju M; izracunaj prioritete svih poslova koji su spremni u intervalu [0, pmin]; rasporedi posao s najvecim prioritetom; }
Primjena • preduvjeti: • ne traži se optimalno već prihvatljivo rješenje (ograničenje trajanja izgradnje rasporeda) • dinamičko okruženje (ispadi strojeva, dolasci poslova, promjene parametara) • postojanje skupa za učenje • neprikladno u uvjetima: • nepromjenjivosti okoline • neograničenog trajanja izrade rasporeda
Neke teme studentskih radova Kombinacije problema i tehnika rješavanja: • kombinatorički problemi: TSP, raspoređivanje (scheduling, timetabling), vehicle routing • aproksimacija, simboličko integriranje, upravljanje robotom, sažimanje slike, problem N tijela, izgradnja kombinacijskih sklopova, GP strojno učenje • algoritmi: GA/GP, particle swarm, ant conlony, clone selection, prilagodljivi algoritmi, harmony search, neuronske mreže, LCS • računalna sigurnost (mnoge teme)