Tema projekta: Minimum weight directed dominating set problem
Autori: Vladimir Mijić i Bojan Gavrić
U teoriji grafova, minimalni dominantni skup u usmjerenom težinskom grafu (minimum weighted directed dominating set - MWDDS) problem je optimizacioni problem koji se odnosi na pronalaženje najmanjeg podskupa čvorova u usmjerenom težinskom grafu (težine su na čvorovima) tako da svaki čvor tog grafa može biti dosegnut iz najmanje jednog čvora koji se nalazi u tom podskupu. Takav podskup se naziva dominantni skup.
MWDDS problem je NP težak problem, što znači da ga je teško riješiti i da nije poznat efikasan algoritam za pronalaženje tačnog rješenja. Ali je moguće pronaći približna rješenja različitim pristupima.
Prvi pristup rješavanju MWDDS problema je korištenje heurističkog algoritma, kao što je pohlepno ili lokalno pretraživanje, za pronalaženje približnog rješenja. Heuristički algoritmi mogu biti brzi u pronalasku rješenja, ali ne garantuju da će to rješenje biti optimalno.
Drugi pristup za rješavanje ovog problema je putem Integer linear programming (ILP).
ILP model možemo formulisati:
- G=(V, E) je usmjereni graf, gdje je V skup čvorova, a E je skup grana.
- Neka je n = |V| i m = |E|
- Neka je
$x_i$ binarna varijabla koja označava da li je čvor i uključen u dominantni skup (tada$x_i$ = 1), u suprotnom ($x_i$ = 0)
Cilj je minimizovati sumu težina onih čvorova koji se nalaze u dominantnom skupu.
gdje sa
Ograničnja obezbjeđuju da svaki čvor u grafu može biti dosegnut iz najmanje jednog čvora iz dominantnog skupa.
Ovaj problem ima mnogo praktičnih primjena:
- Dizajniranje i analiza telekomunikacionih mreža - npr. može se koristiti za pronalaženje najmanjeg skupa pristupnih tačaka kako bi se osigurala pokrivenost i efikasnost mreže (i slični problemi iz drugih oblasti gdje je potrebno pronaći neku grupu tačaka);
- Dizajniranje VLSI integrisanih kola;
- Rudarenju podataka (data mining), bioinformatici, itd.
-
Definicija prostora pretrage, funkcije cilja, funkcija prilagodljivosti (po mogućnosti), komponente rješenja.
-
Pohlepni pristup rješavanju problema gdje treba definisati pohlepnu funkciju, dodavanje komponente u rješenje.
-
Odabrati genetski ili VNS pristup
- Za genentski: definisati jedinku, operator selekcije, ukrštanja, operator mutacije.
- Za VNS: definisati lokalnu pretragu, strukture okolina, objasniti zašto su baš takve uzete.
-
Implementirati model u PuLP
/docs
seminarski rad i još neki radovi na ovu temu/instances
instance grafova, podijeljene u kategorije - test, small, medium, large/main
Python skripte koje sadrže implementacije algoritama/notebooks
Jupyter notebook-ovi za testiranje algoritama i vizualizaciju./results
eksperimentalni rezultati/utils
pomoćne skripte
-
Nakkala, M.R., Singh, A. (2020). Heuristics for Minimum Weight Directed Dominating Set Problem. In: Singh, P., Sood, S., Kumar, Y., Paprzycki, M., Pljonkin, A., Hong, WC. (eds) Futuristic Trends in Networks and Computing Technologies. FTNCT 2019. Communications in Computer and Information Science, vol 1206. Springer, Singapore. link
-
Albuquerque, M., & Vidal, T. (2018). An efficient matheuristic for the minimum-weight dominating set problem. Applied Soft Computing, 72, 527-538. link
-
Jovanovic, R., Tuba, M., & Simian, D. (2010). Ant colony optimization applied to minimum weight dominating set problem. 12th WSEAS International Conference on Automatic Control, Modelling and Simulation, ACMOS '10. 322-326. link
-
Vazirani, V. V. (2003). Approximation algorithms. Springer. link
-
Williamson, D. P., & Shmoys, D. B. (2011). The design of approximation algorithms. Cambridge University Press. link
-
Đukanović, M., & Matić, D. (2022). Uvod u operaciona istraživanja. Prirodno-matematički fakultet, Univerzitet u Banjoj Luci. link
- Klonirajte repozitorij na svoj lokalni računar:
ova komanda će kreirati foldermwdds_test
i u njemu klonirati projekatgit clone https://github.com/neuralmaticv/operations-research-project_mwdds.git mwdds_test cd mwdds_test
- Kreiranje virtuelnog okruženja i instaliranje potrebnih paketa
python -m venv venv # za operativni sistem zasnovan na UNIX-u source venv/bin/activate # za operativni sistem Windows venv\Scripts\activate pip install -r requirements.txt
- Pokretanje Jupyter Notebook-a:
Jupyter Notebook će se pokrenuti u vašem web pregledaču i sada možete otvoriti postojeće notebook-ove iz foldera
jupyter notebook
/notebooks
i raditi s njima.