Файл: Судовые системы автоматического контроля (системный подход к проектированию)..pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.10.2024
Просмотров: 144
Скачиваний: 0
Укрупненная блок-схема алгоритма компоновки КФУ в мон тажном пространстве изображена на рис. 5.15. Здесь представлены следующие операторы:
— проверка выполнения условия закрепления всех вершин
мультиграфа G = |
(R, V) на множестве мест |
Р = |
\P t) |
монтажного |
пространства; |
|
|
|
|
D 2 — поиск незакрепленной вершины, |
имеющей |
наибольшую |
||
связь с закрепленными; |
|
|
|
|
Р3 — проверка |
наличия неопределенности I |
рода |
( т = 1). |
Рис. 5.15.
Под неопределенностью I рода будем понимать ситуацию, когда в результате анализа матрицы связности оказывается, что ряд не
закрепленных вершин имеет одинаковую связь с уже закреплен ными и требуется дополнительный анализ, чтобы выделить вершину,
с которой можно было бы продолжить алгоритм;
D, разрешение неопределенности I рода;
Db поиск для выбранной незакрепленной вершины места на монтажной плоскости в соответствии с критерием (5.5.3);
200
Рв —проверка наличия неопределенности II рода. Под неопре
деленностью II рода понимаем ситуацию, когда существует несколько свободных мест с равными минимальными суммами расстояний от всех уже закрепленных вершин;
D7 — разрешение неопределенности II рода;
Ds — закрепление выбранной вершины за монтажным местом.
Представим укрупненный алгоритм компоновки КФУ в виде схемы процесса программирования для реализации алгоритма на
ЭЦВМ в соответствии с введенными укрупненными операторами.
Для реализации обобщенных операторов Р ъ D 2 требуются следую щие операторы:
F х |
— ввод данных; |
|
|
|
F 2 |
— присвоение значений j = 1, |
i = |
0, t = 1, т = 0, |
s = О, |
f = 0; |
|
af, |
учитывающего |
размер |
F з — формирование коэффициента |
||||
КФУ |
и закрепление его за монтажным местом; |
|
Р4 — проверка условия а;- <С 0 (закреплена выбранная вершина
или нет); Рь — проверка условия / = 0 (зафиксирована выбранная не
закрепленная вершина или нет);
Кв — счетчик количества просматриваемых вершин (выполняет
операцию / + 1);
Р1 — проверка условия j ■ < Ф 3 (Ф 3— число незакрепленных
вершин); |
|
|
|
|
Р8 |
— проверка |
условия |
f = |
0 (совпадает с оператором Ръ)\ |
Р 9 |
— проверка |
условия |
t = |
Ф 4 (t — текущее количество за |
крепленных вершин, Ф 4 — |
число вершин мультиграфа); |
/Сю — счетчик количества закрепленных вершин (выполняет опе
рацию t + 1);
А 1г— вычисление т = т + Сц (суммарное число связей за фиксированной незакрепленной вершины со всеми закрепленными вершинами);
Р 12— проверка условия |
t < |
Ф 3 (Ф 2— количество закреплен |
ных вершин); |
|
|
А 13 — вычисление s = т |
— s |
(s — суммарное число связей пре |
дыдущей зафиксированной незакрепленной вершины со всеми за крепленными вершинами);
Р и — проверка условия |
s x > |
0; |
|
|
|
|
|
||
Р п — проверка |
условия |
s x |
= |
0; |
|
|
|
|
|
Р ig — проверка |
условия |
б = |
Ф 3 (б — текущее |
значение числа |
|||||
незакрепленных вершин); |
|
|
|
|
|
|
|
|
|
/г17 — присвоение значений |
k = |
1, |
/ = |
0 и j |
= |
i; |
|||
F 18— присвоение значений |
г = /, |
/ |
= |
1 и t = |
1; |
К 19 — счетчик текущего значения числа незакрепленных вершин
(выполняет операцию б = б + |
1); |
F jo — формирование р = i, |
k = 0, s = т \ |
F — присвоение значения |
и/{ = р (ик — номер ячейки памяти |
ОЗУ); |
|
201
/С22 — счетчик числа вершин, имеющих одинаковое суммарное
количество связей просматриваемых незакрепленных вершин с за
крепленными вершинами (выполняет операцию |
k = |
|
k + |
1); |
|
|||||||||||
F 2 з — присвоение |
значения |
ut = |
0 и / = |
k\ |
|
|
|
|
|
|||||||
Р 24— проверка |
условия I = |
|
М (М — количество |
незакреплен |
||||||||||||
ных вершин, имеющих равное суммарное количество связей); |
||||||||||||||||
F 25— формирование |
р = i |
и |
присвоение |
значения |
k = |
1; |
||||||||||
А 2в — вычисление |
uk = |
р; |
|
имеющих одинаковое |
суммарное |
|||||||||||
К 27 — счетчик |
числа |
вершин, |
||||||||||||||
количество связей |
(совпадает с оператором К 2 2 )', |
|
|
|
|
|
||||||||||
F 28— присвоение значения |
k = |
М. |
|
|
|
P lt D 2 имеет |
||||||||||
Схема программирования обобщенных операторов |
||||||||||||||||
вид: |
/Г86£7, 17, 19Р |
р |
| |
р |
- |
|
|
|
|
|
|
|
|
|
|
|
И |
|
|
|
|
|
|
|
|
|
20 |
||||||
|
|
|
|
8 |
|
18 |
|
|
|
|
|
|
|
|
|
|
r l |
‘ 1 |
1 3 |
|
4-1 |
г 5 |
|
|
|
!16^^2 I-^5t |
|
|
1V |
h |
i |
||
20 25 |
Цз |
|
3 |
18 |
|
|
24 |
16 |
|
|
|
|
16 |
|||
|
|
16I1171 |
492021i |
a2' 23a241 |
25^26'2728I• |
|||||||||||
iр 15 Т24’28Р,.тF |
|
5p |
/тир |
F |
|
К F P |
!5,2if |
A |
К |
F |
? |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Рассмотрим особенности работы этого алгоритма. После введе
ния исходных данных (оператор F 4) все текущие переменные алго
ритма приводятся в исходное состояние (оператор F 2). Затем начи нается поиск первой незакрепленной вершины и ее фиксация для вычисления суммарного числа связей зафиксированной незакреплен
ной вершины со всеми вершинами, которые к данному моменту за
креплены.
Операторы работают в следующей последовательности. Выби
рается первая по порядку вершина (оператор F 3) и проверяется, закреплена ли данная вершина или нет (оператор Р4). Если вершина
не закреплена, работает оператор Р 5, проверяющий, фиксирована ли
какая-нибудь вершина. При выполнении этого условия управление передается операторам Кв и Р7. Первый из них показывает число незакрепленных вершин, а второй проверяет, равно ли текущее зна чение числа незакрепленных вершин исходному числу или меньше его. Если эти числа совпадают, то управление передается алгоритму
раскрытия неопределенности первого рода, если нет — оператору F3.
Если просматриваемая вершина не зафиксирована, ее необходимо
зафиксировать, |
что и выполняют операторы F и /С19. Последний |
пересчитывает |
число зафиксированных незакрепленных вершин |
с тем, чтобы в дальнейшем сравнить его с общим числом незакреплен
ных вершин. Если вершина закреплена (оператор Р 4), то проверяется,
имеется ли зафиксированная незакрепленная вершина (оператор Р8). Если такой вершины нет, работает оператор Кв- Далее определяется, равно ли число закрепленных вершин общему числу вершин. Если
равно, то управление передается к оператору со, который выводит
на печать результаты компоновки, если нет, производится вычисле ние суммарного количества связей зафиксированной незакреплен ной ячейки со всеми закрепленными ячейками (операторы Кю< А ц *
Р 12). |
Оператор Р 1 2 проверяет, со всеми ли закрепленными верши |
нами |
подсчитано суммарное количество связей. Если нет — выби |
202
рается следующая закрепленная вершина, если да, то производится поиск той незакрепленной вершины, у которой суммарное количество связей с закрепленными вершинами наибольшее (операторы А 13, Р и). Эта вершина запоминается по адресу и0. Когда таких вершин не
сколько, |
все они запоминаются по адресу ик (операторы Р 15, F 25, |
|||
А 2в» Кг?)- Число |
незакрепленных вершин, имеющих одинаковое |
|||
максимальное суммарное количество связей, фиксирует оператор F 28, |
||||
причем все эти вершины запоминаются с адреса и1. Операторы F 23 |
||||
и К г2 предназначены для записи нулей в ячейки ult |
иг, . . ., |
им- ь |
||
если сработают операторы F 20 и F 21. После того, как все незакреп |
||||
ленные |
вершины |
проверены и проанализированы, |
через |
опера |
тор Я 16 управление передается к оператору раскрытия неопределен ности I рода (D4) или к оператору поиска монтажного места для
закрепления найденной вершины и последующего его закрепле ния (D6).
Для раскрытия неопределенности I рода требуются следующие
операторы: |
|
|
|
|
|
|
|
|
|
|
|
|
||
Р 29— проверка |
условия |
т |
— 1, |
т. е. |
имеется |
ли неопределен |
||||||||
ность |
I |
рода; |
|
|
|
|
|
|
|
= |
0 , k = |
0 , б = |
1, i = |
|
Кзо — присвоение значения / = |
1, т |
ик\ |
||||||||||||
F ах — формирование ау-; |
|
|
|
|
|
|
|
|
|
|
||||
Р а2— проверка условия а,- |
= |
0; |
|
|
|
|
|
|
|
|||||
Кзз — счетчик числа |
просмотренных вершин; |
|
|
|
||||||||||
К34 — вычисление т |
= т |
+ |
Сц\ |
|
|
|
|
|
|
|
||||
Р 35 — проверка |
условия |
б = |
Ф 3; |
|
|
|
|
|
|
|||||
Км — счетчик числа |
незакрепленных |
вершин |
(выполняет |
опе |
||||||||||
рацию |
|
б = б + 1); |
|
|
|
|
|
|
|
|
|
|
|
|
F 31 |
— формирование zk = |
т |
(запоминание); |
|
|
|
||||||||
Рзв— проверка |
условия |
k = М\ |
|
|
|
|
|
|
||||||
К3 9 |
— счетчик |
числа |
вершин, |
подлежащих закреплению |
(вы |
|||||||||
полняет операцию |
k = |
k + |
1); |
|
|
|
|
|
|
|
|
|||
К40 — формирование |
s = |
z0, |
k = |
0; |
|
|
|
|
|
|||||
AiX — вычисление |
= zk A- s; |
|
|
|
|
|
|
|
||||||
P 42 — проверка |
условия |
s 4 > |
0; |
|
|
|
|
|
|
|||||
Я43 — проверка условия |
s = |
0; |
|
|
|
|
|
|
|
|||||
Fu — формирование |
s = |
zk\ |
|
|
|
|
|
|
|
|
||||
K45— проверка |
условия |
k = |
M; |
|
|
|
|
|
|
|||||
Kie — счетчик числа |
вершин, |
подлежащих закреплению (совпа |
||||||||||||
дает с /С88); |
|
|
|
k = |
0, j |
= |
0; |
|
|
|
||||
Ftf — присвоение значений |
|
|
|
|||||||||||
AiB — вычисление s x = zk— s; |
|
|
|
|
|
|
|
|||||||
Pi 9 |
|
— проверка |
условия |
|
= |
0; |
|
|
|
|
|
|
||
/С50 — счетчик |
числа |
вершин, |
подлежащих закреплению |
(сов |
||||||||||
падает с /С39); |
|
|
|
|
|
|
|
|
|
|
|
|
||
Р 5 1 — проверка условия |
k = |
М; |
|
|
|
|
|
|
||||||
Л 52 — вычисление Zj |
= ик\ |
|
|
|
|
|
|
|
|
|
||||
Кьз — счетчик нового числа вершин, |
подлежащих закреплению, |
|||||||||||||
после |
раскрытия |
неопределенности |
I |
рода (выполняет |
операцию |
|||||||||
/ = / |
+ |
1); |
|
|
|
|
|
|
|
|
|
|
|
|
203
Р54 — формирование М = /, |
k = 0; |
|
Л55— вычисление = |
zk\ |
|
Рав— проверка условия |
к = |
М\ |
КЬ7 — счетчик числа вершин, подлежащих закреплению (совпа дает с /С39).
Операторная схема программирования обобщенных операторов Р 3 и Db имеет вид:
|
5 8 |
|
|
3 4 |
|
|
3 7 |
|
40 |
|
|
|
4 6 |
|
1 6 Р 4 3 4 / 7 3 8 / 7 |
Р |
Т 3 6 / Г 3 2 Д |
n |
f / Г З З / 7 |
р |
t Д 'ЗО 3 8 /7 4 6 |
Л |
D |
Т |
|||
|
r 2 9 I |
3 0 З Г 32 I i v 3 3 |
3 4 ^ 3 5 I v 3 6 |
37 |
3 8 1 ', ' 3 9 |
40 |
|
41 |
42 I |
||||
46 |
4 6 |
47 |
k« |
j |
w |
. |
51 |
ap s |
5 4 |
|
|
|
<р |
; р„т f |
a ! " ■ |
:aS34 |
, 4i , - |
|
|
|
Кь,- |
Для раскрытия неопределенности I суммарного количества связей вершин, и заполненных в ячейках памяти СЗУ и0, ными вершинами. Выбираются те из них, ное суммарное количество связей
рода производится оценка подлежащих закреплению ult . . ., ит с незакреплен которые имеют минималь
Ф з
mk = min £ mk + с<*>,
где k — номер вершины, подлежащей закреплению, и запоминаются в тех же ячейках памяти ОЗУ, в которых были записаны номера вер
шин, подлежащих закреплению, до раскрытия неопределенности.
Операторная схема программирования обобщенных операто
ров Р 3 и Da работает следующим образом. Проверяется наличие не
определенности I рода (оператор Р 2 9). Если неопределенности нет, то управление передается оператору Di обобщенной блок-схемы,
если |
есть — выбирается |
первая вершина, подлежащая закрепле |
|
нию; |
индексу «(» присваивается ее значение и переменным /, т , |
k, 8 |
|
присваиваются значения |
1, 0, 0, 1 соответственно (оператор |
F 30). |
Затем осуществляетсяпоиск всех незакрепленных вершин (опера торы F 3 1 ,Р 32, АГ33), вычисление суммарного количества связей вы бранной вершины со всеми незакрепленными вершинами (опера торы А34, Р 35, Кза) и запоминание этого значения (оператор F S7). Оператор Р 38 проверяет, все ли вершины, подлежащие закреплению, проанализированы. Если нет, то оператор /С38 выбирает следующую по порядку вершину, подлежащую закреплению; если да — управ ление передается алгоритму определения минимального значения
суммарного количества связей (операторы f 40, |
Л41, Р 42, Р 43, Р44, |
Р4 5 , Ки). После этого определяются вершины, |
подлежащие закреп |
лению (операторы Р47, Л48, Р49, К-Оо) и запоминаются (операторы Р 51,
Л62, Къз) и снова переписываются в ячейках памяти ОЗУ, в которых
они были записаны до раскрытия неопределенности I рода (опера
торы f 54, Л 55, Р 5в, К„).
Перейдем к оператору Di укрупненной блок-схемы алгоритма компоновки. Введем следующие операторы:
Р58— присвоение значений / = 0, п = 0, т = 0, б = 1, s = 0;
F 59 — формирование н = ы„;
204