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

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

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

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

Добавлен: 25.06.2024

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

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

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

клетки. Вначале на ленте записана входная цепочка так, что в каж­ дой клетке ленты содержится по одному символу цепочки. На­ чальный символ записан в крайней левой клетке, а все клетки той части ленты, которая расположена правее последнего символа за­ писи входной цепочки, пусты, т. е. в каждой из этих клеток записан «пустой» символ Л . Головка в начальный момент расположена

против крайней левой клетки

Xj..

А А

ленты, а управляющее

устройство

находится в начальном состоя­

 

 

 

 

нии.

 

 

 

 

В каждый очередной такт го­

У. У

 

ловка

воспринимает

символ на

 

 

ленте,

управляющее

устройство

Р

И С

2 5

изменяет

свое состояние

в соот­

 

 

 

ветствии с отображением б, а лен­

та сдвигается

на

одну клетку влево.

Если

головка воспринимает

пустой символ

А , который

записан

правее последнего

символа

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

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

принимает последний символ этой

входной

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

автомат переходит в одно из состояний множества

F.

 

 

Множество допустимых входных

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

автома­

та А,

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

в

авто­

мате А

множеством состояний F, обозначается

L(A).

Такое

мно­

жество, являясь множеством цепочек символов из конечного алфа­

вита X, будет с точки зрения теории

языков

некоторым языкам

над терминальным словарем VT = X.

Таким

образом, естественно

возникает способ сопоставления автоматов, языков и грамматик.

Для конечных автоматов множество L(A) выделяется известной теоремой Клини.

Теорема 41 (Клини). Для любого конечного автомата А множе­ ство L(A) допустимых последовательностей является регулярным, т. е. языком типа 3. Эта теорема объясняет, почему языки типа 3 называются языками с конечным числом состояний.

Детерминированным конечным автоматом с двумя лентами на­

зывается упорядоченная

шестерка

 

 

 

 

 

А =

(X,

У, S,

s0,

8, X),

где

X, S,

s0 и б имеют тот же смысл, что и для конечного автомата

с одной

лентой,

У = {yi,

у%,..

., yi}

— множество выходных симво­

лов

(выходной

алфавит), / — конечно,

а X— функция, осуществля­

ющая отображение 5 X X в У, т. е. X : S X X—»-У.

Интерпретация этого автомата представлена на рис. 26. Кроме входной ленты автомат имеет бесконечную вправо выход­

ную ленту, которая может перемещаться только в одну сторону — справа налево. Каждый очередной такт в клетке ленты печатается

159



подмножество
Выходная лента

символ, и лента сдвигается на одну клетку. Этот автомат назы­ вается последовательной машиной, или автоматом Мили. Автомат

Мили М каждой цепочке входных

символов

и однозначно

ставит

в соответствие цепочку

выходных

символов

со, что записывается

М (и) — со. Очевидно, что М ( Л ) =

Л .

 

 

 

 

 

Недетерминированным

конеч­

 

 

ным автоматом с одной

лентой

входная

лента

называется

упорядоченная пя­

терка

 

 

 

 

 

 

У. ч

?

;

Рис. 26

ное (начальное)

А=(Х,

S, S0, 8, F),

где X, S, F имеют тот же смысл, что и в определении детермини­ рованного автомата, б — отобра­ жение множества S X X в мно­ жество всех подмножеств состоя­ ний S, a S0— некоторое выделен­

множества S.

Представление множества входных последовательностей в не­ детерминированном автомате понимается следующим образом. Множество входных последовательностей U допустимо в недетер­ минированном конечном автомате, если для каждой последова­ тельности этого множества найдутся два таких состояния Si Sg и 5i F и такой вариант работы (т. е. такие конкретные, значения функции б), что последовательность U переводит автомат И3| состоя­ ния Si в состояние Sj.

Доказана следующая

теорема.

 

 

 

 

 

Теорема

42 (Рабина

и

Скотта).

В недетерминированных

одно-

ленточных конечных

автоматах, так же

как

и в детерминирован­

ных, допустимы регулярные множества

цепочек и

только

они.

С помощью

недетерминированных

автоматов

нельзя

расширить

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

Конечный автомат с двумя лентами является недетерминиро­ ванным, если при одной и той же ситуации, характеризуемой па­ рой (Si, Xj), возможно конечное число вариантов его действия. Сле­ довательно, такой автомат может одной входной цепочке поставить в соответствие конечное множество выходных цепочек.

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

может оставаться неподвижной. При этом отображающая

функция

б : 5 X X—KS

заменяется

функцией

б : 5 X X—vS X d,

где d —

= {—1, 0, + 1 } . Символ d

показывает,

в какую сторону

должна

сдвинуться входная лента: —1 соответствует сдвигу на одну клетку вправо, + 1 — с д в и г у влево на одну клетку, 0 — лента остается не­ подвижной.

160


Множество L(A) всех допустимых последовательностей такого автомата определяется следующей теоремой.

