Područja
Od kako sam postao doc. dr. sc., konačno i formalno mogu biti mentor
studentima na završnim i diplomskim radovima. Ovdje se nalazi popis
područja iz kojih studenti kod mene mogu raditi završne i diplomske
radove.
Ako biste htjeli raditi na nekoj drugoj temi koja nije na popisu a
mislite da bih Vam mogao pomoći u njenoj izradi, javite mi se
(osobno u ured; ne pisati epopeje na e-mail).
Stranicu s primjerima napravljenih projekata možete pogledati
ovdje.
Područja koja slijede, prvenstveno su namijenjena studentima Računarske znanosti (modul/profil).
-
Evolucijsko računarstvo (engl. Evolutionary computation)
Široko područje računarstva koje proučava
primjenu evolucijskih procesa na rješavanje problema. Tipični primjer je
rješavanje optimizacijskih problema (genetski algoritam, mravlji algoritmi,
umjetni imunološki algoritmi, algoritmi rojeva, ...). Primjeri optimizacijskih
problema su izrada različitih vrsta rasporeda (predavanja, ispiti, labosi, ...),
problem krojenja, ...
Tema: Otvoreno je natjecanje čiji je cilj
evolucijskim algoritmima naučiti način izrade grafičkih uzoraka (kako uporabom
jednostavnih naredbi generirati uzorke poput uzoraka iz baze Tiling Database). Detalji su dostupni
ovdje. Možete se okušati u tako nečemu.
-
Meko računarstvo (engl. Soft computing)
Široko područje računarstva koje kombinira tehnike evolucijskog računanja,
neizrazite logike te neuroračunarstva pri rješavanju problema optimizacije,
modeliranja, analize i predikcije (primjerice: kako modelirati neki proces
samo na temelju podataka - učenjem, modeliranje i predikcija vremenskih serija,
rudarenje podataka). Ključne riječi: umjetne neuronske mreže, evolucijski algoritmi,
neuizrazita logika, neizrazito upravljanje.
-
Konkretna tema za preddiplomski projekt (grupa studenata; a.g. 2015/2016).
Pogledati link.
Učimo neuronsku mrežu evolucijskim algoritmom da igra igricu (umjetna inteligencija upravlja igračem).
Dostupno je dosta literature na tu temu i u okviru projekta želimo napraviti takvu
kompletnu implementaciju.
-
Konkretna tema za preddiplomski projekt (grupa studenata; a.g. 2016/2017).
U knjizi Complexity: A Guided Tour,
autorica Melanie Mitchell navodi i analizira niz primjera kompleksnih sustava i traži odgovor na pitanje:
"kada je cjelina 'veća' od sume sastavnih dijelova?" odnosno kada sustav (biološki, tehnički, kemijski, ...)
počinje iskazivati ponašanje koje nadilazi ponašanje njegovih sastavnih dijelova - postaje kompleksan. U toj knjizi prikazan je
zgodan eksperiment: razvoj "mozga" jednostavnog robota nazvanog Robby. U okviru ovogodišnjeg projekta studenti
će razraditi taj primjer. Problemu razvoja Robbyjevog mozga pristupit će s nekoliko različitih strana:
uporabom genetskog algoritma uz izravno kodiranje akcija, uporabom genetskog programiranja, uporabom
genetskog algoritma koji trenira umjetnu neuronsku mrežu te uporabom podržanog učenja (engl. reinforcement learning).
Uz razvoj "mozga" robota, potrebno je implementirati i grafičko korisničko sučelje koje omogućava vizualizaciju
postupka učenja te vizualizaciju naučenog ponašanja. Kao programski jezik za implementaciju rješenja koristi se Java.
Druge moguće teme:
- Na raspolaganju je grafički tablet s olovkom. Korisnik olovkom piše po površini grafičkog tableta, a isti vremenske serije
(x,y)-koordinata šalje izravno u računalo kao trajektorije pomaka miša. Umjesto grafičkog tableta, isto se može emulirati
izravno uporabom miša (ali bitno nepreciznije i nezgrapnije). Želimo razviti računalni program koji će omogućiti korisniku
da "piše" formule koje će računalo "prepoznati" i moći izračunati te prikazati rezultat. Drugi primjeri:
korisnik "napiše" formulu u Booleovoj algebri, sustav je prepozna i nacrta njezinu tablicu istinitosti, prikaz u K-tablici
te minimalne oblike. Alternativno, korisnik "nacrta" K-tablicu - sustav je prepozna i generira algebarski zapis prikazane
funkcije. Alternativa: u K-tablici korisnik rukom dodaje zaokruženja - sustav ih prepoznaje i sa strane paralelno crta
sklopovsku implementaciju koja slijedi iz danih zaokruženja.
-
E-učenje (engl. E-learning)
Izrada različitih komponenata sustava e-učenja/e-ispitivanja/e-ocjenjivanja.
-
Konkretna tema za projekt (grupa studenata).
Dopustiti opis digitalnog sklopa jednostavnim podskupom VHDL-a, drugim
jednostavnih HDL-om, jezikom prikladnim za opis jednostavnih konačnih automata.
Napraviti prevođenje u Register-Transfer-Logic (ili slično). Napraviti minimizaciju
logičkih izraza dizajna. Napraviti minimizaciju broja stanja kod sekvencijskog sklopa;
dodatno napraviti minimizaciju utroška sklopova automatskim odabirom prikladnog načina
kodiranja stanja. Konačno, napraviti sintetizator za GAL16V8.
Pojedini od ovih koraka mogu se rješavati različitim načinima (što determinističkim
algoritmima, što klasičnim ili stohastičkim heuristikama); tema uključuje i izradu
jezičnog procesora za datoteke s opisom dizajna. Cilj je omogućiti korisniku da opiše
dizajn i razviti minimalni skup alata kojima će korisnik taj dizajn moći "zapeći"
u programirljivi sklop koji će potom raditi upravo to. Naglasak je na jednostavnosti
alata kako bi svatko mogao razumjeti svaki od koraka (zato i jesmo u temi e-učenje).
Konkretna motivacija za ovu temu: već godinama studentima na Digitalnoj logici pričamo
da se VHDL nekako utoči u FPGA uporabom jako jako skupih komercijalnih alata, a kako se
od VHDL-a dođe do programiranja sklopa ostane mistika. Stoga je ideja uzeti jedan bitno
jednostavniji programirljivi sklop i za njega razraditi čitav postupak.
-
Optimizacija (engl. Optimization)
Izrada i uporaba različitih optimizacijskih algoritama za rješavanje problema. Optimizacijski
algoritmi mogu biti evolucijski ali i ne moraju (pa zato izdvajam područje). Posebice ako imate
kakav konkretan problem koji biste htjeli riješiti, skroz ste dobrodošli.
-
Analiza slike
Pisali ste među/završni ispit iz Digitalne logike, Interaktivne računalne grafike, Skriptnih
jezika, ..., i odgovore na dio ispita ste unosili na onaj obrazac koji se kasnije automatski
očitava. Na tom obrascu ste mogli vidjeti matricu za unos odgovora, bar-kod koji predstavlja
grupu ili Vaš JMBAG, tablicu za unos JMBAG-a gdje zacrnjujete znamenke Vašeg JMBAG-a, prostor
za unos JMBAG-a koji je predstavljen siluetom 7-segmentnog prikaznika gdje zacrnjujete segmente
svake od znamenaka, prostor za unos korekcije... Jeste li se ikada pitali kako to radi? Za taj
posao koristimo program koji smo sami napisali kao dodatak Ferku. Želite li pisati takve
algoritme (kako lokalizirati koju od tih komponenti; kako pročitati što je korisnik unio;
kako automatski pročitati rukom unesenu korekciju; ...), ovo je tema za Vas. Imamo još svakakvih
ideja.
Neke od mogućih tema:
- Očitavanje rukom pisanih slova unesenih u tablicu (lokalizacija tablice, ekstrakcija slova, prepoznavanje)
- Očitavanje znamenaka unesenih u 7-segmentne predloške
- Lokalizacija i očitavanje rukom pisanog JMBAG-a (bez pomoćne tablice koja bi osigurala da znamenke budu lijepo razmaknute)
Povratak