Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Большие системы и управление

..pdf
Скачиваний:
10
Добавлен:
29.10.2023
Размер:
11.27 Mб
Скачать

140

где с - стоимость провоза по участку г единицу груза* План перевозок , удовлетворяющий условиям (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-

в некотором

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 - число случайных выборок,

Соседние файлы в папке книги из ГПНТБ