Машина Поста и алгорифмы Маркова

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

Уроки 25–26 поурочного плана: «Машина Поста» и «Нормальные алгорифмы Маркова». На прошлой паре была машина Тьюринга. Сегодня — машина, у которой на ленте всего два знака, и исполнитель вовсе без ленты: он переписывает слово по формулам.

Ещё два уточнения понятия алгоритма

Эмиль Пост, 1936

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

А. А. Марков, конец 1940-х — начало 1950-х

Нормальные алгорифмы: ни ленты, ни каретки. Есть слово и список формул «что на что заменить». Алгорифм переписывает слово, пока не остановится.

Машина Поста: лента, каретка, команды

Лента из клеток, бесконечная в обе стороны. Клетка либо пуста, либо отмечена меткой V — третьего не бывает. Над одной клеткой стоит каретка.

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

командачто делает
кодпоставить метку, перейти к j
кодстереть метку, перейти к j
код / кодкаретку на клетку вправо / влево, перейти к j
кодклетка пуста — к i, отмечена — к j
кодстоп

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

программа

Каретка — над самой левой меткой ряда из трёх меток (клетки 3–5), начинаем с команды 1.

Пиши столбиком: номер команды, клетка под кареткой, пуста она или отмечена. Шаг — одна выполненная команда, «!» тоже считается. Ленту перерисовывай после каждого V и X.

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

Задача: машина должна делать известное (например, «стереть ряд» или «удвоить ряд»), но одна команда в программе стёрта. Какую поставить?

  1. Подставь вариант на место ★.
  2. Прогони машину на коротком ряду: одна-две метки. Ошибка вылезает уже там.
  3. Сверь ленту после остановки с тем, что должно получиться.

Нормальный алгорифм Маркова

Работает со словом — строкой символов. Схема — упорядоченный список формул:

  • код — заменить P на Q;
  • код — заменить и остановиться (заключительная).

λ — пустое слово: «ничего».

Один шаг

  1. Просмотреть формулы сверху вниз и взять первую, левая часть которой входит в слово.
  2. Заменить её самое левое вхождение на правую часть.
  3. Формула заключительная — стоп, иначе снова к пункту 1.

Пример: одна формула сортирует

схема

Слово код. Каждый шаг — самое левое код заменяется на код.

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

Задача: дана схема и четыре описания («удваивает слово», «стирает последнюю букву»…). Какое верно?

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

Свой алгорифм: приём бегунка

меняет a на b и b на a

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

По одной формуле в строке, по порядку; заключительная — с точкой после стрелки; пустое слово — λ.

Что верно о двух моделях

Верно

  • Каретка Поста за шаг сдвигается не больше чем на клетку.
  • За шаг Марков заменяет одно, самое левое вхождение.
  • Заключительную формулу отмечает «·», а не место в списке.

Неверно

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

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

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

Отметка: закрыто 6 из 6 — «5», 5 — «4», 3 или 4 — «3». Исправленная задача не засчитывается — за ошибку приходит новая, добирать можно до пятёрки. В своём алгорифме ошибкой считается только первая неудачная проверка: дальше это отладка.

За работу

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

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

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