Problem maksimalne pokrivenosti

Извор: testwiki
Датум измене: 13. јануар 2024. у 18:59; аутор: imported>FelixBot (normativna kontrola)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

Шаблон:Neprovereni seminarski

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 od skupova, takav da |S'|k i da je broj pokrivenih elemenata |SiS'Si| maksimalan.

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

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

ejEyj. (maksimalna suma pokrivenih elemenata).

xik ; (ne više od k skupova je odabrano).

ejSixiyj; (ako je yj>0 onda je bar jedan skup ejSi je označen).

0yj1; (ako je yj=1 onda je ej pokriven)

xi{0,1} (ako je xi=1 onda Si 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 11e[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 ej ima težinu w(ej). Zadatak je naći maksimalnu pokrivenost koja ima i maksimalnu težinu. Specijalan slučaj je slučaj kad su sve težine 1.

eEw(ej)yj. (maksimalna suma sa težinama pokrivenih elemenata).

xik; (ne više od k skupova je odabrano).

ejSixiyj; (ako je yj0 onda je bar jedan skup ejSi odabran).

0yj1; (ako je yj=1 onda je ej pokriven)

xi{0,1} (ako je xi=1 onda Si 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 11e.[1].

Maksimalna pokrivenost sa ograničenjem

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

eEw(ej)yj. (maksimalna suma sa težinama pokrivenih elemenata).

c(Si)xiB ; (cena odabranih skupova koja ne može preći B).

ejSixiyj; (ako je yj0 onda je bar jedan skup ejSi obabran).

0yj1; (ako je yj=1 onda je ej pokriven)

xi{0,1} (ako je xi=1 onda je Si 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 11/e. Ovo je najbolji moguća složenost, osim ako NPDTIME(nO(loglogn)).[4]

Generalizovana maksimalna pokrivenost

U uopštenoj verziji problema maksimalne pokrivenosti svaki skup Si ima cenu c(Si), a element ej ima drukčiju težinu i cenu koja zavisi od skupa koj je pokriva. Ako je ej pokriven skupom Si težina ej je wi(ej) i njena cena je ci(ej). Budžet B je dat za cenu celokupnog rešenja.

eE,Siwi(ej)yij. (maksimalna suma sa težinama pokrivenih elemenata u skupovima u kojima su pokriveni).

ci(ej)yij+c(Si)xiB; (cena odabranih skupova ne može da pređe B).

iyij1; (element ej=1 moži biti pokriven samo jednim skupom).

Sixiyij ; (ako je yj0 onda je bar jedan skup ejSi odabran).

yij{0,1} ; (ako je yij=1 onda je ej pokriven skupom Si)

xi{0,1}(ako je xi=1 onda je Si 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 11/eo(1).[5]

Povezani problemi

Reference

Шаблон:Reflist

Шаблон:Normativna kontrola

  1. 1,0 1,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.