Файл: Горбатов В.А. Синтез композиции операционного и управляющего автоматов в вычислительной технике учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.08.2024

Просмотров: 46

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Тогда согласно (5-2) и (5-3) имеем

іѳі =

Ѳ/ (Ж (/ - 1) - Ж (/));

 

Ui =

П) (Ж (/ — 1) — Ж (/')).

(5-5)

Следовательно согласно (5-1) и (5-5) имеем / V

Т (А (п, s, m)) = log2 2

П

(О X

\/ = /о

 

 

IX Ѳ/яНМ ( 7 - 1 ) - Ж

(/))>).

(5-6)

Если предположить, что «ветвистость» вычислительного процесса по ярусам одинакова и аппроксимировать функции

<2ѳ (/), Q* (/)

и М (/)

прямыми, то

 

 

Т (Л (п, s,

т)) Ä

log, (8Ѵ0Ѳ.8В-^ (С) X

 

 

V

(Ж (7 -

1) -

Ж(7))3

 

X Ѳ-я. У

Очевидно,

 

У * / о

 

 

 

 

 

 

 

 

 

 

/W o

 

 

 

 

 

 

 

_

(Я +

S +

logs (S + m))a

 

 

 

 

i1

 

I

 

 

 

 

 

 

где р —число ярусов

 

 

 

 

 

М (j0) =

log, ((s +

OT)-2rt+5) =

a +

s + loga (s + m)\

Ж (7V) = 0.

Тогда

T (A (n, s, m ))^ lo g 3^ v Se .6 ,.^ (C ).0 .n .

(5-7)

Формулы (5-6), (5-7) выражают связь трудоемкости реше­ ния задачи синтеза автомата реализующего оператор A(?2,s, т) с информационными характеристиками языков, применя­ емых при синтезе, числом переменных, критерием синтеза С и числом шагов процесса.

98



В качестве критерия На ограниченность вычислительных средств, естественно, взять

Т [А(7і, s, пг)) < Тдоп (п, s, m)),

(5-8)

Удоп —допустимая трудоемкость решения задачи синтеза.

Из анализа формул (5-6) -г-(5-8) замечаем, что для выпол­ нения (5-8) можем варьировать в основном только Ѳ и я, т. е. проводить синтез на языках с малыми Ѳ и я характеристика­ ми, так как остальные параметры являются заданными. Отсю­ да возникает интересная задача поиска языка, обладающего наряду с такими свойствами как полнота, непротиворечи­ вость, хорошими и информационными свойствами (малая ве­ личина Ѳ, я), благодаря которым размещение информации о функционировании автомата потребует наименьшего объема памяти при допустимом усложнении алгоритма исследова­ ния, что особенно важно при использовании ЦВМ при ре­ шении задачи синтеза.

При больших числах переменных п, s, пг естественным и практическим единственным решением задачи синтеза логи­ ческих структур является решение с помощью ЦВМ, отсюда чрезвычайная актуальность поставленной задачи, т. е. поиск языка с малыми Ѳ, я и особенно с малой величиной я, харак­ теризующей компактность представления оператора на этом языке, так как если машинное время решения задачи прак­ тически допускает значительные увеличения, то объем памя­ ти ЦВМ эффективно можно увеличивать только в ограни­ ченных пределах.

Представление автоматного оператора А (?i;s,m ) на су­ ществующих двоичных одновходовых и двухвходовых матри­ цах при большом числе переменных становится некомпакт­ ным.

Нетрудно подсчитать, что я-характеристика наиболее ком­ пактных двоичных двухвходовых матриц при представлении

автоматного оператора А

(п, s пг) равна

Я =

(S - f in)- 2"+s

 

п S ’

при представлении одной булевой функции [ (х\, хч, ... хп)

я — —

п

Следовательно, я-характеристика растет с ростом числа переменных как показательная функция.

7*

99


Более компактным языком является язык частотных мат­ риц отношений, я-характеристика которого растет как сте­ пенная функция.

Наряду с компактностью представления А (п, s, т) на языке частотных матриц отношений, предлагаемый язык имеет следующие преимущества перед существующими язы­ ками структурного этапа:

а) арифметический характер вычислений при синтезе структур (на данном языке операции не с двоичными векто­ рами, а с числами), что позволяет наиболее эффективно ис­ пользовать возможности существующих ЦВМ при автомати­ зации синтеза структур;

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

в) практическая независимость объема памяти, необходи­ мого для представления автоматного оператора, от числа обобщенных состояний \XZ+Z~Y) синтезируемого автомата.

