Задача о размещении объектов: различия между версиями

Материал из WEGA
Перейти к навигации Перейти к поиску
Строка 9: Строка 9:




В задаче UFL заданы множество <math>\mathcal{F}</math> из <math>n_f \;</math> ''объектов'' и множество <math>\mathcal{C} \;</math> из <math>n_c \;</math> ''клиентов'' (которые также могут называться ''городами'' или ''точками спроса''). Каждому объекту <math>i \in \mathcal{F}</math> назначена ''стоимость открытия объекта'' <math>f_i \;</math>. Кроме того, для каждого объекта <math>i \in \mathcal{F}</math> и клиента <math>j \in \mathcal{C}</math> задана ''стоимость соединения'' <math>c_{ij} \;</math>. Задача заключается в открытии подмножества объектов и соединении каждого клиента с открытым объектом таким образом, чтобы общая стоимость была минимальной. Заметим, что после определения множества открытых объектов оптимальным является соединение каждого клиента с открытым объектом, имеющее минимальную стоимость. Таким образом, задача заключается в нахождении множества <math>S \subseteq \mathcal{F}</math>, минимизирующего значение <math>\sum_{i \in S} f_i + \sum_{j \in C} min_{i \in S} \{ c_{ij} \}</math>. Это определение и определения других вариантов задачи о размещении объектов далее будут предполагать единичный спрос у каждого клиента. Обобщение определений до случая с заданным спросом у каждого отдельного клиента является тривиальным. Задачу UFL можно сформулировать в виде следующей целочисленной программы, предложенной Балински [7]. Пусть <math>y_i, i \in \mathcal{F}</math>, равно 1 в случае, если объект открыт, и 0 в противном случае. <math>Пусть x_{ij}, i \in \mathcal{F}, j \in \mathcal{C}</math>, – доля клиента j, назначенная объекту i.
В задаче UFL заданы множество <math>\mathcal{F}</math> из <math>n_f \;</math> ''объектов'' и множество <math>\mathcal{C} \;</math> из <math>n_c \;</math> ''клиентов'' (которые также могут называться ''городами'' или ''точками спроса''). Каждому объекту <math>i \in \mathcal{F}</math> назначена ''стоимость открытия объекта'' <math>f_i \;</math>. Кроме того, для каждого объекта <math>i \in \mathcal{F}</math> и клиента <math>j \in \mathcal{C}</math> задана ''стоимость соединения'' <math>c_{ij} \;</math>. Задача заключается в открытии подмножества объектов и соединении каждого клиента с открытым объектом таким образом, чтобы общая стоимость была минимальной. Заметим, что после определения множества открытых объектов оптимальным является соединение каждого клиента с открытым объектом, имеющее минимальную стоимость. Таким образом, задача заключается в нахождении множества <math>S \subseteq \mathcal{F}</math>, минимизирующего значение <math>\sum_{i \in S} f_i + \sum_{j \in C} min_{i \in S} \{ c_{ij} \}</math>. Это определение и определения других вариантов задачи о размещении объектов далее будут предполагать единичный спрос у каждого клиента. Обобщение определений до случая с заданным спросом у каждого отдельного клиента является тривиальным. Задачу UFL можно сформулировать в виде следующей целочисленной программы, предложенной Балински [7]. Пусть <math>y_i, i \in \mathcal{F},</math> равно 1 в случае, если объект открыт, и 0 в противном случае. <math>Пусть x_{ij}, i \in \mathcal{F}, j \in \mathcal{C}</math>, – доля клиента j, назначенная объекту i.




min Xi 2F fi yi +X i2F Xj 2C ci jxi j (1)
(1) <math>min \sum_{i \in \mathcal{F}} f_i y_i + \sum_{i \in \mathcal{F}} \sum_{j \in \mathcal{C}} c_{ij} x_{ij}</math>
при условии Xi2F
 
xi j = 1; для всех j 2 C; (2)
(2) при условии <math>\sum_{i \in \mathcal{F}} x_{ij} = 1</math> для всех <math>j \in \mathcal{C}</math>,
 
xi j _ yi _ 0; для всех i 2 F; j 2 C (3)
xi j _ yi _ 0; для всех i 2 F; j 2 C (3)
x _ 0; y 2 f0; 1gn f (4)
x _ 0; y 2 f0; 1gn f (4)

Версия от 11:52, 24 апреля 2018

Ключевые слова и синонимы

Размещение заводов; размещение складов

Постановка задачи

Задачи о размещении объектов рассматривают ситуации, в которых необходимо спланировать местоположение объектов, предназначенных для обслуживания заданного множества клиентов. Цель обычно заключается в минимизации суммы затрат на открытие объектов и затрат на обслуживание их клиентами с учетом различных ограничений – таких как количество и тип клиентов, которых может обслуживать объект. Существует множество вариантов этой задачи, зависящих от структуры стоимостной функции и ограничений, налагаемых на решение. Первые исследования задачи о размещении объектов выполнили Кюн и Гамбергер [35], Балински и Волф [8], Манн [40] и Балински [7]. Обзорные работы представили Краруп и Прузан [34], а также Мирчандани и Фрэнсис [42]. Любопытно отметить, что одним из самых эффективных алгоритмов решения задачи о размещении объектов без ограничений на пропускную способность является прямо-двойственный алгоритм в сочетании с алгоритмом ветвления и границ, предложенный Эрленкоттером [16] еще в 1978 году. Его прямо-двойственная схема близка к техникам, используемым в современной литературе, посвященной алгоритмам аппроксимации.


