Леванова

advertisement
УДК 519.854.3; 004.023.00
РЕШЕНИЕ ОДНОЙ ЗАДАЧИ РАЗМЕЩЕНИЯ С НЕФИКСИРОВАННЫМ
СПРОСОМ
Т.В. Леванова, А.Ю. Гнусарев
Омский филиал ФГБУН Института математики им. С.Л. Соболева СОРАН, г. Омск, Россия
Аннотация – Задачи размещения образуют отдельный класс дискретной оптимизации и имеют
широкий круг приложений. В работе рассматривается размещение предприятий с учетом конкуренции и
изменяющегося спроса клиентов. Моделирование нефиксированного спроса приводит к использованию
нелинейных функций, что усложняет разработку методов решения. В статье построены алгоритмы локального
поиска для указанной задачи, выполнен их экспериментальный анализ на специально созданных сериях
тестовых примеров.
Ключевые слова: дискретная оптимизация, задачи размещения, алгоритмы локального поиска
Введение
Одним из современных направлений прикладной математики является развитие
приближенных методов. Полученные в настоящее время результаты свидетельствуют о
перспективности их использования к решению сложных комбинаторных проблем. Особую
область занимают дискретные задачи оптимального размещения, возникающие при выборе
оптимальной стратегии действия на конкурентном рынке, проектировании сетей
предприятий обслуживания, а также принятии решений в других областях. Значительный
интерес представляют задачи размещения, в которых, в отличие от классических моделей,
для более полного отражения прикладной ситуации используются нелинейные функции.
Такие модели мало изучены, количество используемых методов их решения ограничено. В
работе рассматривается задача размещения с нефиксированным спросом, приводится её
математическая модель с нелинейной целевой функцией. Для нахождения приближенного
решения предлагается вариант алгоритма имитации отжига, развивается техника локального
поиска с чередующимися окрестностями. Проводится экспериментальный анализ
построенных алгоритмов на специально созданных сериях тестовых примеров.
Задача размещения с нефиксированным спросом
Рассматривается ситуация, в которой новая компания выходит на рынок товаров и
услуг с намерением разместить свои предприятия обслуживания. Ей придется бороться с уже
существующими на этом рынке предприятиями конкурента за спрос клиентов. Чем больше
клиентов привлечет компания, тем большую долю от их спроса она обслужит и, тем самым,
увеличит прибыль. Спрос клиентов на товары не является фиксированным и зависит от типа
предприятий, мест расположения, привлекательности, расстояний до клиента и других
факторов. Компании необходимо определить, где и какого типа разместить новые
предприятия с тем, чтобы привлечь максимальную долю спроса клиентов.
Впервые данная ситуация была рассмотрена в работе R. Aboolian, O. Berman,
D. Krass [1]. В ней авторы сформулировали задачу и построили её математическую модель.
Приведём используемые обозначения:
M – множество точек спроса;
P  M – подмножество пунктов возможного размещения предприятий;
C  P – пункты спроса, занятые конкурентом;
S  P \ C – пункты возможного размещения предприятий компании;
R – набор вариантов работы, по которым могут функционировать предприятия,
rR;
d ij – расстояние от i -го предприятия до j –го, i, j  M ;
wi – вес спроса, i  M ;
a jr – привлекательность предприятия вида r  R , размещенного в пункте j  M ;
 – параметр чувствительности к расстоянию;
i – коэффициент гибкости спроса в пункте i  M ;
c jr – стоимость открытия предприятия при использовании варианта r  R в пункте
jS .
Переменные задачи принимают значение x jr  1 , если предприятие в пункте j  S
работает по варианту r  R , x jr  0 – в противном случае.
Для определения полезности u ij предприятия j  S для клиента i  M найдем
коэффициенты kijr  a jr (d ij  1)   . Тогда u ij вычисляется следующим образом: u ij   k ijr x jr .
rR
Общая полезность U i (C ) для пункта i  M от предприятий, открытых конкурентами
определяется с помощью формулы U i (C )   u ij .
jC
Функция спроса имеет нелинейный вид: g (U i )  1  exp( iU i ) , где U i – общая
полезность для клиента i  M от всех открытых предприятий компании и конкурента,
U i   k ijr x jr  U i (C ) .
jS rR
Доля MS i новых предприятий в общем объеме обслуживания клиента i  M равна
k ijr x jr

