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

Строгий ответ на вопрос «что такое алгоритм». 11 класс, углублённый уровень — пара двенадцатая.

Уроки 23–24 поурочного плана: «Формализация понятия алгоритма. Машина Тьюринга как универсальная модель вычислений. Тезис Чёрча—Тьюринга» и практическая работа «Составление простой программы для машины Тьюринга».

Зачем алгоритму строгое определение

«Понятная последовательность шагов для исполнителя» годится, пока алгоритм нужно написать.

Устройство машины

Лента — бесконечная в обе стороны, разбита на клетки; в каждой клетке один символ алфавита. Пустая клетка — символ λ: им занята вся лента, кроме конечного числа клеток.

Головка видит одну клетку.

Один такт

  1. записать символ в клетку под головкой;
  2. сдвинуть головку: L — влево, R — вправо, N — на месте;
  3. перейти в новое состояние.

Программа — таблица

Строка — состояние, столбец — символ под головкой, в клетке — команда: что записать, куда сдвинуть, в какое состояние перейти.

Как выполнять вручную: столбиком

Пиши по такту: состояние, что видим, команда — и ленту после такта. Такт — одна выполненная команда; последняя, переводящая в q0, тоже считается.

Такты на длинном слове

На ленте n единиц, головка над самой левой. Сколько тактов при n = 60? По тактам не пройти.

Стёртая команда: подставь и прогони

Задача: машина должна делать известное, но одна команда в таблице стёрта. Какую поставить?

  1. Подставь вариант на место знака «?».
  2. Прогони машину на коротком слове из двух-трёх символов.
  3. Сверь ленту после остановки с тем, что должно получиться.

Что делает машина: прогони и сравни

  1. Возьми короткое слово, на котором все описания дают разное.
  2. Прогони машину по тактам.
  3. Сравни ленту после остановки с каждым описанием — совпадёт ровно одно.

Универсальная машина и тезис Чёрча—Тьюринга

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

Своя программа: как записать

дописать единицу к ряду

фрагмент программы — набери его сам

По одной команде в строке: состояние, что видим, что пишем, сдвиг, новое состояние. Пустая клетка — λ или _. Стрелка и комментарий после # — по желанию.

Что верно, а что нет

Верно

  • За такт головка сдвигается не больше чем на клетку.
  • На некоторых словах машина может не остановиться никогда.
  • Пустой символ λ входит в алфавит машины.

Неверно

  • «Лента конечна». Бесконечна в обе стороны.
  • «Машина останавливается на пустой клетке». Только в q0.
  • «Тезис Чёрча—Тьюринга — доказанная теорема».
  • «Алфавит — только 0 и 1». Любой конечный набор символов.

Что делаем дальше

  1. Обзорный практикум — шесть задач, все сразу на странице, в любом порядке: понятия, выполнить программу, такты на длинном слове, стёртая команда, что делает машина и своя программа.
  2. Такты — столбиком на черновике, как на слайдах.
  3. Свою программу страница выполняет на всех коротких словах и показывает, на каком слове машина ошиблась; исправляй и проверяй снова.

Отметка: закрыто 6 из 6 — «5», 5 — «4», 3 или 4 — «3». В первых пяти вопросах ответ — целое число.

За работу

Практикум «Машина Тьюринга» — в общей папке и на сайте. Не успел на уроке — пройди дома: вариант будет другой, сдаётся тем же кодом.

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

Материалы подготовлены с использованием технологий искусственного интеллекта. Пробел раскрыть и дальше · ← → слайды