книги из ГПНТБ / Большие системы и управление
..pdf120
I l f k ( y ) q ( x ) ^ |
E f k( y ) q k { x ) , |
(5) |
к |
к |
|
что возможно лишь в том случае, когда в выражениях (4) и (5) имеет место равенство. Таким образом, установлено, что
= n u n Е [min fk ( y ) (6)
Из выражения (6) следует, что в сформулированной задаче перевозок представляется возможным сначала выбрать оптимальные в смысле приведенного критерия маршруты, а затем оптимизировать
объемы перевозок на них. Отсутствие ограничений по пропускной способности транспортной сети позво ляет выбрать не более од ного маршрута между каж дой парой пунктов (L, j ) . Известную трудность пред ставляет проблема выбора допустимого маршрута из множества всевозможных маршрутов.
Следует отметить, что число различных путей между двумя заданными пунктами с увеличением числа узловых пунктов очень быстро растет.В ка честве верхней границы число путей между двумя заданными пунктами может служить 2 т+ n + n'-l
Транспортная сеть в дан ном случае эквивалентна полному графу [2 ]. На
рис. 17 показан рост числа путей между заданными пунктами в зависимости от роста числа пунктов. Те маршруты от пункта с до пункта J , которые удовлетворяют ограничению по времени
121
(выполняется условие 4 ), являются допустимыми. Оптимальным маршрутом от пункта I до пункта j считается тот, на котором вероятность потери груза минимальна. Таким образом, возникает необходимость для каждого допустимого маршрута вычислить вре мя его прохождения и сравнить с допустимым временем. Для мар шрутов, удовлетворяющих ограничению по времени, необходимо вы числить вероятность потери груза на данном маршруте и между каждой парой пунктов выбрать наиболее надежный маршрут.
Покажем, что случай, когда задано время пребывания груза
в каждом пункте: |
для пунктов отправления i^( |
1 , 2 , . . . , |
т)* |
||||
для пунктов назначения t - ( ] = I , |
|
|
|
||||
2, . . . , л ) , для |
промежуточных пунк |
|
|
|
|||
тов t к ( к - |
1 ,2 , |
...,/7*) и вероят |
|
|
|
||
ности потери грузов соответственно |
|
|
|
||||
P'L |
tPj $ РК* сводится путем некоторо |
|
|
|
|||
го преобразования к случаю, когда |
|
|
|
||||
заданы только характеристики участ |
|
|
|
||||
ков транспортной сети. Это возмож |
|
|
|
||||
но только тогда, когда транспорт |
|
|
|
||||
ной сети можно соотнести ориенти |
|
|
|
||||
рованный граф 6 ' ( w ,U). Считаем, |
|
|
|
||||
что время пребывания в пункте и |
Рис.18. Сеть до преоб |
||||||
вероятность его |
потери не зависят |
разования |
|
||||
от количества груза. |
|
|
|
||||
|
Преобразование заключается в следующем. Для ориентирован |
||||||
ного графа |
|
Построится эквивалентный граф G (W* и*) следую |
|||||
щим образом |
[б ]. Каждому узлу иге W поставим в |
соответствие |
|||||
два узла иг‘и ш Л |
Если дуга (иг, ц ) |
€ U (це WJ» |
то |
U * |
|||
и |
(иг] urf)eU* |
а |
если ( q*, ьу)<ьУ, то (ц1, ш 1)е U* для каждого |
узла ureW . Тогда время прохождения грузом дуги (ш[ ш ) соста-
В И Т |
~ |
С р = t ( u r , q ) • |
На рис. 18 изображена часть транспортной сети до преобра |
||
зования, а |
на рис.19 - |
после преобразования. |
Аналогично соотносятся заданные вероятности потери груза |
||
в исходном |
и преобразованном графах. Однако заметим еще раз, |
что подобное преобразование проводилось, когда исходной транс портной сети можно соотнести ориентированный граф. В общем слу чае для практических задач нет необходимости проводить такое преобразование. Так, если от пункта 10 до пункта j 0 маршрут
122
есть |
последовательность |
участков ui0iluiji2- • -ui |
j 0> т0 |
вРемя |
||
прохождения этого маршрута составит |
|
|
|
|||
|
h 0i = |
ц |
P = о |
P |
|
|
|
o i 0 |
r e ( t 0 , j 0 ) |
|
|
||
|
В пунктах |
|
|
|
, |
Cti |
|
отправления можно учесть время погрузки t-L |
= -~ г |
||||
где |
/^ - фронт погрузки |
(количество |
транспортов, |
нагружаемых |
в единицу времени). Аналогично можно определить время разгруз ки в пунктах назначения. Такие оценки времени погрузки и раз грузки являются завышенными. Временем задержки в промежуточ ных пунктах в некоторых случаях можно пренебречь.
Если удается перечислить все элементарные пути между пунк тами отправления и пунктами назначения, то можно найти опти мальный маршрут между заданными пунктами 10 и j 0 , т .е . маршрут, вероятность потери груза на котором минимальна:
Рг |
. = m in . 47 - |
Т 1 Р г У г Ыв) П |
Р а а |
(7) |
|
K L o t < t o J |
|
||||
|
|
|
9= о |
> |
|
где рг- |
вероятность непотери груза |
на участке г ; |
|
||
pq - |
вероятность непотери груза |
в пункте ср. |
|
||
Количество различных |
путей между фиксированными пунктами |
с ростом общего числа пунктов и связей меяда ниш на сети уве личивается настолько быстро, что даже современные быстродейст вующие ЦВМ не в состоянии выполнить для. практических т и п осьем вычислений по просмотру всех маршрутов для выбора опти мальных из них за приемлемые сроки. Поэтому необходима прибли
123
женная методика, позволяющая достаточно быстро отыскать "хоро
ший" |
маршрут, |
|
|
|
|
|
|
|
В качестве одного из приближенных методов можно использо |
||||||
вать метод статистических испытаний, укрупненная блок-схема |
|||||||
которого изображена на рис.20. |
|
|
|||||
|
Блок I |
означает начало |
цикла |
|
|||
по числу испытаний, блок 2 |
содер |
|
|||||
жит оператор А ,((ц ^)которы й |
|
|
|||||
организует |
процедуру^одучайного |
|
|||||
поиска маршрута от |
пункта |
I |
до |
|
|||
пункта j . |
В блоке 3 осуществля |
|
|||||
ется |
расчет |
времени следования |
|
||||
по маршруту |
|
Блок 4 осущест |
|
||||
вляет проверку на допустимость |
|
||||||
м а р ш р у т а В |
блоке 5 |
опера- |
|
||||
|
Az(Pmin ( ( Ч ) $ ) ) шб*Р а е * |
|
|
||||
маршрут, для которого вероятность |
|
||||||
потери минимальна. Блок 6 прове |
|
||||||
ряет |
конец цикла по испытаниям. |
|
|||||
Данный метод позволяет |
получить |
|
|||||
оптимальный маршрут с |
наперед |
|
|
||||
заданной вероятностно. |
Время |
|
|
||||
счета определяется числом испы |
|
||||||
таний. |
|
|
|
|
|
|
|
|
Если в |
качестве оптимальных |
|
||||
путей принять кратчайшие, |
то |
|
|
||||
можно воспользоваться методом |
|
|
|||||
Форда [2 ]. |
Сущность алгоритма |
|
|
||||
нахождения кратчайшего пути за |
|
||||||
ключается в |
следующем [7 ]. |
Счи |
|
||||
тается заданным граф G(W, U )7 |
Рис.20. Укрупненная блок- |
||||||
соответствующий транспортной се |
|||||||
ти, |
связывающей между |
собой пунк |
схема машинного алгоритма |
||||
отыскания оптимального |
|||||||
ты отправления, назначения и про |
маршрута методом стати |
||||||
межуточные пункты. Для каждого |
стических испытаний |
||||||
|
|||||||
ребра (участка сети) ие U |
задана длина соответствующая сред- |
||||||
нему времени пробега участка |
t ц , |
|
|||||
|
Временем пребывания груза в узлах пренебрегаем. Каждому |
||||||
пункту присваивается некоторый индекс |
Л р ( р = I , 2 f . . . , / 77+/7t//J. |
||||||
Для пункта |
10 (от |
которого |
определяем кратчайше маршруты до |
124
всех остальных) полагаем ЛРо= О, а Далее проводится процесс уточнения следующем. Для некоторого пункта к
для прочих пунктов Л = оо индексов» заключающийся в находим
|
|
( и ) |
|
|
|
|
1 |
|
|
|
Х х |
= |
+ |
Ч / с |
' |
I |
(8) |
|
|
|
гг,: |
|
(Н )+ т ^ Я |
I |
|
|
где |
новое |
значение |
индекса; |
|
|
|||
|
прежнее значение; |
|
|
|
|
|||
|
Л(^ ]- уточненное значение |
индекса в пункте |
к • |
|||||
|
Номер участка, |
который приводит к понижению индекса в пунк |
||||||
те |
к , запоминается. |
Процесс |
повторяется до тех |
пор, пока |
дальнейшее понижение индексов становится невозможным. Значения окончательных индексов в каждом пункте соответствуют длинам
кратчайших маршрутов от пункта 10 до всех остальных, |
т .е . |
|
Л ; = т сп |
Е t r y l v) = ( T * a 0 , j 0 ) ) , |
(9) |
*реМ (1о,Д)
где ц - некоторый путь, принадлежащий множеству путей, соеди няющих пункт L0 с пунктом I • Путь, соответствующий кратчай шему расстоянию, устанавливается по номерам участков, которые запоминались на последнем шаге уточнения индексов. Делается
это следующим образом. |
Пусть для пункта j |
запоминался уча |
||||||
сток U .По этому |
участку на графе находим пункт |
к |
, смежный |
|||||
с пункте» j • По пункту |
к |
находим участок |
и , |
понизивший |
||||
индекс в пункте к . Процесс продолжается до тех пор, пока не |
||||||||
придем в пункт |
Z0. |
Найденная таким образом |
последовательность |
|||||
участков {л*= [ а р , иГУ..,^ с о с т а в и т |
минимальный путь |
от пункта |
||||||
i 0 до пункта } |
° , |
которому |
соответствует вероятность потери |
|||||
груза |
Для оптимизации плана перевозок на множестве |
|||||||
кратчайших маршрутов строится матрица ||^ - || |
(Z=7,Z,.,.,/77^=7,2,...7flJ; |
|||||||
где |
|
|
|
|
|
|
|
|
|
|
P*Ui)> если |
T*h .} ± i - don, |
|
R |
, если T(l n > t - g o n . |
125
Рассмотрим еще один вариант построения матрица 1^ц\\ • Если вероятность потери груза на некотором участке постоянна, то между двумя вершинами можно найти наиболее надежный маршрут [8]. Под надежностью маршрута имеется в виду вероятность доставки груза на этом маршруте, т . е . величина
|
d<W o)= n |
( ; - p j (о^ />«,- 1) , |
|
(Ю) |
||||||
|
|
U^'Lo/io) |
|
|
|
|
|
|
|
|
где |
ри - вероятность потери груза |
на |
участке |
и . |
|
|
||||
Определить наиболее надежный путь от пункта |
i 0 до пункта |
|||||||||
jo |
- это значит найти такой |
путь (lorj 0) * , для которого вели |
||||||||
чина |
d u ° 7* o) имела бы максимальное |
значение* |
|
|
|
|
||||
Отыскание |
|
|
|
|
|
|
|
|
|
|
|
m ax |
|
|
m a x |
T l { 1 - p u ) |
|
|
|||
|
|
|
|
(«•o ,io) |
|
|
|
|
|
|
можно заменить нахождением максимума |
|
|
|
|
|
|
||||
|
In П О - P J = £ |
l n ( 1 ~p u) |
|
|
|
( ID |
||||
|
|
U£(Wo) |
“ e(Wo) |
|
|
|
|
|
|
|
или минимума £ |
- In ( 1~pa)t где |
- l n ( / - p < J ^ 0 |
. З д е с ь |
|||||||
|
we^io) |
|
|
|
|
|
|
|
|
|
|
множество различных путей |
от времени |
i 0 |
до верши |
||||||
ны |
. |
|
|
|
|
|
|
|
|
|
Если длинам участков сети придать |
значение - I n |
р и и опре |
||||||||
делить между пунктами б0 и j 0 путь минимальной длины, то этот |
||||||||||
путь |
будет также наиболее надежным от |
пункта |
i 0 до |
|
пункта j 0. |
|||||
Если |
^ |
Ha минимального пути, |
то е х р |
|
|
j |
||||
есть максимальная надежность маршрута от пункта |
10до пункта j D |
|||||||||
|
Таким образе»!, |
если вероятность потери’ груза |
на |
участке |
||||||
постоянна, то между каждой парой пунктов |
отправления и назна |
чения можно определит^ наиболее надежный маршрут и составить
матрицу |
|| |
Л по следующему правилу: |
|
|
||
|
|
1- |
^0 »Jo)*. |
, е с ли |
Т* |
6: i |
|
|
е х р ( - L ( o^ oh) |
||||
Ч |
г |
|
|
|
4>><io) |
i 3on |
R , |
бели T * |
V 3on |
|
|
||
|
|
|
(L * ia) * |
|
|
126
127
Такое построение матрицы | ( ^ | | приводит к хорошим резуль татам, если надежность объектов транспортной сети не зависит от времени•
Алгоритм, приведенный на блок-схеме (рис*21), позволяет находить кратчайший, наиболее надежный и наидлиннейший путь между заданными пунктами. Приведем краткое описание блок-схемы.
В блоке I оператор А 0 осуществляет ввод программы, необхо
димых постоянных, |
а также исходных данных [графа 6(W7U ),длин |
участков, данных, |
необходимых для вычисления P(i^) , tj доп] * |
и перевод исходной информации из двоичной системы счисления в
десятичную. Елок 2 - |
блок начала цикла (ВЦ) по числу пунктов |
||
отправления. |
В блоке |
3 оператор |
А1(Пр) осуществляет запомина |
ние регистра |
адреса, |
величине |
присваивается значение "О", |
а величине |
|
значение |
R (большое число). Оператор |
А'г(Пр) блока 4 -фиксирует установление индексов. Блок 5 осущест вляет начало цикла по числу участков сети Блок 7 со держит логический оператор 7j(0p), который проверяет наличие перемены ориентации при уточнении оценок (индексов). Если пере
мена ориентации производилась, то осуществляется переход к |
бло |
|
ку 9, в противном случае - к блоку 8. |
|
|
Блок 8 осуществляет перемену направления перевозки. В бло |
||
ке 9 проверяется конец цикла (КЦ) по |
г (по числу участков). |
|
Оператор А3(£71})(блок II) формирует кратчайшие маршруты от |
i3ad |
|
до всех пунктов назначения. Оператор |
( P(i,j)) вычисляет |
ве |
роятность потери груза на маршруте (/,^) . Оператор |
|
выдает на печать маршруты от 1зад до всех остальных пунктов j ,
их протяженности и вероятности потери груза. В блоке 15 |
опера |
||||||||
тор |
А 5 ( I |
|
•||) |
вычисляет матрицы || (= - 1| , оператор |
п 2( |
1 М |
|||
выдает на |
печать матрицу | | ^ | | . |
|
|
||||||
|
Программа, составленная согласно описанному алгоритму для |
||||||||
ЦВМ М-20, |
занимает 0472 ячейки (восьмеричная система счисле |
||||||||
ния). |
Настройка программы производится по трем параметрам: |
||||||||
|
- |
номеру ячейки, с которой начинается ввод исходных дан |
|||||||
ных |
|
н |
; |
|
|
|
|
|
|
|
- |
|
числу |
пунктов на сети ( п = т + п + n f) |
|
|
|||
|
- |
|
чисду |
участков сети |
N . |
|
|
||
|
Если принять во внимание количество ячеек, которое занима |
||||||||
ет программа, |
стандартные |
подпрограммы к поле, отведенное для |
|||||||
путей, |
то |
п |
и |
А/ должны удовлетворять соотношению |
п + N ~ 1536. |
128
Рассмотрим далее построение допустимого плана в задаче пе ревозок* План перевозок, удовлетворяющий условиям 1,2,3,4, на зывается допустимым* После построения оптимальных маршрутов и
матрицы |
||^ .| допустимым является план, |
удовлетворяющий усло |
|||
виям |
^ |
|
|
|
|
|
&0 ( 1 |
= /, 2 |
. у/77; |
j — /?2 ,. . . , п ) , |
(К) |
|
т |
п |
Х-- = a i |
. |
|
|
= bi |
’ £ |
(13) |
Построение допустимого плана можно осуществить по методу "северо-западного угла" или по методу "минимального элемента" [9] * Наиболее приемлемым (дает хорошее приближение к оптималь ному) является метод Фогеля, заключающийся в следующем [ю ] •
I.Составляется матрица Ч7 * число строк которой равно
т + 2 , |
а число столбцов - /7 + 2 . Первые тп элементов мат |
|
рицы |
- |
это элементы матрицы ||^£-{| ( I = 1,2,...,/77-j- = I, |
2, |
п ), |
(ш + I)—я строка и (/7 + 1)-й столбец - разности, |
процесс получения которых будет описан в следующем пункте; (/л+ 2)-я строка соответствует потребностям пунктов назначения, (/? + 2)-й столбец - наличию груза в пунктах отправления.
Таким образе»!, матрица Y имеет следующий вид;
5» *Г/2 *** ^/л |
Д; л+г |
02 |
||
^27 |
^22 **’ |
^2л Д2 Л+1 |
||
^ m j ^тг ' ’ * |
п ^т п+1 |
0 |
||
|
+ п ^т+1 2 |
|
о |
|
ь 1 |
ь 2 . . |
|
0 |
0 |
2. Находим разности матрицы jj |
сначала по строкам, а |
затем по столбцам следующим образом/ Отыскиваем
= W
3; тем находим:
|
|
|
|
|
129 |
|
|
|
|
|
|
|
|
|
(16) |
|
i i * i l |
|
|
|
J-iTim |
|
|
В (п+ |
1)-й столбец матрицы |
'У заносим разности: |
|||||
^ '< b |
“ Sij, |
= |
A / n + i |
5 • • • ’ |
|
|
(17) |
%mjm= A rnn<-i ■ |
|||||||
Аналогично заполняется (m + D -я строка. |
|
|
|||||
Находим |
|
|
|
|
|
|
|
т 1 Ф ; / } = f c V - • ■ >’ т 1 п { ^ Л |
|
(18) |
|||||
- К » ’ |
|||||||
|
L |
|
1 |
|
i |
|
|
т М * г £ , } = |
■■ 5 |
т .1 п { ^ п } |
|
(19) |
|||
1 1сФ 1*1 |
|
|
|
|
|
|
|
В строку (/77+ I) |
заносятся следующие разности: |
||||||
|
7 |
^ / |
~ А т-ы /’ •••’ $1'/7 |
^ п |
£t"П л— |
||
|
1 ~ |
L.1 |
|
п |
i'f,n~ |
||
3. |
Отыскиваем |
|
|
|
|
max {А^n+J , ^m+7j}*
Находим в строке (столбце), соответствующей наибольшей разности, минимальный элемент £ — fl.
4. Определяем х,- • следующим образе»:
*0<Г0
а) |
если а; >6;, |
то x-L :=6j, а вместо а;о записывается |
||||
столбец j 0 вычеркивается0^ |
в дальнейших расчетах не участвует; |
|||||
в) |
если Of <6^*о л£ |
g |
а вместо |
to ставится Ъ; - а; |
||
строка вычеркивается; |
0 |
|
||||
с) |
если |
а-. =6; |
,то ос- |
;• :—О; = 6; э |
|
|
|
|
• L0 <Г0 |
L0(j 0 |
Lo to |
|
|
и столбец |
|
|
in |
|
||
|
|
|
|
|
Далее переходим к повторению пунктов 2,3,4 с учетом изме нений, внесенных в матрицу V .
Совершив не более чем (т + п - I) шаг, получим допустимый план перевозок.
Допустимый план, построенный по методу Фогеля, оказывается предпочтительнее, чем допустимый план, построенный по методу "северо-западного угла" или методу "минимального элемента".