U i (S )
jS rR
.
MS i 

U i ( S )  U i (C )  k ijr x jr  U i (C )
jS rR
С использованием введенных обозначений математическая модель задачи примет
следующий вид:
(1)
 k ijr x jr
 (1  exp(  ( k
iM
i
jS rR
ijr
x jr  U i (C ))))  (
jS rR
 k
jS rR
c
jS rR
x
rR
jr
ijr
x jr  U i (C )
)  max
x jr  B ,
(2)
 1, j  S ,
(3)
jr
x jr  0,1, j  S , r  R ,
(4)
Неравенство (2) ограничивает расход средств в рамках установленного бюджета;
условия (3) показывают, что предприятие может функционировать не более чем по одному
варианту.
Алгоритмы решения и вычислительный эксперимент
В данной работе предложены детерминированный вариант (VND) метода поиска с
чередующимися окрестностями (VNS) и алгоритм имитации отжига (SA) для решения
задачи размещения с нефиксированным спросом.
Детерминированный вариант поиска с переменными окрестностями отличается от
основной схемы VNS фиксированным порядком смены окрестностей и поиском локального
оптимума относительно каждой из них. Общая схема алгоритма состоит в следующем [2]. В
начале работы определяется множество используемых окрестностей, порядок их просмотра.
Выбирается допустимое исходное решение и вычисляется значение целевой функции,
которое будет служить начальным рекордом. Алгоритм за один шаг специальным образом
просматривает список окрестностей и находит улучшающее решение. Поиск заканчивается в
случае, если список окрестностей просмотрен и не найдено решение, лучше рекорда.
Выбор окрестности N , N : x  N ( x), играет важную роль при построении алгоритмов
локального поиска. С одной стороны, нужно, чтобы множество N x  было как можно
меньшей мощности для сокращения трудоемкости алгоритма. С другой стороны, более
широкая окрестность приводит к лучшему локальному оптимуму. Поэтому при создании
алгоритмов приходится искать баланс между этими факторами. Для каждой задачи функцию
N приходится определять, учитывая ее специфику. Более того, можно предложить
несколько функций окрестности с разными по мощности множествами N x  и, как
следствие, с разными множествами локальных оптимумов.
Будем называть решением задачи вектор z  z j  такой, что z j  r  x jr  1 . Это
означает, что булеву вектору ставится в соответствие целочисленный, компонента j
которого равна номеру варианта r  R функционирования j –го предприятия j  M .
Были предложены два вида окрестностей решения z  z j  . Для их описания введем
следующие обозначения:
P  1,, p – множество номеров открытых предприятий;
Q  1, , q – множество закрытых предприятий.

 – вектор перспективности, размерность S . Изначально   0 и затем изменяется
по следующим правилам. Если при уменьшении компоненты zs , s  1,, P, и увеличении
компоненты zt , t  1,, Q, вектора z получаем вектор z  такой, что f z  f z  , то
 s :  s  1 ,  t :  t  1 . Если f z  f z  , то  s :  s  1 ,  t :  t  1 .
