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

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

.pdf
Скачиваний:
6
Добавлен:
20.10.2023
Размер:
7.95 Mб
Скачать

времени. Печать промежуточных результатов.

26.Корректировка временных оценок работ критическо­ го пути.

27.Корректировка всех рабочих массивов и подготовка

кновой итерации. Уход на блок 14. Первые девять блоков

этого вычислительного процесса реализуются с помощью программы «Ввод, контроль, компоновка». Ниже приведены

операторные схемы основных блоков 14 и 15

(алгоритмов

В и А).

Синтез оптимального сетевого

графа

(алго­

Б л о к 14.

ритм В). Метод построения оптимального сетевого

графа

по критерию

минимума продолжительности

критического

пути рассматривался в третьем параграфе главы III. Блоксхема этого алгоритма представлена на рисунке 6.10.

Назначение операторов:

1.Ввод и подготовка исходных данных.

2.Формирование рабочих массивов.

3.Проверка: все ли вершины контура 1 просмотрены.

4.Блок восстановления.

5.Вычисление Lk*.

6. Анализ: все ли вершины массива К проверены для

£е/.

7. Определение L * для г е /.

8.Подготовка к выполнению алгоритма А.

9.Алгоритм А . Вычисление LP-Hдля i^I.

10.Пересчет ранних начал работ графа для £ = 1, 2 , . . , , N (N — количество вершин на графе).

160

11. Анализ на конец (все ли полные контуры 1 просмот­ рены).

12.Конец.

Бл о к 15. Выбор оптимальной последовательности вы­ полнения работ, принадлежащих полному контуру (алго­

ритм А). Блок-схема алгоритма А представлена на рисун­ ке 6.11.

Назначение операторов:

1. Построение таблицы параметров U £*, Lt, L * работ

полного контура.

2.Выбор минимума L*.

3.

Определение m in{X j}. Анализ: Lt = 0 для всех i(p—

= 0)?

Анализ: для i с min Lt значение L * ■=max (L**}?

4.

5.

Ц р = 0}

Проверка условия (3.2) для всех ik.

1 1 -9 1

161

6.Формирование параметров для /'*.

7.Проверка условия (3.3).

8.Проверка условия (3.4).

9.Анализ: все ли ik просмотрены. 10. Присвоение индекса р для г*. 11. Вычисление gi и 02.

12.Преобразование элементов исходной таблицы.

13.Анализ на конец вычислений.

14.

Присвоение очередного индекса pi всем i ( p = 0).

15.

Конец.

Описание программы синтеза оптимального сетевого графа при ограниченном объеме

складируемых ресурсов

Программа, реализующая рассмотренный алгоритм, за­ нимает 2000 восьмеричных ячеек (0000— 1777) и использу­ ет все индексные ячейки.

Распределение оперативной памяти (ОП) следующее:

0020— 0137

| константы и рабочие ячейки.

 

0417— 0441

 

 

 

 

 

 

 

0240— 0277

| программа счета.

 

 

 

0442— 1537

 

 

 

1550— 1777

— рабочие массивы.

 

 

 

2101— 17777

 

 

 

Стандартные блоки:

 

 

 

 

 

 

Блоки

(0140— 0162)

Iосуществляют

вызов

(запись) пор-

 

(0201— 0220)

1ции с магнитной ленты (МЛ).

 

Блок

(0163— 0200)

печатает число в заданном виде.

 

Блок

(0221— 0237)

СП-16 переводит целое

число

из

 

 

двоичной с/с в десятичную,

 

Блок

(0300— 0404)

сортирует

произвольный

массив

по

 

 

возрастанию

одного

или несколь­

 

 

ких реквизитов,

 

 

 

Блок

(0405— 0416)

находит сгь 02.

 

счета на

 

Блок

(1540— 1542)

печатает

программу

 

 

 

БПМ-20.

 

 

 

 

 

Блок

(1543— 1546)

записывает на МЛ программу счета.

Распределение памяти под рабочие массивы дано в таб­

лице 6.4.

Все программы могут быть записаны на МЛ. В этом слу­ чае ввода с перфоленты не будет. Расположение программ

имассивов на МЛ представлено в таблице 6.5.

Входе работы выдается следующая информация:

а) номер итерации; б) значение критического пути <72;

в) величина затрат Zi0K

162

Место в МОЗУ

Условное обозна­

 

 

чение массива

начало

конец

 

D * *

2101

4050

D*

4051

6020

2) * * *

6021

7770

D k

6021

7770

L

10000

14704

К

15670

17163

М

17164

17777

и

10000

16654

D '

15670

17637

D "

15670

17637

L "

10000

15667

Таблица 6.4

