Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

31

.pdf
Скачиваний:
7
Добавлен:
10.02.2016
Размер:
668.73 Кб
Скачать

Частным случаем автомата является автомат без памяти, выходное состояние которого зависит от входного. На этапе построения логической схемы автомат принято считать состоящим из двух частей: логического преобразователя (автомата без памяти) и памяти.

Общий вид построения графа. Две вершины Sp и St ( исходное состояние и состояние перехода ) соединяются дугой, направленной от Sp к

St , если в автомате имеется переход из

Sp

в St ( если St = δ(Sp,xk ) ). Дуге

( Sp , St ) приписывается входной сигнал

xk

и выходной

yl = λ(Sp, xk ) (для

автомата Мили). Для автомата Мура

выходной

сигнал yl = λ(Sp )

записывается внутри вершины Sp или

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

только входной сигнал xk .

Пример табличного и графического представления автомата Мили A1:

Таблица 5.3.

A1

x1

 

x2

 

s1

s3 / y1

s1 / y1

 

 

 

 

 

s2

s / y

1

s / y

1

 

1

3

 

 

 

s3

s1 / y2

s2 / y1

 

 

 

 

 

X2/Y1

S1

X1/Y1

X1/Y1

X1/Y2

X2/Y2

S2 S3

X2/Y1

рис.5.1.

Пример табличного и графического представления автомата Мура A2 . Таблица 5.4.

A .

 

x1

x2

 

2

 

 

 

 

 

y

1

/s

 

s2

s4

 

 

1

 

 

y

1

/s

 

s3

s2

 

 

2

 

 

y

3

/s

 

s5

s2

 

 

3

 

 

y

4

/s

 

s3

s1

 

 

4

 

 

y

3

/s

5

s3

s1

 

 

 

 

 

 

 

 

 

 

 

x2

 

x1

x2

s1/y1

 

 

 

x1

s5/y3 s2/y1

 

 

 

x1

x2

x2

x1

x2

 

 

 

x1

s4/y2 s3/y3

рис.5.2.

Связь между автоматами Мили и Мура.

Два автомата AA и AB с одинаковыми входными и выходными алфавитами называются эквивалентными , если после установления их в начальное состояние их реакции на любое входное слово совпадают. Для любого автомата Мили существует эквивалентный ему автомат Мура и наоборот. Рассмотрим сначала взаимные преобразования автоматов:

автомат Мура в эквивалентный ему автомат Мили и наоборот.

Схема преобразования Мура в Мили.

Xp

Sj/Yl

Xk

Si/Yn

 

 

Xp /Yl

Sj

Xk /Yn

Si

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Схема преобразования Мили в Мура.

 

 

 

Yn

 

 

 

 

 

 

 

Sm

Yn

 

 

 

 

 

 

 

 

 

 

 

Xk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Yj

 

 

 

 

 

Xk/Yj

 

 

 

 

 

 

Si

 

 

 

Sm

 

Si

 

 

 

Sm

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Xk

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Yp

 

 

 

 

 

 

 

Sm

 

 

 

 

 

 

 

 

 

 

 

 

 

Yp

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

рис.5.3.

 

 

 

Пример 5.1. Рассмотрим преобразование автомата Мили A1 , заданного

таблицей

5.3.

 

и

на

 

рисунке

5.1, который имеет алфавиты:

x = {x

,x

}, y = {y , y

},s = {s ,s ,s }, в

 

автомат Мура A'

. Состояние

s

1

2

 

1

2

 

1

2

3

 

 

1

 

1

преобразуется в два состояния (s1, y1) и (s1, y2 ) (обратите внимание на дуги, входящие в состояние s1 , и выходные буквы на них - y1 , y2 ). Для удобства

переобозначим их соответственно: s1и s2. Тогда s1 ={ s1, s2}- множество “расщепленных” состояний. Аналогично происходит с другими состояниями.

В результате получим:

S1 = {(S1, y1),(S1, y2 )} = {S1' ,S2' }; S2 = {(S2 , y1)} = {S3' };

S3 = {(S3, y1),(S3, y2 )} = {S4' ,S5'};

S'= S1 S2 S3 = {S1'; ,S2' ,S3' ,S4' ,S5'}

λ'(S1' ) = λ'(S3' ) = λ'(S4' ) = y1;λ'(S2' ) = λ'(S5' ) = y2;

Согласно схеме б), получим следующие переходы:

-из (s1, y1)[ s1] и (s1, y2 ) [ s2] переходим в состояние (s3, y1) [ s4];

-из (s1, y1)[ s1] и (s1, y2 ) [ s2] переходим в состояние (s1, y1)[ s1];

-из (s2, y1) [ s3] переходим в состояние (s1, y1)[ s1];

-из (s2, y1) [ s3] переходим в состояние (s3, y2 ) [ s5];

-из (s3, y1) [ s4] и (s3, y2 ) [ s5] переходим в состояние (s1, y2 ) [ s2];

-из (s3, y1) [ s4] и (s3, y2 ) [ s5] переходим в состояние (s2, y1) [ s3]; Графическое и табличное представление полученного автомата Мура

A1приведены на рисунке 5.4. и в таблице 5.5.

Таблица 5.5.

A

x1

x2

 

1

 

 

 

 

s

s

s

 

1

 

 

4

 

1

s

2

s

s

 

 

 

4

 

1

s

3

s

s

 

 

 

1

 

5

s4

s2

s3

s5

s2

s3

 

 

X2

 

 

S1

 

 

 

Y 1

 

 

X2

X1

 

 

 

 

X1

S1

 

 

 

 

S3

Y 2

 

X2

 

Y 2

 

 

X1

X1

 

 

 

X2

 

X1

 

 

 

 

 

S2

 

S3

 

Y 1

X2

Y 1

 

 

 

 

рис.5.4.

Пример 5.2. Рассмотрим преобразования автомата Мура A2 (табл.5.4) в автомат Мили A2 ' (рис.5.1). Поскольку оно простое, приведем готовый результат:

Таблица 5.6.

A

x1

 

 

x2

 

 

2

 

 

 

 

 

 

s1

s / y

2

s / y

4

 

2

4

 

s2

s / y

3

s / y

2

 

3

 

2

s3

s / y

3

s / y

2

 

5

 

2

s4

s / y

3

s / y

1

 

3

 

1

s5

s / y

3

s / y

1

 

3

 

1

 

 

 

 

 

 

 

Пример 5.3. Реакция автомата на входное слово.

Пусть на вход автомата Мили A1 и эквивалентного ему автомата Мура

A1поступает входное слово ξ = x1x1x2x1x2x2 . Рассмотрим реакцию автоматов на данное входное слово. Для автомата Мили имеем:

δ(S1 , X1 )= S3 ;λ(S1 , X1 )= y1 , т.е. под действием буквы X1 автомат переходит в состояние S3 с выходом Y1 . При поступлении следующей буквы X1 на вход A1 получаем :δ(S3 , X1 )= S1;λ(S1 , X1 )= y2 и т.д. Ниже приведена последовательность

преобразования входных букв слова ξ

в выходные буквы слова W, с учетом

изменения состояний S.

 

 

 

 

 

Входное слово ξ

X1

X1

X2

X1

X2

X2

состояния S

S1

S3

S1

S1

S3

S2

S3 =к+1

выходное словоW

Y1

Y2

Y1

Y1

Y1

Y2

После знака “=” указано количество букв для общего случая.

 

 

Для автомата Мура

A1: при вхождении буквы X1 автомат

находился в

состоянии S1 с выходом

Y1

, автомат A1

переходит в состояние S4

с выходом

Y1

δ(S1, X1)= S4; λ(S4 )= y1 .

Далее на вход поступает следующая

 