Опишем предложенные окрестности.
Окрестность N1 .
Окрестностью N1 вектора x называется множество векторов z  :
1)
закрываем случайно выбранное открытое предприятие с номером p и
вариантом z p .
2)
открываем с вариантом z p одно из закрытых предприятий с номером q ,
имеющее наибольшую перспективность a q , т.е. zq  z p , p  P, q  Q .
Окрестность N 2 .
Окрестностью N 2 вектора x называется множество векторов z  :
1)
случайным образом выбираем номер предприятия p для закрытия;
2)
случайным образом выбираем номер предприятия q для открытия;
3)
случайным образом выбираем целое число   1, min z p , R  zq  ;
4)
изменяем варианты z p : z p   , zq : zq   , p  P, q  Q .
Окрестность Лина-Кернигана (Окрестность N 3 ).
Определим окрестность Лина–Кернигана ( LK ), используемую при решении
конкурентной задачи размещения с нефиксированным спросом. Для данного вектора
открытых предприятий z окрестность LK состоит из K элементов, полученных
следующим образом. В некоторой окрестности N данного решения z , выбирается лучшее
решение z1 , которое считается первой точкой окрестности LK . Далее уже из окрестности
N z1 решения z1 из множества N z1 \ z выбирается лучшая точка z 2 , которая считается
второй точкой окрестности. Процесс продолжается до тех пор, пока не получится требуемое
количество точек в окрестности.
Алгоритм имитации отжига [3] начинает работу с некоторого допустимого решения.
На каждой итерации в его окрестности выбирается соседнее. Если оно лучше по целевой
функции, то новое решение заменяет текущее. В противном случае переход осуществляется
с некоторой вероятностью. После чего уменьшается значение параметра температуры по
установленному закону и, если выполнен критерий остановки, то алгоритм заканчивает
работу. При этом критериями остановки могут служить минимальная температура,
предельное количество итераций и другие.
Предложенные алгоритмы реализованы на языке C++ и тестировались на компьютере
Intel i5-2450M, 2,50GHz, оперативная память 2048 Мб. Перед началом основного
вычислительного эксперимента проводились специальные серии вычислений, направленные
на настройку параметров алгоритмов. Затем выполнялся основной этап экспериментального
исследования с целью апробации и сравнения построенных алгоритмов решения
рассматриваемой задачи размещения. Две серии тестовых примеров содержали по 96 задач и
генерировались по правилам, описанным в [4]. В первой серии расстояния между пунктами
удовлетворяют неравенству треугольника, во второй – принимают произвольные значения.
 
 
Рис. 1. Произвольные расстояния. Средние улучшения рекорда GAMS (CoinBonmin)
На рисунке 1 представлены результаты вычислительного эксперимента для
произвольных расстояний. В среднем алгоритм VND улучшил известные рекорды GAMS на
1,55%, алгоритм SA – на 1,71%. Отметим, что VND быстрее SA более чем в три раза.
Примеры на Евклидовых расстояниях оказались более сложными для системы GAMS.
С ее помощью получены рекорды лишь для 13 задач. За отведенное время алгоритмы VND и
SA улучшили все рекорды, найденные решателем CoinBonmin (рис. 2).
Рис. 2. Евклидовы расстояния.
Сравнение значений целевых функций для CoinBonmin и алгоритмов локального поиска
Примеры на Евклидовых расстояниях оказались более сложными для системы GAMS.
С ее помощью получены рекорды лишь для 13 задач. За отведенное время алгоритмы VND и
SA улучшили все рекорды, найденные решателем CoinBonmin (рис. 2).
Заключение
В работе получили дальнейшее развитие методы приближенного решения для задачи
размещения предприятий с нефиксированным спросом. Построены варианты алгоритмов
локального поиска с чередующимися окрестностями и имитации отжига, проведено их
экспериментальное исследование. Замечено преимущество перед пакетом GAMS (решатель
CoinBonmin). Показана перспективность исследуемого подхода к решению нелинейных
дискретных задач оптимального размещения.
Работа выполнена при поддержке РФФИ, проект 14-001-00656.
Библиографический список
1. Aboolian, R. Competitive facility location and design problem / R. Aboolian, O. Berman,
D. Krass // EJOR. – Vol. 182. – 2007. – P. 40–62.
2. Hansen, P. Variable neighbourhood search: algorithms and applications / P. Hansen,
N. Mladenovic, J. F. Moreno–Perez // Ann. of Operations Research. – Vol. 175. – 2010. – P. 367–
407.
3. Kirkpatrick, S. Optimization by Simulated Annealing / S. Kirkpatrick, C. D. Gelatt, M. P.
Vecchi // Science. – Vol. 220. – 1983. – P. 671–680.
4. Levanova, T. Heuristic algorithms for the location problem with flexible demand /
T. Levanova, A. Gnusarev // Proc. of 42nd International Symposium on Operations Research
“SYM–OP–IS 2015”. – 2015. – P. 245–247.
Download