Проблем максималне покривености

Проблем максималне покривености је добро познат проблем у пољу информатике, теорије комплексности и операционом истраживању. Код овог проблема као улаз нам је дато неколико скупова и број к. Скупови могу имати неке заједничке елементе. Треба одабрати највише к тих скупова, тако да је максималан број елемената покривен, тј унија одабраних скупова има максималну величину.

Формална, (безтежинска верзија)проблема максималне покривеност је:

Улаз: Број к и колекција скупова С = С1, С2, ..., См.
Излаз: Пронађен је подскуп од скупова, такав да и да је број покривених елемената максималан.

Проблем максималне покривености је НП-тежак, и не може бити апроксимиран са под стандардним претпоставкама. Овај резултат у суштини одговара сложености добијеној помоћу генеричког похлепног алгоритма.[1]

Формулација ИЛП(енгл. integer linear problem)

уреди

Проблем максималне покривености може бити формулисан као следећи линеарни програм са целим бројевима:

 . (максимална сума покривених елемената).

  ; (не више од к скупова је одабрано).

 ; (ако је   онда је бар један скуп   је означен).

 ; (ако је   онда је   покривен)

  (ако је   онда   је одабран за прекривеност).

Похлепни алгоритам

уреди

Похлепни алгоритам за максималну покривеност бира скупове водећи се једним правилом: у сваком кораку, бирамо скуп са највише непокривених елемената. Може се показати да овај алгоритам достиже сложеност од  [2]. Резултати показују да је похлепни алгоритам, најбољи могући алгоритам, полиномијалне временске сложености за проблем максималне покривености[3].

Верзија са тежинама

уреди

У верзији са тежинама сваки елемент   има тежину  . Задатак је наћи максималну покривеност која има и максималну тежину. Специјалан случај је случај кад су све тежине 1.

 . (максимална сума са тежинама покривених елемената).

 ; (не више од к скупова је одабрано).

 ; (ако је   онда је бар један скуп   одабран).

 ; (ако је   онда је   покривен)

  (ако је   онда   одабран за прекривеност).

Похлепни алгоритам у верзији са тежинама при проблему максималне покривености у сваком кораку бира скуп кој садржи максималну тежину непокривених елемената. Овај алгоритам постиже сложеност  .[1].

Максимална покривеност са ограничењем

уреди

У максималној покривености са ограничењем, сваки елемент   има тежину  , али и сваки скуп   има цену  . Уместо   које означава ограничење броја скупова у покривености   буџет   је дат. Овај буџет   ограничава тежину прекривености која може бити одабрана.

 . (максимална сума са тежинама покривених елемената).

  ; (цена одабраних скупова која не може прећи  ).

 ; (ако је   онда је бар један скуп   обабран).

 ; (ако је   онда је   покривен)

  (ако је   онда је   одабран за покривеност).

Похлепан алгоритам нам неће више достављати решење са гарантованом добром преформансом. У најгорем могућем случају извођење овог алгоритма може бити далеко од оптималног решења. Алгоритам апроксимације проширујемо на следећи начин: Прво, после проналаска решења користећи похлепни алгоритам, враћа се најбоље од решења похлепног алгоритма и скуп највеће тежине. Ово можемо назвати модификовани похлепни алгоритам. Друго, почев од свих могућих фамилија скупова са величинама од 1 до бар 3, повећати решења уз помоћ модификованог похлепног алгоритма. Треће, врати најбољи од свих повећаних решења. Овај алгоритам достиже сложеност  . Ово је најбољи могућа сложеност, осим ако  ( ).[4]

Генерализована максимална покривеност

уреди

У уопштеној верзији проблема максималне покривености сваки скуп   има цену  , а елемент   има друкчију тежину и цену која зависи од скупа кој је покрива. Ако је   покривен скупом   тежина   је   и њена цена је  . Буџет   је дат за цену целокупног решења.

 . (максимална сума са тежинама покривених елемената у скуповима у којима су покривени).

 ; (цена одабраних скупова не може да пређе  ).

 ; (елемент   можи бити покривен само једним скупом).

  ; (ако је   онда је бар један скуп   одабран).

  ; (ако је   онда је   покривен скупом  )

 (ако је   онда је   одабран за прекривеност).

Алгоритам

уреди

Алгоритам користи концепт остатка цене/тежине. Остатак цене/тежине је мерен са привременим решењем и то је разлика цене/тежине од цене/тежине добијене у привременом решењу.

Алгоритам има неколико корака. Прво, пронаћи решење коришћењем похлепног алгоритма. У свакој итерацији похлепног алгоритма привремено решење је додато скупу који садржи максимум остатак тежина елемената, подељеног са остатком цена ових елемената, заједно са остатком цене скупа. Друго, поредити решења добијена у првом кораку тако да се добије најбоље решење од њих које користи мали број скупова. Треће, врати најбољи од проверених решења. Овај алгоритам достиже сложеност од  .[5]

Повезани проблеми

уреди

Референце

уреди
  1. ^ а б Г. L. Немхаусер, L. А. Wолсеy анд M. L. Фисхер. Ан аналyсис оф аппроxиматионс фор маxимизинг субмодулар сет фунцтионс I, Матхематицал Программинг 14 (1978), 265–294
  2. ^ Хоцхбаум, D. С. (1997), "Аппроxиматинг цоверинг анд пацкинг проблемс: Сет цовер, вертеx цовер, индепендент сет, анд релатед проблемс", ин Аппроxиматион алгоритхмс фор НП-хард проблемс, ПWС Публисхинг Цомпанy, Бостон, 94-143.
  3. ^ Феиге, У., "А тхресхолд оф лн н фор аппроxиматинг сет цовер", Ј. АЦМ 45, 634-652.
  4. ^ Кхуллер, С., Мосс, А., анд Наор, Ј. 1999. Тхе будгетед маxимум цовераге проблем. Инф. Процесс. Летт. 70, 1 (Апр. 1999), 39-45.
  5. ^ Цохен, Р. анд Катзир, L. 2008. Тхе Генерализед Маxимум Цовераге Проблем. Инф. Процесс. Летт. 108, 1 (Сеп. 2008), 15-22.