Demo aplikacije za predmet Optimizacija resursa, Red. prof. dr Samim Konjicija, 2025. godina
Interaktivna web aplikacija za demonstraciju problema optimizacije izbora laptopa. Prikazuje osnovne koncepte optimizacije kroz praktičan primjer gdje se biraju laptopi sa ciljem maksimiziranja performansi uz ograničen budžet.
Web demo koji vizualizira algoritme pretraživanja grafa:
- DFS (Depth-First Search) - pretraživanje u dubinu
- BFS (Breadth-First Search) - pretraživanje u širinu
Omogućava interaktivno iscrtavanje grafa i praćenje koraka algoritama.
Demonstracija dinamičkog programiranja kroz klasične probleme:
- Problem ranca (Knapsack problem)
- Fibonacci brojevi
- Najduža zajednička podsekvenca (LCS)
Prikazuje tablice memorisanja i optimalne podstrukture.
Vizualizacija algoritama gradijentnog pretraživanja:
- Gradient Descent
- Prikaz konvergencije prema lokalnim/globalnim optimumima
- Dostupno kao web i Python/Tkinter aplikacija
Python/Tkinter aplikacija koja demonstrira lokalnu pretragu (Hill Climbing):
- Iterativno poboljšanje trenutnog rješenja
- Vizualizacija pretraživanja u 2D prostoru
- Prikaz lokalnih optimuma
Iterated Local Search (ILS) demo aplikacije:
- Kombinacija lokalne pretrage i perturbacije
- Vizualizacija eskejpa iz lokalnih optimuma
- Praćenje najbolje pronađene tačke
Demonstracija Tabu Search algoritma:
- Tabu lista za sprječavanje cikličnog vraćanja
- Short-term i long-term memorija
- Vizualizacija pretraživanja uz zabranjene poteze
- Dostupno kao web i Python/Tkinter aplikacija
Primjena Tabu Search algoritma na problem ranca:
- Demonstracija rada sa diskretnim problemima
- Aspiracioni kriterijum
- Praćenje istorije rješenja
Simulated Annealing demo sa poređenjem algoritama:
- Lokalna pretraga
- Tabu pretraživanje
- Simulirano hlađenje
Omogućava konfigurisanje:
- Temperature parametara (T₀, Tₘᵢₙ)
- Sheme hlađenja (Geometrijsko, Logaritamsko, Linearno)
- Vizualizacija funkcija i historije pretraživanja
Kompletna web aplikacija za demonstraciju genetičkog algoritma:
- Populacijska optimizacija
- Fitness funkcije (kvadratna, Rastrigin, Ackley, Griewank, Levy)
- Operatori selekcije (Ruletski točak, Ranking, Turnirska)
- Operatori ukrštanja (Jedna tačka, Dvije tačke, Uniformno)
- Mutacija sa konfigurisanom vjerovatnoćom
- Elitizam
- Cilj optimizacije (maksimizacija/minimizacija)
- Graf evolucije fitnessa kroz generacije
- Prikaz populacije hromozoma
Interaktivna vizualizacija genetičkih operatora:
- Operator ukrštanja (one-point, two-point, uniform)
- Operator mutacije
- 2D vizualizacija u ravni
- Binarna reprezentacija sa prikaz izmijenjenih bita
- Konfigurisanje vjerovatnoća (pₑ, pₘ)
- Prikaz više pokušaja operacija sa statistikom
Unificirana Python/Tkinter aplikacija koja integriše:
- Lokalnu pretragu
- Tabu pretraživanje
- Simulirano hlađenje
- Genetički algoritam sa svim parametrima
GA specifične opcije:
- Veličina populacije
- Operatori ukrštanja i selekcije
- Parametri mutacije
- Elitizam
- Grafički prikaz evolucije fitnessa nakon završetka
Python/Tkinter aplikacija za demonstraciju primjene GA na problem krojenja:
- Optimizacija krojenja drvenih ploča sa Tetris oblicima
- Dva načina popunjavanja:
- Slobodno: Oblici se mogu postaviti bilo gdje
- Gravitacijski: Oblici moraju biti podržani (na dnu ili na drugim oblicima)
- Konfigurisanje dimenzija ploče (5-20 × 5-20)
- Izbor broja komada za svaki oblik (I, O, T, L, J, S, Z)
- Svi GA parametri (populacija, selekcija, ukrštanje, mutacija, elitizam)
- Dva kanvasa za vizualizaciju:
- Lijevi: Prikaz najboljeg rješenja iz trenutne populacije
- Desni: Prikaz odabrane jedinke sa combobox-om za izbor (dropdown ili unos broja)
- Graf evolucije fitnessa kroz generacije
- Fitness funkcija sa kaznom za praznine (gravitacijski mod)
- Help meni sa detaljnim uputstvom i About informacijama
Interaktivna web aplikacija za poređenje mehanizama selekcije u GA:
- Četiri mehanizma selekcije:
- Skraćivanje (Truncation) - odabir top N% jedinki
- Ruletski točak (RWS) - proporcionalno fitnessu
- Rangiranje (Ranking) - bazirano na rangu, ne fitnessu
- Turnirska selekcija (Tournament) - k-turniri sa vjerovatnoćom p
- Odabir mehanizama za prikaz putem checkboxova
- Konfigurisanje parametara za svaki mehanizam
- Vizualizacija vjerovatnoća selekcije:
- Bar chart za direktno poređenje odabranih metoda
- Pie chart za svaki mehanizam pojedinačno
- Prikaz sortrane populacije sa fitness vrijednostima i rangovima
- Idealan alat za razumijevanje razlika između metoda selekcije
Otvorite HTML fajlove direktno u web browseru (preporučuje se Chrome, Firefox ili Edge).
Potreban Python 3.x sa bibliotekama:
tkinter(uobičajeno dolazi sa Python instalacijom)numpymatplotlib
Pokretanje:
python3 <naziv_aplikacije>.pyMaterijali kreirani za potrebe predmeta Optimizacija resursa. © 2025. Red. prof. dr Samim Konjicija