В последние годы были проведены масштабные исследования алгоритмов аппроксимации для задач о размещении объектов. Обзорные материалы по этим исследованиям выпустили Шмойс [49, 50] и Вайген [55]. Помимо их теоретической и практической важности, задачи о размещении объектов представляют собой яркую демонстрацию применения широко распространенных техник в области алгоритмов аппроксимации, поскольку многие из этих техник (например, округление LP-алгоритма, прямо-двойственные методы и локальный поиск) успешно применяются к этому семейству задач. Далее будут рассмотрены насколько задач о размещении объектов, выполнен экскурс в историю и перечислены алгоритмы аппроксимации с опорой на результаты, полученные в работе Шмойса, Тардош и Аардал [51]. Техники, применяемые к задаче о размещении объектов без ограничений на пропускную способность (uncapacitated facility location, UFL), будут рассмотрены более подробно.


В задаче UFL заданы множество [math]\displaystyle{ \mathcal{F} }[/math] из [math]\displaystyle{ n_f \; }[/math] объектов и множество [math]\displaystyle{ \mathcal{C} \; }[/math] из [math]\displaystyle{ n_c \; }[/math] клиентов (которые также могут называться городами или точками спроса). Каждому объекту [math]\displaystyle{ i \in \mathcal{F} }[/math] назначена стоимость открытия объекта [math]\displaystyle{ f_i \; }[/math]. Кроме того, для каждого объекта [math]\displaystyle{ i \in \mathcal{F} }[/math] и клиента [math]\displaystyle{ j \in \mathcal{C} }[/math] задана стоимость соединения [math]\displaystyle{ c_{ij} \; }[/math]. Задача заключается в открытии подмножества объектов и соединении каждого клиента с открытым объектом таким образом, чтобы общая стоимость была минимальной. Заметим, что после определения множества открытых объектов оптимальным является соединение каждого клиента с открытым объектом, имеющее минимальную стоимость. Таким образом, задача заключается в нахождении множества [math]\displaystyle{ S \subseteq \mathcal{F} }[/math], минимизирующего значение [math]\displaystyle{ \sum_{i \in S} f_i + \sum_{j \in C} min_{i \in S} \{ c_{ij} \} }[/math]. Это определение и определения других вариантов задачи о размещении объектов далее будут предполагать единичный спрос у каждого клиента. Обобщение определений до случая с заданным спросом у каждого отдельного клиента является тривиальным. Задачу UFL можно сформулировать в виде следующей целочисленной программы, предложенной Балински [7]. Пусть [math]\displaystyle{ y_i, i \in \mathcal{F}, }[/math] равно 1 в случае, если объект открыт, и 0 в противном случае. [math]\displaystyle{ Пусть x_{ij}, i \in \mathcal{F}, j \in \mathcal{C} }[/math], – доля клиента j, назначенная объекту i.


(1) [math]\displaystyle{ min \sum_{i \in \mathcal{F}} f_i y_i + \sum_{i \in \mathcal{F}} \sum_{j \in \mathcal{C}} c_{ij} x_{ij} }[/math]

(2) при условии [math]\displaystyle{ \sum_{i \in \mathcal{F}} x_{ij} = 1 }[/math] для всех [math]\displaystyle{ j \in \mathcal{C} }[/math],

xi j _ yi _ 0; для всех i 2 F; j 2 C (3) x _ 0; y 2 f0; 1gn f (4)


В случае LP-релаксации задачи UFL ограничение y 2 f0, 1gnf заменяется ограничением у 2 [0, 1]nf. Заметим, что при отсутствии ограничений на пропускную способность нет необходимости в требовании xij 2 f0, 1g, i 2 F, j 2 C, если каждый клиент должен быть обслужен точно одним объектом, поскольку 0 < xij < 1 согласно ограничениям (2) и (4). Более того, если xij не является целым, то всегда возможно получить целочисленное решение с той же стоимостью, назначив клиента j полностью одному из объектов, обслуживающих j в настоящее время.


Алгоритм y-аппроксимации представляет собой полиномиальный алгоритм, который в задаче минимизации гарантированно дает допустимое решение со значением, не превышающим у z*, где z* - значение оптимального решения, а у > 1. Если у = 1, алгоритм дает оптимальное решение. В задаче минимизации алгоритм дает решение со значением не менее yz*, где 0 < у < 1.


Хохбаум [25] разработала алгоритм O(log n)-аппроксимации для задачи UFL. Путем прямой редукции задачи о покрытии множества можно показать, что результат не может быть улучшен иначе как в случае NP С DTIME[nO(log log n)] в силу результата, полученного Фейге [ ]. Однако, если стоимость соединения ограничена в силу некоторых свойств расстояния в метрическом пространстве, а именно cij = cji > 0 для всех i 2 F, j 2 C (неотрицательность и симметричность) и cij + cji0 + ci0 > с,у для всех I, i0 2 F, j, j € С (неравенство треугольника), то можно получить гарантии константной аппроксимации. Во всех упомянутых выше результатах, за исключением задачи максимизации, предполагается, что стоимости удовлетворяют этим ограничениям. Для случая евклидовых расстояний между объектами и клиентами были получены схемы аппроксимации для некоторых задач о размещении объектов [ ].


Варианты и родственные задачи