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

Математическая логика и теория алгоритмов.-2

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

31

Машина никогда не останавливается (не переходит в q0 состояние). В

этом случае машина не применима к начальной информации I1 .

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

функциональной схеме:

RL

ai q j al C qs ,

P

E

где ai , al A, q j , qs Q и ai – буква на ленте, обозреваемая считывающим устройством на данном такте, q j – текущее состояние машины

на данном такте.

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

1.Буква внешнего алфавита al , на которую заменяется обозреваемая буква ai .

2.Адрес внешней памяти и дополнительные действия для выполнения на следующем такте R, L, C, P или E .

3.Следующее состояние машины.

Формирование правой части функциональной схемы происходит по

командам, совокупность которых образует программу машины Тьюринга. Программа представляется в виде двумерной таблицы (табл. 5), называемой

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

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

Если данное состояние описывается машинным словом M , то машинное

слово,

описывающее следующее состояние машины, будет обозначаться через

M (1) .

Далее аналогично M (i 1) (M (i) )(1) , i 0,1,2,.. . Переход машины

Тьюринга из начального в последующие состояния изображается в виде цепочки слов M ├─ M (1) ├─ M (2) ├─…

32

Таблица 5. Функциональная схема Тьюринга

 

 

Символы внешнего алфавита

 

Состояния

 

 

 

 

a0

a1

an

 

q1

a2Lq3

a1Rq2

a2Lq1

q2

a1Cq0

a2Cq1

a1Cq2

 

 

 

 

 

qm

a1Pq3

a0 Rqm 1

an 1Rq1

 

Чтобы описывать работу машины Тьюринга более удобным образом, текущее состояние машины пишут не внизу алфавита, а перед обозреваемой ячейкой. Например, пусть A {0,1}, Q {q0, q1, q2}, q0 - символ остановки.

Начальная информация: q111. Тогда программа строится следующим образом:

q10 q2R, q2 0 q01, q11 q1R, q21 q2R.

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

Пример 1:

 

 

 

 

 

Пусть A a0 , a1, a2 ,

Q q0 , q1, q3, q4 R, L, C

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

управляется функциональной схемой:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Символы внешнего алфавита

 

 

Состояния

 

 

 

 

 

 

 

 

a0

a1

 

a2

 

 

 

 

 

 

 

q1

 

a2 Lq3

a1Rq2

 

a2 Lq1

 

 

q2

 

a1Cq0

a2Cq1

 

a1Cq2

 

 

 

 

 

 

 

 

 

 

q3

 

a0 Rq0

a1Rq4

 

a2Cq1

 

 

q4

 

a1Cq3

a0 Rq4

 

a2 Rq4

 

33

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

а) a a a a a

;

б) a a a .

0

1

2

2

0

0

1

0

 

 

q1

 

 

 

 

q1

 

Решение:

а) Рассмотрим работу машины пошагово:

1.Считывающим устройством обозревается буква a2 (слово считывается слева направо, a0 – пустая клетка), а машина находится в состоянии q1 :

a

0

a a

2

a

2

a

0

. При

этом вырабатывается

команда a2 Lq1 , т.е.

 

1

 

 

 

 

 

 

 

 

 

 

q1

 

 

 

 

 

 

 

 

 

 

считывающее устройство

сдвигается

влево,

a2

заменяется на a2 ,

состояние

 

 

q1 меняется

на

q1 ,

получаем

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

a0 a1a2 a2 a0 .

q1

 

 

 

 

 

 

 

 

2. Следующая конфигурация, по аналогии, будет: a

0

a a

2

a

2

a

0

 

1

 

 

 

 

 

 

q1

 

 

 

 

 

(считывающее устройство сдвинулось

влево). Теперь обозревается буква

a1 , машина

находится в

состоянии

q1 ,

т.е. вырабатывается команда

a1Rq2 – считывающее устройство сдвигается вправо, a1

заменяем на a1 ,

состояние

q1 меняется

на

q2 ,

получаем

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

a0 a1a2 a2 a0 .

q2

3.Обозревается буква a2 , машина находится в состоянии q2 , т.е.

вырабатывается команда a1Cq2 – считывающее устройство стоит на месте, a2 заменяется на a1 , состояние q2 меняется на q2 , получаем

конфигурацию a0 a1a1a2 a0 .

q2

4.Обозревается буква a1 , машина находится в состоянии q2 , т.е.

вырабатывается команда a2Cq1 – считывающее устройство стоит на месте,

34

a1 заменяется на a1 , состояние q2 меняется на q1 , получаем

конфигурацию a0 a1a2 a2 a0 .

q1

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

б) Пусть начальная информация имеет вид a0 a1a0 . Тогда, действуя

 

 

 

 

 

 

q1

аналогично, придем к следующим конфигурациям:

1. a

0

a a

0

