Файл: Алферова З.В. Теория алгоритмов учеб. пособие.pdf

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

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

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

Добавлен: 25.06.2024

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

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

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

менных. Если считать, что при выполнении схемы они изменяются согласно этой последовательности, т. е. после выполнения т - го оператора логические переменные принимают набор значений A S j n + 1 , то получим определенную последовательность выполненных опера­ торов, которую будем называть значением схемы для данной после­ довательности наборов. Задание распределения сдвигов выделяет для каждой схемы из всех возможных последовательностей набо­ ров множество допустимых последовательностей. Таким образом, допустимые последовательности отличаются значениями только тех переменных, которые данным распределением сдвигов постав­ лены в соответствие оператору, выполненному при предыдущем наборе.

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

Ю. И. Яновым вводится система аксиом и правил вывода, опи­ сывающая понятие равносильности логических схем алгоритмов при данном распределении сдвигов. А. П. Ершовым теория логиче­ ских схем алгоритмов Янова была перенесена на язык граф-схем, что-позволило упростить аксиоматику преобразований. Вместо 14 аксиом Янова Ершов использует только 7 аксиом. Н. А. Криницкий расширил систему преобразований Янова, вводя в рассмотре­ ние информационные связи между операторами. Оператор рас­ сматривается как система функций, берущих свои аргументы из не­ которых входных величин и записывающих результаты в выходные величины оператора.

Дальнейшее расширение системы преобразований Янова шло в направлении преобразования не алгоритмов, а программ. Преоб­ разование программ рассматривается в работах Н. А. Криницкого, Р. И. Подловченко и др.

Поскольку преобразование алгоритмов в изложении Янова яв­ ляется довольно трудным, то мы рассмотрим упрощенную систему преобразований, предложенную Ершовым.

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

Помеченные стрелки называются плюс-стрелками, а непомечен­ ные— минус-стрелками. В графе имеется только одна вершина, не имеющая выходной стрелки, называемая конечным оператором.

Каждому распознавателю сопоставляется

логическое

условие

а — произвольная функция алгебры-логики,

зависящая от

k логи-

75


Рис. 8

ческих переменных pi,..., ph. Распознаватель R с сопоставленным ему условием а обозначается R(a).

Каждому оператору А, кроме конечного, приписывается неко­ торый набор

^ • 1 Л Л )

логических переменных, называемый сдвигом по логическим пере­

менным. Оператор А с приписанным

ему

сдвигом

 

обозначается

Совокупность сдвигов Ри ...,

Рп

всех

операторов

Аи

. . . , Ап

операторной

схемы Янова называется

распределением

сдвигов,

приписанным схеме G.

 

 

Л

(пустое

 

множество),, то

Если для

любого i

(l^i^n)

Pi

 

0 §з

 

 

 

 

распределение

 

сдвигов

 

 

 

 

называется

пустым;

при

 

 

 

 

 

Pi

=

{Pi, • • •,

Рп}

распре­

 

 

 

 

 

деление сдвигов

называет­

 

 

 

 

 

ся

универсальным.

 

 

 

 

 

 

 

Все

операторы

одной

 

 

 

 

 

операторной

схемы счита­

 

 

 

 

 

ются попарно

различны­

 

 

 

 

 

ми.

Операторная

схема

 

 

 

 

 

Янова

G

с

операторами

 

 

 

 

 

Ai,..

.,

An,

логическими

 

 

 

 

 

переменными

 

ри

. . . , рь

 

 

 

 

 

обозначается

 

 

 

G{Au...r

 

 

 

 

 

Ап,

 

ри

 

 

рь).

 

Пример

 

 

 

 

 

изображения

 

оператор­

 

 

 

 

 

ных схем Янова

приведен

 

 

 

 

 

на рис. 8.

Распознаватель

 

 

 

 

 

с

логическим

условием

 

 

 

 

 

р Л ^

обозначается на схе­

—-

входная

стрелка

 

 

ме просто

pq.

 

 

 

 

 

 

Определим

 

понятие

—- плюс-стрелка

 

 

эквивалентности

 

опера­

—- минус'-стрелно

 

 

торных схем Янова. Пусть

О распознаватели

 

 

дана

схема G(AU

 

...,

Ап,

 

 

ри ..

.,

рк).

Будем

обозна­

 

| операторы

 

 

 

 

 

чать буквой А с индексом

 

конечный

оператор

 

 

 

 

 

или

без

него

упорядочен­

 

оператор с пустым

 

 

ный двоичный набор

зна­

 

сддигом

 

 

 

чений переменных

pi,

...,

Ph.

Для операторной схе­ мы G определим понятие конфигурации, строящейся с помощью порождающего процесса

блуждения по схеме G, задаваемого по индукции. Сама конфигу­ рация будет получаться в виде двойной последовательности наборов значений логических переменных ри • •., рк и символов операторов

76


Аи ..., An, записываемых

в виде двух строк: верхней для наборов

и нижней для операторов.

 

При построении конфигурации основываемся на некотором ба­ зисе индукции, от которого осуществляются последующие шаги ин­

дукции. Их построение следующее.

 

 

 

 

Базис

индукции.

В верхнюю строку записывается

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