Примечание (коды)

i*,

bi,

a t,

где

i* номер работы,

вводимой в цепочку

г*,

D i ,

du где i* вершина кри­

тического пути

 

 

L i ,

L t*

 

 

 

±

0000

0000

If*

 

( i,

j,

t i )

 

1

 

0000

0000 i

 

{ L i * ,

U )

 

 

 

(000000 L i )

 

 

(0000 0000 i)

 

 

(i,

j,

ti)

 

 

0000 0000 *in °

(fliy 0

( i, J> h)

 

При выполнении

условия 2 (0)< йо

на печать

выдается

решение:

 

 

 

 

 

г)

номер работы (i);

 

 

 

 

д)

продолжительность работы ti,

 

Таблица 6.6

 

 

 

 

 

 

 

 

 

 

Макси­

Начальное слово массива

 

 

 

 

на МЛ

 

 

Название программ

мальное

 

 

кол-во

 

 

 

 

и массивов

 

 

после кор­

 

 

 

слов в

исходного

 

 

 

 

 

 

 

 

8 с/с

ректировки

Программа «Ввод, контроль, ком-

1330

00 0200

поновка»

 

Программа счета

 

2100

00 2300

Блок «Упорядочения»

 

140

07 6400

Массив констант

 

20

00 4760

D** (0, Ъи а{)

 

1г50

00 5000

D' (0, Du di)

 

1750

00 6750

L по увеличению j

 

4704

01 0720

047000

L по увеличению i

 

4704

015624

053704

L по уменьшению j

 

4704

022530

060510

V

по уменьшению i

 

1750

036310

074370

Dh (0,0, ti или 0,0,

 

6654

027434

065514

 

 

ieK

 

4704

040260

100750

L по уменьшению i

 

К

по увеличению j

 

ИЗО

045164

107350

L"

 

6400

100750

L"

по уменьшению j

 

6400

107350

16S

е) раннее начало L Р-н;

ж) используемые ресурсы rt на работе г.

Пункты г, д, е, ж повторяются для каждой вершины гра­

фа.

При включенном положении ключей 1, 2 и 3 печатаются промежуточные результаты:

1.Номер итерации.

2.Массив D***, где сформированы Lf-H.

3.Массив D**, где хранятся Lt*.

4.Массив М для вершин рассматриваемого контура, рассортированный по уменьшению значений L * и увеличе­ нию значений ti9 Lt.

5.Результаты, полученные при работе алгоритма А :

а) порядковый номер работы, вводимой в цепочку; б) номер работы г*;

в) раннее начало ik-й работы;

г) продолжительность г*-й работы; д) длина максимального пути от г*. -й вершины до мажо­

ранты ;

е) значение oi, 02.

6.Массив М после преобразования, L[k)—Lik—(Lj+^г).

7.Печатаются результаты, что и в пункте 5.

8.Новые значения t?-н после пересчета, когда закончит

работу алгоритм А для очередного полного контура. Пункты 6— 8 повторяются для всех вершин контура. После расположения в цепочку работ первого контура

рассматриваются все остальные контуры и повторяются пункты 4— 8.

