|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Alexey Pakhunov 2:5020/400 29 May 2002 18:47:55 To : All Subject : [the set-covering problem] Вариации на тему... -------------------------------------------------------------------------------- Hello, All. Вот такая интересная задача: Есть прямоугольное поле M*N, заполненное нулями и единицами (прямоугольная сетка). Все ячейки, заполненные единицами покрыты множеством непересекающихся прямоугольников S1. Координаты и размеры каждого известны. Hапример: X1 X2 X3 X4 X5 +-------+ Y1 | 1 1 | 0 0 0 Множество S1: | | +-------+ Y2 | 1 1 | 0 | 1 1 | (X1, Y1) - (X2, Y2) +-------+ | | Y3 0 0 0 | 1 1 | (X4, Y2) - (X5, Y3) +-------+ Y4 0 0 0 0 0 (X2, Y5) - (X4, Y5) +-----------+ Y5 0 | 1 1 1 | 0 +-----------+ Hужно покрыть все оставшееся пространство (заполненное нулями) множеством непересекающихся прямоугольников S0 таким обазом, чтобы количество прямоугольников было минимальным (близко к минимальному). Дополнительные условия: - Прямоугольники из S1 не должны пересекаться с прямоугольниками из S0. Вообще не должно быть пересекающихся прямоугольников. - Каждая строка должна содержать хотя бы один прямоугольник (из S1 или S0) единичной высоты. - Каждый столбец должен содержать хотя бы один прямоугольник (из S1 или S0) единичной ширины. Кроме того, в силу особенностей алгоритма расстановки 1 и 0: - Hикакие две строки, заполненные исключительно 0, не могут соприкасаться. - Hикакие два столбца, заполненные исключительно 0, не могут соприкасаться. Примечание: оптимального решения не требуется. (Вследствие NP-полноты задачи). Требуется алгоритм, работающий быстро и дающий близкий к оптимальному результат. Для приведенного выше примера решением задачи может быть следующее множество S0: (X3, Y1) - (X5, Y1) (X3, Y2) - (X3, Y2) (X1, Y3) - (X1, Y5) (X2, Y3) - (X3, Y2) (X2, Y4) - (X2, Y4) (X3, Y4) - (X3, Y4) (X4, Y4) - (X4, Y4) (X5, Y4) - (X5, Y5) X1 X2 X3 X4 X5 +-----------+ Y1 1 1 | 0 0 0 | +---+-------+ Y2 1 1 | 0 | 1 1 +---+---+---+ Y3 | 0 | 0 0 | 1 1 | +---+---+---+---+ Y4 | 0 | 0 | 0 | 0 | 0 | | +---+---+---+ | Y5 | 0 | 1 1 1 | 0 | +---+ +---+ With best regards, Alexey Pakhunov. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/6577aff39d83.html, оценка из 5, голосов 10
|