Кадура (Математическое моделирование процессов перевозки грузов железнодорожным транспортом на основе использования задачи коммивояжера), страница 6
Описание файла
Файл "Кадура" внутри архива находится в папке "Математическое моделирование процессов перевозки грузов железнодорожным транспортом на основе использования задачи коммивояжера". Документ из архива "Математическое моделирование процессов перевозки грузов железнодорожным транспортом на основе использования задачи коммивояжера", который расположен в категории "". Всё это находится в предмете "дипломы и вкр" из 8 семестр, которые можно найти в файловом архиве ДВГУПС. Не смотря на прямую связь этого архива с ДВГУПС, его также можно найти и в других разделах. .
Онлайн просмотр документа "Кадура"
Текст 6 страницы из документа "Кадура"
Рисунок 11-Матрица конкретной задачи нескольких коммивояжеров
2.3 Метод, использующий деревья поиска
Из существующих методов решения классической задачи коммивояжера одним из наиболее эффективных является метод ветвей и границ. При разработке метода ветвей и границ для решения задачи нескольких коммивояжеров в приведенной выше формулировке возникают трудности с определением нижних границ целевого функционала задачи. Количество коммивояжеров непостоянно. Сколько маршрутов будет содержать оптимальное решение заранее неизвестно. Нижние границы функционала задачи с s коммивояжерами вообще говоря не ограничивают функционал задачи с меньшим количеством агентов. Границы в задаче одного коммивояжера отличны от границ в задаче другого. Следовательно, метод ветвей и границ возможно применять лишь для тех задач, где количество и состав коммивояжеров фиксированы. Идея разработанного метода, использующего деревья поиска, состоит в последовательной генерации каждой допустимой выборки т коммивояжеров из s имеющихся, формировании задачи конкретных т коммивояжеров, и ее решении методом ветвей и границ.
Первым делом рассмотрим алгоритм решения задачи с фиксированным количеством агентов, равным т. Остановимся только на изменениях, вносимых в метод в связи с рассматриваемой постановкой.
-
Сначала необходимо подготовить матрицу задачи (матрицу весов исходного графа) для работы алгоритма, запретив те ее элементы, которые заведомо не входят в допустимые решения. Положим равными бесконечности (большому числу):
-
элементы главной диагонали матрицы;
-
веса всех дуг графа, входящих в аi и выходящих из bi i= все элементы столбцов аi и строк bi i= становятся равными бесконечности (эти строки и столбцы можно вычеркнуть);
-
элементы матрицы, соответствующие дугам вида (ai,bj), i,j= , чтобы непосредственной связи между концевыми точками маршрутов не было.
-
В процессе работы алгоритма включение очередного звена (х,у) маршрута в частичное решение приводит к образованию некоторого пути от пункта q к пункту р (в простейшем случае q = х и р = у). При этом следует рассматривать возможности наложения запретов на элементы матрицы в следующем порядке.
-
-
если q ai и р bi, i= , то следует положить элемент (р, q) равным бесконечности для предотвращения образования контура, не содержащего никакие из аi и строк bi i= ;
-
равенства q ai и р bi, i= , означают, что получен один из маршрутов искомого допустимого решения. Количество сформированных маршрутов /увеличиваем на единицу: (в начале работы ).
- теперь следует просмотреть каждый меньший бесконечности элемент (х,у) текущей подматрицы: нужно ли его запретить? Чтобы ответить на этот вопрос, необходимо знать к чему привело бы последующее присоединение данного звена к частичному решению. Звено запрещается в двух случаях.
-
В случае, когда в данный момент т-f = 1, а присоединение дуги
выходящих из bi i= дает путь между пунктами q и p, где q ai и р bj, j,i= j i. Равенство т-f = 1означает, что неопределенным остался единственный маршрут. Чтобы предотвратить его преждевременное образование, сформировав таким образом т маршрутов, охватывающих менее п городов, полагаем вес (х,у) равным бесконечности.
-
Если в настоящее время выполнено неравенство т-f >1, а включение в частичное решение звена приводит к образованию пути между пунктами q и р, причем q ai и р bj, j,i= j i.Так как подобные маршруты не являются допустимыми по условию задачи, запрещаем включение звена (х,у).
-
Опишем теперь способ вычисления нижних границ целевого функционала. Возьмем произвольное допустимое решение рассматриваемой задачи с фиксированными т коммивояжерами. Как и в классической задаче коммивояжера, каждая строка и столбец преобразованной на первом этапе матрицы весов задачи т коммивояжеров содержат единственное звено, входящее в это допустимое решение. Следовательно, при вычитании из какой-либо строки или столбца преобразованной матрицы весов некоторого положительного числа, величина J1, очевидно, изменится на то же самое число. Таким образом, нижней границей величины J1 может служить величина H - сумма констант приведения, подсчитываемая как в классической задаче коммивояжера: J1> H.
Найдем теперь нижнюю границу критерия J2. Поскольку длины маршрутов допустимого решения задачи т коммивояжеров не превосходят J2, выполнено неравенство: mJ2>J1.
Разделим обе части приведенных неравенств на положительное число m: , отсюда следует, что
Возведем неравенства в неотрицательные степени и соответственно: ,
Перемножив последние два неравенства, получим, что
Изложим порядок выполнения метода, использующего деревья поиска.
-
Образуем начальный рекорд - допустимое решение R задачи нескольких коммивояжеров. Возьмем первого коммивояжера из s имеющихся и последовательность п чисел 1,2, определяющую допустимое решение ,1,2,…,n, Подсчитаем длину этого маршрута и значение критерия качества J.
-
Полагаем значение m (текущее количество коммивояжеров) равным 1.
-
Инициируем счетчик сочетаний из s (общее число коммивояжеров) по т: k = 1.
-
Генерируем k сочетание из s по т, т.е. выбираем т конкретных коммивояжеров из s имеющихся.
-
Метод ветвей и границ будем применять, используя подматрицу преобразованной матрицы весов задачи. Подматрица образуется путем вычеркивания строк и столбцов, соответствующих точкам начального и конечного местонахождения коммивояжеров, которые в данный момент не являются выбранными. С целью определения т требуемых маршрутов производится вычисление нижних границ и ветвление до тех пор, пока это целесообразно. Множества решений со значением критерия качества большим, чем у рекорда исключаются из рассмотрения. При определении в процессе работы метода допустимого решения RТ задачи со значением Jт критерия качества, сравниваем его с рекордом. Если Jт <J то рекордом становится новое решение Rт: R = Rт, J = Jт. В противном случае остается прежний рекорд R.
-
k = k +1. Если k < , переход к шагу 4.
-
m = т +1. Если т , переходим к шагу 3.
-
Выводим найденное решение R и значение критерия качества J. Завершаем работу алгоритма.
Программа, реализующая метод, использующий деревья поиска тестировалась на случайных графах (их матрицах весов), т.е. полных графах различной размерности, целые положительные веса дуг которых генерировались случайным образом по нормальному распределению и принимали значения от 1 до 999. Для задач относительно небольших размеров (количество небазовых вершин до десяти) сравнивались результаты работы метода, использующего деревья поиска и метода полного перебора. Наборы маршрутов, определяемые этими методами, могут получаться различными, так как оптимальное решение, вообще говоря, не единственно. Однако значения критерия качества оптимумов обязаны совпадать.
В таблице указано, какой максимальной размерности удалось достигнуть при нахождении точного минимума задачи нескольких коммивояжеров в зависимости от количества коммивояжеров (показатели важности критериев равны единице). Для каждого значения s подбиралось некоторое максимальное значение п по следующему правилу. Создавалось 20 произвольных задач нескольких коммивояжеров, т.е. 10 случайных графов с n+2s вершинами и 10 случайных с вершинами. Все задачи решались посредством разработанного программного обеспечения. Значение п заносилось в соответствующую клетку таблицы в случае, когда каждая задача из первой группы была решена за практически приемлемое время порядка пяти минут, и существовала хотя бы одна задача из второй группы, при решении которой работа программы была остановлена из-за превышения лимита времени. В противном случае снова генерировалось 20 случайных графов с большим значением п и т.д.
Таблица 6
Максимальные размерности практически разрешаемых задач
5 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
п | 61 | 50 | 40 | 30 | 25 | 21 | 19 | 17 | 16 | 16 |
Несмотря на резкое падение значения п с увеличением количества коммивояжеров, метод, использующий деревья поиска существенно расширяет множество разрешимых в пределах разумного времени задач и демонстрирует значительно лучшие результаты в смысле быстродействия по сравнению с методом полного перебора.
К недостаткам метода можно отнести следующее:
-
Множество разрешимых задач все же недостаточно велико.
-
Ненадежность метода, трудности с прогнозированием времени работы программной реализации. Тестирование программы проводилось на случайных графах, но следует иметь ввиду, что существуют задачи куда меньших размеров, практически неразрешимые с помощью метода, использующего деревья поиска. Примером служат задачи с матрицей весов, все элементы которой близки к одному и тому же числу. Рассмотрим матрицу с п=9, s=3 и матрицу n=10, s=3, при =1 и =1. Положим значения всех элементов матриц равными единице. Тогда время работы метода, использующего деревья поиска, в первом случае составит 15 минут 30 секунд, а время работы метода полного перебора - 0 минут 20 секунд. Во втором случае метод полного перебора находит решение за 4 минуты 12 секунд. Выполнение же программы, реализующей метод, использующий деревья поиска по истечении двадцати минут пришлось прервать, так и не дождавшись ответа.
-
Все значения минимизируемых критериев, а также показатели важности и все элементы исходной матрицы должны быть строго неотрицательными.
-
Проблемы с развитием метода на случай многих критериев наиболее общего вида, других свертывающих зависимостей, учетом возможных ограничений, которые могут быть введены на множестве значений целевого функционала и множестве допустимых решений задачи.
Проиллюстрируем работу метода на уже рассматриваемой ранее задаче с матрицей на рисунке 12.
Образуем начальный рекорд R: ,1,2,3, , J=16900. Положим равными бесконечности те элементы матрицы расстояний, которые заведомо не входят в решение:
Рисунок 12-Матрица с наложенными запретами
Положим т = 1, возьмем первого коммивояжера и выпишем соответствующую матрицу вычеркивая ненужные строки и столбцы в исходной:
Рисунок 14- а) приведенная матрица, на б) - та же матрица с указанием весов нулей.