МАТЕМАТИКА
Вестн. Ом. ун-та. 2012. № 4. С. 13-16.
УДК 519.87
Е.А. Бельц, А.А. Колоколов
ОПТИМИЗАЦИЯ РАЗМЕЩЕНИЯ ПРЕДПРИЯТИЙ С УЧЕТОМ МИНИМАЛЬНО ДОПУСТИМЫХ РАССТОЯНИЙ*
Рассматривается задача размещения предприятий с учетом минимально допустимых расстояний между ними. Построена и исследована модель целочисленного линейного программирования. Выполнен анализ предложенных авторами алгоритма ветвей и границ и эвристической процедуры для решения указанной задачи, проведен вычислительный эксперимент.
Ключевые слова: исследование операций, дискретная оптимизация, целочисленное программирование, задача размещения, алгоритм ветвей и границ.
Введение
Задачи оптимального размещения предприятий имеют широкий круг приложений в планировании производства, сфере сервиса, автоматизации проектирования и других областях. Большое внимание уделяется исследованию задачи о р-медиане (в том числе конкурентной), задач с учетом предпочтений клиентов, задач с ограничениями на объемы производства, двухстадийной и многоуровневой задач размещения, задач размещения на графах и других постановок [1-6]. Отметим, что многие из указанных задач являются МР-трудными [7].
В данной работе рассматривается задача оптимального размещения предприятий с учётом минимально допустимых расстояний между ними, которая возникла в результате изучения задачи расположения магазинов в торговых комплексах [8-11]. Для решения этой более сложной задачи разработаны и исследованы алгоритм ветвей и границ и эвристические процедуры. Проведен вычислительный эксперимент, показавший перспективность применения предложенных алгоритмов [10; 11].
Постановка задачи
Предположим, что имеется список предприятий нескольких типов и конечное множество пунктов возможного их размещения. В любом пункте можно расположить не более одного предприятия. Известны максимально возможное количество открываемых предприятий каждого типа, минимально допустимые расстояния между пунктами размещения и эффективность деятельности каждого предприятия в указанных пунктах. Требуется найти размещение предприятий с учётом сформулированных выше условий и с максимальной суммарной эффективностью.
Перейдем к постановке рассматриваемой задачи на графе. Пусть m -число типов предприятий, I = {1,..,т}, п - число пунктов размещения, J = {1,...,п}. Дан граф G = (V,W;E,E') с множествами вершин V = ^1,...,1>т} и W = {ы)1,..., ^}, а также с множеством дуг E с {(vi,wj): т^е1, jеJ} и множеством рёбер E' с {( wj,ш): j, I е J, j ^1}. Дуга (vi,wj) содержится в E, если предприятие г-го типа можно разместить в пункте j. Кроме того, заданы
- минимально допустимые расстояния между пунктами размещения,
j # I, j,l е J. Считаем, что ребро (wj,ш) содержится в Е, если расстояние у между пунктами j и I меньше Т-1, т. е. у < Т-1, j' # I), j,l е J. Каждой дуге
присвоен вес ву > 0 - прибыль (эффективность деятельности) предприятия г-го типа в у-м пункте.
* Работа выполнена при финансовой поддержке гранта РФФИ (проект 10-01-00598).
© Е.А. Бельц, А.А. Колоколов, 2012
Пусть Iу - множество типов предприятий, которые могут быть размещены в у-м пункте, у е О; О - множество пунктов размещения, в которых может быть расположено предприятие г-го типа, г е I; кг — верхняя граница числа открываемых предприятий г-го типа, г е I.
Введем переменные задачи: Ху = 1, если предприятие г-го типа размещается в у-м пункте, Ху = О-в противном случае, г е I, у е О
Модель целочисленного линейного программирования (ЦЛП) имеет следующий вид:
/ (*)=ХХ свху ^ тах (1)
¡е1 jеJ¡
при условиях:
X х и - 1’j е J’ (2)
¡е1]
X х V - к ’/е 1 ’ (3)
X хи + Х хР1- 1,(^ ’ ) е Е ’’ (4)
¡е1} ре1
х V е{ОД},/е I,V е Ji. (5)
Здесь: (1) - целевая функция задачи; ограничения (2) означают, что в каждом
пункте можно разместить не более одного
предприятия; неравенства (3) отражают наличие верхних границ для числа открываемых предприятий каждого типа; условия (4)
- учет минимально допустимых расстояний между пунктами при размещении, т. е. в пунктах, связанных ребром, нельзя расположить более одного предприятия. Данная задача всегда имеет оптимальное решение, так как точка Ху = О, г е I, у е О является допустимой.
Если в (1)—(3), (5) условия (5) заменить неравенствами Ху > О, г е I, у е Жг, то получим задачу линейного программирования (ЛП) транспортного типа, среди оптимальных решений которой всегда имеются целочисленные. Заметим, что (1)—(3), (5) при к = 1, г е I — это один из вариантов задачи о назначениях (ЗН) [5]. Таким образом, вместо дискретной ЗН можно решать задачу ЛП.
Утверждение 1. Задача (1)—(5) является МР-трудной.
Доказательство. Покажем, что известная задача о независимом множестве вершин графа максимального веса является частным случаем задачи (1)—(5). Для этого рассмотрим задачу, которая удовлетворяет следующим условиям:
• М = |1|= П
• кг = 1, г е I;
• каждая вершина и смежна только с одной вершиной щ, г е I, у е Ж, г = у, и наоборот.
Очевидно, что для решения полученной таким образом задачи имеет смысл анализировать только подграф (Ш; Е') графа О, приписав каждой вершине щ вес су,
(иу, щу) е Е, у е Ж. Тогда решение исходной задачи сведется к отысканию независимого множества вершин подграфа (Ш; Е) с максимальным суммарным весом, а эта задача является ЛТР-трудной [7].
Отметим, что для получения оптимального решения задачи (1)—(5) можно использовать пакеты программ ЦЛП, однако ее свойства позволили нам разработать специальный алгоритм ветвей и границ для ее решения, описание которого приводится в следующем разделе.
Алгоритмы решения задачи
Для решения задачи (1)—(5) нами предложен алгоритм ветвей и границ, обозначаемый далее ВА [10; 11]. Идея алгоритма заключается в том, что решение исходной задачи сводится к решению последовательности задач о назначениях (ЗН) типа (1)—(3),
(5), которые используются для получения допустимых решений и верхних оценок значений целевой функции.
Для описания алгоритма обозначим через Х оптимальное решение порождаемой алгоритмом ЗН типа (1)—(3), (5), гес — рекорд (текущее наилучшее значение целевой функции (1)).
Алгоритм
Шаг О. Находим некоторые допустимые решения задачи (1)—(5) и вычисляем рекорд гес.
Шаг 1. Определяем оптимальное целочисленное решение х* исходной задачи о назначениях типа (1)—(3), (5). Если ограничения
(4) выполняются для х*, то процесс завершается: получено оптимальное решение задачи
(1)—(5). Иначе переходим на шаг 2.
Шаг 2. Ветвление.
2.1. Ход влево. Пусть ограничение (4) не выполнилось для некоторого ребра (щу, щ), тогда осуществляем ветвление, удаляя вершину щу из графа (вершина исключается вместе с инцидентными ребрами и дугами, т. е. Ху = О, г е I). Переходим на шаг 3.
2.2. Ход вправо. Если текущая вершина
— корень дерева и просмотрена правая ветвь, то процесс завершается: последний найденный рекорд является оптимальным значением целевой функции задачи (1)—(5). Если же текущая вершина — не корень дерева и просмотрена правая ветвь, то переходим к ее родительской вершине, идем на шаг 2.2. Если текущая вершина — не корень дерева и ее правая ветвь не просмотрена, тогда осуществляем ветвление вправо, т. е. из (щу, ип) удаляем щг (вершина исключается вместе с инцидентными ребрами и дугами, т. е. Хи = О, г е I) и переходим на шаг 3.
Шаг 3. Вычисление оценок для значений целевой функции. Находим оптимальное целочисленное решение Х задачи о назначениях типа (1)—(3), (5) на новом графе. Вычисляем /(х'). Если /(х') < гес, то данная ветвь неперспективная, переходим на шаг 2.2.
Оптимизация размещения предприятий с учетом минимально допустимых расстояний
15
Если /(х') > гес и ограничения (11) выполнены для х , то обновляем гес: = /(х) и переходим на шаг 2.2. Если /(х) > гес и ограничения (4) не выполнены для х , то на шаг 2.1.
Пусть к = | Е | и р(п) - трудоемкость (число операций) некоторого алгоритма решения рассматриваемой ЗН. Например, в качестве такого алгоритма можно взять венгерский алгоритм, трудоемкость которого равна О(п3) [5]. Имеет место следующее.
Утверждение 2. Алгоритм ВА за 0(2кр(п)) операций находит оптимальное решение задачи (1)-(5).
Доказательство проведем методом индукции по параметру к.
Если к = 0, т. е. в задаче отсутствуют ограничения вида (4), то трудоёмкость алгоритма ВА равна р(п).
Пусть утверждение имеет место для к= к, |Е '1=к и трудоёмкость алгоритма равна 0(2кр(п)).
Покажем это для к = к + 1. В данном случае возможны следующие варианты.
1. Оказалось, что ограничение с номером к + 1 выполнено, найденное оптимальное решение не изменилось, поэтому трудоёмкость решения задачи равна 0(2кр(п)).
2. Ограничение с номером к + 1 не выполнено, тогда осуществляется ветвление, строятся и решаются две подзадачи. Согласно предположению индукции трудоёмкость решения каждой из них равна 0(2кр(п)), откуда вытекает, что трудоёмкость алгоритма ВА равна 0(2к+1р(п)).
Так как задача (1)-(5) всегда имеет допустимое решение, то в результате будет получено оптимальное решение исходной задачи размещения.
Таким образом, при фиксированном числе к алгоритм ВАявляется полиномиальным.
Для исследования алгоритма ВА рассмотрим следующее семейство задач.
Семейство 3. Пусть | /| > \J\, кі = 1, і є I и граф (V, Ш; Е) полный, а вершины из Ш в графе (Ш; Е') имеют степень не более 1.
Нетрудно показать, что на данном семействе достигается верхняя оценка трудоемкости алгоритма ВА из утверждения 2.
Для получения хорошего начального допустимого решения нами был разработан ряд эвристических процедур, в частности, эвристическая процедура, обозначаемая далее НА.
Идея НА заключается в том, чтобы построить независимое множество вершин подграфа (Ш; Е') графа О и на полученном множестве решить ЗН типа (1)-(3), (5) известными полиномиальными алгоритмами, более подробное изложение данной процедуры см. в [5].
Отметим, что трудоемкость эвристики HA равна О(п3), а для семейства S она находит оптимальное решение.
Экспериментальные исследования
Описанные выше алгоритмы BA и HA для решения задачи (1)-(5) при к = 1, i el были реализованы с использованием интегрированной среды разработки Microsoft Visual Studio 2008 на языке C++. При этом на этапе решения ЗН (1)-(3), (5) применялся венгерский алгоритм трудоемкости О(п3).
Исходные данные задач генерировались случайным образом. Число открываемых предприятий и пунктов их размещения варьировалось от 50 до 100, а элементы матрицы - в интервале [1,100].
Цель вычислительного эксперимента заключалась в исследовании поведения алгоритмов в зависимости от значений параметра h, размерности задач, выделении семейств «трудных» задач, а также в сравнении с пакетом прикладных программ IBM ILOG CPLEX.
В процессе тестирования алгоритмов были получены следующие результаты: время работы BA существенно возрастало с увеличением значений параметра h; на задачах небольшой размерности алгоритм BA находил оптимальное решение задачи, как правило, быстрее пакета IBM ILOG CPLEX; отклонение значений целевой функции, полученных процедурой HA, от оптимальных значений не превышало 0,5 %, а время её работы составляло не более секунды.
Проведенные экспериментальные исследования показали перспективность дальнейшего развития и применения предложенных моделей ЦЛП и алгоритмов для решения задач размещения предприятий с учетом минимально допустимых расстояний.
ЛИТЕРАТУРА
[1] Береснев В. Л. Дискретные задачи размещения и полиномы от булевых переменных. Новосибирск : Изд-во Ин-та математики, 2005. 408 с.
[2] Васильев И. Л., Климентова К. Б., Кочетов Ю. А. Новые нижние оценки для задачи размещения с предпочтениями клиентов // Ж. вычисл. ма-тем. и матем. физ. 2009. Т. 49. № 6. C. 1055— 1066.
[3] Колоколов А. А., Леванова Т. В. Задачи оптимального размещения предприятий и метод декомпозиции Бендерса : учеб.-метод. пособие. Омск : Изд-во Ом. гос. ун-та, 2008. 40 с.
[4] Колоколов А. А., Леванова Т.В., Федоренко А.С. Декомпозиция Бендерса для двухстадийной задачи размещения // Методы оптимизации и приложения : труды XIV Байкальской между-нар. школы-семинара. Иркутск : ИСЭМР СО РАН, 2008. Т. 1. С. 435-443.
[5] Хэмди А. Т. Введение в исследование операций. 7-е изд. : пер. с англ. М. : ИД «Вильямс», 2005. 912 с.
[6] Farahani R. Z, Hekmatfar M. (eds.) Facility Location: Concepts, Models, Algorithms and Case Stud-
ies. Contributions to Management Science. Springer ; Dordrecht ; Heidelberg ; London ; New York, 2009. 549 p.
[7] Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. М. : Мир, 1987. 416 с.
[8] Бельц Е. А. Решение одной задачи размещения предприятий // Теоретические знания - в практические дела : сб. матер. Х Междунар. науч.-практ. конф. Ч. 2. Омск, 2009. С. 26-27.
[9] Бельц Е. А., Колоколов А. А. Оптимизация размещения предприятий в торговых комплексах // Проблемы оптимизации и экономические
приложения : матер. IV Всерос. конф. Омск : Полиграфический центр «КАН», 2009. С. 213.
[10] Бельц Е. А. Разработка алгоритмов для решения одной задачи размещения предприятий // Молодежь III тысячелетия : тр. науч.-практ. студ. конф. Омск, 2010. С. 11-14.
[11] Бельц Е. А., Колоколов, А. А. О решении одной задачи размещения предприятий с ограничениями на минимально допустимые расстояния // Методы оптимизации и их приложения : тр. ХV Байкальской междунар. школы-семинара. Т. 4 : Дискретная оптимизация. Иркутск : РИО ИДСТУ СО РАН, 2011. С. 42-47.