Сложность задачи «Максимальное покрытие» с заданным ограничением размера (P или NP) - PullRequest
2 голосов
/ 05 марта 2020

Classi c Maximum Coverage (M C) - это проблема оптимизации NP-hard. Рассмотрим d элементов U = {e1, e2, ... ed} и c множеств T1, T2 ... T c. Каждый набор содержит несколько элементов в U. Задача состоит в том, чтобы найти не более b наборов, чтобы мощность объединения этих наборов была максимальной. Например, T1 = {e1, e3}, T2 = {e1, e2, e3} и T3 = {e3, e4}. Когда b = 2, оптимальное решение выбирает T2 и T3. Я рассматриваю вариант задачи classi c M C, который накладывает ограничение на размер набора. Рассмотрим 1 км C. Проблема все еще NP-трудная?

Моя гипотеза состоит в том, что кМ C все еще NP-труден, но я изо всех сил пытаюсь придумать полиномиальное сокращение от проверенной проблемы NP-hard, такой как M C , Для произвольного случая максимального покрытия, если бы я смог найти полиномиальную редукцию к моей задаче для всех k> 1, я могу заключить, что моя проблема также NP-трудна. Вот что я получил до сих пор:

  1. Когда k = d, задача тривиально эквивалентна classi c Maximum Coverage.
  2. Когда k = d-1, мы смотрим на данный экземпляр M C и видим, существует ли множество с размером d. Если есть, просто выберите это. В противном случае оно сводится к проблеме кМ C с k = d-1.

Когда k меньше d-1, я прибегаю к динамическому c программированию для завершения сокращения. Тем не менее, это приводит к неполиномиальному сокращению времени, что лишает цели сокращения NP-трудной задачи.

Если кто-нибудь может дать мне несколько советов о том, как мне следует решить эту проблему, или даже просто сделать обоснованное предположение о сложности проблемы кМ C (P или NP), я Я действительно ценю это.

1 Ответ

2 голосов
/ 05 марта 2020

2-M C легко - интерпретируйте наборы размера 2 как граф и запустите ваш любимый алгоритм сопоставления для двудольных графов. Как только вы превышаете соответствующий кардинал, вы застреваете, выбирая синглтоны.

3-M C сложно. Вы можете закодировать экземпляр 3-раздела как 3-M C, приняв наборы в тройки, которые суммируют с целью, а затем решить, разрешимо ли это, проверив покрытие для b = n / 3. .

...