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

книги из ГПНТБ / Скрыдлов, Н. В. Автоматизированные системы оперативного управления в строительстве

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

Для оценки возможности

эффективного решения

отметим,

что в более простом случае задач динамического

про­

граммирования (задача

балансировки сборочной линии) было

отмечено наличие

~ 2

вариантов,

которые должны

под­

вергнуться рассмотрению при поиске оптимального

решения

[1 У .5 ].

Там отмечалось,

что при

2 7 операциях

сборки

рассматривается

~ 1 3 0 0 0

вариантов.

 

Келли

[1 У .6 ]

предложил для решения задачи эвристичес­

кий алгоритм, заключающийся в следующем:

на первом шаге последовательно из множества исходящих

выбираются работы с ростом резерва времени от начала

до

тех пор,

пока

(О)

86

для всех ресурсов S

;

 

 

анализируется

£?

(1 ),

# (2) и т.д ., пока не

окажет­

ся возможным включить какую-либо еще работу; на

 

этом

этапе законченные работы исключаются из сети и

произво­

дится

пересчет;

 

 

 

 

 

повторяются оба шага, пока не будет исчерпан весь

спи­

сок работ.

 

 

 

 

 

 

Здесь О (О) есть количество ресурсов, требуемых

для

выполнения выбранных нами работ, исходящих из начала

се­

ти. При описании последующих шагов аналогичные

величины

обозначаются ф ( 1 ),

Q { 2) и т.д.

 

 

 

Аналогичная процедура положена в основу системы RPZM,

(ЧССР),

а также программы "Калибровка" В.И.

Садовского

[1 У .7 ].

Точное

решение задачи достигается

дорогостоя­

щим методом динамического программирования,

 

поэтому

целесообразно разработать

и исследовать хорошие

эвристи­

ческие правила построения расписаний и разработать для них эффективные алгоритмы.

2 . Минимизация с реднего у р о в н я потребления

ресурсов

пои заданном сроке

выполнения РЗ.бдг

 

В то время как основной целью строительного

производ­

ства является ввод в действие

мощностей, интересы данной

организации требуют наиболее полной загрузки

имеющихся

работникой и механизмов, поэтому возникает задача наиболее

равномерной загрузки ресурсов.

 

 

В терминах, приведенных выше, она становится как

по­

строение расширения графа с минимизацией функционала

 

Ц Ql ( t ) d t

или функционала

gQJ t )

при

неизменной длине критического пути. т

50

Задача минимизации J2t*T

a

( ^)

 

 

является

обрат­

ной задачей к описанной в разд. 1 данной главы (см .

на­

пример,

[1 У .8 ] ).

 

 

 

 

 

 

 

 

 

 

 

 

Qg

Действительно, пусть для некоторого уровня ресурсов

построено расписание,

минимизирующее

 

Тт

. Если

ука­

занное

Тт

превосходит

Т°

, полученное при

расчете

сетевого графика, то выполним предварительную

процедуру:

увеличим

Q0 вдвое

и повторим вычисление

расписания,

ми­

нимизирующее

 

Тт

при новом значении

Q0 , и будем

про­

должать эту процедуру до тех пор, пока Тт

не

станет

рав­

ным

Тда .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Если для начального Qg в полученном расписании

Тт =

то выполняется другая предварительная процедура,

состоя­

щая в уменьшении

Q0

вдвое до тех

пор,

пока: 1) Q0

ста­

нет

равной rnax Ча,

. В этом случае далее

уменьшать

 

0о

нельзя, так как это сделает невозможным выполнение

рабо­

ты

 

; т .е . найденное Q уже есть

оптимальное

решение;

2)

при выбранном

 

Q0

Тт стало

больше

 

 

. В этом случае,

как и после

 

окончания предварительной процедуры,

опи­

санной выше, переходим к поиску уровня

QB методом

 

по­

следовательных приближений.

 

 

 

 

 

 

 

 

 

 

 

Суть метода заключается в следующем:

Q0 + S0 ),

 

 

 

устанавливаем

Q0

на уровне

 

L

 

