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

Учебное пособие 800514

.pdf
Скачиваний:
6
Добавлен:
01.05.2022
Размер:
3.99 Mб
Скачать

2. Если на выход алгоритма поступает x Df , то алго-

ритм никогда не заканчивается.

Заметим, что множество вычислимых функций не совпадает с множеством ―практически вычислимых‖ функций, которые связаны с ограничениями современных вычислительных машин.

Определение вычислимой функции не является формальным. Формализацией этого понятия служит частичнорекурсивная функция.

3.2 Машины Тьюринга

Машина Тьюринга — это математическая модель идеализированной цифровой вычислительной машины. Идея такой машины, предложенная английским математиком А.Тьюрингом в тридцатых годах XX века, связана с его попыткой дать точное математическое определение понятия алгоритма.

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

1.Лента (внешняя память МТ) — бесконечная в обе стороны полоска, разбитая на ячейки (равные клетки). В каждую

ячейку в дискретный момент времени может быть записан только один символ (буква) из внешнего алфавита A ,a1 , a2 , , an 1 , n 2 . Пустая ячейка обозна-

чается символом . В этом алфавите A в виде слова (конечного упорядоченного набора символов) кодируется та информация, которая подается в МТ. Машина перерабатывает информацию, поданную в виде слова, в новое слово.

2.Считывающая головка (некий считывающий элемент) перемещается вдоль ленты так, что в каждый момент времени она обозревает ровно одну ячейку ленты. Головка может

считывать содержимое ячейки и записывать в нее новый символ из алфавита A . В одном такте работы она может сдвигаться только на одну ячейку вправо ( П ), влево ( Л ) или оставаться на месте ( Н ). Обозначим множество перемещений (сдвига) головки D П , Л , Н .

3. Память машины представляет собой некоторое конечное

множество

внутренних

состояний

Q q0 , q1 , q2 , , qm 1 , m 1.

Будем считать, что

 

2. Два состояния машины имеют особое

мощность

Q

 

 

 

 

назначение: q1 — начальное внутреннее состояние, q0

заключительное внутреннее состояние (стоп-состояние). Машина работает во времени, которое считается дискретным и его моменты занумерованы: 1, 2, 3, … . В каждый момент времени МТ характеризуется положением головки и внутренним состоянием. Например, под ячейкой, над которой находится головка, указывается внутреннее состояние машины.

 

 

a2

a1

 

a2

a3

 

 

 

 

 

 

 

 

 

 

 

 

 

q1

4.Устройство управления (УУ) в каждый момент времени t в зависимости от внутреннего состояния машины и считывающего в этот момент символа на ленте, над которым находится головка, выполняет следующие действия:

a)

«считывает» символ a i — заменяет на новый символ a j

 

(может быть a j ai );

b)

перемещает головку в одном из направлений: П , Л ,Н ;

c)изменяет имеющееся в момент t внутреннее состояние ql на новое состояние qs , в котором будет машина в после-

дующий момент времени t 1 (может быть ql qs ).

Такие действия УУ называется командой, которая записывается так:

ql ai

a j

D qs ,

(*)

где ai , a j

A,

ql , qs Q, D

П , Л ,Н , l 0 .

В левой части команды (*) никогда не встречается q0 .

Так как множества A и Q конечны, то команд вида (*),

в которых левые части попарно различны, конечное число. Совокупность всех команд называется программой МТ.

Максимальное число команд в программе равно n 1 m , где n A , m Q . Считается, что заключительное состояние q0 может стоять только в правой части команды, начальное состояние q1 — только в левой части команды.

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

Заданное слово на ленте с начальным состоянием q1 и

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

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

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

Пример 1. Построить машину Тьюринга, которая в алфавите A a ,b, слово " abb" преобразует в слово

" bba" .

Решение. Составим программу МТ:

q1 a

П q2

q2

b

b П q2

q2

 

a Н q0

