Машина тьюринга примеры задач

Навигация

Календарь

Машина Тьюринга. Задачи и решения

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

Что такое формальный исполнитель? Что значит — один формальный исполнитель имитирует работу другого формального исполнителя? Если Вы играли в компьютерные игры — на экране объекты беспрекословно подчиняются командам играющего. Каждый объект обладает набором допустимых команд. В то же время компьютер сам является исполнителем, причем не виртуальным, а реальным. Вот и получается, что один формальный исполнитель имитирует работу другого формального исполнителя.

Рассмотрим работу Машины Тьюринга.

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

Таким образом Машина Тьюринга формально описывается набором двух алфавитов:

A= — внешний алфавит, служит для записи исходных данных

Q= — внутренний алфавит, описывает набор состояний считывающе-печатного устройства.

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Каждая ячейка ленты может содержать символ из внешнего алфавита A = (В нашем случае A=<0, 1>)

Допустимые действия Машины Тьюринга таковы:

1) записать какой-либо символ внешнего алфавита в ячейку ленты (символ, бывший там до того, затирается)

2) сместиться в соседнюю ячейку

3) сменить состояние на одно из обозначенных символом внутреннего алфавита Q

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

Строки в таблице соответствуют символам выбранного алфавита A, а столбцы — состояниям автомата Q = . В начале работы машина Тьюринга находится в состоянии q1. Состояние q0 — это конечное состояние, попав в него, автомат заканчивает работу.

В каждой клетке таблицы, соответствующей некоторому символу ai и некоторому состоянию qj, находится команда, состоящая из трех частей
· символ из алфавита A
· направление перемещения: «>» (вправо), «

Источник

Машина тьюринга примеры задач

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

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

Что такое формальный исполнитель? Что значит — один формальный исполнитель имитирует работу другого формального исполнителя? Если Вы играли в компьютерные игры — на экране объекты беспрекословно подчиняются командам играющего. Каждый объект обладает набором допустимых команд. В то же время компьютер сам является исполнителем, причем не виртуальным, а реальным. Вот и получается, что один формальный исполнитель имитирует работу другого формального исполнителя.

Рассмотрим работу Машины Тьюринга.

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

Таким образом Машина Тьюринга формально описывается набором двух алфавитов:

A= — внешний алфавит, служит для записи исходных данных

Q= — внутренний алфавит, описывает набор состояний считывающе-печатного устройства.

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Каждая ячейка ленты может содержать символ из внешнего алфавита A = (В нашем случае A=<0, 1>)

Допустимые действия Машины Тьюринга таковы:

1) записать какой-либо символ внешнего алфавита в ячейку ленты (символ, бывший там до того, затирается)

2) сместиться в соседнюю ячейку

3) сменить состояние на одно из обозначенных символом внутреннего алфавита Q

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

Строки в таблице соответствуют символам выбранного алфавита A, а столбцы — состояниям автомата Q = . В начале работы машина Тьюринга находится в состоянии q1. Состояние q0 — это конечное состояние, попав в него, автомат заканчивает работу.

В каждой клетке таблицы, соответствующей некоторому символу ai и некоторому состоянию qj, находится команда, состоящая из трех частей
· символ из алфавита A
· направление перемещения: «>» (вправо), «

Источник

Решение задач. Машина Тьюринга

Написать программу на машине Тьюринга, прибавляющую число 2 к введенному числу.

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Написать на машине Тьюринга программу, прибавляющую 3 к введенному числу.

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Перенести первый символ непустого слова P в его конец. Алфавит : A=.

Если первый символ – это a, то надо перейти в состояние q2, в котором автомат бежит вправо и записывает в конце a. Если же первым был символ b, тогда надо перейти в состояние q3, где делается всё то же самое, только в конце записывается символ b. Если же первым был символ c, тогда переходим в состояние q4, в котором автомат дописывает за входным словом символ c.

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Для решения этой задачи предлагается выполнить следующие действия:

В противном случае уничтожить всё входное слово ( q 7 ).

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Запомнить первый символ, стереть второй символ и установить на его месте первый.

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Сдвиг символов осуществляется так: в очередной клетке записываем b (если в q 1 ) или c (если в q 2 ), переходим вправо и меняем состояние на q 1 (если в текущей клетке было записано b ) или на q 2 (если было записано c ), где осуществляется дальнейшая запись. Если в очередной клетке записано a или пробел, то записываем в нее запомненный символ и останавливаем программу.

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

После этого возвращаемся к началу входного слова.

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Вначале записываем знак = за входным словом. Затем возвращаемся под первый символ входного слова.

Источник

Машина тьюринга примеры задач

Абстрактные вычислительные машины

Материал взят с ресурса Планета информатики

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

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

Чтобы задать конкретную машину Тьюринга, требуется описать для нее следующие составляющие:

Автомат машины Тьюринга в процессе своей работы может выполнять следующие действия:

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

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

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

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Здесь происходит сдвиг головки влево до тех пор, пока она не окажется над пустым символом. После этого машина переходит в состояние Q2 (команды которого совпадают с командами Q1 предыдущей программы).

