Projekt napravljen je tijekom 3. godine preddiplomskog studija na predmetu "Projekt R" pod mentorstvom prof. dr. sc. Marin Golub. Uz web stranicu koja je napravljena za edukacijske svrhe postoji i dokumentacija projekta, prezentacija te programska izvedba izabranih algoritama.
Programski dio sastoji se od GUI koji je povezan sa skriptom za pokretanje svakog od izabranih problema. Programski jezik izbora je Python 3.9 te korišten je PyGAD za izvedbu GA (genetskog algoritma).
Optimizacija genetskim algoritmom predstavlja sofisticiranu metodu u polju računalnih znanosti koja nalazi inspiraciju u principima prirodne selekcije i evolucije. Ova metoda je dio šire kategorije evolucijskih algoritama i koristi se za rješavanje različitih tipova optimizacijskih problema, gdje klasični pristupi ne daju zadovoljavajuće rezultate ili su izrazito vremenski zahtjevni.
Jedan od poznatih problema koji se rješava upotrebom genetskih algoritama je "Knapsack problem" ili problem ranca. U ovom problemu cilj je odabrati skup predmeta s određenim vrijednostima i težinama tako da ukupna vrijednost predmeta bude maksimalna, a da pritom ukupna težina ne prelazi zadano ograničenje težine ranca. Genetski algoritmi pristupaju ovom problemu generiranjem populacije potencijalnih rješenja, koja se zatim evolucijskim procesima selekcije, križanja i mutacije optimizira s ciljem pronalaska najboljeg mogućeg rješenja.
Slično, u optimizaciji problema voznih ruta (Vehicle Routing Problem - VRP), gdje je cilj minimizirati ukupnu udaljenost ili vrijeme potrebno za isporuku robe do više odredišta koristeći ograničen broj vozila, genetski algoritmi mogu efikasno balansirati između različitih ruta i pridruženih troškova kako bi pronašli optimalnu konfiguraciju.
Kada se radi o rješavanju Sudoku zagonetki, koje zahtijevaju popunjavanje brojeva u mreži 9x9 tako da svaki red, stupac i 3x3 podmreža sadrže sve brojeve od 1 do 9, genetski algoritmi mogu brzo iterirati kroz veliki broj potencijalnih kombinacija i identificirati valjano rješenje kroz procese koji oponašaju prirodni odabir.
Na kraju, optimizacija u kontekstu pletenja ili "knitting problem" predstavlja jedinstveni izazov gdje se traži najefikasniji način izrade uzoraka i proizvoda. Genetski algoritmi ovdje mogu pomoći u optimizaciji redoslijeda radnji pletenja tako da se smanji vrijeme izrade i poveća kvaliteta gotovog proizvoda.
Primjena genetskih algoritama u ovim i mnogim drugim problemima pokazuje njihovu svestranost i moć u pronalaženju optimalnih ili suboptimalnih rješenja u situacijama gdje tradicionalne metode faliraju ili su neefikasne. Svojom sposobnošću da iterativno poboljšavaju rješenja, genetski algoritmi predstavljaju ključan alat u savremenoj optimizaciji.