Научная статья на тему 'Временной анализ крупных сетевых графиков блочной структуры'

Временной анализ крупных сетевых графиков блочной структуры Текст научной статьи по специальности «Математика»

CC BY
59
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Временной анализ крупных сетевых графиков блочной структуры»

ИЗВЕСТИЯ

ОРДЕНА ОКТЯБРЬСКОЙ РЕВОЛЮЦИИ

И ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ПОЛИТЕХНИЧЕСКОГО ИНСТИТУТА имени С. М. КИРОВА

Том 203

1974

ВРЕМЕННОЙ АНАЛИЗ КРУПНЫХ СЕТЕВЫХ ГРАФИКОВ БЛОЧНОЙ СТРУКТУРЫ

Ю. Н. ЕФИМОВ

(Представлена научным семинаром УВЛ ТПИ)

Известные программы [1—4] анализа сетевых графиков используют только оперативную память (ОЗУ) электронных машин и обрабатывают сравнительно небольшие сети. Анализ же крупных сетевых графиков на ЭЦВМ с ограниченным объемом оперативной памяти представляет собой довольно трудную задачу, требующую привлечения внешней памяти. Для анализа крупных сетей сравнительно просто разработать, программы, реализующие те же алгоритмы и использующие внешний накопитель в качестве оперативной памяти. Однако частое обращение к НМЛ снижает надежность вычислений и настолько увеличивает машинное время, что делает временной анализ большинства графиков нереальным. Возникает проблема разработки методов и приемов наиболее эффективного использования ОЗУ с тем, чтобы при анализе крупных сетей сократить до минимума число обращений к НМЛ. Очевидно, что эти методы должны быть основаны на разбиении исходной сети на части и анализе этих частей в отдельности.

Всякая моделируемая разработка состоит из отдельных, более или менее обособленных частей, что находит отражение и на модели в виде графически обособленных комплексов работ и событий. Каждый такой комплекс (назовем его блоком) представляет собой подграфик Ок~(1 к, ик) исходного сетевого графика О = (/, £/), где —соответственно множество событий и работ этого подграфика, причем 1К ^ Л и к с ^ • Ставится задача построения по известным подграфикам О* укрупненного (менее детализированного) сетевого графика О1, сохраняющего основные параметры и взаимосвязи исходного графика б. Очевидно, что укрупненный график С1 будет содержать значительно меньшее число работ, чем исходный О, и может быть обработан обычными методами. Таким образом, необходимо разработать систему эквивалентных преобразований, при помощи которой блок можно свести к одной или нескольким работам.

Введем некоторые определения и обозначения.

События блока Ок будем обозначать 1К,}К , где 6 — номер блока. Событие ¿0к(Ц1к назовем исходным событием блока если

В общем случае блок может иметь некоторое подмножество Е1К0 исходных событий. Очевидно, что исходные события Е 10 графика Сявляют-

(1)

ся исходными событиями и блока, в который они входят (для них )> т- е- имеем

Е1при £/0с/к. (2)

Событие ¿пк £ /,. назовем завершающим событием блока , если

IV.," , 1/, ■ I"',/'. (3)

По аналогии с исходными событиями вводим понятие подмножества Е1пк завершающих событий блока Ок и получаем выражение

Е1п С Е1пк при Е1п С1 к (так как ГЕ1п п 0). (4)

Очевидно, что

Е1кп~Е1{) ! \ (5)

Исходные и завершающие события блока Ок составляют подмножество граничных событий 1К этого блока

(6)

Укрупненным сетевым графиком С1 данного графа в будем называть сетевой график, событиями которого являются все события множества I '

Is= и /«, (7)

К - 1

где m — число блоков в G.

Всякая работа (is,js) длиной t( ¿s, /?) будет являться работой укрупненного графика G1 при соблюдении следующих условий:

а) Eil, jse Eil;

б) существует один или несколько путей, ведущих из is в js в графе G;

в) величина t( is, js ) равна длине максимального из этих путей. Нетрудно показать, что для построенного описанным способом укрупненного графика G1 имеют место равенства

tp'(i)=tp(j), (8) tn '(/) = ш. (9)

где tpr (i)>tnr{j)Jp(i), tn{j) — ранние и поздние времена свершения события j соответственно в G1 и G.

Таким образом, основную задачу обработки сетевой модели блочной структуры можно свести к следующему:

а) найти в блоке критические пути, ведущие из Eil в EiKn ;

б) вычислить длины этих путей;

в) сформировать информацию о графе G1 в виде

(m)i*jst(i*Js), (10)

где

т — номер ячейки ОЗУ машины, г5, —соответственно начальное и конечное события работы искомого графа С,