В результате работы МТ над словом " abb" будут следующие шаги:

 

 

a

b

b

 

 

— 1-й шаг

 

 

q1

 

 

 

(начальная конфигу-

 

 

 

 

 

 

 

рация)

 

 

 

 

 

 

 

 

 

 

 

b

b

 

 

— 2-й шаг

 

 

 

q2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

b

 

 

— 3-й шаг

 

 

 

 

q2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

b

 

 

— 4-й шаг

 

 

 

 

 

q2

 

 

 

b

b

a

 

— 5-й шаг

q0 (заключительная конфигурация)

Работа МТ закончена.

Работу МТ можно описать следующим образом: она запоминает 1-ю букву исходного слова (или при этом стирает его); головка движется вправо до первой пустой клетки, в которую и записывается первая буква исходного слова.

Замечание. Часто программу МТ записывают в другой, более компактной форме в виде таблицы. Например, программа примера 1 может выглядеть следующим образом:

 

 

a

b

 

 

 

 

 

 

q1

 

П q2

 

 

q2

a Н q0

 

b П q2

 

Пример 2. Построить машину Тьюринга, вычисляющую числовую функцию

S x x 1, x N .

Решение. Пусть внешним алфавитом данной МТ явля-

ется множество A

 

,1 . Число x

 

N на ленте машины

записывать в виде набора из x единиц:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

1

 

1

 

1

 

1

 

 

 

q1

Программа МТ выглядит следующим образом:

q1 1 1 П q1 ,

q1 1 Н q0 ,

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

шина перейдет в состояние q0 .

Можно показать, что все арифметические функции натурального аргумента вычислимы по Тьюрингу. Например, ра-

бота МТ в алфавите ,1 при вычислении числовой функции f x, y x y можно описать следующей программой

 

 

 

q1

 

 

q2

 

q

3

 

q

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 П q2

 

 

Л q3

 

 

 

 

 

 

 

 

1

1 П q

 

1 П q

2

Л q

4

Л q0

 

 

 

 

1

 

 

 

 

 

 

 

 

где

любое

натуральное

число m кодируется

набором из

 

m

1 единиц; этот набор

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

через

1m 1 . Так ,

0 ~ 1,1 ~ 11, 2 ~ 111 13 , 3 ~ 1111

14 и т.д.

 

 

 

 

 

 

Числовая функция

f

x1 , x2 , ..., xn

называется вычис-

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

m1 ,m2 , ..., mn если при x1 m1 , x2 m2 , ..., xn mn име-

ем

f m1 ,m2 , ..., mn

m , эта машина применима к слову

1m1

1 &1m2 1 & ... &1m1 1

(**)

и в заключительной конфигурации на некотором участке ленты будет записано слово 1m 1 , а остальные ячейки окажутся пустыми. Если значение функции f m1 ,m2 , ..., mn не определено, эта МТ не применима к слову (**).

ЗАДАЧИ И УПРАЖНЕНИЯ

1.Выяснить, применима ли МТ, задаваемая программой в алфавите 0,1

 

0

1

 

 

 

q1

0 П q2

1 П q1

q2

0 П q3

1 Л q1

q3

0 Н q0

1 Л q2

к слову P :

1) P 13 02 12 ;

2)P 13 0 13 ;

3)P 10 01 2 1.

Если применима, то найти результат применения МТ к слову

P .

Ответ: В случаях 1), 3) — МТ применима,

2)— МТ не применима.

2.По заданной МТ и начальной конфигурации K1 найти заключительную конфигурацию.

 

MT1

 

 

 

MT2

 

 

0

 

1

 

 

0

1

 

 

 

 

 

 

 

 

q1

0 Н q0

 

1 П q2

 

q1

0 Н q0

0 П q2

 

 

 

 

 

 

 

 

q2

 

1 Л q0

 

0 П q3

q3

 

1 Л q1

 

0 П q1

 

 

 

 

 

1)

K1

1q1 15 ;