обозревается буква a1 , машина находится в состоянии q1 ,

 

1

 

 

 

 

 

q1

 

 

 

 

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

a1Rq2 – считывающее устройство сдвигается

вправо,

a1

заменяется на

a1 , состояние q1 меняется на q2 , получаем

конфигурацию a0 a1a0 .

q2

2.Обозревается буква a0 , машина находится в состоянии q2 ,

вырабатывается команда a1Cq0 – считывающее устройство стоит на месте, a0 заменяется на a1 , состояние q2 меняется на q0 , получаем

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

0

a a a

0

. Мы пришли

в стоп состояние q0 ,

 

 

1

1

 

 

 

 

 

 

q0

 

 

 

 

 

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

a1a1 – результат ее работы, и машина применима к

исходной информации.

 

 

 

 

 

Пример 2:

 

 

 

 

 

 

 

 

Пусть A {0,1},

Q {q0, q1, q2}, q0 - символ

остановки,.

Программа

строится

 

 

 

следующим

 

образом:

q10 q2R, q2 0 q01, q11 q1R, q21 q2R. Определить

конечный

результат работы машины, если начальная конфигурация имеет вид:

а) q111;

 

 

 

 

 

б) q2101.

 

 

Решение:

35

а) q111├─

1q11 ├─

11q10 ├─ 110q2 0 ├─ 110q01 ,

 

 

 

 

 

 

 

 

где 0 – символ пустой ячейки ленты машины.

 

 

 

 

 

 

 

 

 

 

б) q2101├─ 1q2 01├─ 1q011 .

 

 

 

 

 

 

 

 

 

 

 

 

 

Упражнения:

 

A a0 , a1, a2 , a3 ,

 

q0 , q1, q3, q4 R, L, C

 

 

 

8.1.

Пусть

 

Q

 

и машина

Тьюринга управляется функциональной схемой:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Символы внешнего алфавита

 

 

 

 

 

 

 

Состояния

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a0

 

 

 

 

a1

 

 

a2

 

 

 

 

 

 

a3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q1

 

 

 

 

 

a2Lq3

 

 

 

a1Rq2

 

 

a3Lq1

 

 

 

a2Cq1

 

q2

 

 

 

 

 

a3Cq0

 

 

 

a2Cq1

 

 

a1Cq2

 

 

 

a2 Rq0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q3

 

 

 

 

 

a0 Rq0

 

 

 

a1Rq0

 

 

a2Cq1

 

 

 

a1Cq3

 

q4

 

 

 

 

 

a1Cq3

 

 

 

a0 Rq4

 

 

a3Rq4

 

 

 

a3Lq3

 

 

 

 

 

 

 

Определить конечный результат работы машины, если начальная

конфигурация имеет вид:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1)

a a a a a

 

;

 

 

4)

a a a

2

a

 

;

 

 

0

1

2

3

0

 

 

 

 

 

 

0

3

 

 

0

 

 

 

 

 

 

q1

 

 

 

 

 

 

 

 

 

 

 

q4

 

 

 

 

 

 

 

2)

a a

a

;

 

 

 

 

 

5)

a a a a

 

;

 

 

0

 

 

2

0

 

 

 

 

 

 

 

 

0

1

1

0

 

 

 

 

q2

 

 

 

 

 

 

 

 

 

 

 

 

q1

 

 

 

 

 

 

 

3)

a a a a a

 

;

 

 

6)

a

a a

0

.

 

 

 

 

0

3

1

2

0

 

 

 

 

 

 

0

3

 

 

 

 

 

 

 

 

 

 

q3

 

 

 

 

 

 

 

 

 

 

 

q3

 

 

 

 

 

 

 

8.2. Построить

 

машину

 

Тьюринга

для

вычисления

 

функции

 

«левый сдвиг»:

01x q10 q0 01x0 .

8.3. Построить машину Тьюринга для вычисления функции «правый сдвиг»:

q0 01x0 01x q0 0.

36

Рекомендуемая литература:

1.Игошин В.И. Математическая логика и теория алгоритмов: Учебное пособие для вузов. - М.: Академия, 2004. - 446 с.

2.Шапорев С. Д. Математическая логика. Курс лекций и практических занятий:

Учебное пособие для вузов. - СПб.: БХВ-Петербург, 2005. - 410 с.

3.Шевелев Ю. П. Математическая логика и теория алгоритмов: учебное пособие.

- Томск: Дельтаплан, 2007. - 219 с.

4.Шелупанов А.А.Математическая логика и теория алгоритмов: Учебное пособие. - Томск : STT, 2001. - 176 с.

5.Перемитина Т.О. Математическая логика и теория алгоритмов: методические указания к выполнению практических работ для студентов специальности

230102 - Автоматизированные системы обработки информации и управления. –

Томск: ТУСУР , 2007. - 36 с.