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

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

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

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

Добавлен: 25.06.2024

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

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

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

6. Дана КС-грамматика G — т , Vn, Р, S) с правилами

Р = [S AC,S ^SB, S^B,

С -* SEC, С -> ВС, С -* А).

Определить сложность вывода терминальных цепочек, длине кото­ рых не превышает 10.

2.10.Абстрактные автоматы и их связь с языками

играмматиками

2.10.1.Основные понятия теории автоматов

Рассмотрим другой метод определения языка, основанный на использовании множества строк приемлемых некоторым распозна­ ющим устройствам, автоматам.

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

описана следующим

образом. Машина имеет две ленты — входную

и рабочую. Каждой

ленте сопоставлены алфавит с

выделенным

в нем пустым символом и головка, также называемые

соответствен­

но входными и выходными.

 

Каждая лента ограничена слева, и крайняя левая ячейка всегда занята символом, не входящим в соответствующий алфавит.

Машина имеет конечное число внутренних состояний, среди ко­ торых выделены начальное и заключительное.

Элементарный акт машины представляет собой либо чтение символа на входной ленте с одновременным сдвигом входной голов­ ки на одну ячейку вправо и переходом машины в другое сос­ тояние, либо одно из следующих действий на рабочей ленте:

а) замена обозреваемого символа другим с одновременным сдвигом головки вправо и переходом машины в другое состояние;

б) то же, но со сдвигом влево; в) то же, но без< сдвига.

Когда машина находится в заключительном состоянии, ника­ кой элементарный акт невозможен.

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

Машина находится в заключительной ситуации, если на вход­

ной ленте обозревается первая слева пустая

ячейка,

рабочая лен­

та пуста, машина находится в заключительном

состоянии.

Машина допускает цепочку со, если начав

работу

в начальной

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

Языком, допускаемым машиной М, называется множество до­ пускаемых его цепочек.

Автомат в общей форме представлен на рис. 22.

150


Он содержит

входную ленту с отметками

концов, на которой

записана строка.

Входная головка считывает по одному входному

символу. Имеется

конечное управление, которое может находиться

в конечном числе

состояний. Имеется конечная

память, возможно,

•с некоторой структурой. Автомат делает элементарные шаги, за­ висящие от состояния конечного управления, символа, считываемо­ го входной головкой, и конечного объема информации из беско­ нечной памяти. За один шаг он может сделать следующее:

Хп

конечное

упродление

Уо\У,\ Уг

Рис. 22

1)изменить состояние конечного управления;

2)передвинуть входную головку на одну клетку в любом на­ правлении или оставить ее на месте;

3)изменить бесконечную память.

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

В начале конечное управление автомата находится в некотором начальном состоянии при некотором начальном содержании бес­ конечной памяти и с входной_головкой у метки левого конца.

Условимся знаками С и 5 обозначать левую и правую метки концов соответственно и будем предполагать, что они не содержат­ ся ни в каком алфавите, если это не оговорено специально.

Множество автоматов с «одинаковой» структурой бесконечной памяти образует семейство автоматов. Семейство имеет четыре класса автоматов: односторонних детерминированных, односторон­ них недетерминированных, двусторонних детерминированных и

11*

151


двусторонних недетерминированных. Сокращения эти классы обо­ значаются соответственно ID, IN, 2D, 2N.

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

Остановимся более подробно на законах функционирования ав­

томатов. Состояние s(t)

автомата в момент

времени

t однозначно

определяется предыдущим состоянием s(t—1)

и входным

сигна­

лом x(t). Поэтому можно записать

 

 

 

 

 

 

 

'

s{t)

=

9 { s {

t - l

) ,

x(t)),

 

 

 

 

где ф — функция, определяющая

последующее

состояние

автома­

та, которая

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

просто

q(s,

х)

и

называется

функцией переходов.

 

 

 

 

 

 

 

 

Выходной сигнал

y(t)

реального

автомата

всегда

появляется

после входного сигнала

x(t).

Однако относительно

момента

време­

ни t перехода автомата

из состояния

s(t—1)

в состояние s(t) вы­

ходной сигнал y(t) может появиться либо раньше, либо позже это­

го момента

времени. Поэтому справедливы выражения

 

 

 

(*)

y(t)

= b ( s ( t - l ) ,

X(t));

 

 

 

(**-)

y(t)

= $(s(t),

X(t)),

 

 

где я|5 — функция выходов

обычная

(*)

или

сдвинутая

(**).

Она