букваX1 ,

и

автомат A1переходит

в

состояние

S2 с

выходом Y2

,

и т.

Д.

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

автомата Мили A1.

 

 

 

 

 

 

Входные

X1

X1

X2

X1

X2

X2

 

буквы

 

 

 

 

 

 

S5 =к+1

состояния

S1

S4

S2

S1

S4

S3

выход

Y1

Y1

Y2

Y1

Y1

Y1

Y2

= к+1

Видно, что реакции автоматов A1

и

A1на входное слово ξ совпадают с

точностью до сдвига на один такт. Так будет и в общем случае. Поскольку

автоматы A1 и A1эквивалентны, и к тому же одного типа, то их реакции (т.е. выходные слова) будут совершенно одинаковы. Проверка этого утверждения предоставляется студентам.

Задания для самостоятельной работы

1.Преобразовать заданный автомат Мили в эквивалентный ему автомат Мура.

A

X1

S1

S4 / Y2

S2

S3 / Y1

S3

S1 / Y1

S4

S3 / Y2

A

X1

S1

S2 / Y2

S2

S3 / Y2

S3

S4 / Y1

S4

S1 / Y3

A

X1

S1

S2

/ Y3

S2

S2

/ Y1

S3

S3

/ Y3

S4

S4

/ Y1

X 2

A

X1

X 2

A

X1

X 2

S2 / Y1

S1

S2 / Y3

S1 / Y2

S1

S2 / Y2

S3 / Y2

S4 / Y3

S2

S2 / Y1

S4 / Y2

S2

S1 / Y2

S2 / Y1

S2 / Y2

S3

S3 / Y3

S1 / Y3

S3

S4 / Y1

S3 / Y3

S2 / Y3

S4

S4 / Y1

S2 / Y3

S4

S1 / Y3

S2 / Y1

X 2

A

X1

X 2

A

X1

X 2

S3 / Y2

S1

S2 / Y2

S4 / Y2

S1

S1 / Y1

S2 / Y2

S2 / Y1

S2

S4 / Y3

S3 / Y1

S2

S3 / Y3

S4 / Y3

S3 / Y3

S3

S2 / Y2

S1 / Y1

S3

S3 / Y1

S2 / Y2

S2 / Y1

S4

S1 / Y2

S1 / Y3

S4

S1 / Y3

S1 / Y2

X 2

A

X1

X 2

A

X1

X 2

S1 / Y2

S1

S4 / Y2

S2 / Y1

S1

S3 / Y3

S2 / Y1

S4 / Y2

S2

S3 / Y1

S1 / Y3

S2

S4 / Y1

S4 / Y3

S1 / Y3

S3

S1 / Y2

S3 / Y2

S3

S1 / Y1

S2 / Y2

S2 / Y3

S4

S2 / Y2

S4 / Y3

S4

S2 / Y2

S2 / Y3

2. Преобразовать заданный автомат Мура в эквивалентный автомат Мили.

A X1

X 2

X 3

A X1

X 2

X 3

A X1

X 2

X 3

S1Y3

S2

S2

S1

S1Y2

S1

S2

S3

S1Y3

S2

S2

S1

S2Y1

S3

S3

S1

S2Y1

S2

S3

S3

S2Y1

S3

S1

S3

S3Y2

S1

S3

S2

S3Y3

S1

S1

S2

S3Y2

S3

S1

S2

 

 

 

 

 

 

 

 

 

A X1

X 2

X 3

A X1

X 2

X 3

A X1

X 2

X 3

S Y S

1

S

2

S

1

S1Y2

S2

S2

S1

S1Y1

S2

S2

S1

1

1

 

 

 

S2Y1

S3

S2

S1

S2Y1

S3

S3

S3

S

Y S

1

S

2

S

3

2

2

 

 

 

S3Y2

S1

S3

S2

S3Y2

S1

S2

S2

S3Y3

S3

S3

S1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. Для автомата

A1 , приведенного в таблице 5.3. определить реакцию на

входное слово.

 

1. ξ = x1x2x2x1x1x2

6. ξ = x2x2x1x1x1x1

2. ξ = x1x1x2x2x1x1

7. ξ = x1x1x2x2x2x2

3. ξ = x1x2x1x2x2x1

8. ξ = x2x2x1x1x2x2

4. ξ = x1x2x1x1x2x2

9. ξ = x1x2x1x2x1x2

5. ξ = x2x1x2x2x1x1

10. ξ = x2x1x2x1x2x1

Y = X × M

Практическая работа №6.

Тема: Машина Тьюринга.

Цель: Изучить работу машин Тьюринга , их представление и операции производимые над машинами Тьюринга.

Машиной Тьюринга будем называть конечный автомат G =< X ,Y, A,δ,λ > , снабженный бесконечной лентой и читающей головкой. Здесь:

X = {x0 , x1 , x2 ,..., xn }- входной алфавит, содержащий пустую букву x0 .

- где М={ R,L,S }. R- сдвинуться вправо, L- влево, S - стоять на месте.

A = {a0 ,a1 ,...,am } - множество внутренних состояний a1 ,…,am , a0 - СТОП состояние (состояние, в котором Машина Тьюринга не

δ:X ×AA

работает).

-

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

λ:X ×AY

-

функция выходов.

Задавая МТ, вместо двух функций можно пользоваться одной (совмещающей

работу функции входа и выхода):

ϕ:X ×S X ×M ×S сопоставляющей каждой

паре ( xi ,sj ) выходную тройку

( xk ,α,sl ),α M . Эта функция ϕполностью

описывает работу МТ и называется логической функцией машины Тьюринга.

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

выполняет команду ( xk ,α,sl ), т.е. записывает в обозреваемую ячейку символ x k , передвигает головку в зависимости от значения α и переходит в новое состояние Sl . Если на некотором этапе работы МТ приходит в Стоп - состояние, то дальнейших изменений в машине не происходит, и машина называется остановившейся. Последовательность входных букв, записанных в ячейку ленты, будем называть входным словом. Совокупность слова на ленте и состояния МТ для обозреваемой в данный момент ячейки ленты называется конфигурацией в МТ. Конфигурация указывает входную пару и определяет дальнейшую работу МТ. Если из некоторой начальной конфигурации через некоторое конечное число тактов МТ приходит к СТОП - состоянию, то будем говорить, что МТ применима к входному слову и последовательность символов на ленте в момент остановки будем называть результатом преобразования входного слова МТ при данной начальной конфигурации или просто выходным словом. Если же СТОПсостояние МТ не наступает, то говорим, что МТ не применима к входному слову при данной начальной конфигурации.

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

интуитивное понятие алгоритма.

Пример 6.1. Задана МТ G таблицей 8.1. и имеет следующие алфавиты и функции.

G =< X ,Y, A,δ,λ >

6.1.

 

 

Таблица

 

 

 

 

 

X = {x0 ,x1}

 

G

X1

 

X2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y = {y1, y2 , y3}

 

S1

y1 / S2

 

y1 / S2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A = {a0 ,a1,a2}

 

S2

y2 / S1

 

y3 / S0

 

 

 

 

 

 

 

 

y1 = {x1,R}; y2 = {x2 ,R}; y3 = {x2 , L}

Рассмотрим два входных слова: ξ1 =x1x0x1x1x0 и ξ2 = x0x0x0x0x0 .

Для них будет следующее представление на ленте:

Такт

Конфигурация

Такт

Конфигурация

0

...0110110...

0

...0000000...

1

...0100110...

1

...0000000...

2

...0101110...

2

...0010000...

3

...0101010...

3

...0010000...

4

...0101010...

4

...0010100...

Здесь подчеркнутая цифра обозначает присутствие под ней считывающей головки машины Тьюринга. МТ G применима к первому входному слову при конфигурации - 1 и неприменима к пустой ленте (конфигурация -2) .

Условимся кодировать натуральные числа ( с нулем ) на ленте МТ, в алфавит которой входят буквы “0”(ноль) и “1”(единица), следующим образом: 0 1,n 111...1n +1

Говорят, что МТ стандартно воспринимает натуральное число n в состоянии Si , если на ее ленте имеется конфигурация:

(L) n+1 (R)

...0111...1...,

Si

где L - левая зона (без ограничений), R - правая зона (обязательно пустая), читающая головка находится под крайней левой единицей. Аналогично, МТ стандартно воспринимает набор (n1,n2 ,...,nn +1,nn ) в состоянии Si , если на ее ленте имеется конфигурация:

 

(L) n1

+1 n2 +1

nn +1

(R)

 

 

...011...1011...10...011...10...

 

 

Si

 

 

 

 

Машина Тьюринга M вычисляет функцию

f (x1,..., xn ) , если выполнены

следующие условия:

 

 

 

 

 

1. M применима к

каждому

набору

(α1,...,αn ) ,

на котором

f (x1,..., xn ) определена

и,

если

f (α1,...,αn ) = y0 , то

M, стандартно

f (x) = x +1 вычислима по Тьюрингу, т.к.

воспринимающая набор (α1,...,αn ) в начальном состоянии, через конечное число тактов приходит в СТОП – состояние, имея на ленте число y0 .

2. M не применима к наборам, на которых функция f (x1,..., xn ) не определена.

Частичная функция называется вычислимой по Тьюрингу, если существует вычисляющая ее МТ. Вычислимость по Тьюрингу является точным (не интуитивным) понятием.

Пример 6.2. Функция

существует МТ B, которая вычисляет ее. Таблица МТ В приведена ниже. Таблица 5.2.

B

0

1

A1

1SA0

1RA1

 

 

 

Операции над машинами Тьюринга.

Пусть М1 и М2 - машины Тьюринга с общим алфавитом. Композицией

(или произведением) машин Тьюринга М1

и М2

этом порядке)

называется машина Тьюринга М ( обозначение

М = М2 oМ1

), работающая

следующим образом: если на вход машины М подать входное слово Р, то оно сначала преобразуется машиной М1 , а затем полученное выходное слово подается на вход машиныМ2 , и выходное слово машины М2 считается результатом преобразования входного слова Р машиной М: М (Р) = М 2 (М1(Р)).

Если известны схемы машин М1 и М2 , то схема композиции М = М2 oМ1 строится следующим образом:

1.СТОП - состояние машины М 1 отождествляется с начальным состоянием машины М2 ;

2.СТОП - состояние машины М2 объявляется СТОП - состоянием

композиции М = М2 oМ1 ;

3. Остальные состояния М2 переобозначаются.

Пусть даны три МТ с общим алфавитом - M 1 ,M 2 ,M 3 и некоторое условие

Г. МТ M = M 1 M 2 называется разветвлением машины M 1 на машины M 2 и

M 3

M 3 по признаку Г, если она работает следующим образом: входное слово Р подается на вход машины M 1 , результат М1(Р) подается на вход M 2 , если условие Г выполнено, и на вход M 3 в противном случае.

При построении машины М можно считать, что M 1 имеет два СТОП - состояния q0' и q0" , таких, что машина M 1 приходит в состояние q0' в том случае, когда для М1(Р) выполнено условие Г, и в q0" в противном случае.

Машина

M = M 1 M 2 называется разветвлением машины M 1

с циклом, если

 

M 3

 

 

выходное слово машины M 2 снова подается на вход машины M 1

(СТОП -

состояние

M 2 отождествляется с начальным состоянием

M 1 ).

Начало и

