
книги из ГПНТБ / Скрыдлов, Н. В. Автоматизированные системы оперативного управления в строительстве
.pdf
|
т ■ М (1 |
- |
М - 3 |
). |
|
|
|
|||
|
|
N |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
Нетрудно заметить, |
что метод итераций при большинстве |
|
зна |
|||||||
чений параметров N , |
М , S |
|
выгоднее, чем алгоритм Кана. |
|||||||
Алгоритм Адельсона-Вельского, не отличаясь от |
алгоритма |
|||||||||
Кана по числу обращений при подготовке к счету, требует |
|
при |
||||||||
счете вдвое большего числа обращений, чем алгоритм Кана. |
|
Это |
||||||||
происходит из-за необходимости считывать каждое |
событие |
|||||||||
дважды - |
при ходе вперед и при ходе назад. |
|
|
|
|
|||||
|
4 .4 . Расчет больших сетей при их |
|
|
|
||||||
|
разбивке |
на фрагменты |
|
|
|
|
||||
Представим себе, что граф, |
изображающий |
рассчитываемую |
||||||||
сеть, разбит на подграфы, каждый из которых содержит не |
более |
|||||||||
К работ (К = М - 5 |
), |
и что любой путь исходного графа |
|
раз |
||||||
бивается не более чем на |
/П=\ |
N |
1 + ^ частей, |
|
каж- |
|||||
|
|
|
|
|
Lm - 'S |
J |
|
|
|
|
дая из которых целиком принадлежит одному из подграфов. |
|
Гра |
||||||||
ничные события каждого подграфа (те события, которым |
инци |
|||||||||
дентны работы других подграфов) |
автоматически входят и в |
эти |
||||||||
подграфы. |
|
|
|
|
|
|
|
|
|
|
На первый взгляд такая разбивка кажется искусственной, |
од |
|||||||||
нако сеть большого объема практически составляют из |
сетей |
|||||||||
малого объема, ибо исполнители сперва составляют сети |
своих |
|||||||||
участков, а потом уже объединяют их в большую сеть. |
|
|
|
|||||||
Расчет сети происходит по следующим правилам: |
|
|
|
|||||||
1) списьюается очередная |
подсеть (фрагмент) и |
рассчи |
||||||||
тывается как самостоятельная сеть с учетом того, что ее |
|
гра |
||||||||
ничные события могли получить оценки времени при |
расчете |
|||||||||
других фрагментов; |
|
|
|
|
|
|
|
|
|
|
2) после расчета последнего фрагмента проверяется, |
изме |
|||||||||
нилась ли оценка времени какого-либо события, и если да, |
|
то |
||||||||
процесс повторяется. |
|
|
|
|
|
|
|
|
|
|
Поскольку при такой разбивке каждый путь делится |
не |
|
более |
|||||||
чем на |
т частей, |
этот процесс эквивалентен расчету по |
|
ме |
тоду итераций с числом работ в самом длинном пути тАХ 1(^)~т и потому математическое ожидание числа обращений к внешней памяти при сегментации сетей /7. = — i — /77^ .
2
Однако, учитывая, что для каждого события i мы должны по-
70
лучать не только т / |
, но и Т/1 |
, мы получим точное |
|
число |
|||||||||
обращений к внешней памяти |
п —М2 |
|
|
|
|
|
|
||||||
Как видно, при возможности деления сети на умеренное |
число |
||||||||||||
подсетей число обращений к внешней памяти может быть |
|
|
не |
||||||||||
слишком велико, |
|
|
|
|
|
|
|
|
|
|
|
||
4 .5 . Алгоритм, позволяющий резко |
сократить |
|
|
|
|
||||||||
|
|
время |
расчета |
большой сети |
|
|
|
|
|
||||
Выделим в графе |
G = (Х,Г) некоторый подграф (А,ГД). |
|
Вы- |
||||||||||
делим в этом подграфе множество граничных событий 1 гр, |
кото- |
||||||||||||
рому инцидентны дуги, не принадлежащие подграфу (А ,Г д), |
|
при |
|||||||||||
соединим к нему также входы и выходы графа |
G , если |
|
|
они |
|||||||||
вошли в подграф. |
|
|
|
|
|
|
|
|
|
|
|
||
Срок свершения любого события К графа (Х,Г) определим |
со |
||||||||||||
гласно формуле |
|
|
|
|
|
|
|
|
|
|
|
||
|
т. = max |
max |
т|>] . |
|
|
|
|
|
|
||||
|
* |
j * k |
K j,k ] |
|
|
|
|
|
|
|
|
|
|
Из определения подграфа следует, |
что ни одно из его |
событий |
|||||||||||
J . |
j £ |
1 |
не может быть соединено путем ни с |
|
одним |
||||||||
} |
|
гр |
|
|
|
|
|
|
|
|
|
|
|
событием К, |
К ^ |
А, |
минуя события, |
принадлежавшие |
множеству |
||||||||
1 , Поэтому если |
и TJ° |
определены для всех l£ 1 |
, |
^ |
|||||||||
они тем самым определены для всех |
j £ |
А. |
|
|
|
|
|
||||||
Для |
I £ |
1 |
и для всех |
г |
4. |
А разобьем множество |
пу |
||||||
тей, идущих к ним от других событий, на два класса: |
пути, |
|
про |
||||||||||
ходящие через работы ( к , i ) £ |
, |
и пути,не проходящие через |
|||||||||||
такие |
работы. |
|
|
|
|
|
|
|
|
|
|
|
|
Для событий, входящих в 1 гр и в дополнение от X до А, |
|
не |
|||||||||||
существенна структура подграфа, значение имеют лишь |
|
|
пути |
||||||||||
максимальной длины, соединяющие точки 1 |
гр |
друг с другом. |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Этот результат, принадлежащий Адельсону-Вельскому1, |
дает |
||||||||||||
возможность эффективно рассчитывать большие сети, не |
|
|
вме |
||||||||||
щающиеся целиком в оперативную память ЭВМ. |
|
|
|
|
|||||||||
Такие сети делятся на подсети, в каждой из которых |
помеча |
||||||||||||
ются граничные события, а также входы и выходы графа |
G (X.Г). |
||||||||||||
* Изложен со ссылкой на автора алгоритма |
в [У.1]. |
|
|
|
|
71
Затем для каждой пары те 1 |
, l e i |
такой, что т<*1, |
вычис |
|
ляется птах Т (у) |
и каждтЙ? под<Зет?> заменяется набором фик- |
|||
тивных^раёот ( т, I |
) с Tmi |
= Л73Х |
Т ( и ) |
|
Из таких работ всех подграфов составляется сеть |
меньшего |
объема, она рассчитывается и в граничные события всех |
подсе |
||
тей подставляются значения |
и Тд |
, после чего |
дальней |
ший счет происходит в сети каждого подграфа отдельно. |
|
||
При расчете по такому алгоритму число обращений к |
внешней |
||
памяти не более 4 /77 , где /77 - |
число подсетей. |
|
4 .6 ., Сравнение вычислительных возможностей алгоритма Адельсона-Вельского с возможностями алгоритма
сегментации сетей
Сначала проведем сравнение алгоритмов по числу обращений к внешней памяти
|
|
псег = |
/772 |
; |
|
|
|
|
|
|
|
|
ПА,& = |
4/77 . |
|
|
|
|
|
Следовательно, |
при /77 —: 4 |
выгоднее алгоритмы |
сегментации, |
||||||
при /77 = 4 |
они эквивалентны, при /77 > 4 выгоднее |
|
алгоритм |
||||||
Адельсона-Вельского. |
|
|
|
|
|
|
|||
Кроме того, на каждый из алгоритмов накладывает |
ограниче |
||||||||
ния объем оперативной памяти ЭВМ. При расчете сетей с |
|
сег |
|||||||
ментацией по методу полного расчета каждой подсети |
предпо |
||||||||
лагается, что массив событий лежит в оперативной памяти, |
по |
||||||||
этому ограничения возникают тем быстрее, чем меньше |
отно |
||||||||
шение |
|
....'У■■■I - |
числа работ к числу событий. |
|
|
|
|||
На алгоритм же Адельсона-Вельского объем оперативной |
па |
||||||||
мяти накладывает ограничения - ограничивается объем |
общего |
||||||||
набора фиктивных работ по всем подсетям. Так, если |
|
каждый |
|||||||
эквивалентный подграф окажется транзитивным |
( что |
впрочем |
|||||||
является не частым случаем), число эквивалентных работ |
|
ока |
|||||||
жется равным. |
|
|
|
|
|
|
|
||
|
|
^экб = ~ |
Д* |
(rf ~ 1) , |
|
|
|
|
|
где Р; |
- число граничных событий подсети i , в |
|
частности, |
||||||
если все Р,- |
равны друг другу, то |
|
|
|
|
||||
* В транзитивном графе для каждой пары точек х и у |
справед |
||||||||
ливо |
х |
е Г у |
или у е Г х . |
|
|
|
|
72
|
|
1 |
Р ( Р - 1 ), |
|
|
|
|
т |
|
|
|
т.е, Р = |
£ |
+ |
1_ |
+ |
|
|
|
|
|||
|
2 |
|
2 |
т |
|
|
|
|
|
||
Как видно, на объем сетей накладываются ограничения |
при |
||||
любом алгоритме расчета, однако при всех алгоритмах |
расчета |
||||
разбивка на фрагменты позволяет ощутимо сэкономить |
необхо |
димое для счета время и количество обращений к внешней памяти.
ГЛАВА У 1. РЕАЛИЗАЦИЯ ОПТИМИЗАЦИОННЫХ ЗАДАЧ НА СЕТЕВОЙ МОДЕЛИ
«о*
1 . Реализация задачи поиска минимального срока при
заданных ограничениях на ресурсы
При реализации* задачи использовался эвристический алгоритм
поиска наилучшего расписания при заданных ограничениях |
на |
||||
ресурсы. Принципиально схему такого алгоритма |
|
предложил |
|||
Келли |
[У1.1] . В отечественной практике алгоритм, |
|
анало |
||
гичный |
предложенному Келли, |
реализован В.И. |
Садовским |
||
[У 1. 2] . |
|
|
|
|
|
Автором совместно с В В. Шафранским [У 1.3J |
был на |
основе |
|||
анализа алгоритма Кана построен более эффективный |
алгоритм. |
||||
Сущность его работы описывается следующим образом. |
|
||||
Предположим, что каждая работа ( *»J ) потребляет в |
едини |
||||
цу времени постоянное количество |
ресурса |
единственного |
вида и что для удовлетворения всех работ, которые могут выпол
няться в любое время, имеется постоянное во времени |
количе |
|
ство ресурса |
Q . Эти предположения делаются для |
упрощения |
описания, ибо, |
как будет ясно из дальнейшего, отказ от них при |
водит к легко разрешимым затруднениям чисто технического по
рядка. |
|
|
|
Пусть в некоторый момент tk оканчивается одна из работ |
и |
||
освобождается связанное к ней количество ресурса |
. |
Тогда |
|
в этот момент должно быть принято решение о направлении |
ос |
||
вободившегося ресурса на одну или несколько работ ( к , t |
). |
|
|
Интересным является вопрос о выборе правил |
приоритета. |
||
Келли, равно как и Садовский, выбирал в качестве |
приоритета |
||
расстояние от начала каждой работы до конца сети. |
Такой |
прио |
ритет действительно дает хорошее значение, учитывая, что име ются случаи, когда он точно приводит к оптимальному решению.
Для уточнения можно использовать также приоритеты, харак теризующие емкость по ресурсам участков, которые открывает каждая работа, используя правила комбинирования приоритетов.
74
Можно, как предлагалось автором в[У 1.4] |
, |
использовать |
'рандомизированный' * приоритет, тем более, |
что |
оформление |
программы в виде модификации алгоритма Кана позволяет осу ществить весьма значительное число испытаний.
Реализованная под руководством автора (У1 ,5 ] программа
предусматривает как случайный поиск, так и |
возможность |
|
включения специальных блоков вычисления приоритета. |
По |
|
мнению автора, необходимо систематически испытывать |
ряд |
|
правил приоритета для набора статистических данных. |
Ниже |
|
приводится алгоритм, позволяющий реализовать |
некоторые |
|
правила при ограничениях, накладываемых технологией |
и |
|
ресурсами. |
|
|
Технологические ограничения допускают направление |
ре |
|
сурсов лишь на те ( к , / ), для которых выполнены |
все |
( i , j ) =£ |
{ к ,1 ). Ресурсные ограничения показывают, |
что |
ресурс можно направить лишь на ту работу, для которой |
по |
|
требность |
не превышает свободного ресурса. |
|
Алгоритм представляет собой модификацию алгоритма Кана,
описанного выше. Сущность модификации заключается в |
сле |
дующем: |
|
работы { ( i , j j j с П-* = О попадают в 'очередь', |
в |
очереди работы выстраиваются в соответствии с вычисленным для них приоритером, определяющим порядок выбора работ для исполнения;
из очереди выбираются г первых работ, число которых зависит от требований на ресурс типа мощности и имеющегося ограничения Q0 наличного ресурса; по исчерпании ресурса выбор работ прекращается;
выбранным работам присваивается общее время начала Тн,
вычисляется время окончания каждой из них (Тн |
+ |
t y |
) и |
||
они упорядочиваются по времени окончания; |
|
|
|
||
из этой очереди выбирается первая работа; при этом |
счет |
||||
чик Тп |
получает значение Т |
выбранной работы, |
количе |
||
ство свободного ресурса типа мощности увеличивается |
на |
||||
высвободившуюся вместе с этой работой величину, и |
|
прове |
|||
ряется, |
как и предусмотрено в |
алгоритме Кана, |
возможность |
||
пополнения "очереди' работ, ожидающих выполнения. |
|
Блок- |
|||
схема алгоритма приводится на рис. 8. |
|
|
|
1
Этот термин бытует в литературе по 'теории расписаний^ и ему придается смысл эвристически выбранного приоритета, подвергаемого случайным изменениям (достаточно малым или достаточно редким).
75
Рис. 8 . Блок-схема модификации алгоритма Кана для определения порядка работ, совме
стимого с ограничениями на ресурсы и заданным правилом приоритета
Модифицированный алгоритм Кана оказался весьма быстро
действующим и позволил решать задачи методом |
назначения |
|
случайных приоритетов. Была сделана попытка |
сопоставить |
|
качество различных типов приоритетов на случайно |
генери |
|
руемых сетях. |
|
|
Для генерирования сетей были использованы |
следующие |
|
предпосылки: |
|
|
а) в сети существуют параллельные цепочки работ, |
идущие |
|
от начала к концу, их число различно для различных сетей; |
||
б) сети характеризуются отношением числа работ к |
числу |
событий; так, для строительных работ этот коэффициент равен 1 ,3 - 1 ,5 , для проектных 1 ,5 - 2 ,5 , для сложных конструк торских и проектных работ 2 - 4 . Это отношение может быть
выражено как отношение числа событий, из которых |
выходит |
более одной работы, к их общему числу и через |
плотность |
вероятности числа работ, исходящих из таких *Ьетвящихся' со бытий;
в) сети характеризуются распределением |
продолжитель |
ностей работ; |
|
г) сети характеризуются распределением |
интенсивностей |
ресурсов, корреляцией между ними и продолжительностями ра
бот и взаимной корреляцией между видами ресурсов. |
|
|
|||||
Предположения "а" и "б' относятся к структуре сети, |
"в" |
||||||
и ' г ' - |
к количественным оценкам параметров работ. |
|
|
||||
Распределение продолжительностей работ |
характеризуется |
||||||
двумя различными плотностями вероятностей: для работ, |
вы |
||||||
ходящих из событий по одной, и для работ, выходящих из |
со |
||||||
бытий пучками. В первом случае практически |
отсутствуют |
||||||
работы длины ноль, |
во втором случае их процент весьма велик. |
||||||
Так, из-за предположения (не существенного для |
работы |
||||||
всех упомянутых алгоритмов расчета, но удобного |
методи |
||||||
чески) |
, что сеть не является мультиграфом, в реальных сетях |
||||||
возникает до 3 0% работ нулевой длительности. |
|
|
|||||
Корреляции между распределениями различных ресурсов |
и |
||||||
между |
ресурсами |
и |
продолжительностями |
работ |
трудно |
||
поддаются |
учету. |
В данной работе был |
использован лишь |
||||
совершенно |
очевидный |
факт, что работа нулевой |
продол |
||||
жительности не нуждается в ресурсах. |
|
|
|
||||
Блок-схема алгоритма генерирования случайных сетей |
ис |
||||||
пользовалась для сравнения эвристических алгоритмов |
со |
||||||
ставления расписания работ по жестким правилам для |
прио |
ритетов двух типов: длины максимального пути до конца сети;
трудоемкости непосредственно следующих работ,
77
Приводим описание техники сравнения. |
|
|
|
|||
Исходная сеть описывалась параметрами: 1) |
число событий |
|||||
1 2 8 ; 2 ) |
число выходов 2; 3 ) число информационных |
связей |
||||
5 0 ; 4 ) |
число технологических линий 10 ; 5 ) число |
испыта |
||||
ний 5 0 ( |
П = 2 8 ) ; б ) ресурсы имеют одну и ту же |
важ |
||||
ность |
Я/ = 1 ; / = 1 , 2 , 3 ; 7 ) |
длительности работ и связей |
||||
и их распределения задаются в табл. 4 и 5; 8) |
распределение |
|||||
интенсивности ресурсов на работах задаются табл. 6 . |
|
|
||||
|
|
|
Т а б л и ц а |
4 |
||
|
|
Распределение продолжительности работ |
|
|
||
Продолжительность работ |
№ работ |
|
|
|
||
|
|
1 |
0 0 2 |
|
|
|
|
|
2 |
0 0 3 |
|
|
|
|
|
4 |
0 0 5 |
|
|
|
|
|
5 |
0 5 0 |
|
|
|
|
|
6 |
0 2 0 |
|
|
|
|
|
3 |
0 0 3 |
|
|
|
|
|
•-7 |
0 0 2 |
|
|
|
|
|
1 |
|
|
|
|
|
|
8 |
0 0 5 |
|
|
|
|
|
9 |
0 0 2 |
|
|
|
|
|
1 0 |
0 0 2 |
|
|
|
|
|
11 |
0 0 2 |
|
|
|
|
|
12 |
0 0 4 |
|
|
|
|
|
|
Т а б л и ц а |
5 |
||
|
|
Распределение продолжительности связей |
|
|
||
Продолжительность работ |
№ связей |
|
|
|||
|
|
0 |
0 5 0 |
|
|
|
|
|
1 |
0 0 2 |
|
|
|
|
|
2 |
0 0 3 |
|
|
|
|
|
4 |
0 0 1 |
|
|
|
|
|
5 |
0 2 5 |
|
|
|
|
|
6 |
0 1 0 |
|
|
|
|
|
3 |
0 0 1 |
|
|
|
|
|
7 |
0 0 2 |
|
|
|
|
|
8 |
0 0 1 |
|
|
|
|
|
9 |
0 01 |
|
|
|
|
|
1 0 |
00 1 |
|
|
|
|
|
11 |
001 |
|
|
|
|
|
1 2 |
0 0 2 |
|
|
|
78
|
|
Т а б л и ц а |
6 |
Распределение интенсивности работ |
|
||
Количество ресурса |
% работ |
|
|
0 |
0 6 0 |
|
|
1 |
0 3 0 |
|
|
2 |
0 1 0 |
|
|
Суммарный уровень ресурса |
Q0 бьш принят равным 3 , |
а |
|
число испытаний равно 5 0 . |
|
|
|
Проверка состояла из двух этапов: |
|
|
|
проверки нормальности распределения |
длины |
по |
каждому из приоритетов:
проверки значимости превосходства одного из приоритетов над другим.
Первый этап осуществлялся по критерию Колмогорова. Для
этого строилась эмпирическая функция Гп |
( t |
) и |
вычисля |
||||||
лись отклонения от функции, соответствующей |
нормальному |
||||||||
распределению |
( t ). |
|
|
|
|
|
|
||
Значения Т |
(в единицах Т |
, вычисленного без учета |
ог |
||||||
раничений) |
приведены в табл, 'ff |
|
|
|
Т а б л и ц а |
7 |
|||
|
|
|
|
|
Т |
|
|||
|
|
|
|
|
|
|
|
|
|
Результаты испытаний величины |
■.К£ ----- |
для приоритета |
|||||||
|
|
|
|
|
Ткр |
|
|
|
|
по максимальной длине пути и по |
максимальной |
трудоем |
|||||||
|
кости непосредственно |
следующих |
|
работ |
|
|
|||
№ п/п |
Максимальная длина |
|
Максимальная трудоем |
||||||
|
|
пути |
|
кость |
следующих работ |
||||
1 |
|
2 ,0 0 7 6 3 3 |
|
1 ,9 5 4 1 9 8 |
|
|
|||
2 |
|
1 ,8 6 6 7 1 8 7 |
|
2 ,0 9 3 7 4 9 |
|
|
|||
3 |
|
2 ,4 0 3 2 2 5 |
|
2 ,1 6 1 2 9 |
|
|
|||
4 |
|
2 ,5 1 2 8 2 |
|
2 ,3 8 4 6 1 5 |
|
|
|||
5 |
|
1 ,9 9 0 9 9 |
|
2 ,0 6 3 0 6 3 |
|
|
|||
6 |
|
1 ,8 5 8 4 0 7 |
|
2 ,2 5 6 6 3 7 |
|
|
|||
7 |
|
2 ,2 2 8 0 7 |
|
2 ,2 9 8 2 4 5 |
|
|
|||
8 |
|
2 ,2 9 5 0 8 1 |
|
2 ,3 2 7 8 6 8 |
|
|
|||
9 |
|
1 ,8 3 7 83 7 |
|
1 ,8 1 0 8 0 9 |
|
|
|||
1 0 |
|
2 ,1 1 7 |
|
2 ,0 7 5 |
|
|
|||
11 |
|
2 ,1 7 |
|
2 ,2 6 4 |
|
|
|||
|
|
|
|
|
|
|
|
|
79 |
t