¿(^Л11)—продолжительность этой работы. Для решения поставленной задачи применим следующую нумерацию исходного графика С (рис. 1). Каждое событие гразделим на три сектора. Пронумеруем события подмножества 18 по порядку (от

Рис. 1. Сетевая модель системы с нумерацией событий удобной для машинного анализа. (Выделены события подмножества Is )

единицы подряд) в восьмиричной системе счисления, и номера запишем в верхнем секторе. Это будут номера (внешние) искомого графика G'. Далее пронумеруем события 1К внутри каждого блока, причем начальные номера присвоим исходным событиям блока. Полученные внутренние номера событий блока записываются в правом секторе для Eio и в левом для iK ( Ein. Таким образом, каждое событие исходного графика G оказывается пронумерованным, причем граничные события имеют по три номера, а исходные и завершающие — по два номера (рис. 1). В процессе анализа в зависимости от того, в какой системе рассматривается событие, берется один из трех номеров. Следует отметить, что предлагаемая нумерация событий позволяет анализировать отдельные блоки независимо друг от друга, рассматривая их в любом порядке.

Рассмотрим методику и программу анализа сетевых графиков с описанной нумерацией событий на ЭЦВМ «Минск-1».

Исходная информация о графе G записывается на магнитной ленте в виде отдельных массивов. Каждый массив содержит информацию

об одном блоке, которая включает в себя описание блока и перечень всех работ. В описании блока содержатся списки исходных и завершающих событий блока (их внешние номера), а также номер блока и

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

1-й блок

2-й блок

3-й блок

P2iKjKt(iK,jK) р

(И)

где

внутренние номера событий, определяющих работу; ]к) —длина работы;

4 Заказ ЯЛЯ7

19

Р1 — признак завершающей работы.

0 для работ, входящих в завершающее событие блока, причем величина Рг берется равной порядковому номеру этого события в описании рассматриваемого блока.

Р1 = 0 для всех остальных работ блока.

Р2 = 1 только для завершающих работ, конечные события которых удовлетворяют условию:

ГЕй[\1к^Ф. 02)

Во всех остальных случаях Р2 = 0. В качестве примера в табл. 1 приведена запись информации о некоторых работах блока 1 сетевого графика, изображенного на рис. 1.

Рис. 2. Блок-схема программы анализа крупных сетевых графиков блочной структуры

На рис. 2 представлена блок-схема программы анализа крупных сетевых графиков блочной структуры. Информация о каждом блоке считывается с магнитной ленты в ОЗУ машины. После проверки правильности считанной информации печатается номер анализируемого блока, организуется предварительный поиск зоны магнитной ленты с информацией о следующем блоке и затем производится расчет блока.

Рис. 3. Блок-схема программы временного анализа блоков

Таблица 1

Такая процедура повторяется для каждого О. Необходимо отме-

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

Для расчета отдельных блоков используется несколько видоизмененный алгоритм полного перебора [3], приспособленный для анализа сетевых графиков многоцелевых разработок. Обработка информации о блоке производится в два этапа (блок-схема на рис. 3), причем на каждом из них используются одни и те же участки программы, по-раз-ному соединенные с помощью переключателей.

На первом этапе производится построение всех возможных путей в блоке и запоминание п длин максимальных путей, соответственно для каждого завершающего события блока (значение п равно количеству завершающих событий в блоке). На втором этапе производится повторное построение матриц путей и сравнение их длин с ранее запомненными. При совпадении получаемых длин с соответствующими ранее запомненными печатаются матрицы путей и формируется информация о графе С в форме (10). Информация о графе С выводится на перфоратор или по мере накопления переписывается на ленту.

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

Р-2 1* Щк, ¡к) Л

0 1 3 2 0

0 4 6 2 0

1 6 7 3 1

0 6 10 5 2

0 5 6 0 0

ЛИТЕРАТУРА

1. А. М. Горлов. Расчет сетевых графиков, по методу критического пути. Гипро-тис. М., ]965.

2. Г. М. А д е л ь с о н-В е л ь с к и й, Ф. М. Филлер. Программа вычисления сетевых графиков. Ж. вычислит, мат. и мат. физики, том. 5, № 1. 1965.

3. Ю. Н. Ефимов. Анализ сетевых графиков на ЭЦВМ «Минск-1». Аннотации программ, решенных на цифровых вычислительных, машинах. Вып. 4. М., 1967.

4. А. Т. Петрова, Н. Н. Карнаухова. Об одном алгоритме нахождения критического пути сетевого графика. Сб. «Вычислительные системы». Вып. 11. Изд. ИМ СО АН СССР, Новосибирск. 1964.

i Надоели баннеры? Вы всегда можете отключить рекламу.