Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Матвеев&Матвеева. Теория Алгоритмов.pdf
Скачиваний:
72
Добавлен:
02.06.2015
Размер:
319.81 Кб
Скачать
a ¹ 1 .

20

4.2 Подчинённость операторов логическим функциям [2]

Будем говорить, что в ЛСА U ( p1, p2 ,..., pn ; A1, A2 ,..., Am ) некоторый оператор Ai при данном распределении сдвигов «подчинён» логической функции

a ( p1 , p 2 ,..., p n )

Ai p a( p1, p2 ,..., pn ) ,

(4.9)

если всякий набор логических переменных Ds , при котором выполняется этот оператор Ai , обращает функцию α в единицу.

Пример 4.2

Дан алгоритм в виде ЛСА

U = A0 A1a( p1, p2 ,..., pn ) ­1 A2 A3 A4 ¯1 Aк

Здесь оператор A2 pa( p1, p2 ,..., pn ) , так как после выполнения оператора A1 выполнение оператора A2 возможно лишь в том случае, когда a = 1. Согласно введён-

ному определению подчинённости оператор A3 не подчинён функции α. Действительно, при выполнении оператора A2 логические переменные, входящие в функцию α, могут изменить своё значение таким образом, что функция

Однако, можно показать, что оператор A3 подчинён некоторой логической функции b ( p1, p2 ,..., pn ) , которая определяется как максимум функции α [4], т.е.

b ( p1, p2 ,..., pn ) = max a( p1, p2 ,..., pn ), A3 p b( p1, p2 ,..., pn ),

A4 p max b( p1, p2 ,..., pn ) = max(max a( p1, p2 ,..., pn )),

Назовём конъюнкцию логических переменных «элементарной», если она не содержит повторяющихся переменных. Тогда для нахождения по заданной функции α её максимума – функции β по всевозможным наборам значений переменных из некоторого подмножества F Í {p1, p2 ,..., pn }, вытекает:

1.Функцию α представить в виде ДНФ

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

Пример 4.3

Дана функция a ( x1 , x2 , x3 , x4 ) = x1 x 2 Ú x3 ( x1 x2 Ú x4 )

Тогда b = max a = max[x1 x2 Ú x3 (x1x2 Ú x4 )]= max[x1 x2 Ú x3 x1x2 Ú x3 x4 )]=

{x3 ,x4 }

=1x2 Ú x31x2 Ú x31 = x2 Ú x3

Подмножество логических переменных определяется заданным распределением сдвигов оператора Ai - Fi Ê F , где Ф – полный набор логических переменных ЛСА, ( Ai - Fi ) – подмножество логических переменных на состояние которых влияет Ai .

21

4.3 Эквивалентность алгоритмов

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

В теории алгоритмов различают сильную и слабую эквивалентность

алго-

ритмов.

 

Два алгоритма «сильно эквивалентны», если они имеют одну и ту же

об-

ласть определения, и множества выходных слов, так же как и сам процесс переработки информации, совпадают. В этом смысле к алгоритмам применимо понятие равносильности.

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

Таким образом, эквивалентность алгоритмов предполагает, что если входные слова этих алгоритмов равны x1 = x2 , то и выходные слова полученные после переработки входных, также равны y1 = y2 . С практической точки зрения важное значение имеет более общий способ определения понятия эквивалентности с точностью до изоморфизма, когда сопоставляют не равные входы и выходы, а лишь находящиеся в соответствии.

 

Это расширение понятия эквивалентности может быть определено следую-

щим образом. Два алгоритма эквивалентны, если из условия

x ~ x

2

вытекает усло-

 

 

 

 

1 I

 

 

 

 

 

1

 

 

вие

y ~ y

 

. Здесь символ « ~ » означает установленное соответствие I-го типа. Вы-

 

1 I2

2

I

 

 

 

бирая различные типы соответствия I1 и I2, формулируют фактически разные изоморфизмы. Здесь можно ввести частичное отношение порядка (сильнее, слабее).

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

Следует отметить, что проблемы эквивалентности и распознавания принадлежности алгоритмов к определённому классу в общем случае неразрешимы. Они разрешимы лишь для некоторых алгоритмических систем при достаточно узком определении эквивалентности. Основные результаты, полученные в этой области, относятся к операторным системам алгоритмизации ЛСА, МСА, ГСА, обладающих рядом характерных особенностей:

1.Операторы, образующие схему алгоритмов, имеют явное представление в этих системах.

22

2.Для каждого оператора явно определены его предшественники и его приемники, аргументы и результаты (входы и выходы).

3.В процессе реализации алгоритма приемник оператора выбирается произвольным образом вне зависимости от предыстории процесса об-

работки информации.