Теорема 43 {Рабина, Скотта, Шепердсона). Для каждого дву­ стороннего автомата А можно эффективно определить такой ав­ томат В, который имеет то же множество приемлемых входных по­ следовательностей, что и автомат А. Поэтому множество L(A) ре­ гулярно, т. е. является языком типа 3.

Таким образом, двусторонний автомат не расширяет возможно­ сти конечных автоматов. Соответствие между основными видами автоматов и представимыми в них языками сведены в табл. 4.

Т а б л и ц а 4

Наименование автомата

Тип предста-

п/п

вимого языка

1

Детерминированный и

недетерминированный

 

3

 

конечный автомат

 

 

 

 

 

2

Детерминированный

автомат

с

магазинной

<-^>

2

 

памятью

 

 

 

 

3

Недетерминированный

 

автомат

с

магазинной

» 2

 

памятью

 

 

 

 

4

Детерминированный

 

линейноограниченный

<

2

5

автомат

 

линейноограниченный

у 1

Недетерминированный

 

 

 

 

автомат

 

 

 

 

 

 

6

Детерминированная

и

недетерминированная

ч — *

О

 

машина Тьюринга

 

 

 

 

В этой таблице использованы следующие обозначения. Стрелка о- означает, что язык тогда и только тогда типа i (i = О, 1,2, 2D , 3), когда он представим в автомате типа Ah (k = 1, 2, . . . , 6). Стрелка —>- означает, что если язык представим в автомате Л&, то он является языком типа i. Стрелка -*- означает, что если язык яв­ ляется языком типа i, то найдется автомат типа Аи, в котором он представим.

Т а б л и ц а 5

Обозначение

Общая теория языков

Математическая

Программиро­

Математические

лингвистика

вание

модели

VT

Терминальный

Основной сло­

Выходные

Выходной

алфавит

 

словарь

варь языка

символы

 

 

 

(алфавит)

Вспомогатель­

Набор

Множество

состоя­

 

Нетерминаль­

 

ный словарь

ные граммати­

команд

ний управляюще­

s

(алфавит)

ческие термины

 

го устройства

Начальный

Предложения

Программа

Начальное

 

 

нетерминаль­

 

 

состояние

 

р

ный символ

Синтаксические Операции

Отображающая

Система

 

продукций

правила

 

функция

 

161


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

В табл. 5 собраны аналогичные понятия из этих трех областей и указаны соответствующие им понятия общей теории языков.

Упражнения:

1. По каждому из приводимых ниже конечных автоматов А по­ строить праволинейную КС-грамматику, порождающую .множество

Т(А).

а)

А

=

(S,

X,

р,

б,

{рз}), б задается

табл.

6.

 

 

б)

А

=

(S,

X,

ри

б, {pi, рь),

6 задается табл.

7.

 

 

 

 

 

 

Т а б л и ц а 6

 

 

Т а б л и ц а 7

 

 

 

 

 

 

 

в

 

| в

|

в |

с

 

 

 

Pi

 

 

Рг

Рь

Pi

Pi

 

Рз

Pi

 

 

 

Рг

 

 

Рз

Pi

Pi

Pi

 

Po

Pe

 

 

 

 

 

 

Рг

Р 5

Рз

Pi

 

Pi

Рг

 

 

 

Pi

 

 

Рз

Pi

Pi

Рг

 

Рз

Pi

 

 

 

Рь

 

 

 

Pi

Рь

Pi

 

Po

Рз

 

 

 

 

 

 

 

 

Ре

Pi

 

Рг

На пересечении строки pi и столбца x указано значение

б (/?,:,

х).

2. Построить МП-автомат Mi такой, что X = {а, Ь} и

Т(М)

множество всех цепочек, содержащих одинаковое число входящих символов а и Ь.

3. Построить МП-автомат М, такой, что X = {а,

Ь} и

Т(М) —

= {аПЬпф\п^1,

/ ^ s l } U ПЬ2па{Ь3{\п^1,

i^l}.

 

 

4. Построить МП-автомат, допускающий

язык,

порождаемый

грамматикой

с правилами Р = {s—>ТТ, Т—уТа,

ТУЬТ,

ТУС}.

5. Задано множество команд конечного автомата, допускающе­

го язык {ambn\n,

mZ>zO}.

 

 

 

( a 1 S 0 ) - * S 1 ;

(«А) -> 5 ь

( * A ) - *S a ;

( * i S a ) - S a ;

Построить грамматику, порождающую этот язык, и определить

еетип.

6.Построить линейноограниченные автоматы, допускающие языки:

 

L2 =

{хсх \ х е {а, Ь}$г).

 

7.

Язык L = {aPb(icr\p

+ q~^-r) является КС-языком.

 

Выписать КС-грамматику, порождающую этот язык.

Опреде­

лить,

к какому более узкому классу языков он принадлежит. По­

строить детерминированный МП-автомат, допускающий

этот язык.

162