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

Автор работы: Пользователь скрыл имя, 22 Ноября 2013 в 20:53, реферат

Описание работы

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

Файлы: 1 файл

Документ Microsoft Office Word.docx

— 85.86 Кб (Скачать файл)

Результат обсуждения. Машина Тьюринга должна “понимать”, по цепочке каких букв она идет, т.е. у нее должно быть как минимум два состояния. Пусть состояние q1 — движение по цепочке из букв “a”, а q2 — состояние движения по цепочке из букв “b”. Заметим, что цепочка может состоять и из одной буквы. Если мы дошли до конца строки в состоянии q1 или q2, т.е. встретили a0, машина должна остановиться, мы обработали всю строку.

Рассмотрим следующие  варианты входных слов:

bba —> abb

bbbaab —> aabbbb

aabbbaab —> aaaabbbb

Результат обсуждения. Первый вариант входного слова можно последовательно обработать следующим образом: bba —> bbb —> вернуться к левому концу цепочки из букв “b” —> abb (заменить первую букву в этой цепочке на “a”). Для выполнения этих действий нам потребуется ввести два новых состояния и, кроме того, уточнить состояние q2. Таким образом, для решения этой задачи нам нужно построить машину Тьюринга со следующими состояниями:

q1 — идем вправо по цепочке букв “a”. Если цепочка заканчивается a0, то переходим в q0; если заканчивается буквой “b”, то переходим в q2;

q2 — идем вправо по цепочке букв “b”, если цепочка заканчивается a0, то переходим в q0; если заканчивается “a”, то заменяем букву “a” на “b”, переходим в состояние q3 (цепочку вида заменили на цепочку вида );

q3 — идем влево по цепочке букв “b” до ее левого конца. Если встретили a0 или “a”, то переходим в q4;

q4 — заменяем “b” на “a” и переходим в q1 (цепочку вида заменяем на цепочку вида .

Задача 7

состояние q1 — поиск правой (младшей) цифры числа;

состояние q2 — умножение очередной цифры числа на 2 без прибавления 1 переноса;

состояние q3 — умножение очередной цифры числа на 2 с прибавлением 1 переноса.

Задача 8

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

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

В этом случае их программа  выглядит следующим образом:

состояние q1 — поиск разделителя;

состояние q2 — передвинули штрих;

состояние q3 — проверка на конец (все ли штрихи передвинули).

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

Задача 9

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

Идея решения (условие останова). На ленте есть два исходных массива штрихов.

Штрихи начинаем стирать  с левого конца массива m. И поочередно стираем самый левый штрих в массиве m и самый правый штрих в массиве n. Но прежде чем стереть правый штрих в массиве n, проверяем, единственный он (т.е. последний, который надо стереть) или нет.

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

Состояние q1 — поиск разделителя между массивами штрихов при движении справа налево;

состояние q2 — поиск левого штриха в массиве m;

состояние q3 — удаление левого штриха в массиве m;

состояние q4 — поиск разделителя при движении слева направо;

состояние q5 — поиск правого штриха в массиве n;

состояние q6 — проверка единственности этого штриха в массиве n, т.е. определяем, был ли он последним;

состояние q7 — если он был последним, то останов, иначе переход на новый цикл выполнения алгоритма.

Задача 10

При решении этой задачи следует обратить внимание на правильное выписывание алфавита:

A = {a0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Д, А, Н, Е, Т}.

Состояние q1 — поиск правого конца числа;

состояние q2 — анализ младшей цифры числа; если она равна “0” или “5”, т.е. число делится на 5, то переход в состояние q3, иначе переход в состояние q5;

состояние q3 — запись буквы “Д” справа от слова на ленте;

состояние q4 — запись буквы “А” справа от слова и останов машины;

состояние q5 — запись буквы “Н” справа от слова;

состояние q6 — запись буквы “Е” справа от слова;

состояние q7 — запись буквы “Т” справа от слова и останов машины.

Свойства машины Тьюринга как алгоритма

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

Дискретность. Машина Тьюринга может перейти к (к + 1)-му шагу только после выполнения к-го шага, т.к. именно к-й шаг определяет, каким будет (к + 1)-й шаг.

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

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

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

Массовость. Каждая машина Тьюринга определена над всеми допустимыми словами из алфавита, в этом и состоит свойство массовости. Каждая машина Тьюринга предназначена для решения одного класса задач, т.е. для каждой задачи пишется своя (новая) машина Тьюринга.

Список литературы

1. ГСТУ 3008-95. Документация. Отчёты в  сфере науки и техники. Структура  и правила оформления. - Киев: Изд-во стандартов, 1995. – 38 с.

2. Единая система программной  документации / Схемы алгоритмов, программ, данных и систем. Условные обозначения  и правила выполнения. ГОСТ 19.701-90. – М.: Госкомитет СССР по управлению  качеством продукции и стандартизации, 1990. –25 с.

3. Методические указания к курсовому  и дипломному проектированию  для студентов специальности  7.080403: Организация и выполнение  курсовых и дипломных работ  / Сост. В.И. Давыдов,  А.Б. Кунгурцев. – Одесса: ОГПУ, 1994. – 18 с.

4. Методические указания  и задачи  к практическим занятиям по  курсу "Теория алгоритмов и  вычислительных процессов" для  студентов специальности 7.080403  и  7.091501: Часть 1 / О.Н. Паулин, В.М. Рувинская, Е.С. Осадчук – Одесса: ОГПУ, 1996. – 54 с.

5. Гудман С., Хидетниеми С. Введение в разработку и анализ алго-ритмов. -М.: Мир, 1981.- 368 с.

6. Вирт Н. Алгоритмы + структуры  данных = программы.- М.: Мир, 1985. - 406 с.


Информация о работе Машина Тьюринга