![](/user_photo/_userpic.png)
книги из ГПНТБ / Большие системы и управление
..pdf140
где с - стоимость провоза по участку г единицу груза* План перевозок , удовлетворяющий условиям (2) - (5), является допустимым. Если же план удовлетворяет и условию (6), то он
называется оптимальным. В условии (3) |
означает множество |
||
участков, |
исходящих из пункта |
\) , а |
означает множество |
участков, |
входящих в пункт V . |
(Входящий |
участок соответствует |
участку, по которому груз ввозится в данный пункт, а выходящий участок соответствует участку, по которому груз вывозится из данного пункта).
Решение транспортной задачи с учетом пропускных способно стей участков рассматривается в работах [9, 12\ .
Транспортная задача с учетом пропускных способностей от дельных участков и узлов менее разработана. Остановимся на од ном подходе к решению этой задачи.
Справедливо следующее утверждение. Для оптимальности допу стимого плана перевозок ТГ = (о;^ 7а:2 ,...7а?Л/)при учете пропускных способностей участков и узлов необходимо и достаточно, чтобы имелись такие неотрицательные числа (обычно в теории линейного
программирования их называют |
оценками): |
. .. * Пп^т±п,^ |
d , d 2, . . . , d N, 1,, 12 , • • •, |
w * выполнялись условия: |
V V + + |
если |
оср - 0 7 |
|
|
|
||
V V c-+^ + £^ ’ есет |
hi V о |
|
|
d r ~ 0 , |
если |
з~ А о? |
1 |
Н |
|
||
£„= 0 , |
если |
reuj |
|
|
|
|
( V
( 8)
(9)
(10 )
Метод построения оптимального |
плана основывается на при |
||
веденных условиях оптимальности. |
|
|
|
Допустимый план строится одним из известных способов[9 ,10J |
|||
с учетом ограничений (4) и |
(5). Получение оптимального |
сводит |
|
ся к следующему. Строится |
система чисел V171Г2 * •. •» Vm+'m-n1’ |
||
<tn d 2 , . . . , d N , l f , l 2 7 . . |
.*1п+т+п' |
по пРивеДенным ниже |
прави |
лам. Используя участки сети, |
для которых выполнены условия (9) |
|||
и (10 ), |
строятся потенциалы vj, |
+ |
с Учетом |
|
условия |
( 8) при произвольном |
значении |
оценки IT- |
в некотором |
![](/html/65386/283/html_QTGITtn19W.SFhW/htmlconvd-1IvL0l142x1.jpg)
141
пункте i 0 . Затем для участков, на которых имеет место |
= |
|
и 1^= О, строятся числа d r с использованием условия ( 8) . |
|
|
Для загруженных узлов находим: |
|
|
|
|
(И) |
После построения указанной систем* чисел проверяется вы |
||
полнение условия |
(7). |
|
Если условие |
(7) выполнено для всего плана, то построенный |
план оптимален и дальнейшее исследование прекращается. Если же найдется участок г $ для которого
то это значит, что исходный план не оптимальный и может быть улучшен в результате выполнения следующих действий.
|
Находим участки пути, на |
которых совершаются перевозки и |
|
определена указанная система |
чисел, соединяющие пункты J - и |
||
с _ |
с пунктом |
L0. Если несколько последних участков от цепо |
|
чек |
совпадают, |
то они отбрасываются. Оставшаяся совокупность |
участков образует простой замкнутый контур. На полученном кон
туре |
вводится ориентация. |
Если на |
участке нарушения |
0 и |
|
I- |
= 0, |
то положительным |
направлением считается направление |
||
отгпункта |
к пункту l - |
, если |
двигаться не непосредственно, |
а по контуру. Противоположное направление считается отрицатель
ным. Если на участке |
нарушения с/-< 0 или ^ _ < 0 , то положи |
|
тельным направлением считается направление, противоположное |
||
направлению перевозки на участке г |
. Если перевозка осущест |
|
вляется в положительном направлении, |
то полагаем бр=х^9 а если |
|
в отрицательном, то |
6 Г - - х р * |
|
Находим |
|
|
(12)
е (3)
где участок г принадлежит найденному контуру.
|
|
|
|
142 |
|
|
На контуре |
вводятся новые грузопотоки |
|
||||
|
|
|
|
х г = Х р + 6 , |
|
|
если |
перевозка |
на участке |
г контура осуществлялась в положи |
|||
тельном направлении, и |
|
|
|
|||
|
|
|
|
х ' = х г - £ , |
|
|
если |
в |
отрицательном направлении* В соответствии |
с полученным |
|||
после |
исправления новым планом уточняются числа |
|
||||
dj, d2 |
|
l], l 2 |
’ ^п+т+п1 |
в соответствии с форму |
||
|
|
|
||||
лой (8) |
и производится проверка нового плана на |
оптимальность, |
т*е. описанная процедура повторяется. Через конечное число ша гов приходим к оптимальному плану.
143
Кандидат технических наук О . ГРИГОРЬЕВА
СТОХАСТИЧЕСКИЙ МЕТОД РЕШЕНИЯ ЗАДАЧИ КОММИВОЯЖЕРА
Задача коммивояжера формулируется следующим образом# Имеет ся п пунктов (городов) и задана матрица || || = 7 , 2 , . . л) кратчайших расстояний между каждой парой пунктов. Коммивояжер должен посетить каждый пункт и вернуться в исходный таким об разом, чтобы путь (порядок посещения пунктов) имел минимальную общую протяженность. Задача имеет многочисленные приложения в
самых различных областях науки и техники. |
Так, к задаче |
комми |
|
вояжера сводятся следующие задачи: |
|
|
|
- отыскание наименьшей длины кабеля, |
соединяющего п пунктов |
||
(проблема возникает в вопросах связи) [2] ; |
|
|
|
- отыскание общего наименьшего времени переналадки |
станка |
||
(прибора;, на котором происходит обработка п |
изделий; |
время |
|
переналадки между каждой парой изделий |
задано [26]; |
||
- осмотр (проверка) некоторого агрегата, |
состоящего |
из л |
компонент, если заданы времена (или стоимости) переходов для всевозможных упорядоченных пар компонент при равных частотах осмотров (задача выбора оптимального маршрута передвижения ре монтной бригады) [25];
-составление учебных планов и отыскание оптимальной после довательности предметов обучения;
-инспектирование;
-оптимизация, возникающая в программировании (минимизация числа передач управления [13]).
Приведенный перечень задач, разумеется, не является исчер
пывающим.
Задаче коммивояжера уделяется большое внимание как в зару бежной, так и в отечественной научно-технической литературе
144
[l4 , 15, 16, 19]. Однако построенные алгоритмы, как правило, сложны, громоздки, чувствительны к размерности матрицы || о - ||.
Рассмотрим некоторые методы решения задачи коммивояжера, В работе [143 предлагается точный метод решения задачи ком
мивояжера, основанный на сведении ее к задаче целочисленного линейного программирования. Целочисленное по ъ • - решение сле дующей задачи линейного программирования является решением за дачи коммивояжера.
Найти минимум линейной формы
Ы, |
j=, |
ч Ч |
I = Е |
£ |
a L i 2 : : |
при следующих ограничениях:
Е |
. ^ < г 7 |
II |
CNJ |
|
|
||
< / . < * |
|
|
|
|
|
(i ~ /? 2 9••• У п ) 7 |
|
г Ч |
- в Ч * ° |
( LГj = |
Ъ 2 9 • 7 J1) 7 |
|
|
( I )
(2 )
(3;
(4)
|
|
|
(5) |
|
- |
0 , к~ const у к => / |
(6) |
Ы * ? 1’ |
ч |
’ |
(7) |
' ^ |
|
|
|
г < г ° |
eV - 0 |
( L , j = J,2,. . . , п ) . |
(8) |
В работе [14] показано, |
что каждому пути (проходящему че |
рез все пункты один р аз), у которого начальный пункт совпадает с конечным (гамильтонов контур), соответствует некоторое цело
численное по 2 ц решение |
системы (2 ) - (8) . |
|
Рассматриваются [14] |
следующие множества: X = |
^ |
|
|
|
|
|
|
|
|
145 |
|
|
|
|
|
исходное |
|
множество пунктов; |
A = { ^ j } ~ мнохество |
для |
|||||||||
которых |
|
|
|
В |
|
|
" множество дуг, для которых |
|
|||||
б д > 0 ‘, |
|
А1 - множество дуг, |
для которых |
Ъц=1 (АусА); |
^ -м н о |
||||||||
жество дуг, |
для которых |
б - |
^ 0;, [ X , A ] t |
[ X , б ;] |
- |
графы, |
об- |
||||||
разованные |
множеством точек |
X и множеством дуг А, В, Aj, |
Bj. |
||||||||||
|
Если каждой дуге ( х т ,^^гам ильтонова |
контура |
|Л = |
[ I , |
х 2 , |
||||||||
х , |
, . . . , я |
Л в |
графе [X,Допоставить в соответствиеz„ |
_ |
= / |
||||||||
Л |
|
|
л’ J |
|
|
|
|
|
|
rn’^tn+l |
|||
и |
б ^ |
• |
|
= |
■J |
■ |
7 положив для всех остальных дуг ъ--= |
||||||
|
х т |
’ |
|
|
|
7 |
|
|
|
|
|
|
La |
= б- = 0, |
|
то |
получается некоторое решение |
системы (2 ) - |
(8) . |
||||||||
|
Верно также обратное. Целочисленному |
по |
решению систе |
||||||||||
мы (2 ) - |
|
( 8) соответствует некоторый гамильтонов контур в гра |
|||||||||||
фе [ Х , А ] . |
Пусть |
ъ-= |
I |
и 6ij> 0 являются решением систевш |
( 2 ) - |
(8) . Из требования целочисленности и условий (2) и (3) следует,
что из каждой точки графа [ X , А ] |
исходит и в каждую точку вхо |
|||
дит только одна дуга, для которой |
J . Из кавдой точки гра |
|||
фа [ X , В] выходит и в каждую точку |
входит не более одной дуги, |
|||
для которой б - > 0 * |
Если допустить противное, что из |
некоторой |
||
точки |
исходят две |
или более дуг, для которых б ^ > |
0 » то |
|
согласно |
условию (4) |
из данной точки исходят две или более дуг, |
для которых 0 , что вступает в противоречие с требованием целочисленности или с условием (2). Требование целочисленности условия (3) гарантируют невозможность того, что в точку
входит более одной дуги, для которой е ^ > 0 . В соответст
вии с установленным и условием |
(6), если в точку х ^ входит од |
||
на дуга, для которой |
|
0 , |
то из нее обязательно исходит |
одна дуга, для которой |
а ^ > 0 . |
Отсюда следует, что совокупность |
|
дуг, для которых б - > |
0 , |
образует один или несколько изолиро |
|
ванных контуров. |
|
|
|
Наличие двух или более |
изолированных контуров невозможно. |
Если допустить, что имеется несколько контуров, тогда контур, проходящий через выбранную начальную точку, проходит п ] точек
(/?,< |
/?). |
В каждой точке этого |
контура, |
заключенной между точ |
||
ками |
к |
и |
т , в соответствии с |
условием ( |
6) |
|
|
|
|
°К1 = к б 1т’ |
|
|
|
так что |
в начальную точку входит дуга, |
для |
которой |
где /?ус п , а это противоречит условию (7).
|
146 |
|
Контур, образованный дугами, для которых б - > 0 , является |
||
гамильтоновым контуром в графе [X, £]• Гамильтоновым контуром |
||
в графе [X,А ]является также контур, |
образованный дугами, для |
|
которых |
Ъ ц = 1• Если предположить* |
что совокупность этих дуг |
образует |
несколько изолированных контуров, то хотя бы один из |
них не должен проходить через начальную точку. Произвольная
точка этого контура соединена дугами, |
для которых б д > 0 » с |
|
|||
начальной точкой [см. |
(5)] , а в силу |
условия (4) она должна |
|
||
быть соединена с начальной точкой также совокупностью |
дуг |
|
|||
Z g= I . |
Отсюда следует, что изолированных различных контуров |
||||
в данном графе не существует. |
|
|
|
||
Таким образом, целочисленное решение системы (2) - |
(8) |
оп |
|||
ределяет |
некоторый гамильтонов контур в исходном графе [X , |
А], |
|||
а тому целочисленному |
по Ъц решению, |
которое доставляет мини |
мум, выражению (I) соответствует гамильтонов контур кратчайшей длины. Для нахождения целочисленных решений по г ц можно ис пользовать алгоритм Гомори |17, 18]. Однако этот метод неудо бен в практике вычислений и обладает неопределенностыо [19]. Так, для многих задач оптимальное решение не удается получить даже после многих тысяч операций, в то время как другие реша лись за несколько десятков операций.
Приложение к реальным задачам целочисленных моделей сви детельствует об их малой эффективности. Практика расчетов по казывает, как следует из работы [18], что большинство числен ных экспериментов, связанных с решением целочисленной задачи линейного программирования, эквивалентной задачи коммивояжера, оказывались неудачными. Кроме того, методы целочисленного ли нейного программирования представляют известные трудности при расчетах. Применение же общих методов линейного программирова ния приводит к тому, что в большинстве случаев они дают дроб ные решения. Округление результатов полученных нецелочисленных решений до ближайших целых чисел часто не только уводит от оп тимального целочисленного решения, но может вывести за пределы допустимых решений. Поэтому прием округления можно рекомендо вать лишь для практических задач, у которых компоненты решения достаточно велики. Если компоненты невелики (в особенности, ес ли переменные могут принимать лишь значения 0 и I , как в рас сматриваемой задаче), то такой подход недопустим*
Рассмотрим подход к построению оптимального решения задачи коммивояжера с позиций динамического программирования [15] .В осно-
147
ве рекуррентных соотношений, применяемых при решении задач с помощью динамического программирования, лежит принцип оптимальгности Веллмана заключающийся в следующем. Нельзя получить опти мальное значение целевой функции к -шагового процесса, если при переменных, выбранных на к -м шаге, значение целевой функ ции для оставшихся (к - I ) шагов не является оптимальным при этом наборе значений переменных [20] .
В соответствии с принципом оптимальности представим маршрут обхода п пунктов как многошаговый процесс (всего п шагов). Содержание каждого шага определим как направленный переход меж ду двумя пунктами. Пункт отправления обозначим индексом L , а
пункт прибытия - индексом |
j . При заданной матрице |
кратчайших |
расстояний между пунктами |
||ац II (i t<j = 1,2 , ... , п ) |
применим |
принцип оптимальности Веллмана к построению рекуррентных со отношений, связывающих fk с - минимальную протяженность
к -шагового обхода с (/< -1)-м шаговым обходом. Оптимальные зна
чения целевой функции f1 одношагового перехода |
определяются со |
||||
отношением |
|
|
|
|
|
|
^7 ( ^ 0 » f n O o } ) |
a Lo' i ’ |
^ |
||
где Фл |
множество пунктов, |
из которого извлечены |
|||
пункты с |
номерами {i0, |
i 0 - |
исходный пункт. |
|
|
Минимум достигается |
при некотором номере |
i n 6 Фл { i 0} • |
Обозначим эту функцию через ф1(^0,Фп {£0})« Тогда оптимальный
номер следующего посещаемого пункта определится как функция:
* „= % ( ; о ’ ф п Ы ) - |
(10) |
Протяженность перехода, соответствующая минимуму, опреде лится соответственно
^11 |
^ |
(II) |
|
В соответствии с принципом оптимальности уравнение двуша гового процесса определится соотношением
^2 ^ 0 ’ { 1 о} ) |
^ ^ ^ |
12 + ^7 0 7 Фп Т ^ О’ i |
* |
(12) |
|
фл{*о}
|
|
148 |
|
|
|
|
Значение минимума достигается при |
11г и |
j |
как |
некоторых |
||
функций ОТ 10 и |
Фп {£„}. |
|
|
|
|
|
Решение двушагового перехода может быть записано в виде: |
||||||
Чг ~ ^ 2 |
^Lo 1 |
1 |
hz |
0 * 0 |
’ |
(13) |
1>гг~ % (Чг^п |
Ч2}) 7 |
/ 2 2 = |
( 112'>^п{1о->Ч㧑 |
|||
Продолжая рекуррентный процесс для |
к -шагового перехода, |
|||||
получим |
|
|
|
|
|
|
^ о ’фл{‘о})= "НП [гкмк+/к-тО>фЛ'о><(})]'
Решение к -шагового перехода имеет вид: |
|
||||
Ч к ~ |
<Рк (‘ о»Фл {‘ о}) |
l t k = |
%<(to>$n{to}/' 1 |
|
|
L2 k = |
Ч’к-Л/к’^Л^оЛк}) |
^к=^k-l(^k^n{‘'fl’^k})/ |
|
||
|
|
|
|
> |
|
^kk=Cfi(^k-/k’ ^n{^oi 4 k |
»’ • •’ C k - 1 k }) ’ |
|
|||
l l k = % (4 -fk Л п{ 1‘о’ L W ’ • |
Lk - l k } ) ' |
|
|||
На последнем шаге к = N= n выражение |
(14) имеет вид: |
|
|||
|
?н ( Lo »фл { 1о}) ~ mLn |
[}n-i n + |
J • |
(I6) |
|
|
|
i * * n Ы |
|
|
|
Таким образом, соотношения (10) - (16) |
представляют |
собой |
алгоритм решения задачи коммивояжера методом динамического про граммирования в общем виде.
Практические расчеты [15]] показывают, что метод динамиче ского программирования обладает большой трудоемкостью, быстро возрастающей с ростом числа пунктов. Кроме того, предъявляются жесткие требования к общему объему памяти при реализации на ЦВМ*
Поэтому в настоящее время ведутся разработки [22] построения эффективных алгоритмов решения задачи коммивояжера. Хорошие ре зультаты получаются при использовании метода случайного поиска. При применении случайного поиска не накладывается ограничений
149
на целевую функцию, поэтому метод практически применим к реше нию любых задач оптимизации. Значительно снижаются по сравне нию с другими методами требования к объему памяти при реализа ции на ЦВМ. Программы просты с преобладанием логических опера ций (что увеличивает среднее быстродействие машины при реали зации метода). Однако, чтобы получить решение с любой наперед заданной точностно, необходимо провести значительное число ис пытаний, что часто служит серьезным препятствием для примене ния метода. Тем не менее метод случайного поиска успешно при меняется к решению многих задач. Рассмотрим применение его к получению решения задачи коммивояжера. Остановимся вначале на случае, когда информация об исходных данных для построения ап риорного распределения не задается. Считается, что из начального пункта в любой другой пункт можно попасть с одинаковой вероят
ностью, |
т . е . задаемся равномерным |
законом выборки очередных |
||
пунктов |
посещения. Метод поиска состоит в следующем. На каж |
|||
дом испытании строится случайная |
последовательность |
, Ъ2,...,Ьп_1 |
||
соответствующая маршруту обхода |
|j>- , Ь™, Ь^ \ . . . , |
Ь ^ г , b- |
||
затем вычисляется протяженность маршрута |
: |
|
(Г7)
) = V- аь1рь(!\, + аЬ<’>Ь:
S L - 2 L ь-М Л L 0
Затем производится следующее испытание и результаты срав ниваются. Оставляется маршрут обхода того испытания, которое доставляет выражению (17) меньшее значение. Число испытаний считается заданным заранее. После проведения N испытаний полу чаем некоторый маршрут у*(Л^и его протяженность ) , что
с некоторой вероятностью, зависящей от А/ # является оптималь ным решением задачи коммивояжера.
Заметим, что вблизи случайной выборки, соответствующей не которому маршруту, можно организовать поиск локального миниму ма детермированнш путем, организуя некоторые перестановки эле
ментов в |
выборке. Блок-схема алгоритма приведена на блок-схеме |
рис.29 и |
30. |
Блок |
I осуществляет ввод исходных данных и перевод их из |
десятичной системы счисления в двоичную., На рис.27 и 28 обозна-
чено: А = \\aL-\\(l. = 1 , 2 , 3 , . п), |
ис“ |
ходный путь обхода п пунктов , |
N - число случайных выборок, |