набор Аи нижняя

строка пуста.

Движение по схеме

G начинается

в направлении, указанном входной стрелкой.

 

 

 

Шаг

индукции.

Пусть происходит

движение по

схеме с набо-'

ром А. Если стрелка приводит

к распознавателю

R(a), то

вычис­

ляется а (А). Если

а (Л) = 1, то

с тем

же набором

движение

про­

должается по плюс-стрелке, выходящей из распознавателя R. Если а(Д) = 0, то движение происходит по минус-стрелке. Если стрелка

приводит к

оператору А(Р),

то выписываем символ оператора А

в нижнюю

строку

конфигурации и преобразуем набор А в набор

А' с таким

условием, чтобы

набор А' отличался от А значениями

только, может быть, тех переменных из ри • • •, Рь., которые входят

в сдвиг Р оператора

А.

 

Набор А' выписывается в верхнюю строку конфигурации, и дви­ жение продолжается по стрелке, выходящей из А.

Если стрелка приводит к конечному оператору, то его символ выписывается в нижнюю строку и построение конфигурации обры­ вается.

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

вол пустого периода

(

) .

 

 

 

 

Таким

образом,

любая конкретная конфигурация

имеет

вид:

 

 

 

дх

а,

. . :

 

 

при этом

она либо

является бесконечной, либо обрывается

(на

нижней строке) символами [х| или

(

).

 

 

Любая

пара соседних

наборов

Ат,

Am+i может

отличаться

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

тора Ajm.

последовательность

наборов называется

допустимой

Верхняя

последовательностью s наборов для схемы G, нижняя

последова­

тельность операторов называется значением z схемы G,

определя­

емым допустимой последовательностью

s.

 

Поскольку при построении конфигурации возможен

произвол

в выборе Аи при переходе от Ат

к Ат

очевидно, что правило ста­

вит в соответствие каждой схеме G некоторое множество конфигу­

раций K(G),

являющееся ъ общем случае бесконечным.

 

77


Выпишем

несколько конфигураций

для

приведенного

примера

операторной

схемы Янова. Пусть

А =

10 (где первая переменная

р = 1, а вторая q — 0), тогда примеры

конфигураций имеют

вид:

 

При Д = 10

 

 

 

 

10

 

10

 

 

 

1-

Аа[

)

|х|

 

 

 

2. При

Д =

11

 

 

 

11

00

 

11

_

 

 

MP,

Я) Ах[р,

q)

j x |

 

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

ответствие. Пример

точной

конфигурации

 

для

примера

1

имеет

вид:

10_ 10

_ 10

 

 

 

10

10

10

 

 

 

 

 

 

 

Аз (

)

 

 

 

 

 

 

 

Р

РЧ

Р

 

Ч

 

|х|

 

 

 

 

 

 

Отношение эквивалентности

определяется

для

 

любой

пары

операторных схем Gi и G2 с одними и теми же логическими

пере­

менными

ри . . . , р^

Схемы

Gi

и

G2 являются

 

эквивалентными

( G i ^ G 2 ) ,

если K{Gi)

=

K{G2),

т. е. если

совпадают

их

множества

конфигураций.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Эквивалентность

схем обладает

свойствами

 

рефлексивности

( G 4 ^ Gi)

и симметричности

(если

Gi~

G2, то

G2 — G4 ). Как

указы­

валось, система правил преобразований операторных

 

схем

Янова

построена

в виде логического исчисления, т. е. совокупности

акси­

 

 

 

 

 

ом

и правил

вывода.

 

 

 

 

 

 

 

 

 

 

Аксиомы

в

этом

исчислении

 

 

 

 

 

постулируют

безусловную

воз­

 

 

 

 

 

можность

 

замены

 

некоторого

 

 

 

 

 

фрагмента

операторной

схемы на

 

 

 

 

 

другой

фрагмент,

предписывае­

 

 

 

 

 

мый данной

аксиомой.

 

 

 

 

 

 

 

 

 

 

Правила

вывода

постулируют

 

 

 

 

 

возможность замены одного фраг­

 

 

 

 

 

мента на другой при выполнении

 

 

 

 

 

некоторых

условий,

содержащих­

 

 

 

 

 

ся в посылке данного правила вы­

 

 

 

 

 

вода.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Фрагментом

операторной схе­

 

 

 

 

 

мы G называется некоторая часть

 

 

 

 

 

(подграф) схемы G, для которой

 

 

 

 

 

указана ее

связь

с

 

остальными

 

 

 

 

 

вершинами

 

схемы

G.

Эта

связь

 

Рис. 9

 

 

 

указывается в виде входов и вы-

 

 

 

 

ходов

фрагмента.

 

 

 

 

 

78


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

Поясним сделанные определения на примере фрагмента, представлен­ ного на рис. 9.

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

Сами аксиомы и утверждение правил вывода имеют вид соотно­ шений равносильности, т. е. двух фрагментов, разделенных знаками равносильности ~ . Аксиомы и пра­ вила вывода представлены на рис. 10.

Правила имеют вид:

 

Fa

~

 

2

F t ~ F 2 ,

F,(FJ

~ F 4

 

F3(F2)~Fl

Рис. 10

79