Есть следующая задача:
Задано некоторое ограниченное многосвязное множество
А, необходимо расставить минимальное количество дозорных вышек, с углом обзора 360 градусов и с бесконечным радиусом видимости, так, чтобы совместная область обзора дозорных вышек равнялась множеству
А.
Пример
А:
Пример вышки и её области видимости:
Текущая формализация:
A - ограниченное многосвязное множество из R^2 ( охраняемая территория )
N - натуральное число ( количество дозорных вышек )
Pos_k - точка из
A ( позиция k-ой вышки )
V_k - подмножество из
А,
звездная область относительно точки
Pos_k ( область видимости k-ой вышки )
На данный момент, я придумал жадный алгоритм:
N = 0.
Пока A != ПУСТО делаем
---Находим позицию для вышки так, чтобы её область видимости была максимальна. (На A ввожу сетку, для ---каждого узла сетки нахожу площадь области видимости из данного узла, далее выбираю узел с ----максимальной площадью) Так и получаем позицию вышки.
---Далее из A удаляем область видимости, получившейся вышки, N++;
Но, не понятно будет ли он оптимальным?(
Возможно, его оптимальность можно доказать из
теоремы Радо-ЭдмондсаНо, если не получится это доказать, то хотелось бы найти не жадный алгоритм.
Подскажите, какую литературу можно почитать?
Или может есть похожая задачка?
А может динамическое программирование тут применить? (не знаю к месту ли это, но дин. прогр. я не очень знаю)