
Лекция 13. Абстрактная вычислительная машина
13.1. Модельное представление алгоритма
Стремление сделать понятие алгоритма достаточно отчетливым и доступным изучению математическими средствами привело к разработке точных концепций алгоритма. В настоящее время известны ряд таких концепций (машины Поста, Тьюринга, Минского, нормальные алгоритмы Маркова, рекурсивные функции и т.д.), причем все эти концепции равнообъемны.
Виртуальные (умозрительные) конструкции Тьюринга-Поста остаются ярчайшими образцами научного предвидения; именно на абстрактных математических моделях, представленных этими машинами, было строго доказано существование универсальных вычислительных машин. Более того, и по сей день в теории алгоритмов машина Тьюринга постоянно используется в качестве основной модели для выяснения сущности таких понятий, как “вычислительный процесс”, “алгоритм”, “программа”, а также для выяснения связи между алгоритмами и вычислительными машинами. Хотя, как упомянуто выше, возможны и другие абстрактные модели вычислительных машин, отличные от машины Тьюринга, тем не менее все они равносильны друг другу (а, значит, и тьюринговой модели) в следующем смысле: класс проблем, которые можно решать на моделях одного типа, в точности совпадает с классом проблем, которые можно решать на моделях другого типа, в частности, на машинах Тьюринга. Именно благодаря этому в математических категориях приобретают свой точный смысл и решаются два принципиальных вопроса, которые кратко можно сформулировать так: что могут делать машины? Как они это делают?
Первый вопрос направлен на выяснение “интеллектуальных” возможностей машины. Его актуальность связана, в частности, с тем, что не все, а точнее, очень мало из области нашей человеческой деятельности удается представить в виде алгоритма. Подчеркнем, что трудности алгоритмизации не связаны с какими-либо запретами принципиального характера, а обусловлены “всего лишь” ограниченными возможностями самого человека.
Здесь уместно привести высказывание Э. Дейкстры, одного из основоположников структурного программирования: “… человек соображает медленно, а емкость его памяти очень мала, и ему следует получше научиться жить в таких условиях, учитывать ограниченность своих возможностей и относиться к ней с полным уважением, а не пытаться игнорировать ее, так как такие тщеславные попытки будут обречены на неудачу”.
Машина Тьюринга была предложена в качестве модели алгоритма в 30-е годы нашего столетия. Она была придумана не для того, чтобы производить на ней реальные вычисления, а для того, чтобы показать, что любой сколь угодно сложный алгоритм можно построить из очень простых процессов (операций), не допускающих какой-либо двусмысленности в их толковании. При этом сами операции и переход от одной операции к другой выполняются автоматически, с помощью простых технических средств.
13.2. Машина Тьюринга
Машина
состоит из трех частей (рис. 13.1): ленты,
головки и управляющего устройства.
Лента бесконечна в обе стороны, разбита
на ячейки. В каждой ячейке может быть
записана только одна буква из алфавита
машины A = {a1,
…, ak,
…, aK}.
Отсутствие буквы в ячейке обозначается
специальным (“пустым”) символом. Головка
всегда расположена над некоторой ячейкой
ленты. Она может читать и писать буквы,
стирать их, а также перемещаться вдоль
ленты. Головка на каждом шаге работы
находится в одном из состояний, образующих
конечное множество Q = {q1,
…, qm,
…, qM}*.
Среди состояний выделяются начальное
и заключительное
.
Рис. 13.1. Концептуальная схема машины Тьюринга
Символы R, L, H обозначают направления движения головки соответственно вправо, влево, команду головке остаться неподвижной; P условное обозначение устройства, управляющего движением головки.
Обычно,
когда рассматривают функционирование
машины Тьюринга, считается, что в
начальный момент времени на ленте
записано некоторое входное слово,
состоящее из последовательности
символов, головка стоит в некотором
стандартном положении, например, напротив
самого левого символа входного слова,
а управляющее устройство находится в
начальном состоянии, обозначенного,
скажем, символом
.
Подобное начальное положение часто
называется термином начальная конфигурация
машины.