2)

K

1

q 13

01;

 

 

 

1

 

 

3)

K

1

10 q

14 .

 

 

 

1

 

q2

 

 

0 П q1

 

1 Л q2

1)

K

1

12 q 13

0 1 ;

 

 

 

1

 

 

2)

K

1

1q

14 .

 

 

 

 

1

 

 

 

Ответ: 1) 12 02 1q0 0 1; 2) 10 2 0 q0 12 .

3. Построить МТ, которая применима ко всем словам в алфа-

 

вите

, a, b

и

делает следующее:

любое слово

 

x1 x2 xn , где xi

 

 

 

 

 

 

 

 

 

 

 

a или xi

 

b , i

1,n , преобразу-

 

ет в слово x2 x3 xn x1 .

 

 

 

 

 

 

 

 

 

 

 

Указание: В начальной конфигурации

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

x2

 

xn

 

 

 

 

 

 

 

 

 

 

 

 

q1

 

 

 

 

 

 

 

 

 

 

 

 

 

заменить символ

x1

на

и, двигаясь вправо до первой

 

пустой ячейки, вписать в нее символ x1 . Так как в алфави-

 

те всего два символа a и b , то введите два состояния: q2

 

вписывает символ a , если

xi

a ; q3

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

 

b , если xi

b .

 

 

 

 

 

 

 

 

 

 

 

 

4. Построить МТ, вычисляющую нуль-функцию O x

0 в

 

алфавите

 

,1 .

 

 

 

 

 

 

 

 

 

 

 

 

 

Указание: Взять множество Q

 

q0 ,q1

,

подставить вме-

 

сто всех единиц символ , а когда встретится символ

,

 

то поставить символ 1.

 

 

 

 

 

 

 

 

 

 

5.

Реализовать

 

 

на МТ

алгоритм

 

 

вычисления функции

 

 

f n

n

2 , где n

N .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Указание:

Взять множество состояний

Q

 

q0 ,q1 ,q2 .

 

 

Число n на ленте МТ записывается в десятичной системе

 

 

счисления. Состояние q1 заменяет последнюю цифру чис-

 

 

ла n,

если эта цифра меньше 8,

 

цифрой, на две единицы

 

 

большей, и переходит в стоп-состояние. Если последняя

 

 

цифра числа n равна 8, то ее заменить на 0 и перейти вле-

 

 

во в состояние q2 . Состояние q2

 

добавляет к следующему

 

 

разряду 1. Если же последняя цифра числа n равна 9, то ее

 

 

заменить на 1 и перейти влево в состояние q2 .

 

 

 

6.

Вычисляет ли МТ в алфавите

1,

 

 

 

 

 

 

 

 

 

 

 

1)

с программой

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q1

 

 

 

 

 

q2

 

 

 

 

 

 

q3

 

 

 

 

 

 

 

 

1 Л q2

 

 

 

П q0

 

 

 

 

Н q0

 

 

 

1

 

 

 

 

 

 

 

1 Н q3

 

 

 

 

Л q3

 

 

 

 

 

 

 

 

1, если x 0,

 

 

 

 

 

 

 

 

функцию sign x

 

 

 

 

 

 

 

 

0,

если

x

 

 

0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2)

с программой

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q1

q2

 

 

 

 

 

q3

 

 

 

 

q4

 

 

 

 

 

 

 

 

Л q2

П q0

 

 

 

 

П q4

 

 

П q4

 

 

 

1

 

 

 

 

 

1 Л q3

 

 

 

 

Л q3

 

 

1 Н q0

 

функцию sign x

0, если x 0,

 

 

 

 

 

 

 

 

1,

если

x

0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7. Построить МТ, которая вычисляет функцию:

 

 

 

 

1) f x, y

 

x y;

 

 

 

 

 

2) f x

 

x 2 ;

3) функцию выбора аргумента J

3 x

1

, x

2

, x

3

 

x

2

.

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

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

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