У нас есть сетки. У нас есть набор прямоугольников на этой сетке, каждый прямоугольник может быть представлен как двоичная матрица -by- . Мы хотим накрыть сетку этими прямоугольниками.N 1 N 2 R
Является ли версия решения этого набора проблем NP-полной?
- Ввод: коллекция прямоугольников на сетке (размер ввода: ) иN 1 N 2 L K ∈ N +
- Вывод: Подмножество с и содержащее для каждой ячейки хотя бы один прямоугольник, покрывающий ее.| S | ≤ K S
Я обнаружил, что одномерный случай ( ) может быть решен за полиномиальное время с помощью динамического программирования: любое оптимальное покрытие будет объединением
- оптимальное покрытие для некоторой подзадачи покрытия первых ячеек .
- одномерный прямоугольник, то есть интервал, охватывающий оставшиеся ячеек.
Однако я не думаю, что DP может работать для двумерной задачи: для одномерной задачи вам нужно решить подзадач, но для 2D у вас есть \ binom {N_1 + N_2} {N_2} подзадач (количество северо-восточной решетки). дорожки на сетке).( N 1 + N 2
Я думаю, что проблема может быть NP, но я не уверен (хотя это кажется сложнее, чем P), и мне не удалось найти полиномиальное сокращение от NP-полной задачи (3-SAT, Vertex Cover, ...)
Любая помощь или подсказка приветствуется.
|=
=|