конец цикла будем обозначать точкой () над соответствующими буквами. Если в МТ содержится более одного цикла, тогда принимаются следующие обозначения: начало и конец второго цикла - две точки (• •) над соответствующими буквами, начало и конец третьего цикла - три точки и т.д.

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

Пример 6.3.

МТ M 1 и M 2 заданы соответственно таблицами 6.3. и 6.4.

Таблица 6.3.

Таблица 6.4.

М1

0

1

А1

0RA2

0RA2

А2

1RA1

1LA0

M2

0

1

B1

0RB2

1RB3

B2

1SB2

0LB1

B3

0SB0

1LB3

Их композицией

будет

МТ

M = M1 o M2 .

Алфавит

состояний:

C = {C0 ,C1 ,C2 ,C3 ,C4 ,C5},

где C1

= A1 ,C2

= A2 ,C3 = A0 = B1 ,C4

= B2 ,C5 = B3 ,C0

= B0 - стоп

состояние общей МТ.

 

 

 

 

 

 

 

Таблица 6.5.

 

 

 

 

 

M

0

1

 

 

 

 

 

C1

0RC2

0RC2

 

 

 

 

 

C2

1RC1

1LC3

 

 

 

 

 

C3

0RC4

1LC5

 

 

 

 

 

C4

1SC4

0LC3

 

 

 

 

 

C5

0SC0

1LC5

 

 

 

 

Пример 6.4.

 

 

 

 

 

 

 

 

 

 

МТ M1, M2

и M3 заданы таблицами:

 

 

 

 

 

M1

0

 

1

 

M2

0

1

 

M3

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

A1

0RA2

0RA0 (1)

 

B1

0LB1

1RB2

 

C1

1RC1

0LC2

 

 

 

 

 

 

 

 

 

 

 

 

 

A2

1RA1

1SA0 (2)

 

B2

1RB1

0SB0

 

C2

0RC2

1SC0

 

 

 

 

 

 

 

 

 

 

 

 

 

(1) M

2

 

 

 

общей МТ будет МТ M . Ее работа

При заданном условии M = M 1

 

M3

 

(2)

 

начинается с работы МТ M1 . Если мы приходим к первому СТОП – состоянию МТ M1 (оно пронумеровано), тогда начинает работу МТ M2 . Ее СТОП – состояние - общее СТОП – состояние МТ M . Если мы приходим ко второму СТОП – состоянию МТ M1 , тогда начинает работать МТ M3 . Ее СТОП – состояние - начальное состояние МТ M1 .

Результирующая таблица МТ M имеет алфавит состояний

P = {P0, P1, P2, P3, P4, P5, P6 } .

Здесь:

M

0

1

P1

0RP2

1RP3

P2

1RP1

1SP5

P3

0LP3

1RP4

P4

1RP3

0SP0

P5

1RP5

0LP6

P6

0RP6

1SP1

Задания для самостоятельной работы.

1. Исследовать работу МТ для приведенной конкретной конфигурации.

M1

0

1

A1

1RA2

1RA1

A2

0LA3

1RA2

A3

0SA0

0RA3

M2

0

1

A1

0RA1

0RA2

A2

1RA3

1RA2

A3

0LA4

1RA3

A4

0LA4

0SA0

 

0 1 1111011110

 

0 1 111011111110

а. )

 

S1

в. )

 

S1

 

0 11111011110

 

0 1111011111110

 

 

 

 

 

 

 

S1

 

S1

 

0 1 11011111110

 

0 1 1101110

б. )

 

S1

г. )

 

S1

 

0 111011111110

 

0 11101110

 

 

 

 

 

 

 

S1

 

S1

2. Используя правила композиции и ветвления составить программу МТ M , которая состоит из M1, M2, M3 и M4 .

M1

0

1

 

 

 

A1

0RA1

0SA2

 

 

 

A2

0SA0

1RA2

 

 

 

M2

0

1

 

 

 

B1

0RB1

1SB0(1)

 

 

 

B2

1LB2

1SB0(2)

 

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]