Ещё два строгих ответа на вопрос «что такое алгоритм». 11 класс, углублённый уровень — пара тринадцатая.
Уроки 25–26 поурочного плана: «Машина Поста» и «Нормальные алгорифмы Маркова». На прошлой паре была машина Тьюринга. Сегодня — машина, у которой на ленте всего два знака, и исполнитель вовсе без ленты: он переписывает слово по формулам.
В том же году, что и Тьюринг, и независимо от него описал машину ещё проще: клетка ленты либо пуста, либо отмечена. Программа — нумерованный список команд.
Нормальные алгорифмы: ни ленты, ни каретки. Есть слово и список формул «что на что заменить». Алгорифм переписывает слово, пока не остановится.
«Алгорифм» — не опечатка: так писал сам Марков, и так это слово осталось в названии модели.
Лента из клеток, бесконечная в обе стороны. Клетка либо пуста, либо отмечена меткой V — третьего не бывает. Над одной клеткой стоит каретка.
Программа — пронумерованный список команд. В каждой, кроме «стоп», сказано, к какой команде перейти дальше.
| команда | что делает |
|---|---|
| поставить метку, перейти к j | |
| стереть метку, перейти к j | |
| каретку на клетку вправо / влево, перейти к j | |
| клетка пуста — к i, отмечена — к j | |
| стоп |
Единственная команда-развилка — . Порядок: сначала куда
идти, если пусто, потом — если отмечено.
программа
Каретка — над самой левой меткой ряда из трёх меток (клетки 3–5), начинаем с команды 1.
Пиши столбиком: номер команды, клетка под кареткой, пуста она или отмечена. Шаг — одна выполненная команда, «!» тоже считается. Ленту перерисовывай после каждого V и X.
Задача: машина должна делать известное (например, «стереть ряд» или «удвоить ряд»), но одна команда в программе стёрта. Какую поставить?
Верный вариант должен подойти на всех рядах, а не на одном. На уроке хватает короткого ряда: неверные варианты ломаются сразу.
Работает со словом — строкой символов. Схема — упорядоченный список формул:
λ — пустое слово: «ничего».
Порядок формул — часть алгорифма: переставь их — получишь другой алгорифм.
схема
Слово . Каждый шаг — самое левое
заменяется на
.
Задача: дана схема и четыре описания («удваивает слово», «стирает последнюю букву»…). Какое верно?
меняет a на b и b на a
По одной формуле в строке, по порядку; заключительная — с точкой после стрелки; пустое слово — λ.
Отметка: закрыто 6 из 6 — «5», 5 — «4», 3 или 4 — «3». Исправленная задача не засчитывается — за ошибку приходит новая, добирать можно до пятёрки. В своём алгорифме ошибкой считается только первая неудачная проверка: дальше это отладка.
Практикум «Машина Поста и алгорифмы Маркова» — в общей папке и на сайте. Не успел на уроке — пройди дома: вариант будет другой, сдаётся тем же кодом.
Карточку в тетрадь можно взять с собой: на ней команды машины Поста, шаг алгорифма Маркова и приём бегунка.