Кадура (Математическое моделирование процессов перевозки грузов железнодорожным транспортом на основе использования задачи коммивояжера), страница 5
Описание файла
Файл "Кадура" внутри архива находится в папке "Математическое моделирование процессов перевозки грузов железнодорожным транспортом на основе использования задачи коммивояжера". Документ из архива "Математическое моделирование процессов перевозки грузов железнодорожным транспортом на основе использования задачи коммивояжера", который расположен в категории "". Всё это находится в предмете "дипломы и вкр" из 8 семестр, которые можно найти в файловом архиве ДВГУПС. Не смотря на прямую связь этого архива с ДВГУПС, его также можно найти и в других разделах. .
Онлайн просмотр документа "Кадура"
Текст 5 страницы из документа "Кадура"
Можно приписать положительные числа не только дугам, но и вершинам исходного графа. Тогда длина маршрута будет складываться из произведений (либо сумм) длины каждого отрезка пути (х, у) и веса вершины. Однако в данном случае наличие вершинной взвешенности не имеет большого значения. Задача с вершинно взвешенным графом сводится к вышеуказанной постановке переходом к новому графу, в котором стоимость каждой дуги равна произведению (либо сумме) веса дуги и вершины у исходного графа.
Допустимым решением задачи нескольких коммивояжёров назовём каждое n-элементное множество, с элементами, представляющими собой вершинно непересекающиеся пути (между соответствующими базовыми узлами), которые в совокупности покрывают п небазовых узлов. Допустимое решение с наилучшим значением некоторого критерия качества назовем точным решением. Критерием J качества решения будем считать произведение
J = ,
где J1- сумма длин всех маршрутов в данном решении, J2 - длина максимального маршрута, и - показатели важности рассматриваемых критериев. Определение показателей важности производится посредством опроса Е экспертов. Если Е1экспертов считают нужным минимизировать J1 а Е2 экспертов - минимизировать J2 (Е1+ Е2= Е), в качестве показателя следует взять отношение , а в качестве взять . Если же нет времени на опрос (задача должна решаться в реальном времени), можно, например, выбрать один из трех вариантов:
-
= 1, = 0 соответствует минимизации суммарной длины маршрутов;
-
= 0, = 1 - минимизация длины маршрута с максимальной длиной;
- = 1, = 1 - минимизация произведения обоих, в равной степени важных, критериев.
Структуру графа задачи нескольких коммивояжеров удобно представить с помощью матрицы весов следующего вида:
Рисунок 11. Матрица графа задачи нескольких коммивояжеров при п = 3, s = 2. Диагональные элементы полагаются равными нулю, либо бесконечности.
Как известно, количество Р вариантов, подлежащих перебору в задаче коммивояжёра равно n!, или (п-1)!, в случае фиксации первоначального города. Подсчитаем количество допустимых решений в сформулированной задаче нескольких коммивояжёров. Наряду с перебором всех n! перестановок номеров вершин, для каждой перестановки необходимо просмотреть и всевозможные её разбиения на т подмножеств. Рассмотрим некоторую фиксированную перестановку п чисел:
(1 2 3 4 ... п-1 п), и вставим между числами (n-1) разделителей:
(112 | 3 | 4 \...\п-1|п).
Тогда выбор любых (т-1) разделителей будет давать требуемое разбиение на т групп. Следовательно, всего возможных разбиений будет
Максимальное количество коммивояжёров равно s. Задействоваться могут не все из них. При фиксированном числе задействованных коммивояжёров общее количество вариантов задействования составит
Следовательно, ответом будет число
С ростом количества городов и коммивояжеров величина Сns чрезвычайно быстро возрастает, и уже при сравнительно небольших nиs достигает астрономических цифр.
Таблица 4-Примеры роста Спs
nn\s | 1 | 2 | 3 | 4 |
1 | 1 | 2 | 3 | 4 |
2 | 2 | 6 | 12 | 20 |
3 | 6 | 24 | 60 | 120 |
4 | 24 | 120 | 360 | 840 |
5 | 120 | 720 | 2 520 | 6 720 |
6 | 720 | 5 040 | 20 160 | 60 480 |
7 | 5 040 | 40 320 | 181 440 | 604 800 |
8 | 40 320 | 362 880 | 1 814 400 | 6 652 800 |
9 | 362 880 | 3 628 800 | 19 958 400 | 79 833 600 |
10 | 3 628 800 | 39 916 800 | 239 500 800 | 1 037 836 800 |
Отсюда видно, что общее число возможных решений в задаче нескольких коммивояжеров значительно большее, чем в задаче одного коммивояжера. Даже современные вычислительные машины зачастую оказываются не в состоянии произвести подсчет и генерацию всех вариантов.
Ниже излагаются разработанные и программно реализованные точные и приближенные методы решения задачи нескольких коммивояжеров, являющиеся развитием описанных в первой главе методов решения классической задачи коммивояжера.
2.2 Метод полного перебора
Метод генерирует все допустимые решения задачи нескольких коммивояжеров и выбирает среди них наилучшее в смысле критерия качества J.
Вкратце о методе. Сначала формируется произвольное решение задачи - начальный эталон для сравнения. Организуется четыре циклических структуры: внешний цикл по перестановкам, вложенный в него цикл по количеству коммивояжеров, вложенный в предыдущий цикл по сочетаниям из s1 по т, и, наконец, внутренний цикл по сочетаниям из п-1 по т-1. В теле последнего цикла текущий эталон сравнивается с очередным допустимым решением и запоминается наилучший вариант.
Порядок работы метода следующий.
-
Фиксируем первого коммивояжера из б имеющихся и перестановку п чисел (1,2,... ,п-1, п), определяющую допустимое решение R задачи нескольких коммивояжеров: а1 ,1,2,...,п,b1. Подсчитываем длину этого маршрута и значение критерия качества 3 решения.
-
Инициируем счетчик перестановок: к1 =1. Будем обозначать через RТ и JТ решение задачи и значение критерия качества соответственно, полученные на текущей итерации, а через J и R - значение критерия качества и решение, лучшее из встретившихся (ближайшее к оптимальному), используемое как эталон для сравнения с другими решениями в процессе работы алгоритма. В данный момент эталоном является решение, полученное на первом шаге алгоритма.
-
Генерируем k1-ю перестановку п чисел.
-
Полагаем значение m (текущее количество коммивояжеров) равным 1.
-
Инициируем счетчик сочетаний из 5 (общее число коммивояжеров) по т: k2 =1.
-
Генерируем k2-е сочетание из s по т, т.е. выбираем т коммивояжеров из 5 имеющихся.
-
Инициируем счетчик сочетаний изn-1поm-1:k3 = 1.
-
Генерируем k3-е сочетание из п-1 по т-1, интерпретирующееся как разбиение перестановки на части. Таким образом, полученные выше данные определяют допустимое решение RТ задачи.
-
Теперь у нас есть допустимое решение RТ, т.е. имеются выбранные коммивояжеры и для каждого из них указан маршрут - это соответствующая часть перестановки, полученная в результате разбиения. Подсчитываем длину маршрутов, находим маршрут с максимальной длиной. Вычисляем значение критерия качества JТ, равное произведению суммы длин маршрутов .J1 в степени на длину максимального из них J2 степени
-
Сравниваем значение критерия качества JТ со значением J. Если JТ < J, то эталоном для сравнения становится новое решение RТ: R = RТ, J = JТ. В противном случае остается прежний эталон R
-
k3 = k3 +1. Если k3 < , переход к шагу 8.
-
k2 = k2+1. Если k2 < , переход к шагу 6.
-
т = т +1. Если т < min{s,n}, переходим к шагу 5.
-
k1 = k1 +1. Если k1< Р, переходим к третьему шагу.
-
Выводим полученное решение R и значение критерия качества J. Завершаем работу алгоритма.
Данный алгоритм позволяет - по крайней мере формально - определить точный минимум поставленной задачи. Зависимость времени работы алгоритма от количества коммивояжеров и городов отражена в таблице 5. Программное обеспечение запускалось на компьютере типа Acer. В качестве весов ребер брались псевдослучайные целые числа из отрезка [1, 999], коэффициенты и 2 были взяты равными единице.
Таблица 5.
Время работы метода полного перебора при различных парах п и s.
n\s | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
6 | 0:00 | 0:00 | 0:00 | 0:00 | 0:00 | 0:00 | 0:00 | 0:01 |
7 | 0:00 | 0:00 | 0:00 | 0:00 | 0:01 | 0:04 | 0:10 | 0:22 |
8 | 0:00 | 0:00 | 0:01 | 0:07 | 0:22 | 1:02 | 2:32 | 5:34 |
9 | 0:00 | 0:03 | 0:20 | 1:27 | 5:02 | 14:52 | — | — |
10 | 0:03 | 0:38 | 4:12 | 20:03 | — | — | — | — |
11 | 0:38 | 7:48 | — | — | — | — | — | — |
12 | 7:50 | — | — | — | — | — | — | — |
Первое число в клетках соответствует затраченным минутам, второе - секундам. Прочерки соответствуют времени работы, существенно превосходящему 20 минут, и потому неприемлемому с практической точки зрения. Таким образом, задача, вообще говоря, не может быть решена методом полного перебора. Следовательно, становится актуальной разработка методов, пригодных для более широкого класса задач.
Выпишем для примера все допустимые решения конкретной задачи (рисунок 11) с тремя небазовыми вершинами, двумя коммивояжерами и показателями важности, равными единице. Ст будет равно 24.