Računarstvo

Rešavanje problema višestrukog nasleđivanja prilikom prevođenja iz programskog jezika C++ u programski jezik C#

Ivan Bokor (2004)
učenik 3. razreda Zemunske gimnazije, Beograd

Mentorstvo:
Nikola Bebić, École polytechnique fédérale de Lausanne, Lozana, Švajcarska
Diana Šantavec, Prirodno-matematički fakultet, UNS, Novi Sad

U ovom radu ispitane su dve metode za implementaciju višestrukog nasleđivanja u programskom jeziku C# prilikom prevođenja koda iz C++-a. Prva metoda za implementaciju jeste dodavanjem objekata bazne klase u izvedenu, koji služe kao neka vrsta pokazivača na baznu klasu. Pomoću tih objekata, prosleđivani su pozivi odgovarajućim metodama bazne klase, čime je simuliran mehanizam višestrukog nasleđivanja. Mana ove metode jeste što zahteva ručno definisanje konverzije objekta bazne klase u izvedenu i obrnuto. To je rešeno u drugoj metodi upotrebom interfejsa (eng. interface). Rezultujući mehanizmi pokazali su se kao uspešni što se tiče metoda (moguće je pozivati metode bazne klase preko objekta izvedene klase) a neuspešni što set tiče polja. Jedini sigurni način pristupa nekom polju bazne klase preko objekta izvedene klase, jeste korišćenjem objekta unutar izvedene klase koji pokazuje na odgovarajuću baznu klasu. Analizom rezultata dobijenih primenom ove dve metode, pronađeno je nekoliko uslova koji moraju biti ispunjeni kako bi višestruko nasleđivanje bilo tačno prevedeno. Postojanje ovih uslova onemogućava izradu kompletnog transpajlera iz C++-a u C#.


Dizajniranje transportnih mreža simuliranjem ponašanja sluzave buđi

Pavle Sekešan (2003)
učenik 4. razreda Računarske gimnazije, Beograd

Mentorstvo: 
Aleksa Tešić, Connect The Dots, Beograd

U ranijim istraživanjima pokazalo se da vrsta sluzave buđi Physarum polycephalum prikazuje naizgled “inteligentno” ponašanje u svojoj potrazi za hranom, šireći svoju biomasu tako da utroši što manje energije. U ovom radu je na osnovu matematičkog modela ponašanja ovog organizma uveden algoritam koji je primenjen na problem dizajniranja transportnih mreža. Konstruisane transportne mreže algoritma sluzave buđi poređene su po ukupnim troškovima izgradnje, podložnosti kvaru i efikasnosti sa NSGA-II algoritmom, koji je često korišćen u praksi za optimizaciju sa više kriterijuma. Rezultati ova dva algoritma su upoređeni korišćenjem novouvedene metrike preostajanja, koja kombinuje najbolje nađena rešenja oba algoritma u novi skup rešenja, a zatim izračunava koji procenat rešenja jednog algoritma je takođe član novonastalog kombinovanog skupa rešenja, tj. koji procenat rešenja algoritma “preostaje” u kombinovanom skupu rešenja. Pokazalo se da algoritam sluzave buđi konzistentno daje bolje rezultate po upotrebljenoj metrici na grafovima gradova evropskih država.


Pronalaženje arhitekture rekurentne neuronske mreže neosetljive na težine

Ognjen Nešković (2003)
učenik 4. razreda Računarske gimnazije, Beograd

Mentorstvo:
Aleksa Tešić, Connect The Dots, Beograd
Vladimir Lunić, Fakultet tehničkih nauka, Univerzitet u Novom Sadu

U radu je predložen algoritam za pronalaženje arhitektura rekurentnih neuronskih mreža koje su neosetljive na izbore “težina” i “biasa” (tj. parametara neuronskih mreža). Algoritam za nalaženje ovih arhitektura zasnovan je na genetskom algoritmu, na algoritmu NEAT i radu “Weight agnostic neural networks” (Gaier i Ha 2019). Za potrebe evaluacije korišćena su okruženja Open AI gym. Na ovim okruženjima prethodno su testirani mnogi algoritmi koji se smatraju najboljim poznatim algoritmima u oblasti učenja sa podsticajem. Za neka od ovih okruženja predloženi algoritam postiže rezultate koji su u rangu najboljih poznatih rezultata za ta okruženja. Po broju neurona u skrivenim slojevima, neke mreže dobijene ovim algoritmom su bolje (imaju manji broj neurona) nego mreže dobijene u radu Gaiera i Ha. Osetljivost mreža na promene u težinama i biasima je veća nego u radu Gaiera i Ha.


Rukovodioci programa: Ivan Glišin, Milan Todorović

WordPress Appliance - Powered by TurnKey Linux