Rješavanje optimizacijskih problema algoritmima evolucijskog računanja u Javi: najava

Vještina Rješavanje optimizacijskih problema algoritmima evolucijskog računanja u Javi nudi se studentima preddiplomskog i diplomskog studija u zimskom semestru.

O čemu se tu radi?

U svakodnevnom životu susrećemo različite vrste NP-teških optimizacijskih problema, čijim se približnim rješavanjem omogućava efikasnije i ekonomičnije vođenje raznorodnih procesa. U okviru ove vještine studenti će se upoznati s pojmovima jednokriterijske i višekriterijske optimizacije, s kontinuiranim i kombinatoričkim optimizacijskim problemima te s podskupom algoritama evolucijskog računanja koji će biti iskorišteni za dobivanje zadovoljavajućih rješenja. U okviru vještine obradit će se genetski algoritam, algoritam mravlje kolonije, algoritam roja čestica, imunološki algoritam te algoritam diferencijske evolucije, s primjerima jednokriterijske i višekriterijske optimizacije kontinuiranih i kombinatoričkih problema. Razmotrit će se paralelizacija odabranih algoritama, a primjeri će biti u programskom jeziku Java.

Što to konkretno znači? Vještina kreće s razmatranjem jednostavnih optimizacijskih problema gdje su nam dostatne jednostavne heuristike. Uvodimo pojam prostora pretraživanja i susjedstva. Razmatramo kako na temelju manjih promjena trenutnog rješenja doći do novog boljeg rješenja.

Nakon toga imamo izlet u optimizacijske probleme gdje nam sam problem može dati korisnu informaciju: razmatramo numeričku optimizaciju derivabilnih funkcija gdje možemo koristiti gradijent te informacije drugog reda kao vodiče kroz prostor pretraživanja.

Nažalost, kroz prethodne primjere javljat će se zapinjanja u lokalnim optimumima zbog čega nećemo uvijek dobivati povoljna rješenja. Stoga ćemo razmotriti kako povećati robusnost optimizacijskog postupka na zapinjanje u lokalnim optimumima. Jedna od ideja bit će i privremeno prihvaćanje lošijih rješenja u nadi da će nas to u konačnici dovesti do boljih, a jedna od implementacija ove ideje je fizikalno zasnovan algoritam Simuliranog kaljenja.

Istraživanje ćemo potom nastaviti uvođenjem populacije u optimizacijski postupak: umjesto jednog rješenja, istovremeno ćemo pratiti mnoga rješenja u prostoru pretraživanje (populaciju) čime se nadamo ostvariti još veću robusnost. Nažalost, zbog uvođenja populacije morat ćemo platiti i određenu cijenu. Upoznat ćemo se s nizom prirodom inspiriranih algoritama koji utjelovljuju ovu ideju.

Tamo negdje počevši od drugog dijela semestra, pozabavit ćemo se s još dva važna pitanja: što učiniti ako nad rješenjem mjerimo više različitih kriterija po kojima vrednujemo isto (pa govorimo o višekriterijskoj optimizaciji) odnosno kako iskoristiti sklopovlje koje nam danas stoji na raspolaganju u računalu (pa govorimo o paralelizaciji).

Kroz ovu čitavu priču, bit će i niz zanimljivih konkretnih primjera, pa ćete tako, između ostaloga, raditi i predikciju vremenskih serija te trenirati unaprijedne i povratne neuronske mreže evolucijskim algoritmima.

Za koga je to? Koji su preduvjeti?

Vještina je namijenjena svim studentima koji se žele upoznati s navedenim područjem. Nekako mi se čini da je najviše ima smisla upisati na trećoj godini preddiplomskog studija; budete li na projektu ili za Završni rad radili nešto iz ovog područja, vještina će Vam biti idealna priprema.

Što se tiče preduvjeta, morate se snalaziti s programskim jezikom Java. Povremeno ćete morati napisati i odgovarajuće korisničko sučelje za Vaš programčić koji pišete u okviru domaće zadaće, pa je dobro prisjetiti se Swinga.

Kako je vještina organizirana?

Za razliku od Osnova programskog jezika Java, na ovoj vještini imamo samo jednu grupu i ta ide utorkom od 10h do 12h u A301.

Predavanja se održavaju u tjednima kada i inače idu predavanja na FER-u. Nakon svakog predavanja dobiva se manja domaća zadaća. Fokus tih domaćih zadaća jest implementirati optimizacijski algoritam opisan na predavanju i primijeniti ga na zadani problem.

Zašto bih ovo upisao?

U današnje doba kada su teški optimizacijski problemi sveprisutni, steći znanja koja će Vam omogućiti da se s istima kreativno suočite naprosto je prilika koju nema smisla propustiti.

Kada / gdje će biti upisi?

Upisi će se pokrenuti početkom rujna. Kao i kod svih mojih vještina, bit će potrebno popuniti prijavu u sustavu Ferko, pa nemojte propustiti rok.