Научная статья на тему 'Программа предварительного анализа сложного сетевого графика с локализацией логических ошибок'

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

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

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

ИЗВЕСТИЯ

ТОМСКОГО ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ПОЛИТЕХНИЧЕСКОГО

ИНСТИТУТА имени С. М. КИРОВА

Том 168

1969

ПРОГРАММА ПРЕДВАРИТЕЛЬНОГО АНАЛИЗА СЛОЖНОГО

СЕТЕВОГО ГРАФИКА С ЛОКАЛИЗАЦИЕЙ ЛОГИЧЕСКИХ

ОШИБОК

Ю. Н. ЕФИМОВ

(Представлена научным семинаром вычислительной лаборатории ТПИ)

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

Для сетевого графика G=(/, Г) [3], имеющего некоторое подмножество исходных Ei0 и завершающих Ein событий, определим путь L, как последовательность работ, начинающуюся с какого-нибудь события h е £/0.

~ (¿о, ^г--) ¿к,---) •

Такие пути в общем случае могут быть конечными и бесконечными. Очевидно, что для последнего события in конечного пути IЧ п — 0. Конечный путь назовем простым, если в нем:

а) последнее событие iп t

б) никакие события не встречаются дважды.

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

¡l — (/к, /K+i..,im), где im — /к.

Конечный путь, для которого in£Ein, имеет обрыв первого рода. Если найдется хотя бы одно событие ¿6/, для которого Г/-1 = 0, но ¿'t Ei о, то в сетевом графике имеется обрыв второго рода.

Противоречивость исходной информации затрудняет анализ сетевого графика и ставит под сомнение правильность результатов вычислений. Некоторые особенности самих методов анализа иногда позволяют обнаружить логические ошибки в исходной информации. Так, при расчете временных параметров методом итераций [4] или при нахожде-

3G

нии порядковой функции [5] замкнутые контуры в сетевом графике могут быть обнаружены по несходимости процесса счета. Обрывы же при этом не обнаруживаются, а приводят к неверным результатам вычислений. Наличие замкнутых контуров ведет к «зацикливанию» в программах, использующих алгоритм непосредственного анализа (полного перебора) [6]. Поэтому в программы анализа сетевых графиков обычно включают специальные блоки для прерывания счета и локализации обнаруженных ошибок. После необходимых исправлений машиннный анализ часто приходится начинать сначала до обнаружения следующей ошибки и т. д. Такая методика расчета намного увеличивает непроизводительные затраты машинного времени. Естественно., возникает необходимость создания специальной программы для локализации всех логических ошибок в сетевом графике. Эта программа должна использоваться для предварительного анализа сетевого графика на стадии его «сшивания». При этом желательно вычислить и длину критического пути (¿.р ) с тем, чтобы, исправляя логические ошибки, произвести одновременно временную корректировку работ. Опишем принцип работы такой программы, составленной для двухадресной ЭЦВМ «Минск-1».

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

О г а / ¿,7 .

Перед началом работы программы ячейки памяти, соответствующие событиям 1пк-Е1п , отмечаются знаком минус. В противном случае эти события будут выделены как места обрывов первого рода.

Работа программы (см. блок-схему на рис. 1) заключается в упорядоченной последовательности шагов, называемых шагами вправо и влево. Первый шаг делается вправо, начиная с события ¿(} Шаги вправо совершаются до встречи события г, имеющего Г7 — 0 или метку (зн-ак минус). В этом случае считаем очередной шаг вправо невозможным и делаем шаг влево. Событию, в которое ведет любой шаг влево, присваивается метка и временная оценка 1гп(1), вычисляемая по формуле

¥п (¿) — шах [¥*п (0; Ьгп (¿) + где

Ь'п (¿) -— наибольшая длина пути, последующего за событием £*п (г) — значение полученное к моменту вычисления.

Каждый шаг вправо фиксируется строкой в специальной таблице пути, характеризующей пройденный путь и определяющей шаги влево. Количество строк в этой таблице, равное числу работ, входящих в путь до рассматриваемого события, подсчитывается счетчиком О*!. Содержимое С^ сравнивается с заранее заданной величиной р>?тах(г')> где сртах(/) —максимальное значение порядковой функции анализируемого графика [5]. При [Сг^^-р печатается таблица пути до первого повторяющегося события ¿е. Событию 1е присваивается метка и от него делается шаг влево. Так выделяются контуры из бесконечных путей.

Если при шаге вправо встречается событие ¿к, для которого Г/к = 0, то печатается таблица пути, т. е. локализуется обрыв первого рода. Событие 1К получает м^тку, и делается шаг влево.

Если при шаге вправо встречается меченное событие г т , то по таблице пути проверяется, первый ли раз в рассматриваемый путь

входит это событие. Затем делается шаг влево с печатью таблицы пути, если 1т встречается повторно, и без печати в противном случае. Так выделяются замкнутые контуры из конечных путей.

н ¿7

Jac¿i'^r ¿<,££¿<,6/

-г / *

УГМ 77у/77 &

ЦШ <$ С/р0*у лу/гги

//Р/7?

¿Я

////а сЗап/ие

лге/г7

<#¿7нец Лу/тти ?

есгггб ли Х^ /гв/77

нр/77 / ¿с тб

ь

£¿7г / — /

налам дмае г^а

&С/ГГ& мет

жг/лгягсг лгег/лЪ

! *

1 Засб/утЯЩ * ¿у у

//г/к

¿а

ФсрАгг/угабаше

¿¿г /

яс/адмы сяЯбгтг/*

\

¿7д /¿сели аагГл/гаЬ^ мет

Рис. 1. Блок-схема программы предварительного анализа сложного сетевого графика с локализацией логических ошибок

На к-м шаге влево производится вычисление величины 1!п{ь) для события /0, из которого делается первый шаг вправо. Ь'п (г0) = = где ¿кр (¿о) — максимальная длина пути, начинающегося в

Описанный процесс анализа повторяется для каждого /0 б

После исправления обнаруженных логических ошибок весь расчет надо повторить с целью проверки внесенных исправлений и вычисления верных значений 4'п(ь). Для локализации обрывов второго рода необходимо повторить анализ для сетевого графика с обратной ориентацией работ.

ЛИТЕРАТУРА

1. Г. С. Поспелов, А. И. Т е й м а н. Автоматизация процессов управления разработками больших систем или сложных комплексов. Изв. АН СССР, сер. техн. ки-берн., 1963, № 4.

2. Ю. А. Авдеев, А. П. Николаева. Управление сложными разработками по методу критического пути. Сб. Вычислительные системы, вып. II, Новосибирск, Изд-во ИМ СО АН СССР, 1964.

3. К. Б ер ж. Теория графов и ее применения. М., изд-во ИЛ., 1962.

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

5. Ю. Н. Ефимов. Алгоритм нахождения порядковой функции сетевого графика, (данный сборник).

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

7. Ю. Н. Е ф и м о в, В. И. К и з е в, В. М. Разин. Об одном алгоритме автоматизации расчетов для процессов управления разработками сложных систем. Изв. ТПИ, т. 154, изд. ТГУ, 1967.

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