книги из ГПНТБ / Большие системы и управление
..pdf130
Рис*22* Машинная реализация метода Фогеля, часть I
131
О т блока'16
W ?у0лип
^_
<
20 ^Vomln• - Ч
А« (in)
Рг (minf ,minz , J )
22
$min : = ^
min2
23A1(minf(J),PAl)
24V ^ V A ll ^ l l^ )
|
-----------ч |
25 |
/ ° } •* Д; |
|
do |
|
< |
25 |
max :=Д. |
|
|
27 |
А» (Пр) |
29
|
(Lq) |
(d0) |
30 |
^max ^ |
max |
|
нет к бл 36 |
|
|
да< |
|
31 |
Аа (Пр) |
Рис.23. Машинная реализация метода Фогеля, часть 2
132
Рис.24. Машинная реализация метода Фогеля, часть 3
133
Расчеты по описанному методу на ЦВМ М-20 показали, что до пустимое решение совпадает с оптимальным с точностью до 5-10#, машинное время экономится при этом приблизительно в два раза. Поэтому во многих практических задачах допустимый план, полу ченный по методу Фогеля, может служить хорошим приближением к оптимальному плану перевозок.
На рис,22-24 приводится блок-схема алгоритма.
В блоке I |
оператор |
А 0соответствует вводу исходных данных: |
||£ t-j||, a-L 76j. |
В блоке 2 |
осуществляются подготовительные опера |
ции для отыскания минимума в строке и максимальной разности.
Оператор P1 ( m i n 1 , т 1 п 2)проверяет, |
который по порядку минимум |
отыскивается. Оператор Ат( п й п 7Ш , |
PAj) запоминает первый мини |
мум и номер столбца, В блоке 10 оператор А 2 восстанавливает |
прежний вид матрицы ||£ ^ ||и получает разность в столбце. Опера тор А3 (Пр) производит переадресацию группы команд в программе (блок 13). В блоке 15 оператор А ^ ( Пр) восстанавливает команды и подготавливает исходные данные для получения минимума в столб це и максимальной разности. Оператор А5 (РА^)блока 17 осущест вляет запоминание номера столбца. Смысл остальных блоков не требует пояснений. Если при работе с программой пользоваться
только оперативным |
запоминающим устройством ЦВМ М-20, |
то |
на т |
и п накладывается |
ограничение т + п +2 тп - 1716. |
|
|
Рассмотрим построение оптимального плана перевозок с |
уче |
||
том критерия "минимум потерь груза в пути при достав |
|
ан- |
ные сроки" по методу потенциалов. Согласно работам план перевозок является оптимальным, если каждому пункту можно
поставить в соответствие число ик (потенциал), к = |
1 , 2 , |
|
т + п » так что выполняются условия: |
|
|
если |
= 0 , |
(21) |
если |
ОС: : > 0 . |
( 22) |
|
с<г |
|
Потенциалы в пунктах строятся следующим образом. В какомлибо пункте 10 значение потенциала задается произвольно (это вполне допустимо, так как в условиях (2 1 ) и (22) фигурируют только разности потенциалов). Затем построение потенциалов производится по формулам (22). Если на некотором этапе обнару жится нарушение условий (2 1 ) и (2 2), то это говорит о том, что исходный план не является оптимальным и его можно улучшить при помощи следующего построения.
|
|
|
134 |
|
|
Пусть для некоторого маршрута |
( i ' , j r) |
имеем: |
|||
|
|
V |
- |
: ч |
(23) |
|
|
|
|||
Из участков (маршрутов), |
вдоль которых совершались перевоз |
||||
ки и определялись потенциалы |
i?L , находим цепочку, соединяющую |
||||
пункты l и |
j с пунктом |
t 0 * |
Если несколько последних участков |
||
от цепочек |
совпадают, то |
их отбрасываем* |
Оставшаяся совокуп |
ность участков образует простой замкнутый контур* Простота кон
тура |
означает, что кроме пути ( L y j 1) , соединяющего пункты V |
и У |
, существует единственное полукольцо, проходящее через |
пункты, для которых определены потенциалы, и соединяющее ука занные пункты. Введем на полученном контуре ориентацию. Будем
считать положительным направлением направление от |
пункта j ' |
|
к пункту V не непосредственно, а |
по контуру* Противоположное |
|
направление считаем отрицательным* |
Введем величины |
д ц 9 харак |
теризующие ориентацию каждого участка полученного контура* При чем, если перевозки осуществляются в положительном направлении, то полагаем
(24)
~ XLi ’
а если в отрицательном, то
(25)
6ч = ~ х ч
Находим
А = min |
|
|
(26) |
, . . . |
|
участков, перевозка на ко- |
|
где ( i , }) принимает значение наперев |
|||
торых осуществляется в отрицательной направлении* |
|
||
Вводим на контуре новые потоки, |
полагая |
|
|
= |
|
* |
(27) |
|
+ Л > |
|
|
если перевозка осуществлялась в |
положительном направлении и |
||
Х Ч = |
|
- А . |
(28) |
|
|
||
ч |
|
если перевозка осуществлялась в отрицательном направлении.План перевозок X , полученный после изменения перевозок на контуре описанным способом, имеет значение функции потерь меньшее, чем исходный план X , т .е . L ( X 1) - L ( X ) [9 ].
135
6 соответствии с полученный после исправления новым планом уточняются потенциалы* Через конечное число шагов получим опти мальный план, т*е* такой план, для которого выполняются усло вия потенциальности (2 1 ) и (22) .
Метод потенциалов удовлетворяет требованию целочисленности и позволяет (например, за недостатком машинного времени) остановиться на любом приближении.
Имеется другой метод построения потенциалов - метод уточ нения верхних и нижних оценок [12 ] , не требующий специального выделения того случая, когда не все пункты связаны между собой грузопотоками ( т .е . отпадает необходимость привлечения 8 -про цедуры). Метод заключается в следующем. Условия (21) и (22) .вы писанные для всех участков, можно рассматривать как систему неравенств относительно потенциалов. В случае совместности системы план перевозок оптимален я ее решение позволяет опре делить значение потенциала в каждом пункте:
пк~ |
п к |
{ к = 172 , . . . , т + п ), |
(29) |
|
где гг~ - нижняя оценка, а |
и* - |
верхняя оценка |
значения по |
|
тенциала в пункте к . |
|
|
|
|
Процеос нахождения верхних и нижних оценок |
заключается в |
следующем. Вначале для каждого пункта задаются некоторые гру бые оценки потенциалов - В - пк~ 3» где В - некоторое большое число. Для произвольно выбранного пункта можно задать значе
ние потенциала |
= и * = щ )* затем уточняются оценки. |
Формулы уточнения оценок потенциалов в конечном пункте |
|
маршрута |
имеют следующий вид: |
|
|
maxjuT, йг) •, |
tf'+=mLn {^ +7 t f / } , |
(30) |
где |
v : |
, iK*"- прежние значения оценок потенциалов в |
пункте J. , |
|
_ |
о |
& |
|
|
аопределяются из соотношений
до _
Й Г= v i ~ ъ |
, |
если |
j o ц |
= 0 ; |
(31) |
|
|||||
&Г = и г '+ ^ |
? |
если |
х ц |
;> 0 о |
(32) |
|
|||||
Как видно из формул (30), |
|
значения щ и |
выбираются так, |
||
чтобы не нарушались условия (2 1 ) и |
(22 ) . |
|
|
136
Рис.25. Блок-схема алгоритма построения оптимального плана по по методу двусторонних оценок, часть I
137
Рис.26* Блок-схема алгоритма построения оптимального плана по методу двусторонних оценок, часть 2
138
Если на некотором шаге процесса уточнения получим, что ниж няя оценка больше верхней(Vy > то это свидетельствует о том, что полученный план не является оптимальным и его можно улуч шить. Улучшенный план получается аналогично описанной выше про цедуре: находится простой замкнутый контур, на нем вводится ориентация и изменяется поток.
Следует заметить, что получение кратчайшего пути на сети является частным случаем метода потенциала (уточнение границ потенциалов производится при хц= 0) .
Блок-схема изложенного алгоритма изображена на рис.26 и 26.
Оператор |
А 0 осуществляет |
ввод необходимых исходных данных (до |
||||
пустимого |
плана |
X аол » |
матрицы || |
^ - | | , первоначальных оценок |
||
^ ~ 7 |
. В блоке 2 оператор А7(Пр)подготавливает поле для за |
|||||
поминания промежуточных данных, |
необходимых для получения кон |
|||||
тура. Оператор |
А 2 ( Пр) выбирает |
очередной номер пункта и оценки |
||||
i?j~, |
; оператор А^(ГГр)в блоке |
I I |
запоминает номер участка се |
|||
ти, |
по которому |
уточнялась оценка; |
оператор As осуществляет |
засылку уточненных оценок на соответствующие поля. В блоке 14 оператор ^(^ )п р о в ер я ет , проводилось ли уточнение оценок в обоих смежных пунктах, соединенных-данным участком. Если уточ нение проведено, то совершается переход к блоку 16; если уточ нение не проведено в обоих направлениях, то осуществляется пе реход к блоку 15. В блоке 15 оператор А6 ( 0 р) производит пере мену ориентации. Блок 17 осуществляет проверку плана грузопо
токов на оптимальность. Если получен оптимальный план, то |
со |
|
вершается переход к |
блоку 31, в противном случае - к блоку |
4 . . |
В блоке 19 оператор |
A 7 (f]p,j) выполняет подготовительную работу |
|
для получения первой части контура. Оператор Ав (Лр)(блок |
21) |
формирует вспомогательные команды для обнаружения меток (мет ки делались в процессе уточнения оценок). Оператор Ag(flpJзаме чает" участок и находит следующий пункт, примыкающий к участку. Оператор (7с)проверяет контур на замкнутость. Если контур не замкнут, то осуществляется переход к блоку 25, в противном слу
чае - |
к |
блоку 26. Оператор А 10(Ор)вводит |
на |
контуре |
ориентацию. |
||
Оператор Дп (Лр)в |
блоке 26 находит очередной номер |
пункта. |
|||||
В блоке |
27 оператор |
АТ2(Л р) выполняет |
подготовительные опера |
||||
ции для получения второй части контура. |
Оператор АТЗ(Д) |
отыски |
|||||
вает |
А |
- величину,на которую по формулам |
(27) и (28) |
изменя |
ются грузопотоки.Оператор Л ( Х ош ) в блоке 31 выдает оптимальный план грузопотоков на печать.Программа занимает 607 ячеек (вось меричная система счисления) .На т и п накладывается ограничение
т + п + т п £ 1000 .
139
Кандидат технических наук Л.И. ГРИГОРЬЕВА
ТРАНСПОРТНАЯ ЗАДАЧА ПО КРИТЕРИЮ СТОИМОСТИ С УЧЕТОМ ПРОПУСКНОЙ СПОСОБНОСТИ УЧАСТКОВ И УЗЛОВ
Задачу планирования перевозок по критерию стоимости с уче
том пропускных способностей Z r ( r = 1 ,2 # . .. » |
N ) отдельных |
|
участков и пропускных способностей |
a v (>J = 7,2, . . . 7 т+п+п') узлов |
|
можно сформулировать, если принять |
для пунктов |
отправления |
а для пунктов назначения - bv =/?vдля промежуточных пунк
тов /?^= 0, так что |
|
|
|
|
|
£ |
|
= О- |
|
|
(D |
\>=1 |
|
|
|
|
|
Требуется найти план |
перевозок |
5Т = ( х ] 1х г , . . . , |
x N) такой» |
||
чтобы выполнялись условия: |
|
|
|
|
|
x r * Q |
( р = /, 2 , . . . , N) , |
(2 ) |
|||
П |
^ Р |
^ |
~ ^^ |
* |
(3) |
|
rt 0 $ |
|
|
|
|
Х г |
- V |
( г = /, 2, |
/У), |
(4) |
|
|
|
|
|
|
(5) |
|
|
А/ |
|
|
|
(6)