9. Значение критического пути 0 2 и величина Z (4

10.Коды массивов L" и D'.

11.После корректировки таблицы 3.1 на каждой итера­

ции по ключу 02 печатаются следующие массивы: D*, мас­ сив L, рассортированный по увеличению j, массив L, рассор­ тированный по возрастанию i и по уменьшению j, и, нако­

нец, массивы L', D k. Затем печатается номер новой итерации и повторяются пункты 2— 11. При печатается окон­ чательное решение.

Заметим, что пункты 4— 6, т. е. печать промежуточных результатов алгоритма А, выполняются по ключу 03. Далее все массивы выдаются на печать в восьмеричной системе счисления.

Инструкция работы за пультом

1. Поставить МЛ 2— 2 с исходными данными, получен ными после работы программы «Ввод, контроль, компонов­ ка».

164

2.Ввести программу «Синтез оптимального сетевого графа при ограниченном объеме складируемых ресурсов».

Контрольная сумма — 7777 7777 7777.

3.Включить ключи 1 и 2, если нужны промежуточные результаты.

4.Занести в СчАК 1000.

5.Автомат, пуск!

6.Останов 2042 — конец счета.

При останове 1033 следует увеличить содержимое ячей­ ки 0023, в которой находится значение Ло в восьмеричной системе счисления.

Если нужно изменить шаг h, то, сделав останов по коман­ де 1053, необходимо занести в ячейку 0024 новое значение

^ Н О Е •

Далее пуск с адреса 1053.

§ 6. АЛГОРИТМ СИНТЕЗА СЕТЕВОГО ГРАФА ПРИ ПЕРЕМЕННЫХ ВО ВРЕМЕНИ УРОВНЯХ НЕСКЛАДИРУЕМЫХ РЕСУРСОВ

Метод синтеза сетевого графа при переменных уровнях нескладируемых ресурсов рассматривался в главе V. Для реализации этого метода на ЭВМ «Минск-22» разработаны алгоритм и стандартная программа. В основу разработанно­ го алгоритма положены стандартные процедуры, описанные в первом параграфе данной главы.

Программа состоит из двух частей: «Ввод, контроль, ком­ поновка» и счет.

Укрупненная блок-схема для программы счета представ­ лена на рисунке 6.12.

Описание блоков:

Б л о к 1. Ввод исходных данных, формирование рабо­ чих массивов, подготовка информации для расчетов (про­ грамма «Ввод, контроль, компоновка»).

Б л о к 2. Определение для каждой вершины макси­ мального пути до мажоранты на графе с полными контура­ ми.

Б л о к

3.

Вычисление и пересчет L Р-н для работ i.

Б л о к

4.

Нахождение для вершин полных контуров

путей максимальной длины: Lt— входящих и Lt*— выходя­ щих.

Бл о к 5. Выбор порядка следования для контурных ра­ бот, вычисление их ранних начал Lp H.

Бл о к 6. Анализ: все ли контуры просмотрены. Да — работает блок 7, нет — блок 3.

Бл о к 7. Сортировка массива ранних начал по увели­ чению значений LpH.

165

Б л о к

8.

Определение фронта работ F(tk).

 

 

Б л о к

9.

Выбор интенсивности использования ресур­

сов для работ фронта.

 

 

Б л о к

10.

Анализ: достаточно ли наличного уровня ре­

 

 

сурсов R(tk)

для

осу­

 

 

ществления всех

работ

 

 

фронта F(tk)

с макси­

 

 

мальной интенсивностью.

 

 

Да — работает

блок 11,

 

 

нет — блок 18.

 

 

 

 

 

 

Б л о к

11.

 

Вычисле­

 

 

 

ние

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

 

 

 

фронта © при макси­

 

 

 

мальной

интенсивности

 

 

 

тI =

рI

выполнения ра­

 

 

 

бот.

 

 

12.

 

Выдача

 

 

 

 

Б л о к

 

 

 

 

на

печать

результатов

 

 

 

расчета:

время

tk

на­

 

 

 

чала фронта F(tk) , про­

 

 

 

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

 

фронта

 

 

 

©й, интенсивность для

 

 

 

всех работ фронта.

 

 

 

 

 

Б л о к

13.

Определе­

 

 

 

ние

объема оставшейся

 

 

 

части работ.

 

Вычисле­

 

 

 

 

Б л о к

14.

 

 

 

 

ние

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

 

 

 

tt

оставшейся части ра­

 

 

 

бот

L Пересчет L Р-н.

 

 

 

 

 

Б л о к

15.

Анализ:

 

 

 

все

ли работы

законче­

 

 

 

ны.

Да — переходим

к

 

 

 

блоку

22,

нет — к блоку

 

 

 

16.

 

 

16.

Корректи­

 

 

 

 

Б л о к

 

 

 

ровка всех рабочих мас­

 

 

 

сивов.

 

17.

Анализ:

 

 

 

 

Б л о к

 

 

 

все

ли

работы

 

фронта

 

Рис. 6.12.

F(tk)

 

выполнялись

с

 

максимальной

интенсив-

ностыо. Да — переходим к блоку 7, нет — к блоку 21.

 

Б л о к

18.

Вычисление резерва

времени

работ фронта.

Б л о к

19.

Определение

интенсивности

г*

для

работ

F(tk).

166

Б л о к 20. Выбор продолжительности фронта © при rt Ф

Ф$ 1 . Уход на блок 12.

Бл о к 21. Подготовка массивов к вычислению парамет­ ров для очередного фронта ^(^)при г£=7^=Рг на F(tk—i). Пере­ ход к блоку 7.

Описание программы «Синтез сетевого графа при переменных во времени уровнях нескладируемых

ресурсов»

Программа занимает в общей сложности 2000 восьмерич­ ных ячеек 0000— 1777 и использует все индексные ячейки 0001— 0017. Укрупненно в состав программы входят четыре блока, условное обозначение которых ABD, У, © и К.

Таблица 6.6

Условное

Занимаемое

Началь­

 

обозначение

кол-во ячеек ный адрес

Примечание

блока

в 8 с/с

в МОЗУ

 

A B D

1730

0047

Основной блок

Y

0150

0450

Блок «Упорядочение вершин»

0

1000

0440

Блок «Продолжительность фрон­

 

 

 

та»

к

440

1000

Блок «Контур»

Перед началом вычислений все указанные блоки необхо­ димо записать на магнитную ленту, поскольку в оператив­ ной памяти (МОЗУ) они занимают одно и то же место.

Расположение блоков в МОЗУ показано в таблице 6.6.

При счете блоки вызы­

 

Таблица 6 .7

ваются в МОЗУ

автомати­

 

чески. Блок ABD состоит в

Условное

Максималь­

 

 

 

свою

очередь из следую­

Начальное

щих блоков:

 

 

обозначение

ное кол-во

 

слово на

выбора

блока

слов в 8 с/с

 

А — алгоритм

 

 

 

 

МЛ

оптимальной

последова­

 

 

 

 

 

тельности выполнения

ра­

AB D

1730

1

3

014165

бот,

принадлежащих

пол­

Y

0150

1

3

016116

ному

контуру

(алгоритм

0

1000

1

3

016267

К

440

1

3

017267

В — алгоритм

синтеза

 

 

 

 

 

оптимального сетевого графа (алгоритм В) ;

 

 

 

D — алгоритм

синтеза оптимального сетевого графа при

переменных во времени уровнях нескладируемых ресурсов (блок D).

167

В таблице 6.7 показано расположение блоков на магнит­

ной ленте.

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

Условное обозна­ чение массива

D *

D * *

j y * * *

D k

D '

L по увеличению i j

L по увеличе­ нию j

L по уменыпению i

К

М

во

в

 

Максимальное кол-

занимаемых ячеек

8 с/с

2000

2000

2000

2000

2000

5430

5430

5430

2000

2000

Таблица 6.8

Коды в массиве

±* , L f - K, i

±P i . V t

Примечание

Знак

«минус» признак фронта

F ( t k ) .

<х =

1 работа закончена, а =

= 0

работа не закончена

 

Знак

«минус» для

случая

r i > V i

± U . L *

 

 

M

1+

s*

+

*■

i

f

A t * k e ti

if Jy i'i

Знак «минус» для фиксации законченных работ, принадлежа­ щих полному контуру

Знак «минус» признак полного контура

Знак «минус» начало контура

f

признак фронта

k

признак полного контура

A t i

резерв времени i-й работы

i, j

номера вершин

iy Jf

i'i

 

Z, временная

оценка z-й

ра­

 

 

 

боты

 

 

i* Jt

 

 

 

 

 

7 , ik

 

 

Y — признак конца фронта

 

 

 

 

ih контурная вершина

 

L i* n

}

машинные

документы

для

tP - H

L i

l

алгоритма А

 

 

O,

i

J

 

 

 

 

 

Распределение памяти для указанных массивов в МОЗУ и на МЛ представлено в таблице 6.9.

При работе программы на печать в десятичной системе счисления выдаются результаты расчетов после анализа оче­ редного фронта F(ik):

168

1.-\— 1— |— 1— 1— j— |— 1— |— \~.

2.Номер фронта F(tk).

3.Момент начала фронта tk.

4.Продолжительность фронта 0.

5.Номер работы i.

6.Интенсивность используемых ресурсов г* для г-й рабо­

ты фронта. 7. Интервал.

 

 

 

Таблица 6.9

Условное обозначение

Начальный

Начальные слова

массива

адрес в

 

на МЛ

 

МОЗУ

 

 

 

D*

2000

1

3

100510

D**

4000

1

3

102510

Dh

6000

1

3

104510

15430

1

3

106510

D'

15430

1

3

110510

L по увеличению i, j

10000

1

3

114510

L по увеличению j

10000

1

3

122140

L по уменьшению i

10000

1

3

127570

L" по увеличению j

10000

1

3

135220

L" по уменьшению i

10000

1

3

142650

К

15430

1

3

112510

М

17400

1

3

const

0020

1

3

043700

Пункты 5 и 6 повторяются для всех работ фронта F(tk). Для последующих фронтов печатается аналогичная инфор­ мация (пункты 1— 7).

Инструкция работы за пультом

Перед тем как начать вычисления, на магнитной ленте следует записать все программы согласно таблице 6.7. Основ­ ная программа счета должна работать после того, как будут подготовлены на МЛ все рабочие массивы по программе «Ввод, контроль, компоновка».

1.Подготовить магнитную ленту 1— 3 к работе.

2.Включить печатающий механизм ТБПМ.

3.Считать с МЛ первый блок ABD.

4.Занести в СчАК 1440.

5.Пуск!

6.Останов СчАК 1661 — конец счета.

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