ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 20.10.2024
Просмотров: 65
Скачиваний: 0
строения искомого пути заданной допустимой длины. Кроме того, любая ветвь, лежащая на границе зоны, т. е. ветвь, для которой выражения (1.13) имеют вид равенств, позволяет легко определить путь допустимой или заданной длины. Однако в общем случае вет ви пути заданной длины не обязаны принадлежать границе задан ной зоны. Поэтому дальнейшее построение искомого пути должно производиться одним из известных методов.
К точным при определении путей заданной или допустимой дли ны следует отнести метод, основанный на просчете длин всех путей, ведущих в каждый узел мультисети. Числа, соответствующие ука занным длинам, приписываются соответствующему узлу. При этом ветвь, оканчивающаяся в конечном узле мультисети, сумма длины которой с одним из чисел, приписанных ее начальному узлу, равна заданной длине искомого пути, принадлежит этому пути. Аналогич но определяется каждая следующая ветвь искомого пути с той лишь разницей, что в качестве конечного узла мультисети рассматрива ется начальный узел последней выделенной ветви, а сравнение осу ществляется с величиной, равной разности заданной длины иско мого пути и длины его уже известного отрезка.
Большое число различных путей в мультисети предопределяет наибольшую эффективность такой организации вычислительной процедуры по приведенному методу, которая обеспечивает парал лельный анализ вариантов путей. Такая процедура, как показано далее, может быть организована с помощью цифрового аналога мультисети.
1.4. ЗАДАЧА КОММИВОЯЖЕРА
Известно, что многие практические задачи сводятся к решению задачи коммивояжера, отличающейся простотой поста новки и исключительной трудностью решения.
Задача формулируется следующим образом: имеем п городов, соединенных сетью дорог. Задана п X п матрица D = ||^/|| рас стояний между этими городами (г, / £ N, где N = 1, 2, ..., п), при чем d'ij — 0 при і — /. Требуется: выйдя из некоторого фиксирован ного города и побывав во всех остальных лишь по одному разу, вер нуться в исходный город, пройдя при этом минимальное расстояние. Задача коммивояжера, таким образом, состоит в нахождении цик лической матрицы перестановок X = || хц || так, чтобы величина
DX = 2 Лих»
t.i£N
была минимальной. Точнее, задача состоит в отыскании минимизи рующей перестановки из всех (п — 1)! возможных случаев. Она привлекает внимание простотой постановки и трудностью решения, которое имеет строго вычислительный характер, так как существо вание решения очевидно. Исследованием этой задачи занимаются
13
очень давно. Еще в 1948 г. Купманс [188] обратил внимание на ее связь с задачей распределения. Робинсон [199] установила приро ду родства ее с задачей о назначении. С тех пор было предложено много методов решения. Одни из них представляли чисто теорети ческий интерес или были неэффективными, другие давали не обя зательно оптимальное решение, а некоторые требовали принятия интуитивных решений, что затрудняло программирование для ма шин. Анализ ряда известных работ позволяет выделить три раз личных пути получения решения задачи.
1.Подциклическое улучшение, т. е. нахождение лучшего цикла, соседнего с выбранными. Такой путь — приближенный. Хорошие результаты получены Рейтером и Шерманом [198].
2.Ликвидация подциклов. Этот путь предполагает решение за дачи о назначениях. Если ее решением является цикл, то он опти мальный для задачи коммивояжера, если это решение не является циклом, тогда используется итерационная схема ликвидации подцик лов. Точные методы ликвидации подциклов — это методы цело численного программирования [186], метод ветвей и границ Ист мана [187], метод Шапиро [201], метод Гилморе—Гомори [190].
3.Построение циклагцключаются узлы в произвольно взятую последовательность иных узлов до тех пор, пока не образуется цикл. Наиболее простое при построении цикла — правило «бли жайшего соседа». Методы, в которых используется это правило, являются приближенными. Точным алгоритмом построения цикла есть алгоритм динамического программирования [202], метод «вет вей и границ» [203], алгоритм Литла и др. [208].
Однако ни один из этих путей не является универсальным, а методы,использующие их, имеют ряд недостатков. Приближенные методы заведомо позволяют найти лучшее из множества решений, но не оптимальное, что ограничивает их применение. Трудности применения точных методов, а в частности методов целочисленно го программирования, состоят в большом количестве ограничений эквивалентной задачи программирования.
Динамический метод применим для.задач сравнительно не большого объема с числом городов, не превышающим 17. Слож ность его — в большом количестве арифметических операций и большом объеме промежуточной информации при вычислениях, который растет чрезвычайно быстро с ростом размерности задачи.
Существенным недостатком метода ветвей и границ является экс поненциальный рост времени решения с ростом размерности зада чи. Кроме того, при определенных условиях необходим полный пе ребор всех вариантов, что позволяет получить только приближенное решение. Наиболее эффективным считается метод ветвей и границ Шапиро, применяемый для несимметричных задач большого раз мера (вплоть до 70—100 городов), однако огромные трудности воз никают при решении этим методом симметричных задач.
Все предложенные алгоритмы определения пути коммивояже ра не дают заранее временной оценки и получения решения. Извест
14
ны отдельные примеры и время их решения, и на основании этих данных приближенно оценивается время, необходимое для решения задачи с увеличением числа городов. В то же время описанные под ходы решения задачи коммивояжера не гарантируют, что за опре деленное время может быть получено решение для произвольной матрицы условий с любым числом, городов.
Решение задачи коммивояжера может быть осуществлено мето дом одновременного исследования всех возможных путей, по кото рым может пройти коммивояжер. Этот метод предусматривает раз биение исходного города на начальный и конечный (рис. 3). Суть метода легко представить, рассмотрев такой наглядный пример.
ab
Рис. 3
Пусть из начального города ко всем другим городам выходят коммивояжеры. Когда коммивояжер приходит в город і, он разре шает выйти из этого города коммивояжерам ко всем другим городам, за исключением конечного города. Эти коммивояжеры имеют жето ны, которые указывают, что они посетили і-й город. Когда какойлибо коммивояжер, имеющий жетон посещения города, придет в город /', он разрешает выход коммивояжеров из него во все другие города. Причем, эти коммивояжеры получают жетоны, указываю щие, что их предшественник, выйдя из начального города, побывал в городах і и /. Если какой-нибудь коммивояжер имеет жетон с ука занием того, что п — 2 города пройдено, то он разрешает выход коммивояжера из (п — 1)-го города в конечный. Таким образом, первый коммивояжер, который появится в конечном городе, прой дет кратчайшим путем. Порядок отметок на жетоне будет соответ ствовать последовательности прохождения городов коммивояжером по кратчайшему пути. При этом, если все пути одинаковы то число коммивояжеров, прошедших т городов из всех п, определяется чис лом перестановок из п элементов по т, т. е.
Р п = п ( п — 1) . . . (п — т — 1).
Из этой формулы видно, что в каждый момент времени в пути на ходится достаточно большое число коммивояжеров, которые про шли различное количество городов.
На основании анализа указанных выше методов можно утверж дать, что еще не существует метод, в котором сочетались бы просто та и точность решения. Решения задачи коммивояжера не могут,
15
>в общем смысле, быть найдены настолько эффективно, как это можно, например, сделать для задачи о кратчайшем пути срав нимого размера.
1.5.СВЕДЕНИЕ ЗАДАЧИ КрММИВОЯЖЕРА
КЗАДАЧЕ О КРАТЧАЙШЕМ ПУТИ
Если расстояние между любой парой городов і и / при нять за отрезок произвольной длины, то множество вариантов по- •следовательного посещения коммивояжером я городов можно пред оставить в виде дерева маршрутов, ветви которого ѵц означают путь •с і-го города в /-й. Введем некоторые понятия элементов дерева маршрутов.
Под уровнем дерева понимаем линию, охватывающую вершины, имеющие равное число исходящих ветвей. Применительно к задаче уровень можно интерпретировать как момент принятия нового ре шения о дальнейшем следовании по маршруту. Чтобы посетить я городов и возвратиться в исходный, коммивояжеру необходимо я раз принимать решение, поэтому количество уровней дерева мар шрутов равно количеству городов, через которые должен проследо вать коммивояжер. Различные варианты решений в і-м городе на дереве изображаются в виде ветвей, исходящих с і-й вершины.
Под зоной і-го уровня подразумеваем пространство между і-м и (і + 1)-м уровнями, в котором располагаются ветви, исходящие <с і-го уровня. Очевидно, что каждый уровень дерева имеет свою зону.
Куст — это часть дерева, которая исходит из одной из вершин второго уровня. Так как из первого города, находящегося на пер вом уровне, коммивояжер может следовать в я — 1 город, а значит второй уровень имеет л — 1 вершину, то количество кустов равно ■■п— 1. Каждый куст состоит из ветвлений — множества вариантов, исходящих с вершин 3-го уровня соответствующего куста. В свою ■очередь, ветвление разбивается на ветвления 1-го рода — исходя щие из вершин 3-го уровня, ветвления 2-го рода — исходящие из вершин 4-го уровня и т. д., ветвления (л — 2)-го рода — исходя щие из вершин п-го уровня.
Если из начальной вершины дерева исходят я — 1 = k ветвей, то полным называется дерево, у которого на і-м уровне из каждой 'вершины .исходит — 1 ветвей, где 6;_і — число ветвей, ис ходящих из вершины (і — 1)-го уровня.
На полном дереве существуют различные варианты путей, кото рые являются для задачи множеством решений, равных (л — 1)! ■Среди этого множества необходимо выбрать путь минимальной дли ны. Таким образом, задача коммивояжера свелась к отысканию кратчайшего пути на этом дереве. Решение задачи о кратчайшем пу ти не вызывает трудности. Известно много способов ее решения, •один из них — с помощью аналоговых элементов [50], где время решения не зависит от размерности задачи. Ограничивающим фак-
тором является значительный рост памяти машины, ведь она долж на хранить количество чисел, равное количеству ветвей полного дерева, т. е.
< Ы 4 )
Итак, построение полного дерева маршрутов связано с огромными трудностями, так как уже для задачи с 9 городами оно будет со стоять из 149 920 ветвей, а для числа городов п > 9 построить де рево почти невозможно. Поэтому очень интересно исследование воз можностей сокращения объема памяти или уменьшения числа вет вей в дереве путей коммивояжера.
Если из двух вершин, лежащих на одном уровне, исходят ветви, определяющие одни и те же варианты последующего движения ком мивояжера, то эти вершины имеют одинаковые продолжения. При анализе полного дерева обнаруживаем, что уже на третьем и на каждом последующем уровнях есть вершины с одинаковыми продол жениями, которые можно объединить между собой, причем в 3-й зоне они объединяются по два, в 4-й — по три и т. д., в л-й — по я — 2. После объединения получаем новое унифицированное дере во маршрутов. Если в полном дереве количество ветвей, исходящих из соответствующих уровней, распределяется по зонам следующим образом:
I — я — 1,
II— (я — 1) (л — 2),
III — (л — 1) (л — 2) (л — 3),
IV — (л — 1) (л — 2) (л — 3) (л — 4),
л — (л — 1) 1
то в унифицированном дереве с 4-го уровня будет исходить коли чество ветвей в 2 раза меньшее, чем в полном дереве, так как в 3-й зоне произошло объединение по 2, с 5-го — в 2 • 3 = 3! (после объединения в 3-й и 4-й зонах), с 6-го — в.41 и т. д., с л-го уровня в (л — 2)! раз меньше, т. е. количество ветвей в унифицированном дереве распределится в зонах соответствующих уровней следующим образом: * '
I— л — 1
II — (л — 1) (л — 2),
III— (л — 1) (я — 2) (л — 3)г
j y (л — 1)(в — 2) (га— 3)(я — 4) |
^ jg j |
д - 2 - (" - Ц (" f f 4) |j b - -• 2- ! = |
(Я- |
1) (Я - 2 ) (л - 3 |
|
л - 1 - |
2: *. = |
(/г — |
1) (/г —2), |
(я — 1) (я — 2) (я — 3) . . . |
2 • 1 , |
п |
|
Таблица 1
Тогда общее выражение для количества ветвей унифицирован ного дерева примет вид
|
Sy = (п — 1) + |
(л — 1)(л — 2 ) + |
(ra~ 1)(n~ 2)(n^ |
- + |
|||||||
|
|
|
|
|
|
|
|
1 ! |
|
|
|
+ |
( я - 1 ) ( я - 2 ) ( я - 3 ) ( я - 4 ) |
|
( п — 1) (я — 2) (я — 3) . . . 3 • 2 • 1 |
||||||||
21 |
|
|
|
|
-Г |
|
(п —3)І |
|
1 |
||
|
|
|
|
|
|
|
|
|
|
|
(1Л6). |
^ = |
( n - l ) ( n - 2 |
|
) [ - ^ |
- + |
l + |
- ^ Tr I + |
(n |
3о)|г е -4)- + |
|||
|
|
|
|
|
|
|
|
|
2! |
|
|
|
|
|
|
|
(я — 3) |
. . . 3 • 2 • |
|
|
|
(1.17) |
|
|
|
|
|
|
(я — 3) I |
|
|
|
|||
|
1+ |
|
|
|
|
|
|
|
|||
|
( я — 3) |
|
(я — 3) (я — 4) . |
+ |
|
|
|
||||
|
|
1 I |
* + |
|
21 |
Г |
|
|
|
||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
— |
■*"“ S - |
(1 + |
» Г 4- |
(1.18) |
||
Выражение (1.18)— это разложение |
бинома |
Ньютона |
по |
х; при |
|||||||
X = 1 оно входит в состав выражения (1.17). Вследствие того что |
|||||||||||
ряд (1.18) сходится при X = 1, его сумма определяется |
как |
|
|||||||||
|
|
|
lim (1 +ѵс)п_3 = |
2п~ \ |
|
|
|
|
|||
|
|
|
*-*і |
|
|
|
|
|
|
|
|
18
Тогда |
|
|
|
Sy = ( я - |
1) + |
+ ( л - 1) ( я - 2 ) ■2"-3 = |
|
= |
2 (/г — 1) + |
(fl — 1) (/г — 2) • 2П-3 . |
(1.19) |
Выражением (1.19) оценивается объем памяти, необходимый для решения задачи с п городами.
Интересным в исследовании унифицированного дерева является вопрос о количестве одноименных ветвей в каждой зоне уровня. Из выражения (1.15) видно, что повторение одноименных ветвей начинается в зоне третьего и продолжается до (п — 2)-го уровня. Число повторений определяется как частное от суммы ветвей в каж дой зоне и количества повторяющихся (гг — 1) (п — 2) ветвей. Сум ма ветвей в зоне определяется на основании выражения (1.16): над каждым слогаемым Sy поставлена цифра, означающая принадлеж
ность данного количества ветвей к |
соответствующей зоне. Тогда |
|||
каждая ветвь повторяется в соответствующей зоне: |
|
|||
I I - 1 , |
|
|
|
|
III — л — 3, |
|
|
|
|
TV _ |
(« 3) (я |
|
4) |
|
|
2 ! |
|
|
|
|
(п — 3) (п — 4) (д — 5) |
|
||
|
|
3! |
’ |
(1.20) |
И - 2 - |
(я-З)І |
= |
п- ■ 3 , |
|
|
(„ — 4)1 |
|
|
|
п — 1 |
(« - 3 )1 |
|
1 |
|
(/»— 3) I |
|
*• |
|
|
|
|
|
Mâ выражения (1.20) следует, что в унифицированном дереве ветви повторяются в зонах 3-го, 4-го, ..., (п — 2)-го уровней.
Повторение ветвей в зонах наглядно представлено на треуголь нике повторений, построенном на основании (1.20) для задач от 5 до 13 городов (табл. 1).
Треугольник можно продолжить |
для любой задачи. Видно, что |
построение его достаточно простое, |
если обратить внимание на то, |
что в унифицированном дереве для |
пяти городов есть одна зона, в |
которой повторяются одноименные |
ветви, для шести — две, для |
семи — три и т. д., т. е. основание треугольника определяет коли чество зон, в которых повторяются одноименные ветви, причем ес ли число этих зон в дереве нечетное, то существует одна зона, если четное, то две с максимальным числом повторений. Вследствие симметрии число повторений достаточно вычислять только для од
ной половины треугольника. Число повторений |
в третьей |
и в |
(п — 2) зонах для задач с пятью, шестью и т. д. |
городами |
будет |
соответственно 2, 3, 4 и т. д., а в остальных зонах определяется по принципу треугольника: сумма двух рядом стоящих чисел есть
2 |
19 |