Повидимому первой работой в области общей теории формальных преобразований операторных схем алгоритмов была работа Ю.И. Янова [2], где были сформулированы основные концепции этих преобразований – формализация понятия схемы алгоритма, задание отношений эквивалентности, построение алгоритма для распознавания эквивалентных алгоритмов, предложены системы преобразований и т.д.

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

С этой точки зрения более удачным решением проблемы преобразования можно считать полную систему равносильных преобразований операторных схем, предложенную В.Г.Лазаревым и др. [4], где основным инструментальным понятием является понятие систем формул перехода – S1, S2, S3.

4.4 Полная система преобразования схемных формул перехода

Отмеченные функции вида αA, βC,… позволяют обращаться с ними по правилам аксиом алгебры логики.

 

ì

 

 

 

 

ï1.(a Ú b) A = aA Ú bA,

 

 

ï

 

 

 

C1

ï

 

 

(4.10)

í2.abgA1 Ú aA2 = a(bgA1 Ú A2 ),

 

ï

a a º b

 

 

 

ï

 

 

 

ï3.

 

.

 

 

a aA = bA

 

 

î

 

 

Для определения правил преобразования схемных формул перехода введём некоторые дополнительные понятия.

Оператор или часть схемной формулы перехода, соответствующая заключённой в скобки части скобочной формулы перехода, будем называть «подформулой». Таким образом, подформулы содержат конечное число выражений, когда для каждого начала стрелки с индексом ­i найдётся конец стрелки с тем же индексом ¯i . В простейшем случае подформула может содержать один оператор

Aj .

Пример 4.4

Дана ЛСА U = A0 p1 ­1

p2 ­2 ¯5 A1 p3 ­3 p2 ­4

p1 ­3 w ­5 ¯1

 

p

2

­6

¯2

A ¯6

A p

2

­6

w ­3 ¯4

p ­6

w ­2 ¯3

A

 

 

 

2

3

 

 

1

 

к

N * w) =

23

Формула перехода от оператора A0 будет иметь следующий вид:

A0Øp1 p2 A1 Ú p1 p2 A2 Ú p1 p2 A3 Ú p1 p2 A1

Равносильная ей скобочная формула перехода:

A0Ø( p1 ( p2 A2 Ú p2 A2 ) Ú p1 ( p2 A2 Ú p2 A2 ))Øp1 ( p2 A1 Ú p2 A2 ) Ú p1 A2

И, наконец, схемная формула перехода:

A0Øp1 ­1 p2 ­2 A1* ¯2 A2 * ¯1 A1

Выделение подформул и соответственно запись формулы есть процесс неоднозначный. В общем случае схемная формула перехода от оператора Ai может быть представлена в следующем виде:

 

A ØR ¯1

N *...* R ¯l N

* w ,

(4.11)

 

i 1

1

l

l

 

 

где

Nl – подформулы,

 

 

 

 

 

Rl – остаток выражения, не вошедший в подформулу,

w– выражение, не вошедшее ни в одну подформулу и в остаток Rl ,

¯l = {¯1¯2 ... ¯s } – множество концов стрелок, расположенных слева перед

подформулой.

Подформулы N1 и N2 будем называть «равносильными», если на определённом наборе значений логических переменных p1, p2 ,..., pn , входящих в обе подформулы, выполняется один и тот же оператор Al .

Рассмотрим систему тождественных преобразований и правила вывода для схемных формул перехода C2 [5].

I. 1. ( Ai ØN ) = ( Ai Ø1 ­i N ¯i ) . 2. ( Ai ØN ) = (Ai Ø ¯i N1 ­i ) .

II. 1. ( Ai ØRi1 ¯s1 N * Ri 2 ¯s 2

=( Ai ØRi1 ¯i ¯s1¯s 2 N * Ri 2w ­i *w) =

=( Ai ØRi1w ­i *Ri 2 ¯i ¯s1¯s 2 N * w) .

 

2. ( A Øp1 p1 ­i p2 Am * ¯i p3 Ai ) =

 

 

 

i1

 

 

 

 

 

 

A ) .

 

 

 

