Problem maksimalne pokrivenosti

Problem maksimalne pokrivenosti je dobro poznat problem u polju informatike, teorije kompleksnosti i operacionom istraživanju. Kod ovog problema kao ulaz nam je dato nekoliko skupova i broj k. Skupovi mogu imati neke zajedničke elemente. Treba odabrati najviše k tih skupova, tako da je maksimalan broj elemenata pokriven, tj unija odabranih skupova ima maksimalnu veličinu.

Formalna, (beztežinska verzija)problema maksimalne pokrivenost je:

Ulaz: Broj k i kolekcija skupova S = S1, S2, ..., Sm.
Izlaz: Pronađen je podskup S S {\displaystyle S^{'}\subseteq S} od skupova, takav da | S | k {\displaystyle \left|S^{'}\right|\leq k} i da je broj pokrivenih elemenata | S i S S i | {\displaystyle \left|\bigcup _{S_{i}\in S^{'}}{S_{i}}\right|} maksimalan.

Problem maksimalne pokrivenosti je NP-težak, i ne može biti aproksimiran sa 1 1 e + o ( 1 ) 0.632 {\displaystyle 1-{\frac {1}{e}}+o(1)\approx 0.632} pod standardnim pretpostavkama. Ovaj rezultat u suštini odgovara složenosti dobijenoj pomoću generičkog pohlepnog algoritma.[1]

Formulacija ILP(енгл. integer linear problem)

Problem maksimalne pokrivenosti može biti formulisan kao sledeći linearni program sa celim brojevima:

e j E y j {\displaystyle \sum _{e_{j}\in E}y_{j}} . (maksimalna suma pokrivenih elemenata).

x i k {\displaystyle \sum {x_{i}}\leq k}  ; (ne više od k skupova je odabrano).

e j S i x i y j {\displaystyle \sum _{\,e_{j}\in S_{i}}x_{i}\geq y_{j}} ; (ako je y j > 0 {\displaystyle y_{j}>0} onda je bar jedan skup e j S i {\displaystyle e_{j}\in S_{i}} je označen).

0 y j 1 {\displaystyle 0\leq y_{j}\leq 1} ; (ako je y j = 1 {\displaystyle y_{j}=1} onda je e j {\displaystyle e_{j}} pokriven)

x i { 0 , 1 } {\displaystyle x_{i}\in \{0,1\}} (ako je x i = 1 {\displaystyle x_{i}=1} onda S i {\displaystyle S_{i}} je odabran za prekrivenost).

Pohlepni algoritam

Pohlepni algoritam za maksimalnu pokrivenost bira skupove vodeći se jednim pravilom: u svakom koraku, biramo skup sa najviše nepokrivenih elemenata. Može se pokazati da ovaj algoritam dostiže složenost od 1 1 e {\displaystyle 1-{\frac {1}{e}}} [2]. Rezultati pokazuju da je pohlepni algoritam, najbolji mogući algoritam, polinomijalne vremenske složenosti za problem maksimalne pokrivenosti[3].

Verzija sa težinama

U verziji sa težinama svaki element e j {\displaystyle e_{j}} ima težinu w ( e j ) {\displaystyle w(e_{j})} . Zadatak je naći maksimalnu pokrivenost koja ima i maksimalnu težinu. Specijalan slučaj je slučaj kad su sve težine 1.

e E w ( e j ) y j {\displaystyle \sum _{e\in E}w(e_{j})\cdot y_{j}} . (maksimalna suma sa težinama pokrivenih elemenata).

x i k {\displaystyle \sum {x_{i}}\leq k} ; (ne više od k skupova je odabrano).

e j S i x i y j {\displaystyle \sum _{e_{j}\in S_{i}}x_{i}\geq y_{j}} ; (ako je y j 0 {\displaystyle y_{j}\geq 0} onda je bar jedan skup e j S i {\displaystyle e_{j}\in S_{i}} odabran).

0 y j 1 {\displaystyle 0\leq y_{j}\leq 1} ; (ako je y j = 1 {\displaystyle y_{j}=1} onda je e j {\displaystyle e_{j}} pokriven)

x i { 0 , 1 } {\displaystyle x_{i}\in \{0,1\}} (ako je x i = 1 {\displaystyle x_{i}=1} onda S i {\displaystyle S_{i}} odabran za prekrivenost).

Pohlepni algoritam u verziji sa težinama pri problemu maksimalne pokrivenosti u svakom koraku bira skup koj sadrži maksimalnu težinu nepokrivenih elemenata. Ovaj algoritam postiže složenost 1 1 e {\displaystyle 1-{\frac {1}{e}}} .[1].

Maksimalna pokrivenost sa ograničenjem

U maksimalnoj pokrivenosti sa ograničenjem, svaki element e j {\displaystyle e_{j}} ima težinu w ( e j ) {\displaystyle w(e_{j})} , ali i svaki skup S i {\displaystyle S_{i}} ima cenu c ( S i ) {\displaystyle c(S_{i})} . Umesto k {\displaystyle k} koje označava ograničenje broja skupova u pokrivenosti a {\displaystyle a} budžet B {\displaystyle B} je dat. Ovaj budžet B {\displaystyle B} ograničava težinu prekrivenosti koja može biti odabrana.

e E w ( e j ) y j {\displaystyle \sum _{e\in E}w(e_{j})\cdot y_{j}} . (maksimalna suma sa težinama pokrivenih elemenata).

c ( S i ) x i B {\displaystyle \sum {c(S_{i})\cdot x_{i}}\leq B}  ; (cena odabranih skupova koja ne može preći B {\displaystyle B} ).

e j S i x i y j {\displaystyle \sum _{e_{j}\in S_{i}}x_{i}\geq y_{j}} ; (ako je y j 0 {\displaystyle y_{j}\geq 0} onda je bar jedan skup e j S i {\displaystyle e_{j}\in S_{i}} obabran).

0 y j 1 {\displaystyle 0\leq y_{j}\leq 1} ; (ako je y j = 1 {\displaystyle y_{j}=1} onda je e j {\displaystyle e_{j}} pokriven)

x i { 0 , 1 } {\displaystyle x_{i}\in \{0,1\}} (ako je x i = 1 {\displaystyle x_{i}=1} onda je S i {\displaystyle S_{i}} odabran za pokrivenost).

Pohlepan algoritam nam neće više dostavljati rešenje sa garantovanom dobrom preformansom. U najgorem mogućem slučaju izvođenje ovog algoritma može biti daleko od optimalnog rešenja. Algoritam aproksimacije proširujemo na sledeći način: Prvo, posle pronalaska rešenja koristeći pohlepni algoritam, vraća se najbolje od rešenja pohlepnog algoritma i skup najveće težine. Ovo možemo nazvati modifikovani pohlepni algoritam. Drugo, počev od svih mogućih familija skupova sa veličinama od 1 do bar 3, povećati rešenja uz pomoć modifikovanog pohlepnog algoritma. Treće, vrati najbolji od svih povećanih rešenja. Ovaj algoritam dostiže složenost 1 1 / e {\displaystyle 1-1/e} . Ovo je najbolji moguća složenost, osim ako N P D T I M E {\displaystyle NP\subseteq DTIME} ( n O ( log log n ) {\displaystyle n^{O(\log \log n)}} ).[4]

Generalizovana maksimalna pokrivenost

U uopštenoj verziji problema maksimalne pokrivenosti svaki skup S i {\displaystyle S_{i}} ima cenu c ( S i ) {\displaystyle c(S_{i})} , a element e j {\displaystyle e_{j}} ima drukčiju težinu i cenu koja zavisi od skupa koj je pokriva. Ako je e j {\displaystyle e_{j}} pokriven skupom S i {\displaystyle S_{i}} težina e j {\displaystyle e_{j}} je w i ( e j ) {\displaystyle w_{i}(e_{j})} i njena cena je c i ( e j ) {\displaystyle c_{i}(e_{j})} . Budžet B {\displaystyle B} je dat za cenu celokupnog rešenja.

e E , S i w i ( e j ) y i j {\displaystyle \sum _{e\in E,S_{i}}w_{i}(e_{j})\cdot y_{ij}} . (maksimalna suma sa težinama pokrivenih elemenata u skupovima u kojima su pokriveni).

c i ( e j ) y i j + c ( S i ) x i B {\displaystyle \sum {c_{i}(e_{j})\cdot y_{ij}}+\sum {c(S_{i})\cdot x_{i}}\leq B} ; (cena odabranih skupova ne može da pređe B {\displaystyle B} ).

i y i j 1 {\displaystyle \sum _{i}y_{ij}\leq 1} ; (element e j = 1 {\displaystyle e_{j}=1} moži biti pokriven samo jednim skupom).

S i x i y i j {\displaystyle \sum _{S_{i}}x_{i}\geq y_{ij}}  ; (ako je y j 0 {\displaystyle y_{j}\geq 0} onda je bar jedan skup e j S i {\displaystyle e_{j}\in S_{i}} odabran).

y i j { 0 , 1 } {\displaystyle y_{ij}\in \{0,1\}}  ; (ako je y i j = 1 {\displaystyle y_{ij}=1} onda je e j {\displaystyle e_{j}} pokriven skupom S i {\displaystyle S_{i}} )

x i { 0 , 1 } {\displaystyle x_{i}\in \{0,1\}} (ako je x i = 1 {\displaystyle x_{i}=1} onda je S i {\displaystyle S_{i}} odabran za prekrivenost).

Algoritam

Algoritam koristi koncept ostatka cene/težine. Ostatak cene/težine je meren sa privremenim rešenjem i to je razlika cene/težine od cene/težine dobijene u privremenom rešenju.

Algoritam ima nekoliko koraka. Prvo, pronaći rešenje korišćenjem pohlepnog algoritma. U svakoj iteraciji pohlepnog algoritma privremeno rešenje je dodato skupu koji sadrži maksimum ostatak težina elemenata, podeljenog sa ostatkom cena ovih elemenata, zajedno sa ostatkom cene skupa. Drugo, porediti rešenja dobijena u prvom koraku tako da se dobije najbolje rešenje od njih koje koristi mali broj skupova. Treće, vrati najbolji od proverenih rešenja. Ovaj algoritam dostiže složenost od 1 1 / e o ( 1 ) {\displaystyle 1-1/e-o(1)} .[5]

Povezani problemi

  • Problem pokrivenosti skupa, pokrivanje svih elemenata sa što manje skupova.

Reference

  1. ^ а б G. L. Nemhauser, L. A. Wolsey and M. L. Fisher. An analysis of approximations for maximizing submodular set functions I, Mathematical Programming 14 (1978), 265–294
  2. ^ Hochbaum, D. S. (1997), "Approximating covering and packing problems: Set cover, vertex cover, independent set, and related problems", in Approximation algorithms for NP-hard problems, PWS Publishing Company, Boston, 94-143.
  3. ^ Feige, U., "A threshold of ln n for approximating set cover", J. ACM 45, 634-652.
  4. ^ Khuller, S., Moss, A., and Naor, J. 1999. The budgeted maximum coverage problem. Inf. Process. Lett. 70, 1 (Apr. 1999), 39-45.
  5. ^ Cohen, R. and Katzir, L. 2008. The Generalized Maximum Coverage Problem. Inf. Process. Lett. 108, 1 (Sep. 2008), 15-22.
  • Vazirani, Vijay V. (2001). Approximation Algorithms. Springer-Verlag. ISBN 3-540-65367-8. 
  • Uriel Feige, A Threshold of ln n {\displaystyle n} for Approximating Set Cover, Journal of the ACM (JACM). . 45 (4): 634 — 652,.  Недостаје или је празан параметар |title= (помоћ)July 1998.