УДК 519.7
А.Н. ГВОЗДИНСКИЙ, С.В. МЕЛЬНИК
ЭВОЛЮЦИОННЫЙ ПОДХОД К РЕШЕНИЮ ОПТИМИЗАЦИОННЫХ ЗАДАЧ ТРАНСПОРТНОГО ТИПА
Рассматривается оптимизационный класс задач транспортного типа. Описывается классический способ решения - метод потенциалов, исследуется новый алгоритм на основе генетических алгоритмов, позволяющий находить оптимальный план перевозок с большей продуктивностью.
Введение
Сейчас, во времена свободного рынка, очень острой стала проблема оптимизации на производстве, в бизнесе. Из-за сильной конкуренции все стремятся минимизировать свои затраты на производство, перевозку, тем самым повысить конкурентоспособность своего продукта или услуги.
Чтобы достичь наибольшего эффекта, имея ограниченные средства, надо составить план, или программу действий. Раньше план в таких случаях составлялся "на глаз". В середине XX века был создан специальный математический аппарат, помогающий это 76
делать обоснованно, с максимальным результатом. Соответствующий раздел математики называется математическим программированием.
Транспортная задача является представителем класса задач линейного программирования, поэтому обладает всеми качествами линейных оптимизационных задач, но одновременно она имеет и ряд дополнительных полезных свойств, которые позволили разработать специальные методы ее решения.
Актуальность работы. Транспортная задача линейного программирования получила в настоящее время широкое распространение в теоретических обработках и практическом применении на транспорте и в промышленности. Особенно большое значение она имеет в деле рационализации постановок важнейших видов промышленной и сельскохозяйственной продукции, а также оптимального планирования грузопотоков и работы различных видов транспорта.
Сейчас, в XXI веке, когда наблюдаются тенденции всемирной глобализации рынка, границы между государствами стираются. Компаниям, которые раньше работали в пределах одной страны, теперь открывается возможность расшириться, обслуживать целый материк или всю планету. Фирмы, занимающиеся международными перевозками, уже ощутили значительный рост объема обрабатываемой информации вместе с ростом количества пунктов отправления и назначения. В таких условиях классические методы линейного программирования, которые так эффективно помогали нам в XX веке, не обеспечивают достаточной скорости вычислений в реальном времени. Пришло время перейти на качественно новый уровень решения подобных задач.
Последнее время проявляется тенденция использования естественных аналогов при создании моделей, технологий, методик, алгоритмов для решения тех или иных задач, стоящих перед человечеством. В большинстве случаев использование естественных аналогов дает положительные результаты. Как правило, это объясняется тем, что аналог, взятый из природы, совершенствовался в течение многих лет эволюции и имеет на данный момент самую совершенную в своем роде структуру.
Целью данной работы является выяснение применительности генетических алгоритмов к решению задачи закрепления поставщиков за потребителями, разработка алгоритмов, а также сравнительный анализ производительности классических и методов, использующих вероятностный подход.
Задачей исследования является изучение существующих методов решения указанной задачи, разработка нового метода и их сравнение.
1. Модель задачи
Транспортные модели - специальный класс задач линейного программирования. Эти модели часто описывают перемещение (перевозку) какого-либо товара из пункта отправления (исходный пункт, например место производства) в пункт назначения (склад, магазин, грузохранилище). Назначение транспортной задачи - определить объем перевозок из пунктов отправления в пункты назначения с минимальной суммарной стоимостью перевозок. При этом должны учитываться ограничения, налагаемые на объемы грузов, имеющихся в пунктах отправления (предложения), и ограничения, учитывающие потребность грузов в пунктах назначения (спрос). В транспортной модели предполагается, что стоимость перевозки по какому-либо маршруту прямо пропорциональна объему груза, перевозимого по этому маршруту. В общем случае транспортную модель можно применять для описания ситуаций, связанных с управлением запасами, управлением движением капиталов, составлением расписаний, назначением персонала и др.
Хотя транспортная задача может быть решена как обычная задача линейного программирования, ее специальная структура позволяет разработать алгоритм с упрощенными вычислениями, основанный на симплексных отношениях двойственности.
Решение задачи состоит в определении неизвестного плана перевозок, минимизирующего суммарные транспортные расходы и удовлетворяющего ограничениям, налагаемым на объемы грузов в пунктах отправления (предложения) и пунктах назначения (спрос).
Постановка классической транспортной задачи звучит так: от т поставщиков (Ль Л2, ... , Ат) автомобилями с некоторой грузоподъемностью автотранспортное предприятие перевозит однородные грузы п потребителям (Б!, В2, ... , Вп). Объемы поставки и потребления, а также стоимость транспортировки приведены в таблице.
Поставщики Потребители Запасы
Б: Б2 Bn
A1 cn c12 c1n a1
A2 c21 c22 c2n a2
Am cm1 cm2 cmn am
Заявки b1 b2 bn
Необходимо определить потребности в автомобилях, которые необходимы для выполнения плана перевозок.
В случае закрытой модели весь имеющийся в наличии груз развозится полностью, и все потребности заказчиков полностью удовлетворены:
m n
Z = E bj, (1)
1=1 j=1
где ai - количество груза на 1-м складе, bj - потребность в грузе j-го потребителя.
Количество груза, имеющегося на каждой из m баз, обозначается a1, a2, ... , am. Заказы каждого из потребителей обозначаются как b1, b2, ... , bn. Соответственно, c11, c12, ... , c1n, c21, c22, ... , cmn - стоимость перевозки единицы груза от 1-го поставщика к j-му потребителю. Требуется найти такой план перевозок, при котором все запасы будут израсходованы, заявки удовлетворены, а общая стоимость транспортировок была бы минимальной.
2. Метод потенциалов
Для начала найдем опорный план (неоптимальный, служащий базой для начала итераций) методом северо-западного угла. В данном методе запасы очередного поставщика используются для обеспечения запросов очередных потребителей до тех пор, пока не будут исчерпаны полностью, после чего используются запасы следующего по номеру поставщика.
Заполнение таблицы транспортной задачи начинается с левого верхнего угла и состоит из ряда однотипных шагов. На каждом шаге, исходя из запасов очередного поставщика и запросов очередного потребителя, заполняется только одна клетка и соответственно исключается из рассмотрения один поставщик или потребитель.
Сущность метода состоит в следующем. Пользуясь таблицей, будем распределять груз, начиная с загрузки левой верхней, условно называемой северо-западной, ячейки, двигаясь затем от нее по строке вправо или по столбцу вниз. В клетку (1; 1) занесем меньшее из чисел a1, b1, т. е. x11 = min (a1, b1). Если a1 > b1, то x11 = b1 и первый потребитель В1 будет полностью удовлетворен. В дальнейшем 1-й столбец таблицы в расчет не
принимается; в нем переменные хц = 0 для 1 = 2,m .
Двигаясь вправо по первой строке таблицы, заносим в соседнюю клетку меньшее из чисел (a1 - b1) и b2, т. е. x12 = min (a1 - b1, b2). Если (a1 - b1) < b2, то запасы первого поставщика исчерпаны и первая строка таблицы в дальнейшем в расчет не принимается. Переходим к аналогичному распределению запаса груза второго поставщика.
Если b1 > a1, то x11 = min (a1, b1) = a1. При этом запас первого поставщика будет исчерпан,
а потому x1k = 0 для k = 2,n . Первая строка из дальнейшего рассмотрения исключается. Переходим к распределению запасов второго поставщика. В клетку (2; 1) заносим наименьшее из чисел (а2, b1 - а1).
Процесс распределения по второй, третьей и последующим строкам (столбцам) производится аналогично распределению по первой строке или первому столбцу до тех пор, пока не исчерпаются ресурсы. Последней заполняется клетка (m; n).
После того, как опорный план построен, вычисляется оценочная матрица С1. Для расчета элементов матрицы необходимо сначала определить все потенциалы ß j и а i. Строим схему перевозок, которая отвечает начальному опорному плану х0, т.е. соединяем
коммуникациями пункты отправления и назначения, для которых х^ ф 0. Определяем последовательно все потенциалы пунктов отправления и назначения, назначая для удобства
а^ = 0 . Потом по формуле находим элементы матрицы Сь которые отвечают базисным элементам плана х0 и должны быть заняты нулями.
При последующих итерациях используется следующий алгоритм.
1. Если в оценочной матрице С(к+1) все элементы положительны, план х(к) - оптимальный, в противном случае следует приступить к его улучшению.
2. Избираем наибольший по модулю отрицательный элемент оценочной матрицы, и начиная из соответствующего ему элемента хй в матрице, строим замкнутую цепочку, к которой поступают элементы. Потом определяем минимальный элемент среди всех непарных за порядком расположения в цепочке, считая первым хй элемент.
3. Строим новый план х(к+1), прибавляя ко всем парным элементам цепочки и отнимая от непарных. Элементы матрицы х(к), которые не попадают в цепочку, перемещаются в матрицу х(к+1) без изменений.
4. С помощью подобных преобразований матрицы С(к) находим оценочную матрицу С(к+1) для нового плана х(к+1). Для этого подчеркиваем в матрице С(к) все элементы, которые отвечают ненулевым элементам матрицы х(к+1) (они обязательно равняются 0). В матрице С(к) зачеркиваем строку, которая содержит элемент Сй. Если в этой строке имеют место подчеркнутые элементы, то зачеркиваем соответствующие этим элементам столбцы. Если же в каждом зачеркнутом столбце имеют место подчеркнутые элементы, зачеркиваем соответствующие им строки, и так до тех пор, пока описываемая процедура может выполняться. После этого ко всем элементам зачеркнутых строк прибавляем |СЙ|, а от элементов зачеркнутых столбцов отнимаем |СЙ|. Получаем новую оценочную матрицу. Если в матрице С(к+1) нет отрицательных элементов, то план х(к+1) - оптимальный, иначе переходим к следующей итерации. На этом итерации завершаются.
3. Генетический алгоритм
Генетические алгоритмы (ГА) есть поисковые алгоритмы, основанные на механизмах натуральной селекции и натуральной генетики. Они реализуют "выживание сильнейших" среди рассмотренных структур, формируя и изменяя поисковый алгоритм на основе моделирования эволюции поиска. В каждой генерации новое множество искусственных последовательностей создается, используя части старых и добавляя новые части с "хорошими свойствами". ГА - это не просто случайный поиск. Они эффективно используют информацию, накопленную в процессе эволюции.
Цель ГА двоякая: абстрактно и формально объяснить адаптацию процессов в естественных системах; спроектировать искусственные программные системы, которые содержат механизмы естественных систем. Центральная тема поиска в ГА - поиск баланса между эффективностью и качеством для выживания в различных условиях. ГА отличаются от других оптимизационных и поисковых процедур следующим: работают в основном не с параметрами, а с закодированным множеством параметров; осуществляют поиск из популяции точек, а не из единственной точки; используют целевую функцию, а не ее различные приращения для оценки информации; используют не детерминированные, а вероятностные правила.
ГА берет множество натуральных параметров оптимизационной проблемы и кодирует их как последовательность конечной длины в некотором конечном алфавите.
В естественных системах общая генетическая упаковка называется генотип. В натуральных системах организм формируется посредством связи генетической упаковки с окружающей средой и называется фенотип.
В естественной терминологии хромосомы состоят из генов, которые могут иметь числовые значения, называемые "аллели".
Начальное условие задачи закрепления поставщиков за потребителями - матрица стоимостей (таблица). Необходимо закодировать это условие в хромосому.
Для этого план перевозок нужно представить в виде развернутой строки. Генами в данном случае будут выступать элементы ячеек плана. При генерации популяции будем использовать случайные значения генов. Размер популяции для матрицы стоимостей
размерностью m на n элементов необходимо брать в районе m-n. Количество генов в хромосоме соответственно будет равняться m-n.
Фитнесс-функцией (целевой функцией) для популяции является суммарная стоимость перевозки всех грузов:
m n
f(k) = EEc1jXij. (2)
1=ij=I
Для каждой сгенерированной особи считаем значение целевой функции, после чего вычисляем отношение ее приспособленности к суммарной приспособленности популяции:
PS(1) = fkL.
Zf(k) (3)
1=1
Полученное значение определяет вероятность выбора особи для дальнейших операций - кроссинговера и мутации. К хромосомам с наилучшей фитнесс-функцией (f(k)>min) применяется оператор кроссинговера, который заключается в попарном «скрещивании» выбранных на предыдущем этапе особей.
Например, имея хромосомы А = 10, 11, 12, 8, 7 и B = 1, 2, 3, 4, 5, после применения к ним оператора кроссинговера мы получим хромосомы C = 10, 11, 12, 4, 5 и D = 1, 2, 3, 8, 7.
После скрещивания применяем к отобранным хромосомам оператор мутации. Он заключается в случайном изменении одной или нескольких позиций в хромосоме. Например, хромосома А = 10, 11, 12, 8, 7 после мутации может принять вид А = 10, 8, 12, 11, 7.
Оператор кроссинговера применяется с вероятностью 60%, мутации - 40%. Как ни странно, именно вероятностный подход позволяет генетическим алгоритмам достигать оптимума в решаемой задаче.
Применив разработанный алгоритм к задаче транспортировки угля, получили следующий результат. На каждой итерации особи в популяции улучшали свою целевую функцию, стремясь к оптимальному решению, и на четырнадцатой итерации было получено решение задачи, в то время как при использовании метода потенциалов оптимальное решение было найдено только на двадцать второй.
Выводы
В процессе данного исследования была проанализирована оптимизационная задача транспортного типа, рассмотрена ее математическая модель, а также один из основных методов ее решения - метод потенциалов. Также рассмотрены понятия эволюционного подхода к решению задач и, в частности, разработан алгоритм решения оптимизационной задачи транспортного типа на основе генетических алгоритмов. В ходе исследования сделаны выводы о том, что несмотря на сложность программной реализации, новый алгоритм является более производительным и позволяет находить оптимальное решение за более короткий срок.
Научная новизна. В ходе исследования впервые произведена попытка применить эволюционный подход к рассматриваемому классу задач. Таким образом, создан первый алгоритм решения оптимизационных задач транспортного типа на основе генетических алгоритмов.
Практическим значением полученных результатов является то, что разработанным методом можно решать транспортные задачи на любом предприятии транспортного типа и в отличие от уже существующих методов решения новый алгоритм является более производительным и не требует закупки дорогостоящей вычислительной техники.
Список литературы: 1. Handbook of Genetic Algorithms / Ed. L. Davis. N.Y.: Van Nostrand Reinhold, 1991. 134p. 2. Kureichik V., Miagkikh V., TopchyA. Combined Genetic and Local Search Algorithms for Quadratic Assigment Problem // Proc. First International conf. on Evolutionary computation and its Applications, June. Plymouth, 1996. 86p. 3. MitchellM. An Introduction to Genetic Algorithms. Cambrige, Mass: MIT Press, 1996. N°4. 4. Гвоздинский А. Н. Оптимизационные задачи в организационном управлении. В 2-х частях. Учебн. пособие. Харьков: ХТУРЭ, 1997. 572 с.
Поступила в редколлегию 28.04.2009 Гвоздинский Анатолий Николаевич, канд. техн. наук, профессор кафедры искусственного интеллекта ХНУРЭ. Научные интересы: оптимизация процедур принятия решений в слож-
ных системах управления. Адрес: Украина, 61166, Харьков, ул. ак. Ляпунова, 7, кв. 9, тел. 702-38-23.
Мельник Сергей Владимирович, студент магистратуры специальности интеллектуальные системы принятия решений, факультет КН, ХНУРЭ. Адрес: Украина, Хорол Полтавской обл., ул. Ленина, 41, кв. 46, тел. 8 066 330 2 220.