Материал взят с ресурса Планета информатики

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Решение этой задачи аналогично рассмотренному выше примеру.

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Задача 4 (усложнение задачи 3)

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Те клетки, в которые машина Тьюринга никогда не попадает, оставляем пустыми.

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

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

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

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

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

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

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

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

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

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

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

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

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

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

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

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

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Работа машины Поста определяется программой, состоящей из конечного числа строк. Для работы машины нужно задать программу и её начальное состояние (то есть состояние ленты и позицию каретки). Кареткой управляет программа, состоящая из пронумерованных не обязательно упорядоченных строк команд, если в каждой команде указана строка, на которую нужно перейти. Обычно принимается, что если в команде переход не указан, то переход происходит на следующую строку. Каждая команда имеет следующий синтаксис:

После программы запуска возможны варианты:

Источник

Машина Тьюринга на формулах Excel

Что такое Машина Тьюринга

Простой пример: прибавление единицы к двоичному числу

Для такой машины потребуется алфавит из трех символов (0,1, х) – где 0 и 1 будут для числа, а х для пустой ячейки. То есть пустая лента вся заполнена символами «х».
У головки будет 4 состояния: q1,q2,q3 и q4 – остановка машины.
Правила для машины выпишем в виде матрицы:
Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Нетрудно проверить, что такая машина при помещении головки на старший разряд двоичного числа, при начальном состоянии q1, увеличит это число на 1.

Реализация на Excel

Создадим таблицу правил, как в примере выше. Выделим всю эту таблицу и назовем ее «rules». Жмем Enter.

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Зададим начальное состояние ленты:
Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Оно означает, что на ленте записано число 10111, а головка находится в состоянии 1, и в ячейке, соответствующей старшему разряду. Excel поддерживает условное форматирование, что и применено для большей наглядности.
Новый шаг машины будет моделироваться новыми строками эксель, а формулы будут имитировать состояние машины согласно правилам.

Формула для ячейки ленты:
=ЕСЛИ(K14<>0; ИНДЕКС(rules;K14+1;2+K13*3);K13)
Эта формула для значения ячейки ленты на следующем шаге (K17). Она означает, что если головка (K14) находится под ячейкой (то есть в клетке K14 не ноль), то следует записать в эту ячейку значение согласно правилам (из массива rules). Если же в клетке под ячейкой ленты ноль (что значит, под ней нет головки), то значение не меняется.

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Формула для состояния головки (для удобства чтения сделаны переносы строки):
=ЕСЛИ(K14<>0; ЕСЛИ(ИНДЕКС(rules;K14+1;4+K13*3)=0; ИНДЕКС(rules;K14+1;3+K13*3);0);
ЕСЛИ(J14<>0; ЕСЛИ(ИНДЕКС(rules;J14+1;4+J13*3)=1; ИНДЕКС(rules;J14+1;3+J13*3);0);
ЕСЛИ(L14<>0; ЕСЛИ(ИНДЕКС(rules;L14+1;4+L13*3)=-1; ИНДЕКС(rules;L14+1;3+L13*3);0);0)))

Эта формула
1) сначала проверяет, находится ли головка в этой ячейке (K14) – тогда если правила говорят оставаться на месте, в эту клетку пишется состояние машины согласно правилам
2) Если головка находится на одну ячейку влево (J14) и правила говорят сдвинуться вправо – тогда в эту клетку пишется состояние машины согласно правилам
3) Если головка находится на одну ячейку справа (L14) и правила говорят сдвинуться влево – тогда в эту клетку пишется состояние машины согласно правилам
4) Во всех остальных случаях пишется ноль
Такая формула имитирует движение головки.
В формулах использована функция Индекс(массив, строка, столбец). Вычислим значение ИНДЕКС(rules;K14+1;4+K13*3) – кусочка формулы состояния головки.
Как видно из рисунка, K14=1, K13=1. Значит надо найти ИНДЕКС(rules;1+1;4+1*3) то есть ИНДЕКС(rules;2;7) – значение в массиве «rules» на пересечении 2й строки и 7го столбцы (нумеруются строки и столбцы начиная с 1, а не 0). В нашей табличке это значение «1».

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Формулы относительные – то есть при копировании их на новые ячейки эксель берет данные из ячеек соответствующий предыдущему состоянию машины.
В итоге, выполнив все шаги, машина «останавливается» — достигнуто состояние «4», к числу прибавлена единица.

Машина тьюринга примеры задач. Смотреть фото Машина тьюринга примеры задач. Смотреть картинку Машина тьюринга примеры задач. Картинка про Машина тьюринга примеры задач. Фото Машина тьюринга примеры задач

Вот ссылка на файл Excel

Заключение

Если бы Эксель поддерживал сколь угодно большое число строк и столбцов, то это автоматически означало бы, что используя формулы экселя можно реализовать любую вычислимую функцию, так как Excel был бы Тьюринг-полным

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *