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

Opis predmeta

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.

Opće kompetencije

Studenti će tijekom savladavanja vještine implementirati svaki od navedenih algoritama. Temeljem toga steći će predodžbu o načinu rada i ponašanju algoritama (brzina rada, utjecaj osnovnih parametara i sl.). Savladat će više načina kodiranja rješenja prikladnih za navedene algoritme te će time znati principe primijeniti i na druge probleme. Razumjet će razliku između jednokriterijske i višekriterijske optimizacije. Napisat će i paralelnu verziju odabranog algoritma čime će steći dodatno iskustvo.

Ishodi učenja

  1. definirati pojam optimizacijski problem
  2. navesti algoritme evolucijskog računanja
  3. primijeniti algoritme evolucijskog računanja na jednokriterijske optimizacijske probleme
  4. primijeniti algoritme evolucijskog računanja na višekriterijske optimizacijske probleme
  5. dizajnirati paralelne algoritme evolucijskog računanja
  6. procijeniti prikladnost pojedinih algoritama za određene optimizacijske probleme

Oblici nastave

Predavanja

Nastava će se provoditi u predavaoni, pri čemu će se koristiti prezentacije (PowerPoint), ploča za detaljnija pojašnjenja algoritama i za rješavanje primjera te niz pripremljenih edukacijskih programa koji na jednostavnim primjerima uživo ilustriraju rad pojedinih algoritama.

Laboratorijske vježbe

U okviru laboratorijskih vježbi sa studentima će se pregledati njihove implementacije algoritama te dati kritički osvrt kao i savjeti za poboljšanja. Zadatci se rješavaju kod kuće te se nastavniku prezentiraju u terminu vježbe.

Tjedni plan nastave

  1. Uvod
  2. Vrste optimizacijskih problema.
  3. Genetski algoritam primjenjen na problem optimizacije kontinuirane funkcije.
  4. Genetski algoritam primjenjen na problem kombinatoričke optimizacije.
  5. Naprednije vrste genetskog algoritma
  6. Algoritam mravlje kolonije
  7. Algoritam roja čestica
  8. Imunološki algoritmi
  9. Višekriterijska optimizacija
  10. Genetski algoritmi za višekriterijsku optimizaciju
  11. Imunološki algoritmi za višekriterijsku optimizaciju
  12. Paralelizacija kod evolucijskih algoritama (1)
  13. Paralelizacija kod evolucijskih algoritama (2)

Studijski programi

Sveučilišni preddiplomski
Elektrotehnika i informacijska tehnologija (studij)
Vještine - 3. semestra (3. semestar)
Obradba informacija (modul)
Vještine - 5. semestra (5. semestar)
Programsko inženjerstvo i informacijski sustavi (modul)
Vještine - 5. semestra (5. semestar)
Računalno inženjerstvo (modul)
Vještine - 5. semestra (5. semestar)
Računarska znanost (modul)
Vještine - 5. semestra (5. semestar)
Računarstvo (studij)
Vještine - 3. semestra (3. semestar)
Telekomunikacije i informatika (modul)
Vještine - 5. semestra (5. semestar)
Sveučilišni diplomski
Automatika (profil)
Vještine - dipl.studij - 1. semestar (1. semestar) Vještine - dipl.studij - 3. semestar (3. semestar)
Bežične komunikacijske tehnologije (profil)
Vještine - dipl.studij - 1. semestar (1. semestar) Vještine - dipl.studij - 3. semestar (3. semestar)
Elektroenergetika (profil)
Vještine - dipl.studij - 1. semestar (1. semestar) Vještine - dipl.studij - 3. semestar (3. semestar)
Elektroničko i računalno inženjerstvo (profil)
Vještine - dipl.studij - 1. semestar (1. semestar) Vještine - dipl.studij - 3. semestar (3. semestar)
Elektronika (profil)
Vještine - dipl.studij - 1. semestar (1. semestar) Vještine - dipl.studij - 3. semestar (3. semestar)
Elektrotehnički sustavi i tehnologija (profil)
Vještine - dipl.studij - 1. semestar (1. semestar) Vještine - dipl.studij - 3. semestar (3. semestar)
Obradba informacija (profil)
Vještine - dipl.studij - 1. semestar (1. semestar) Vještine - dipl.studij - 3. semestar (3. semestar)
Programsko inženjerstvo i informacijski sustavi (profil)
Vještine - dipl.studij - 1. semestar (1. semestar) Vještine - dipl.studij - 3. semestar (3. semestar)
Računalno inženjerstvo (profil)
Vještine - dipl.studij - 1. semestar (1. semestar) Vještine - dipl.studij - 3. semestar (3. semestar)
Računarska znanost (profil)
Vještine - dipl.studij - 1. semestar (1. semestar) Vještine - dipl.studij - 3. semestar (3. semestar)
Telekomunikacije i informatika (profil)
Vještine - dipl.studij - 1. semestar (1. semestar) Vještine - dipl.studij - 3. semestar (3. semestar)

Literatura

Marko Čupić (2012.), Prirodom inspirirani optimizacijski algoritmi. Metaheuristike.,
Michael Affenzeller, Stefan Wagner, Stephan Winkler, Andreas Beham (2009.), Genetic Algorithms and Genetic Programming. Modern Concepts and Practical Applications, CRC Press
Kenneth V.Price, Rainer M. Storn, Jouni A. Lampinen (2005.), Differential Evolution. A Practical Approach to Global Optimization, Springer
Kalyanmoy Deb (2009.), Multi-Objective Optimization using Evolutionary Algorithms, Wiley
Marco Dorigo, Thomas Stützle (2004.), Ant Colony Optimization, MIT Press

Izvedba

ID 79087
  Zimski semestar
4 ECTS
R0 Engleski jezik
R1 E-učenje
30 Predavanja
0 Auditorne vježbe
0 Laboratorijske vježbe

Ocjenjivanje

izvrstan
vrlo dobar
dobar
dovoljan