Исполнитель, выполняющий любой реализуемый алгоритм, называется универсальным дискретным преобразователем информации. Можно ли создать такой универсальный исполнитель? Ответ на этот вопрос пока точно не известен. Математики сконструировали несколько абстрактных машин, которые, возможно, могут выполнить любой реализуемый алгоритм. Наиболее известными из них являются машины Тьюринга и Поста и нормальные алгоритмы Маркова. Соответствующие утверждения о том, что эти устройства могут реализовать любой теоретически реализуемый алгоритм, носят название тезисов Черча, Поста иМаркова. Ни доказать, ни опровергнуть эти тезисы до сих пор не удалось.
Машина Тьюринга представляет собой бесконечную в обоих направлениях ленту, разделённую на отдельные клетки. В начальный момент времени в каждой клетке записан либо символ алфавита
Рис. 1. Возможная реализация машины Тьюринга |
Головка машины Тьюринга может находиться в одном из состояний
- считывать из клетки значение
ak ; - в соответствии с инструкцией записать в клетку другой символ
al (возможно – тот же самый); - перейти в другое состояние
qj (возможно – в то же самое); - сдвинуться на одну клетку влево
(d = L), вправо(d = R) или остаться в той же клетке(d = S).
Алгоритм работы машины Тьюринга можно записать в виде конечной последовательности «пятерок» вида
Лента машины Тьюринга аналогична внешней памяти современных компьютеров, в то время как текущему состоянию этой машины можно поставить в соответствие информацию из оперативной памяти компьютера.
Результатом работы машины Тьюринга может быть:
- результативная остановка (машина нашла инструкцию
d = S и остановилась в той же клетке); - безрезультативная остановка (отсутствует очередная инструкция
qj, al , с которой столкнулась машина); - зацикливание (ни одна из инструкций, выполняемых машиной, не приводит к её остановке, – машина работает бесконечно).
Машина Поста также состоит из бесконечной ленты, разделённой на клетки, и из считывающей головки. В каждую клетку ленты может быть записан либо символ «0», либо символ «1». Считывающая головка на каждом шаге считывает или записывает символ в текущую клетку и может перемещаться на одну клетку вправо или влево в соответствии с алгоритмом задачи. Входные данные для машины Поста записываются на ленте перед началом работы машины, а выходные данные получаются после того, как достигнута команда «Стоп».
Рис. 2. Возможная реализация машины Поста |
Каждая команда машины состоит из номера, символа, обозначающего тип команды, и номера команды, которая будет выполнена на последующем шаге. Машина Поста может выполнять следующие команды:
- L – передвинуть головку на одну клетку влево;
- R – передвинуть головку на одну клетку вправо;
- 1 – записать в клетку символ «1»;
- 0 – записать в клетку символ «0»;
- ? – выполнить команду
n1 , если в данной клетке записана «1», иn2 , если записан «0»; - S – остановить машину.
Существует три различных исхода работы машины Поста:
- результативная остановка – машина нашла команду «Стоп»;
- безрезультативная остановка – машина вынуждена выполнить запрещённую операцию – записать «0» в клетку, в которой уже записан нуль, или записать «1» в клетку с единицей;
- зацикливание – машина не может найти команду «Стоп» или запрещённую операцию и работает бесконечно долго.
Машина Поста является упрощённой моделью современного компьютера, а программы для этой машины – далеким предком большинства современных языков программирования.
Нормальный алгоритм Маркова преобразовывает по определённым правилам начальную строку
Пусть алфавит Условимся, что в
Пусть α и β – строки, составленные из
, то есть
![]() |
Отдельные строки этой схемы называются формулами подстановки.
Работа нормальной схемы (нормального алгоритма Маркова) состоит из отдельных шагов. На первом шаге исходное слово
На очередном,
Если ни одно из слов
Нормальные алгоритмы Маркова заканчиваются результативной остановкой, если схема