однозначно

определяет

выходную

букву

автомата в зависимости

от состояния s(t—1)

в

предыдущий момент

времени

и входного

сигнала x(t),

если это обычная

функция

выходов, а в случае

сдви­

нутой—от состояния s(t), в которое автомат переходит в текущий момент времени, и входного сигнала x(t).

Учитывая работу реальных автоматов, различают два рода аб­ страктных автоматов. Автоматами первого рода называют автома­ ты, описываемые следующими уравнениями:

S ( 0 = ? ( s ( * - 1 ) , x(t));

которые определяют закон функционирования этих автоматов, а автоматами второго рода называют автоматы, закон функциониро­ вания которых задается уравнениями.

 

s(*) =

« p ( s ( / - l ) f

* ( / ) ) ;

 

y(t)

= ${s[t),

x(t)),

met =1,2,...

.

 

 

Абстрактные автоматы

любого рода называются правильными,

если

выходной сигнал y(t)

не зависит

явно

от входного сигнала

x{t),

а определяется лишь

состоянием

s(t—1)

или s(t).

152


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

Говорят, что задан абстрактный автомат А, если

задана

сово­

купность пяти

объектов:

конечного

множества

Х = {*,}, i

 

I =

= {1, 2 , . . . , т),

называемого

входным алфавитом

автомата,

ко­

нечного множества

Y = {г/j},

/ е /

=

{1, 2 , . . . , /г},

называемого

выходным алфавитом автомата, произвольного множества S, назы­

ваемого алфавитом состояний, элемента s0 е S, называемого

на­

чальным состоянием автомата, и отображения

б множества S в себя,

которое любому 5 е 5

и каждой входной букве х е !

сопоставляет

состояние Su^S,

 

определяющее функцию переходов

cp(s,

х),

и вы­

ходную букву

i / e F ,

определяющую

обычную

или

сдвинутую

функцию выходов

 

х).

Следовательно, запись А

=

{X,

S, Y, s0,

F]

обозначает произвольный

абстрактный

автомат. Если А — автомат

первого рода,

то

i|)(s, х)—обычная

функция

выходов,

если

же-

А — автомат второго

рода, то ip(s, х)

—сдвинутая

функция

выхо­

дов.

 

 

 

 

 

 

 

 

 

 

 

 

 

Если множество 5 конечно, то автомат А называется

конечным

автоматом, в противном

случае А — бесконечный

автомат. Все

ре­

альные автоматы являются конечными.

 

 

 

 

 

 

 

Покажем теперь, каким образом определить отображение, ин­ дуцируемое заданным конечным автоматом А. Как известно, авто­

мат функционирует в дискретном времени t =

0,. 1, 2, ...

. Предпола­

гается,

что в начальный момент

времени t = О автомат

всегда на­

ходится

в начальном состоянии s e e 5 . В каждый момент

времени,

отличный от начального, на вход

автомата

подается

входной

сигнал

x{t)—произвольная

буква

входного

алфавита

X,

а на

выходе

возникает

некоторый выходной сигнал

y{t)—буква

вы­

ходного

алфавита

Y. Пусть

G(X)

и G(Y)—соответственно

 

множе­

ства входных

и выходных

слов

 

автомата

Акр

— хцх&

...

xtk —

произвольное

входное слово, т. е. pc=G(X) .

Подача на

вход

авто­

мата А, установленного в начальное состояние, конечной последова­

тельности х(1) = Хц, х(2)

= Хгг,

• • •, x{k)

= хш

 

на

основании из­

вестного отображения б вызывает появление

однозначно

опреде­

ленной конечной

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

 

 

у(\)=уц,у(2)=У]2,...>

У№) = yjk на выходе автомата,

которая

соответствует выходному

слову г = уцу&...

y-jh из G(Y).

Поэтому г — д(р).

Относя каждому

входному слову p^G(X)

соответствующее ему

входное

слово

r e

G(Y), получим

искомое отображение

б, которое и является ото­

бражением, индицируемым конечным автоматом

А.

 

 

Очевидно, что отображение б множества S ъ S однозначно за­

дает

функции cp(six) и ap(si#),

определяющие

закон

функциони­

рования автомата А, и наоборот.

Опишем классы автоматов, которые связаны с типами грамма­ тик в иерархии Хомского. -

Машина Тьюринга с двумя лентами, изображенная на рис. 23,. представляет собой устройство, бесконечной памятью которого является линейная лента клеток со считывающей и записывающей

15а