Задача о покрытии

advertisement
Задача о покрытии
Задано n возможных мест расположения пожарных станций. Величины
Cj, j = 1,... ,n задают стоимость размещения пожарной станции в месте j. Известно m
объектов, на которые должны выезжать пожарные бригады. Причем пожарной
бригаде имеет смысл выезжать на объект, если он находится на расстоянии не более
D км, поэтому все объекты разбиты на группы объектов Mj, которые можно достичь
из пожарной станции j. Нужно определить, в каких местах разместить пожарные
станции, чтобы все объекты были достижимы из действующих пожарных станций, а
суммарные затраты на их размещение были бы минимальными.
Построим вспомогательную матрицу (aij)m×n, чтобы задать разбиение объектов
на группы:
Введем n булевых переменных
Целевая функция задачи — минимальные суммарные затраты на открытие станций:
при ограничениях, что каждый объект должен быть достижим хотя бы из одной
пожарной станции:
и ограничения на значения переменных:
Модели вида (3.20)-(3.22) соответствуют задачам о покрытии множества.
В рассмотренной задаче допускалось, что один объект может обслуживаться
несколькими пожарными станциями, неравенство (3.21) гарантировало выполнение этого условия. Заменим в (3.21) знаки неравенства на равенства:
Получим более жесткое требование, которое означает, что нужно построить
разбиение множества объектов на непересекающиеся подмножества. Модели вида
(3.20), (3.22), (3.23) соответствуют задачам о разбиении множества на
непересекающиеся подмножества. Заметим, что решение задачи о разбиении
является также решением задачи о покрытии, но обратное неверно. Задача о
разбиении может не иметь решения при разрешимой задачи о покрытии.
Например, пусть n = 3, m = 3, Mi = {1, 2}, М2 = {1, 3}, M3 = {2, 3}. Тогда задача о
покрытии имеет несколько решений: х1 = (1,0,1), х2 = (0,1,1), а задача о разбиении
не разрешима. Если же М3 = {3}, то задача о разбиении имеет решение: х = (1, 0,
1).
Download