= ( A Øp

 

 

­i

p A * ¯i

 

 

 

p

i

 

 

 

i

 

1

 

 

3

i

m

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

ìA Øw

* ¯s1 N

 

ìA Øw

 

 

 

III.

ï i1

i1

 

 

 

 

 

ï i1

i1

 

 

 

íM

 

 

 

 

 

 

= íM

 

 

 

 

 

ïA Øw * R ¯s 2

N

ïA

Øw

* ¯s1

¯s 2

N

 

î in

is

 

 

 

 

 

î in

is

 

 

 

IV.

( A ØP p

r

­r P N

k

* ¯r P N

* w) =

 

 

i

1

 

 

2

 

3 l

 

 

 

 

= ( A ØP p

r

­r P N

* ¯r p

r

­s N

* ¯s P N

w),

 

i

1

 

2

 

k

 

q

3 l

 

Здесь Nq – любая произвольно выбранная подформула.

V. ( Ai ØRp ­i N * ¯i ¯s l * w) = = ( Ai ØR ¯i ¯s p ­i N * w) ,

Здесь l – пустая подформула.

VI. Концы стрелок, стоящие рядом, можно использовать в любом порядке ¯i ¯l l ¯i

 

24

VII.

Пару стрелок ­i , ¯i входящих в формулы (подформулу), можно

 

переименовать, если новые символы не совпадут с уже использо-

 

ванными ранее.

VIII.

Если в системе формул перехода S3 логическое условие a ­i под-

 

чинено логической функции β, то a ­i логично заменить выраже-

 

нием (a Ú

 

) ­i .

 

b

IX.

 

a N1 = N2 * N3

 

 

a Ri N1 = Ri N1 * N3

 

 

X.a Nn = Nm , i (Nn ) = F¢j

ai (Nm ) = F¢j

Вработе [5] утверждается, что совокупность правил C1 и C2 представляет собой «полную» систему тождественных преобразований. Это означает, что используя систему, можно за конечное число шагов перейти от операторной системы U 1 к равносильной ей системе U 2.

Пример 4.5

Рассмотрим более подробно ЛСА, данную в примере 4.4

U = A0 p1 ­1 p2 ­2 ¯5 A1 p3 ­3 p2 ­4 p1 ­3 w ­5 ¯1

p2 ­6 ¯2 A2 ¯6 A3 p2 ­5 w ­3 ¯4 p1 ­6 w ­2 ¯3 Aк

Построим МСА, равносильную заданной ЛСА.

A0

 

A1

 

 

 

 

 

 

 

 

 

 

A2

 

 

 

 

A3

 

 

 

 

Aк

 

 

 

p p

2

Ú

p

1

p

2

p

 

p

2

Ú p

p

2

-

 

 

 

 

-

 

 

 

A1

1

 

 

 

 

 

 

1

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

p

 

 

p

 

 

 

 

p

 

p

 

p

 

 

 

 

 

 

 

Ú p p

 

 

 

 

2

 

 

 

 

p

 

p

2

p

p

3

2

p

A2

 

 

3

 

 

1

 

 

 

 

 

3

 

2

1

 

3

 

 

1

 

3

1

 

 

 

-

 

 

 

 

 

 

 

 

 

-

 

 

 

1

 

 

 

 

-

 

 

 

A3

 

 

 

-

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

Учитывая, что каждая строка МСА представляет из себя формулу перехода, запишем систему формул перехода S1:

 

ìA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ø( p p

2

Ú p p

2

) A

Ú ( p

p

2

Ú p p

2

) A

 

 

 

 

 

 

 

ï

0

 

 

1

 

 

1

 

 

 

1

 

 

1

 

 

 

1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ú p p

 

p A

Ú p p

 

p A

Ú ( p

 

Ú p p

 

p ) A

S1

ïA Øp p p A

 

 

 

 

í

1

3 2 1 1

 

 

 

3

 

2 1 2

 

 

 

3

 

2 1

 

3

 

 

3

3

2 1

к

 

ïA2ØA3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ïA

Ø

 

A

 

Ú p A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

î

3

 

 

2 3

 

 

2 к

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отметим, что для построения системы S1 не обязательно использовать МСА, все формулы перехода можно без особого труда получить непосредственно из ЛСА.

Далее построим систему скобочных формул перехода S2, для чего каждая формула должна быть приведена по всем логическим переменным

 

ìA

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Øp p A

Ú p p

2

A

Ú p p A

Ú p p

2

A Øp

( p A

Ú p A ) Ú p

2

( p A

Ú p A )

 

ï

0

 

1

2

1

 

 

1

 

1

 

1

2

2

1

 

 

 

2

2

1

1

1

2

 

1

1

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S 2

ïA Øp

 

A

Ú p

( p

( p A

Ú p A ) Ú p

 

 

( p A

Ú p A ))

 

 

 

 

 

 

 

 

 

í

1

3

к

 

3

2

 

1

1

 

 

 

1

к

 

 

2

 

 

1 2

 

1

3

 

 

 

 

 

 

 

 

 

 

 

 

 

ïA2ØA3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ïA

Ø

 

A

Ú p A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

î

3

 

 

2

3

 

2

 

к

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Наконец построим систему схемных формул перехода S3

25

 

ìA

Øp

2

­1 p

­2 A

* ¯2 A

* ¯1

 

p

 

 

­3

A

* ¯3

A

 

 

 

 

 

ï

0

 

 

 

1

 

 

1

 

 

2

 

 

1

 

1

 

 

 

2

 

 

 

 

S3

ïA Øp

 

 

­4 A

* ¯4 p

 

­5 p

 

­6

A

* ¯6

A

* ¯5

p

­7

A

* ¯7

A

í

1

 

 

 

3

к

 

 

 

 

2

1

 

1

 

 

 

к

 

 

1

 

2

 

3

 

ïA2ØA3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ïA

Ø

 

 

­8 A

* p

 

¯8

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

î

3

 

 

 

 

3

 

 

 

 

к

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Полученную систему S3 необходимо преобразовать с помощью ранее указанных правил таким образом, чтобы в правой части формул каждый оператор присутствовал лишь однажды, а также чтобы начальный член формулы перехода от оператора Ai являлся оператором Ai+1 , если это возможно.

 

ì

 

 

 

 

1

 

 

2

9

 

 

1

3

9

2

3

 

 

 

 

 

 

 

­ p1

­ ¯ A1* ¯ p1 ­ w ­ 1 * ¯ ¯ A2 ,

 

 

 

ïA0Øp2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

¢

ïA Øp

3

­4 p

2

­5 p ­7

A * ¯5

p ­6 w ­91

* ¯7 A * ¯4

¯6

A ,

S3

í

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ïA2ØA3 ,

 

 

 

 

 

 

 

 

 

 

 

 

 

ïA Øp

2

­8 A * ¯8 A ,

 

 

 

 

 

 

 

 

î

3

 

 

 

к

 

 

 

3

 

 

 

 

 

 

 

 

ì

 

 

 

 

1

 

 

2

9

 

1

2

9

 

 

 

 

 

 

 

 

 

­ p1

­ ¯ A1* ¯ p1 ­ w ­ 1,

 

 

 

 

 

ïA0Øp2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S3¢¢

ïA Øp

3

­4 p

2

­5 p

­7

¯2 A * ¯5

p ­4

w ­9 ,

 

 

 

1

 

 

 

 

 

 

1

2

 

1

 

 

 

 

íA

Ø ¯7 A ,

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

2

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

ïA

Øp

2

­7 ¯4

A

 

 

 

 

 

 

 

 

 

 

 

î

3

 

 

 

 

 

к

 

 

 

 

 

 

 

 

 

 

В процессе преобразования были использованы правила {II, II,VII}ÎC2. Результаты преобразования представлены в виде набора схемных формул S3¢¢ . Новая ЛСА U 2, равносильная заданной U 1, имеет следующий вид:

U 2 = A0 p2 ­1 p1 ­2 ¯9 A1 p3 ­4 p2 ­5 p1 ­7 ¯2 A2 ¯7 A3 p1 ­7 ¯4 w ­8 ¯1 p1 ­2 w ­9 ¯8 Aк

Переход от S3¢¢ к ЛСА в работе [5] представлен в виде ГСА и имеет следующий вид

Рис. 4.1

26

Построение ЛСА по системе схемных формул S3 выполняется следующим образом.

Вначале в строке выбирается оператор A0. К нему справа приписывают начальное выражение из его схемной формулы, в данном случае это p2 ­1 p1 ­2 ¯9 A1 . Если при этом последним символом является оператор Ai, то справа к нему приписывают начальное выражение его схемной формулы. Но если последний символ – w ­s (тождественно равная нулю логическая функция), то проверяют наличие ещё не выписанных начальных выражений из любой формулы перехода, и в случае их присутствия – выписывают одно из них.

Ещё одной особенностью является ситуация, когда оператор Aк появляется раньше, чем окончена строка ЛСА. Хотя теоретически в этом никакой некорректности нет, всё же удобнее иметь ЛСА, в которой A0 стоит в начале строки, а Aк – в конце. Поэтому, когда Aк из полученной системы S3 выписывают раньше, чем желательно, приходится принудительно переносить его в предполагаемый конец строки ЛСА с помощью введения дополнительной функции w ­i , где i – неиспользованный в S3 номер стрелки.

Определим формальное значение всех операторов и логических переменных алгоритма построения ЛСА по системе S3.

A0 – выписать в строке начальный оператор ЛСА.

A1 – приписать справа начальное выражение из формулы перехода начального оператора

A2 – приписать справа начальное выражение оператора, которым окончилась операция предыдущей записи.

A3 – приписать справа логическую функцию w ­i , так как оператор Aк появился раньше окончания построения ЛСА.

A4 – приписать справа любое неиспользованное выражение из любой формулы.

A5 – приписать справа любой ещё не использованный оператор, в формуле которого неиспользованное начальное выражение.

Aк – останов процесса построения ЛСА.

Примечание: для избежания повторного использования фрагментов схемных формул перехода рекомендуется после выписывания их в строку – вычёркивать.