(

 

где

Q0 -

 

 

 

 

 

 

 

 

 

Q0

2

 

 

 

 

 

 

 

минимальный из уровней

,

для которого

ТЛ

=

Хя

 

;

 

Q0 -

 

максимальный из уровней

 

Q0 ,

для

которо-

го

Хл

>

Тя7

'

 

 

 

 

 

0

,

то полученное

 

вычисляем Тт : если Тт

= Тт

используем на следующем шаге в качестве

Q0

, а если Тту

>Т^

,

то

используем

его

в качестве

Q0 ;

 

 

 

_

 

 

 

продолжаем

 

процедуру

до тех

пор,

пока

разность Q0~ Q0

не превзойдет наперед заданного

&.

 

Тогда в

 

качестве

решения выбираем

Qg .

 

 

 

 

 

 

 

 

1од2

 

Всего для поиска заданного решения потребуется

 

шагов,

где &Qg -

разность

Q0

и

Q0

на

первом шаге про­

цедуры.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Однако

поскольку при практическом

решении задачи

 

ми­

нимизации срока пользуются эвристическими методами,

 

за­

дача оптимального

использования ресурсов

решается

 

 

как

самостоятельная. С ограничениями, оговоренными в разд. 1 , можно получить точное решение задачи.

Рассматривая фронты работ Гк , их продолжительности Тк и интенсивности Qk , получим

51

f Q 2[ T ] d t = Z Q*Tk ,

o* л

изадача формулируется следующим образом: минимизировать

форму Д ч1 тк при ограничениях: 2

= tn

(для

всех

( У

’ )>.

& т*

=

Т'

5 »

отличны от нуля лишь те

Тк ,

Ясно, что при

Т

=

Т

которые содержат критические работы.

 

 

 

 

 

Однако эта задача, как и изложенная в разд.

1,

сводятся

в конечном

счете

к задаче динамического программирования,

поэтому на практике пользуются алгоритмами

 

эвристичес­

кого типа.

 

 

 

 

 

 

 

 

 

 

Один из методов —направленный случайный поиск - пред­

ложен в [1Y .9J . Метод состоит в следующем:

 

 

 

 

рассчитывается

"исходное

расписание"

{ Т

J, в

котором

резервы времени распределяются равномерно'",

н

и

вычисля­

ется

функционал

 

 

 

 

 

 

 

 

 

Ф= max Q ( t ) ; o*UTm

выбирается "шаг изменения" сроков начала работ

0

;

при каждом розыгрыше в зависимости от значения

соот­

ветствующего случайного числа меняется

Т

и

на

ве­

личину

+ в или О;

 

 

 

 

 

 

 

 

проверяется совместимость полученного расписания с

се­

тевым графиком;

 

 

 

 

 

 

 

 

в случае благополучного окончания проверки

 

вычисля­

ется

функционал в новой точке- р ' •

если ф'-*ф .

осу-

ществляется переход от | Т * |

к |

Тн

 

 

 

противном

случае вновь делается шаг и з{*-т н *

 

 

 

 

 

 

 

перечисленные операции продолжаются до тех

пор,

 

пока

при очередном шаге Ф'-Р-^Е

, которое

задано

заранее;

считается, что тем самым достигнуто

оптимальное

распи­

сание

работ.

 

 

 

 

 

 

 

 

Метод имеет определенный смысл, однако авторы ошибоч­

но полагали, что можно улучшить эффективность

алгоритма,

уменьшая шаг по мере того, как продолжение поиска с

пер­

воначальным шагом не принесет в течение большого

числа

испытаний улучшения результата.

Вследствие

 

существенно

дискретного характера задачи упорядочения нельзя,

вообще

говоря, предполагать, что улучшающие значения

 

функцио­

нала расписания близки друг

к другу в смысле

близости |Т н|.

52

Другой

алгоритм

эвристического характера описан

 

в

[ i y . 1 0 ] .

Этот алгоритм применяется для минимизации уров­

ня для

г

ресурсов

одновременно. Практически не все

 

ре­

сурсы равноценны, поэтому мы должны учитывать их с

ве­

сом, пропорциональным важности. Введя индекс важности

Л

ресурса ос , сделаем критерием равномерности

 

 

 

 

 

Алгоритм работает следующим образом. Предположим, что

сеть упорядочена в том смысле, что ни одна работа

( /

 

, j )

не может встретиться после работы (/77,

к

),

если

I

 

т .

Говоря другими словами, работы расположены в списке

в та­

ком порядке, что ни одна работа, предшествующая данной

в

каком-либо пути, не

может встретиться в списке

 

работ

раньше нее.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Предположим,

что

каждая работа начинается в момент 1^ =

= Т/

, тогда

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q Jt>\ u ,

ъ А а «

- ТГ ) - а и - т

Г - % Я .

 

 

где

 

. . .

 

'

 

 

.

 

равная

го ,

 

г ^ о

 

 

 

сг ( /

)

- разрывная функция,

J

 

О

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.1,

 

 

 

 

 

Возьмем в упорядоченном списке работ последнюю.

 

За

ней не следует в сети никаких других работ

(по построению

списка), и ее можно, "никому не мешая", двигать на

всю

величину ее полного запаса времени.

 

 

 

 

 

 

 

Двигая

ее от

Т^н

 

до т[.-н + Rn ,

на каждом

 

шаге

вычисляем

 

AQZ = Q2 (Т/*к

) -

Q2 ( т /’н

+

A tu

 

 

)

где

О * ^

^

.

 

 

A fmin

 

 

 

 

max a Q .

При этом

запоминаем

, соответствующее

Когда мы для данной работы опробовали все возможные

по­

ложения,

ставим ее

в

го,

которое

соответствует max A QZ*

 

Теперь мы должны внести коррективы в запасы

времени

предшествующих ей работ. Это объясняется тем, что

двигая

их, мы не должны сдвигать уже опробованную и

закреплен­

ную работу.

Это достигается пересчетом

Tt :

 

 

 

 

 

 

т-п

=min

*/

 

 

 

 

 

 

 

 

 

 

 

 

 

lr

 

 

 

 

 

min

 

 

 

 

 

 

 

 

 

 

 

 

Т рм + л Г т.

 

 

 

 

 

 

 

 

 

 

 

 

L-

v

 

Ч

 

 

 

 

 

 

 

Здесь

Т *Л

- существовавшее

ранее время

Т *

;

 

 

Т; Н + A

 

- момент установленного начала работы

( U

 

).

Равенство означает,

что ни одна работа, входящая в /

,

 

не

53

может окончиться позже, чем начнется выходящая из

него

работа

(

j

), начало которой мы уже установили.

 

Поскольку для работ ( к , L ), входящих в I

,

 

=

=Т;

—Т^р

tki , то при изменении Тi

соответственно из­

меняются границы пробного сдвига работ,

предшествующих

событию L.

 

 

 

 

 

Перебрав весь список работ от конца к началу,

получим

улучшенное

A Q2 , ибо на каждом шаге алгоритма

сдвиг

оп­

ределялся минимумом этой величины.

 

 

 

 

Существует ряд других эвристических алгоритмом

для

выравнивания уровня потребления ресурсов, однако

вследст­

вие эвристического характера трудно указать

преимущества

каждого

из них.

 

 

 

 

3 . Минимизация .затрат для выполнения комплекса работ. в . заданный, срок

В результате увеличения затрачиваемых ресурсов, а так­ же ограничений, накладываемых технологией на фронт работ, затраты на выполнение интенсифицируемых работ возраста­ ют. Впрочем в роли затрат иногда выступают чисто органи­

зационные факторы: ведение работ в две смены,

необходи­

мость выполнения подготовительных мероприятий

и

т.д.;

понятие затрат необязательно связано с раз и навсегда

оп­

ределенным фактором, а может изменяться с изменением це­

ли.

 

 

 

 

 

 

 

 

 

 

Задача состоит в выборе таких работ и таких величин

их

интенсификации, которые обеспечили бы завершение работ

к

заданному сроку при минимальном увеличении так

или иначе

определенных затрат.

 

 

 

 

( /, j

 

 

 

Пусть продолжительность каждой работы

)

задается

в пределах О ^ с/ц ^^ Л .

При всех

tjj

=

получим Т

=

= т

, при всех

=

Л^

получим

Т

= М;

в

этч?х

предположениях для каждого Т

£

, М J

 

существует

свой оптимальный по стоимост&Р план.

 

 

 

 

 

В

частности,

если учитываются только прямые затраты

и

стоимость каждой работы определяется как линейная функция

вида zij - cty Ту +■Ь-j

, получаем параметрическую зада­

чу линейного программирования минимизации

при ограничениях для всех

( *, J )

54

 

 

Т ; - Т ;

-

 

tLJ .

^

0,

 

 

 

 

 

 

 

 

 

dij ~ t-ij

— B ij

»

 

 

 

 

 

 

 

 

 

 

 

dij ^ ^ •

 

 

 

 

 

 

 

 

 

 

T

= 0 ,

T,

=

 

Л е{/77,м], где

T означает

момент свер-

шения начального,

а Тл

— конечного события сети,

 

 

 

 

 

Келли f i y . l l j

и Фулкерсон

£1У .12] независимо

друг

от

друга

разработали алгоритм сведения данной задачи

 

 

к

задаче

 

 

поиска максимального потока в

транспорт­

ных сетях. Подробное описание метода приведено в

[1У ,2,13]

 

Отметим, что без ограничения общности метод

 

можно

применять для выпуклых кусочно-линейных функций z.£j- (

t

)

;

для выпуклых функций произвольного вида могут быть

 

при­

менены методы выпуклого программирования [1 У .1 3 ].

 

 

 

 

Однако в случае более сложных зависимостей

z£j

 

(

t

)

классическими методами пользоваться не удается.

 

 

 

 

 

В изложенных методах граф, изображающий

 

производст­

венный процесс,

отождествляется с транспортной

сетью.

 

 

Транспортной же сетью называется граф без

 

контуров

& (X,

U

), каждой дуге которого и соотнесено

целое

число

С

( U ),

называемое пропускной способностью

дуги и,

для

которого:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

существует одна

и только одна такая вершина х.

,

 

что

 

-1

,

называемая входом

сети;

 

О

 

 

 

ГХд= 0

 

z

 

 

 

 

 

существует

одна

и только одна такая вершина

,

 

что

 

= 0 ,

называемая выходом сети.

 

 

 

 

 

 

 

Пусть

Ux

-

множество дуг, заходящих в х,

a

Ux

 

множество дуг, исходящих из х.

 

 

 

 

 

 

 

 

Говорят, что if

( и

), определенная на U

и

принимаю­

щая целочисленные значения, представляет собой поток

 

 

в

этой транспортной сети, если

 

 

 

 

 

 

 

 

 

а)

0 ( U )

 

О и Ue U ;

 

 

 

 

 

 

 

б) Z . i f (U)~ Z. i

\ueUx

вIf ( и ) * с ( и) , и £ и .

Отсюда следует, что uj^-

^ (U) =tA .

Эту величину

tfz

назовем

величиной потока

if> .Величины

С ), ог­

раничивающие поток

1р ( ч ) по дугам графа,

называются

пропускными способностями дуг.

что х ф / , z e А

 

Пусть А - такое множество,

Мно­

жество дуг, заходящих в А, называют0разрезом

сети.

Про­

пускной способностью

разрезд U~ называют С

( (J~ )

 

- Л :

С U

).

 

 

 

 

55

Физическим смыслом потока по дуге является

интенсив­

ность перемещения по ней какого-либо вещества;

 

физичес­

ким смыслом пропускной способности дуги является

 

макси­

мально возможная интенсивность перемещения.

 

 

 

 

Так как каждая частица вещества, движущаяся от

х

к z,

пройдет хотя бы один раз по какой-либо дуге разреза

UA

, то

всегда справедливо

ifz *

С

(

UA

).

if

 

 

 

Следовательно,

если для некоторого потока и

 

и

не­

которого

разреза V имеем

fz

( V ), то мы можем быть

уверены,

что поток

ifz имеет

наибольшую величину,

а

разрез

У обладает наименьшей пропускной способностью.

 

 

 

Задаваясь линейной формой зависимости затрат

от

 

продол­

жительности выполнения работы

= — с(у ty + Д.у

 

и

границами

Uy

,

определим пропускную

 

 

способ­

ность дуги ( i , j )

как

 

 

 

 

 

 

 

 

 

 

 

Г cij

»hj

^ d U

 

 

 

 

 

 

 

СЧ

[

, hj

= dij

 

 

 

 

 

 

Расписание,

в которое

все

ijj

=

,

заведомо

оп­

тимально по затратам. Определив разрез с

минимальной про­

пускной способностью, сокращаем продолжительность

работ,

входящих в него, на единицу времени; если

 

продолжитель­

ность хотя бы одной из работ разреза стала равной

dy

,

заменяем

с ^

на в‘=> .

 

 

 

 

 

 

 

 

 

Так продолжаем процесс, пока не достигнем

заданного

значения

Тт

или пока

не найдется цепь,

все

ребра

кото­

рой

имеют продолжительность не более dyj

 

(т.е. поток че­

рез

сеть

стал равным о о

и не может быть увеличен

или, в

терминах исходной задачи, заданная продолжительность

 

не­

допустима).

 

 

 

 

 

 

 

 

 

 

Алгоритм поиска максимального потока работает следую­

щим образом.

 

 

 

 

 

if

( и )

 

 

 

1 .

Назовем дугу и насыщенной, когда

=

С ( Z

поток назовем полным, если каждый путь из х в z

содер­

жит по крайней мере одну насыщенную дугу. й:ли поток

не

является полным, то можно найти путь f

,

все дуги

кото­

рого не насыщены. Если такой путь найден,

то

превращаем

поток по

пути в полный,

добавив

к величинам потока по ду­

гам

u e u m i n ( с ( и ) - i f ( и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J

ueji

 

 

 

 

 

 

 

 

56

Увеличиваем таким образом неполный поток,

пока он

не

станет полным.

 

 

 

 

2 . Путь

tf — полный поток.В этом

случае

помечаем

вершину х

индексом 'О '. Далее

помечаем остальные

вер­

шины по следующему правилу: если

x t-

уже

помеченная

вершина, то

помечаем индексом' *1

'

все те

непомеченные

вершины

у

,

для которых

 

(х;

, y ) e ( J ,

if (xi, у )

 

 

c(Xi,y)\

 

помечаем индексом

' -

L

'

все

те

непомеченные

вершины

у ,

(y,X i ) е U ,

для которых

l f ( y , Х^О.

 

 

 

 

Процесс продолжаем до тех пор, пока не пометим

верши­

ну z

. Тем

самым построена

цепьf i

, соединяющая

х

с

2 ,

в которой все дуги, проходимые от

х

к z

в прямом4

 

на­

правлении, ненасыщены; во всех дугах,

проходимых в обрат­

ном направлении, имеется ненулевой поток.

 

 

 

 

 

 

Взяв

для

первых дуг

Л^=

Win

 

( с

( и ) -

(f (U) ) , дпя

вторых

Д 2 = тсп

tf ( и )

и выбрав

д = min (

л 1 ,

Л2 )

 

,

можем

увеличить

 

на

 

^ , прибавив д

к потоку

по

дугам первого типа и уменьшив на

Д

 

поток по

 

 

дугам

второго типа.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3 . Если этим способом невозможно увеличить поток

 

(не­

возможно

пометить вершину

z

),

то

ipz

имеет

 

наи­

большую величину. Разрезом с минимальной пропускной

спо­

собностью будет множество дуг, исходящих из

 

помеченных

и заходящих в непомеченные вершины.

 

 

 

 

 

 

 

 

4 . Расчет

сетевого

графика с

учетом

точности

 

 

 

 

 

 

 

 

.Л№ШгеК.ДЙВ№К

 

 

 

 

 

 

 

При формировании конкретного расписания работ хотя

бы

на непродолжительный период

 

времени

руководителю

необ­

ходимо представлять точность, с которой он

может

предви­

деть будущую ситуацию.

 

 

 

 

 

 

 

 

 

 

 

 

Одним из вариантов является истолкование

характеристик

работ

( и в

первую очередь

их продолжительность)

как слу­

чайных величин с

определенным законом

распределения

 

и

расчет (или многократный розыгрыш) статистических оценок

для всех интересующих величин.

 

В классической методике предполагают, что

продол­

жительности tjj

работ

(х; , xj ) суть

независимые

случайные величины с одинаковым законом распределения. Формы распределения предполагаются различными: част­

ные случаи бета-распределения, логарифмически - нормальное распределение и т.д.

Параметры распределения вычисляются на основе задания нескольких оценок продолжительности: пессимистической, оп­ тимистической и нормальной.

57

Существуют две различные методики вычисления харак­ теристик расчетных параметров:

прямой счет, при котором все пути рассматриваются как независимые, а оценки суммируются на основе центральной предельной теоремы о распределении суммы случайных ве­ личин;

статистическое моделирование по .методу Монте-Карло. На взгляд автора, предпочтительнее пользоваться статис­

тическим моделированием. Наиболее сложным в данной зада­

че является вопрос о получении оценок

продолжительности,

поэтому предпочтительнее пользоваться

распределением

с

меньшим числом параметров, например предложенным Д.И.Го-

пенко

[1 У .14]:

 

 

 

 

 

 

Р ( м -

T i Bh r . ( , - a ) i b - t ) \

 

 

где

Ь

- оценка продолжительности пессимистическая;

 

Ct

то же,

оптимистическая;

 

 

 

Р

( t )

- плотность вероятности распределения

t .

 

Проводя такой анализ хотя бы выборочно по отдельным

объ­

ектам, можно составить представление о точности

 

состав­

ляемых планов.

 

 

 

 

Отметим, что вероятностный характер расчетных

величин

отражает тот факт, что исходные параметры задаются

на

основании экспертных оценок, основные управляющие

реше­

ния

принимаются оперативным путем, а, следовательно,

до­

стоверный прогноз

их последствий охватывает

 

сравни­

тельно небольшой отрезок времени. Отсюда, в

частности,

распространенное представление об оперативном

управлении

как о задаче, требующей немедленной реакции на

 

каждое

изменение ситуации.

 

 

 

 

ГЛАВА У.

ОСНОВНЫЕ АЛГОРИТМЫ

 

 

РАСЧЕТА

СЕТЕВЫХ ГРАФИКОВ

 

 

Все сформулированные выше задачи включают в себя

в

гой или иной форме алгоритмы расчета и анализа

сетевых

графиков, поэтому необходимо исследовать различные

алго­

ритмы и оценить их с точки зрения использования в

пере­

численных задачах.

 

 

 

Кроме того, разнообразие задач налагает на сами

алго­

ритмы весьма жесткие требования по используемым

машин­

ным ресурсам, в основном по требуемой оперативной

памяти

и времени счета,

 

 

 

В данной главе проводится сопоставление трех

основ­

ных алгоритмов: метода итераций, алгоритма Кана и

алго­

ритма Адельсона-Вельского.

 

 

 

 

1. Расчет сетевого графика

итерациями.

 

 

 

Упорядочение списка

работ

 

 

 

Расчет сетевого графика по методу итераций

является

наиболее часто употребляемым и широко используется

раз­

работчиками.

 

 

 

 

Исходными данными для расчета является перечень

работ

с их продолжительностями. Рассмотрим интерпретацию

сете­

вого графика в терминах "узлов-событий".

Перенумеровав

произвольным образом узлы, зададим для каждой работы три

массива:

 

I

 

 

 

массив начальных событий

[ l

: /7 ] ;

 

массив

конечных событий

j

[1

: пу,

 

массив

продолжительностей

ty

[ 1 : /7J , где п число ра­

бот (дуг) в сети.

 

 

 

 

Схема вычисления ранних и поздних сроков

свершения

событий приводится на рис. 5 .

 

 

 

 

Содержание алгоритма таково: очистив

предварительно

массив событий и перебирая массив работ от начала к концу, присваиваем каждому событию "моменты свершения".

59

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