§ 5-2. Программа синтеза булевых ясг-мультиструктур

В качестве примера организации вычислительного про­ цесса при синтезе автоматов рассмотрим синтез булевых ясг-мультиструктур, представляющих суперпозицию булевых

мультиструктур типа я и сг, и в которых веса

и хі являют­

ся идентификаторами вершин синтезируемого графа. Син­ тез ведем на языке частотных матриц отношений.

Блок-схема программы имеет следующий вид [10]:

1.Блок 1 (Q -*-F)\ перевод матрицы инцидентности Q модели, в частотную матрицу отношений F (Q -*■ F).

2.Блок 2 (Рі): выделение подструктур типа G*. Сверты­ вание построенных подструктур.

3.Блок 3 (Р2): выделение подструктур типа Ga. Сверты­ вание построенных подструктур.

4.Условие 1 (Уі): была ли найдена хотя бы одна под­ структура G* при предыдущем выполнении Б 2?

Если G* была найдена, то переход к Р2.

Если G*

не была найдена, то переход к пункту 5.

5. Конец.

_ _

100


Запишем работу блоков Q->-F, Р1 и Р2 на языке АЛГОЛ-60

Begin integer i, j, in, n, M, N, r, s, m l, nl, a,

q, P

 

integer array

a [1

: N\ 1 : M], f [1 : M;

1 : M ], k [1 : M] *

Q

F: begin for m: = 1

step 1 until M do

 

 

begin for n : =

in step 1

until M do

 

 

begin f [in, ft]

: = 0-0;

 

 

 

for

t: = 1 step 1

until Ns do

 

 

 

a [i, in] = 1

Д a \i, n] = 1

then

 

f

[m,

n] : = / [m, n] + l

■ ■

 

end

 

 

 

 

 

end

 

 

 

 

end

 

 

 

 

Здесь M — число столбцов матрицы Q, a N — число ее строк.

Перед началом работы алгоритма каждой букве сопостав­ ляется коэффициент, равный 1. Далее, при свертывании G” в вершину а коэффициент этой дуги приравнивается произ­ ведению коэффициентов вершин графа G*; при выделении G° — сумме коэффициентов вершин, образующих G”. При этом коэффициент вершины а несет информацию о количе­ стве путей, проходящих через эту а. При свертывании выде­ ленного подграфа коэффициенты его вершин приравнивают­ ся нулю, и таким образом исключаются из дальнейшего рас­ смотрения.

P I:

begin coef: = 1;

for г: = 1

step 1

until M

do;

 

 

k[r]:=coef;

c: — 585/4,096**;

a: = 0 ;

e: = 0;

begin

 

for k: = 1 step 1 until (M — 1)

do begin

begin

in: = k;

 

1 1 : = k;

s: =

k;

r: — k;

if

k [/•] =

0 then go to end else

 

p: = f[in, n]

end; cycle

n:

begin

n: =>n

+ 1 ;

tn: = n;

 

r: = n;

if k[r] = 0 then

go

to M else

R: =

 

 

if p — R then go to^ L else go to_M end;

 

 

 

L:

begin

in: =

s;

T :— f[m,

ft];

if

T = p

then begin ne-

*Описание составлено для всех трех блоков.

**Это означает, что С принимает значение указателя типа подграфа. Для G* это число равно 111100... 0.

101