УДК 004.023
РАЗРАБОТКА МЕМЕТИЧЕСКОГО АЛГОРИТМА ДЛЯ РЕШЕНИЯ ЗАДАЧ ОПТИМАЛЬНОГО ПЛАНИРОВАНИЯ ГРУЗОПЕРЕВОЗОК
О.А. Плотников, Е.С. Подвальный
Разработан и реализован в программном коде меметический алгоритм, решающий задачи оптимального планирования грузоперевозок. В алгоритме применяется несколько операторов скрещивания и подход использования «транспопуляций»
Ключевые слова: меметический алгоритм (МА), кроссинговер, скрещивание, транспопуляция
1. Постановка задачи
При распределении продукции, транспортные компании сталкиваются с двумя основными задачами: прокладка оптимального маршрута для каждого рейса (задача о коммивояжере) и оптимальная загрузка транспортных средств (ТС) (задача о рюкзаке).1
Перед нами стоит задача комплексного решения данных задач.
В реальных условиях мы сталкиваемся с рядом ограничений, накладываемых на дорожный граф:
1) ограничение скорости;
2) средняя скорость движения по данной дороге в зависимости от времени в течение дня;
3) ограничения по габаритам и массе ТС.
Исходя из этого, расстояние между двумя
точками не является константой, т.к. во-первых, для разных ТС могут быть различные ограничения по габаритам и массе, во-вторых, в разное время дня выгоднее выбрать тот или иной путь в зависимости от загруженности дорог (средней скорости движения).
Кроме того, компания имеет парк автомобилей, каждый из которых за день может совершать несколько рейсов.
Также может присутствовать необходимость посещать точку в строго определенное время.
Таким образом, на входе алгоритма мы имеем дорожный граф с нерегулярным весом (время проезда между двумя точками) ребер и ограничениями по массе и габаритам ТС, парк автомобилей со своими характеристиками и список заявок на доставку со списком товаров.
В общем виде поставленную задачу можно сформулировать следующим образом:
Плотников Олег Александрович - ВГТУ, аспирант, тел. (473)2437718
Подвальный Евгений Семенович - ВГТУ, д-р техн. наук, профессор, тел. (473) 247-74-04
-* пип
1:: = ;^-— (1)
где ^ - время пути между точками к и к+1, 1:п - время пути из точки п в точку 0, п - количество точек доставки, — - загрузка транспорта в Чк
каждом рейсе, т - количество рейсов.
Как видно из полученной формулировки, мы имеем два основных параметра, по которым проводится оптимизация: минимальное время, затраченное на обслуживание всех клиентов, и максимальное использование ТС.
Помимо сформированных критериев, введем критерий оптимизации по количеству затраченного топлива на обслуживание всех точек доставки. Данная оценка является некоторой взвешенной суммой двух предыдущих и оправдана в силу следующих обстоятельств:
1) чем короче путь, тем меньше расход топлива - оптимизация по первому критерию;
2) чем эффективнее загрузка транспорта, тем меньшее количество единиц транспорта необходимо задействовать и, соответственно, расход топлива ниже - оптимизация по второму критерию.
Далее будем для отработки алгоритмов рассматривать оптимизацию именно по количеству расхода топлива, т.е.
£*=!** (2)
где к - количество рейсов, Ук - затраченный объем топлива.
2. Генетические и меметические алгоритмы.
Генетический алгоритм [1, 2, 3, 4, 5, 6, 7, 8, 9] — это эвристический алгоритм поиска, используемый для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, напоми-
нающих биологическую эволюцию. Является разновидностью эволюционных вычислений, с помощью которых решаются оптимизационные задачи с использованием методов естественной эволюции, таких как наследование, мутации, отбор и срещивание (кроссинговер). Отличительной особенностью генетического алгоритма является акцент на использование оператора «скрещивания», который производит операцию рекомбинации решений-кандидатов, роль которой аналогична роли скрещивания в живой природе.
Задача формализуется таким образом, чтобы её решение могло быть закодировано в виде вектора («генотипа») генов, где каждый ген может быть битом, числом или неким другим объектом. В классических реализациях ГА предполагается, что генотип имеет фиксированную длину. Однако существуют вариации ГА, свободные от этого ограничения.
Некоторым, обычно случайным, образом создаётся множество генотипов начальной популяции. Они оцениваются с использованием «функции приспособленности», в результате чего с каждым генотипом ассоциируется определённое значение («приспособленность»), которое определяет насколько хорошо фенотип, им описываемый, решает поставленную задачу.
Из полученного множества решений («поколения») с учётом значения «приспособленности» выбираются решения (обычно лучшие особи имеют большую вероятность быть выбранными), к которым применяются «генетические операторы», результатом чего является получение новых решений. Для них также вычисляется значение приспособленности, и затем производится отбор («селекция») лучших решений в следующее поколение.
Этот набор действий повторяется итеративно, так моделируется «эволюционный процесс», продолжающийся несколько жизненных циклов (поколений), пока не будет выполнен критерий остановки алгоритма. Таким критерием может быть:
- нахождение глобального, либо субопти-мального решения;
- исчерпание числа поколений, отпущенных на эволюцию;
- исчерпание времени, отпущенного на эволюцию.
Генетические алгоритмы служат, главным образом, для поиска решений в многомерных пространствах поиска.
Продолжением развития эволюционных алгоритмов являются меметические алгоритмы [10, 11, 12, 13, 14, 15, 16, 17]. Они работают
аналогично генетическим алгоритмам, но вместо генов используют мемы, которые обладают собственной памятью. В процессе работы такие алгоритмы наряду с типичными операциями генетического алгоритма используют также операции индивидуального обучения мемов, либо операции локального поиска [18].
3. Меметический алгоритм решения транспортных задач.
Для поставленной задачи решением является список маршрутов доставки. Исходя из этого, мы можем представить решение в следующем виде:
А1 А2 А3 . Ап
V! 0 1 0 ... 0
V2 1 0 1 ... 0
V3 0 0 0 ... 1
Vn 0 0 0 ... 0
где А1..Ап - заявки, V1..Vn - транспорт-
ные средства, 1 - признак выполнения заявки А1 транспортным средством VI.
Отметим, что каждая заявка может быть выполнена только одним транспортным средством за одно посещение.
Для каждого транспортного средства, помимо списка точек доставки, необходимо учитывать очередность их посещения. Для этого дополним мем приоритетной очередью.
А1 А2 А3 ... Ап
2 1 п ... 3
где А1..Ап - заявки, 1.. п - приоритет выполнения соответствующей заявки.
Также мем содержит значение функции приспособленности, которое соответствует совокупному расходу топлива.
Начальная популяция формируется случайным образом.
Затем к популяции применяем операторы скрещивания и мутации.
Для обеспечения большего разнообразия мемов, будем использовать несколько операторов скрещивания.
Первый, наиболее очевидный способ -взять половину заявок из одного мема и половину из второго. Однако в целях обеспечения большего разнообразия будем производить скрещивание не в половинном соотношении, а в случайном соотношении (рис. 1). С фактической точки зрения мы объединяем удачные по-
следовательности выполнения заявок транспортными средствами.
Результаты тестов работы МА приведены в таблице.
10100 110010111
01010 000100000
00001 001001000
10100
01010
00001
110001010 000010001 001100100
00100 110010111
10001 000100000
01010 001001000
Рис.1. Скрещивание в случайном соотношении
Оператор мутаций аналогичен третьему и четвертому операторам скрещивания, за исключением того, что замена битов происходит
случайным образом.
Рис. 3. Скрещивание выбором случайных битов
Второй оператор скрещивания, который мы будем использовать, также использует генератор случайных чисел. С помощью генератора случайных чисел мы получаем два индекса: і - индекс, с которого будет производиться копирование второго мема, j - индекс бита, до которого будет производиться копирование. В один мем мы добавляем последовательность заявок от і до j из другого мема (рис. 2).
101 001100101 '0
010 010001000 01
ООП 100010010 00
11 11 +
101 оопвдою 10
010 100000100 01
:оо 010011001 :о
001 001100101 11
1М 010001000 00
010 100010010 00
Рис. 2. Скрещивание интервалом от і до j
Третий оператор скрещивания поочередно просматривает биты мема и с некоторой вероятностью гап^т.пех1Воо1еап() заменяет их на биты из второго мема (рис. 3). Данный кроссовер схож с техникой итеративного рандомизированного улучшения.
Четвертый оператор работает аналогично третьему, но вероятность замены битов меньше. Здесь вероятность задается выражением гап<1от.пех1Воо1еап() & гап<1от.пех1Воо1еап().
В каждое новое поколение мы добавляем наилучшее решение из предыдущего поколения, чтобы сохранить его.
Кроме описанных операторов скрещивания было протестировано скрещивание более двух мемов. Данный подход не дал положительных результатов, поэтому мы отказались от его использования.
Отметим, что помимо операторов скрещивания и мутации мы используем локальный поиск внутри каждого мема на основе алгоритма муравьиной колонии [19, 20]. Таким образом, мы сокращаем время, необходимое на поиск решения.
Следующим этапом эволюционных алгоритмов является отбор особей для воспроизведения следующего поколения.
В нашем случае отбор особей для следующего поколения происходит выбором наиболее приспособленных особей. Размер популяции является фиксированным числом. Для отбора особей мы сортируем мемы в зависимости от значения функции приспособленности по возрастанию. Затем отбираем наиболее приспособленные из них, т.е. те, которые находятся в начале массива.
Для оценки решения в текущем поколении популяции мы берем значение наиболее приспособленной особи в данной популяции.
Ниже приведен график работы МА (рис.
4). Из него видно, что основное улучшение решения происходит в первые поколения работы МА. Далее решение приходит к какому-то локальному оптимуму.
Таким образом, можно сделать вывод о том, что необходимо обеспечить большее разнообразие мемов.
Рис. 4. График наилучшего значения приспособленности
Для обеспечения разнообразия применяют островную модель ГА с топологией «кольцо» (рис. 5), как наиболее эффективной топологией островных моделей алгоритмов. Островные ГА позволяют улучшить надежность решений. Период миграций задается динамически: миграция хромосом из популяции в популяцию производится только тогда, когда хотя бы в одной из популяций длительно не улучшалось решение.
Рис. 5. Схема работы топологии «кольцо» островного генетического алгоритма при трех «островах»
Применение островного подхода к данной задаче не дало ощутимых результатов, т.к. во всех «островах» решение быстро сводилось к субоптимальному.
На основе островных алгоритмов, был сформирован подход (рис. 6), который дает большее разнообразие. Суть его заключается в
том, что на каждом поколении основной популяции формируется несколько дополнительных популяций (назовем их «транспопуляции»), которые характеризуются малым количеством поколений (<10). Малое количество поколений продиктовано тем, что на большее количество поколений необходимо много вычислительных затрат, а с другой стороны в первые поколения выполняется достаточная оптимизация «транспопуляций».
Рис. 6. Схема работы МА с использованием транспопуляций при трех транспопуляциях
Однако стоит отметить, что количество поколений в транспопуляциях должно быть достаточным для проведения некоторой оптимизации, такой, чтобы мемы транспопуляций могли конкурировать с мемами основной популяции.
Полученные решения представлены в виде списка маршрутов (рис. 7). Каждый маршрут содержит детализацию рейса (рис.8).
ГО Транспорт Загрузка Длина м.,, Время м... Расходы
7499 11 790000 73788 318 11.06830...
7500 12 1830000 44470 245 6.670640...
7501 13 0 0 0 0.0
7502 14 900000 56315 234 8.447321...
7503 15 0 0 0 0.0
7504 16 700000 77680 284 11.65206...
7505 17 2250000 37793 168 5.669055...
7506 19 670000 34702 125 5.205348...
7507 20 450000 22856 98 3.428498...
7508 21 0 0 0 0.0
7509 22 0 0 0 0.0
Рис. 7. Список маршрутов
ID Марш.., . Заявка Клиент Длина Время
70364 8299 113 83 18331,815... 76
70365 8299 108 78 3385.7852... 35
70366 8299 100 70 6416.7675... 39
70367 8299 0 0 17579.439... 53
70368 8299 116 86 10794.432... 47
70369 8299 0 0 10983.633... 32
Рис. 8. Детализация маршрута Из рис. 7 видно, что некоторые ТС не используются, следовательно, при работе МА мы сталкиваемся с тем, что в результате генетических операторов задействуются лишние ТС, что приводит к худшему решению. Таким образом, возникает необходимость отсечения неиспользуемых ТС, если они не используются в наилучшем решении некоторое количество поколений.
ID Транспорт Загрузка Длинам... Время ма... Расходы
8299 15 210000 67491 282 10.123781...
8300 16 760000 71166 293 10.674989...
8301 17 2870000 37955 199 5.6933653...
8302 19 700000 40766 146 6.1150474...
8303 20 660000 60828 236 9.1242182...
8304 21 270000 77141 284 11.571219...
8305 23 390000 56453 255 8.4679611...
8306 24 990000 68669 267 10.300373...
Рис. 9. Список маршрутов после отсечения неиспользуемых ТС
Таким образом, разработан меметический алгоритм для решения транспортных задач. Данный алгоритм использует несколько операторов скрещивания, локальный поиск и подход использования транспопуляций для увеличения надежности работы МА.
Пример отображения маршрута на карте в результате работы МА представлен на рис. 10.
/
Рис. 10. Пример отображения маршрута
Литература
1. Емельянов В. В., Курейчик В. В., Курейчик В. М. Теория и практика эволюционного моделирования. М : Физматлит, 2003. стр. 432. ВВЫ 5-9221-0337-7.
2. Курейчик В. М., Лебедев Б. К., Лебедев О. К. Поисковая адаптация: теория и практика. М : Физматлит, 2006. стр. 272. ВВЫ 5-9221-0749-6.
3. Гладков Л. А., Курейчик В. В., Курейчик В. М. Генетические алгоритмы: Учебное пособие. — 2-е изд. М : Физматлит, 2006. стр. 320. ISBN 5-9221-0510-8.
4. Гладков Л. А., Курейчик В. В, Курейчик В. М. и др. Биоинспирированные методы в оптимизации: монография. М : Физматлит, 2009. стр. 384. ISBN 978-5-92211101-0.
5. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы. — 2-е изд. М : Горячая линия-Телеком, 2008. стр. 452. ISBN 5-93517-103-1.
6. Banzhaf, Wolfgang, и др. Genetic Programming -An Introduction. San Francisco : Morgan Kaufmann, 1998.
7. A Genetic Algorithm-Based, Hybrid Machine Learning Approach to Model Selection. Bies, Robert R, и др. Netherlands : Springer, 2006 r., Journal of Pharmacokinetics and Pharmacodynamics, стр. 196-221.
8. Fogel, David B. Evolutionary Computation: Toward a New Philosophy of Machine Intelligence. Third Edition. Piscataway : IEEE Press, 2006.
9. Koza, John. Genetic Programming: On the Programming of Computers by Means of Natural Selection. б.м. : MIT Press, 1992. ISBN 0-262-11170-5.
10. A Multi-Facet Survey on Memetic Computation. Chen, X. S., и др. 15, 2011 r., IEEE Transactions on Evolutionary Computation, Т. 5, стр. 591-607.
11. Research Frontier: Memetic Computation - Past, Present & Future. Chen, X. S., Ong, Y. S. и Lim, M. H. 5, 2010 r., IEEE Computational Intelligence Magazine, Т. 2, стр. 24-36.
12. Choice function and random hyperheuristics. P., Kendall G. and Soubeiga E. and Cowling. 2002 r., 4th Asia-Pacific Conference on Simulated Evolution and Learning SEAL, стр. 667-671.
13. Classification of Adaptive Memetic Algorithms: A Comparative Study. W., Ong Y. S. and Lim M. H. and Zhu N. and Wong K. 36, 2006 r., IEEE Transactions on Systems Man and Cybernetics, Т. 1, стр. 141-156.
14. Memes, Self-generation and Nurse Rostering. Oz-can, E. 3867, б.м. : Springer-Verlag, 2007 r., Lecture Notes in Computer Science, стр. 85-104.
15. "A Case Study of Memetic Algorithms for Constraint Optimization. Ozcan, E. и Basaran, C. 13, 2009 r., Soft Computing: A Fusion of Foundations, Methodologies and Applications, Т. 8, стр. 871-882.
16. Effective memetic algorithms for VLSI design automation = genetic algorithms + local search + multi-level clustering. Areibi, S., Yang, Z. 12, б.м. : MIT Press, 2004 r., Evolutionary Computation, Т. 3, стр. 327-353.
17. Goh, Chi-Keong, Ong, Yew-Soon и Tan, Kay Chen. Multi-Objective Memetic Algorithms. б.м. : Springer, 2009. стр. 416. ISBN: 354088050X.
18. Meta-Lamarckian learning in memetic algorithms. 99-110, Ong Y. S. and Keane A. J. 8, 2004 r., IEEE Transactions on Evolutionary Computation, Т. 2.
19. Плотников О.А., Подвальный Е.С. Применение муравьиных алгоритмов для решения задачи коммивояжера при управлении движением парка транспортных средств. Сборник трудов 5-ой Международной научнопроизводственной конференции «Новые технологии управления движением технических объектов». 24-27 марта 2012 г. Москва, 31-36 с.
20. Плотников О.А., Подвальный Е.С. Разработка алгоритма для комплексного решения задач АСУ транспортной логистики. Журнал «Вестник ВГТУ», том 7, №
11.1, Воронеж, ВГТУ, 2011, с. 102-105.
Реализация Кол-во поколений Размер популяции Время, с Лучшее значение приспособленности
Скрещивание в случайном соотношении 50 50 1 79,98
50 100 1 78,48
100 50 1 75,22
100 100 1 72,06
100 200 1 75,83
200 100 1 78,15
200 200 2 71,53
200 500 4 74,98
500 200 4 74,88
500 500 11 72,95
Скрещивание интервалом от 1 до j 50 50 1 74,24
100 100 1 72,59
200 200 2 71,56
500 500 15 70,50
Скрещивание выбором случайных битов 50 50 1 72,53
100 100 1 71,67
200 200 2 71,13
500 500 17 69,12
Скрещивание выбором случайных битов (2) 50 50 1 71,43
100 100 1 71,41
200 200 2 68,77
500 500 19 66,22
Мутация 50 50 1 71,77
100 100 1 70,38
200 200 2 68,81
500 500 20 65,17
Использование транспопуляций 50 50 13 71,41
100 100 28 70,06
200 200 117 67,46
500 500 962 61,97
Отсечение неиспользуемых ТС 50 50 7 55,42
100 100 21 55,27
200 200 86 55,36
500 500 676 55,12
Воронежский государственный технический университет
DEVELOPMENT MEMETIC ALGORITHM FOR SOLVING THE PROBLEM OF OPTIMAL
PLAN OF DELIVERY O.A. Plotnikov, E.S. Podvalniy
Developed and implemented in the code memetic algorithm for solving the problem of optimal plan of delivery. The algorithm uses several operators of crossing and the approach of using "transpopulations"
Key words: memetic algorithm (MA), crossing, transpopulation