Чтение онлайн

ЖАНРЫ

Вселенная Алана Тьюринга
Шрифт:

Люди лишь говорили о неких «механических правилах» для математиков, о вращении ручки какой-то «сверхъестественной машины», но никто так и не принялся за моделирование такой машины. И именно это он и намеревался сделать. И хотя на самом деле его сложно было назвать «неискушенным непрофессионалом», он принялся решать проблему в своей особой безыскусной манере, непоколебимой перед необъятностью и сложностью математики. Свою работу он начал с чистого листа.

Разумеется, уже существовали машины, которые производили операции с символами. Такой машиной была пишущая машинка. Еще в детстве Алан мечтал изобрести пишущую машинку; у миссис Тьюринг имелась печатная машинка; и он в первую очередь задал себе вопрос: что имеется в виду, когда пишущую машинку называют «механическим» устройством? Это означало лишь то, что ее ответ на каждое конкретное действие оператора, был строго определенным. Можно было заранее с предельной точностью сказать, как машина будет вести себя в случае любого непредвиденного обстоятельства. Но даже о скромном устройстве пишущей машинки можно было сказать больше. Ответ механизма должен зависеть от его текущего состояния или того, что сам Алан назвал текущей конфигурацией машины. Так, например, пишущая машинка обладает конфигурацией «нижнего регистра» и конфигурацией «верхнего регистра». Эту идею Алану удалось облечь в более общую и абстрактную форму. Его интересовали такие машины, которые в любой момент времени могли находиться в одной из конечного числа возможных «конфигураций». Таким образом, как и в случае с клавиатурой пишущей машинки, при условии существования конечного числа операций, производимых машиной, появлялась возможность дать полную оценку ее образу действий, которая не может быть изменена.

Тем не менее, пишущая машинка обладала еще одним свойством, необходимым для ее функционирования. Ее каретка могла передвигаться, эти перемещения соотносились с листом бумаги, и печать символов происходила независимо от его положения на странице. Алан включил и эту идею тоже в свое представление машины более общего вида. Она должна была обладать «заложенными» конфигурациями и возможностью перемещать свою позицию на линии печати. Действие машины не зависело от своей позиции.

Не принимая во внимание остальные ненужные детали вроде полей, контроля за линией печати и другие, эти основные идеи давали достаточное представление об устройстве пишущей машинки. Ограниченное количество возможных конфигураций и позиций, и то, каким образом клавиша знака соотносилась с печатным символом, клавиша переключения регистра – смену положения от «нижнего» к «верхнему» регистру, а также клавиша пробела и функция возврата каретки на одну позицию назад, – все эти функции являлись наиболее важными для устройства машинки. Если бы любой инженер получил подобное описание функций устройства, в результате у него получилась бы типичная пишущая машинка, не учитывая ее цвет, вес, форму и другие признаки.

Но пишущая машинка обладала слишком ограниченным набором функций, чтобы служить моделью. Несомненно, она оперировала символами, но могла лишь записывать их, а также требовала присутствия машиниста, отвечающего за выбор символов и изменения конфигураций и позиций устройства, по одному за раз. Так какой же, задавался вопросом Алан Тьюринг, была бы машина наиболее общего вида, которая могла оперировать символами? Чтобы быть машиной, она должна обладать свойством пишущей машинки: иметь заданное количество конфигураций и четко определенное действие, закрепленное за каждой из них. И при этом она должна была иметь возможность выполнять намного больше. Таким образом, он представил в своем воображении машины, которые по сути представляли собой более мощные пишущие машинки.

Для простоты описания он представил машины, имеющие лишь одну рабочую строку. Это было лишь технической особенностью устройства, которая позволяла не учитывать наличие полей и контроля линии письма. Между тем, оставалось важным, чтобы количество поступаемой бумаги было неограниченным в обе стороны. В представлении Алана каретка его супер-пишущей машинки могла перемещаться на неограниченное количество позиций вправо и влево. Для большей определенности он представил бумагу в виде ленты, разделенной на ячейки таким образом, чтобы в каждую ячейку мог записан один символ. Так машины Тьюринга обладали конечным количеством действий, при этом сохраняя возможность работать на неограниченном пространстве.

Следующей необходимой функцией для машины была возможность считывать информацию или, по словам самого Алана, «сканировать» ячейку ленты, на которой остановилось считывающее устройство. Также она должна была обладать функцией не только записи символов, но и уметь их стирать. При этом она могла переместиться только на одну ячейку за раз. В таком случае какие действия оставались для машиниста пишущей машинки? Алан действительно отметил в своей работе возможность того, что он сам называл «машинами выбора», в которых внешний оператор должен принимать решения в определенных моментах работы устройства. Вместе с тем целью его работы было создание именно автоматических машин, для работы которых не потребуется вмешательство человека. С самого начала он хотел всесторонне изучить так называемую «сверхъестественную машину». Существенной идеей для подобного устройства оставалась возможность производить решение без вмешательства человеческого суждения, воображения или интеллекта.

Любая «автоматическая машина» должна была работать сама по себе, производя считывание и запись информации, перемещаясь вперед и назад, в соответствии с тем, как она была задумана. На каждом этапе ее работы действия должны быть строго определены текущей конфигурацией и считанным символом. Для большей точности конструкция машины должна была уметь определять свое действие в случае каждой комбинации конфигурации и считанного символа:

– записать новый (заданный) символ в пустую ячейку, или оставить уже записанный символ в неизменном виде, или стереть символ и оставить ячейку пустой;

– остаться в прежней конфигурации или сменить ее на другую (заданную) конфигурацию;

– переместиться на ячейку влево, или вправо, или остаться в текущей позиции.

Если всю эту информацию, определяющую действия машины, записать, получится «таблица переходов», имеющая конечное количество действий. Такая таблица может полностью описать работу машины, и независимо от того, была ли машина сконструирована или нет, такая таблица могла представить всю необходимую информацию о ее работе. С абстрактной точки зрения, именно таблица и являлась самой машиной.

С изменениями, вносимыми в таблицу, изменялось бы и поведение самой машины. Бесконечное множество таблиц соответствовало бы бесконечному множеству возможных машин. Алану удалось воплотить неясную идею «определенного метода» или «механического процесса» в чем-то более точном – «таблице переходов».

Но даже такая простая машина могла выполнять не только суммирование. Такая машина могла производить действие распознавания, например, «найти первый символ справа». Машина с более сложной программой могла производить умножение, повторяя действие копирования одной группы единиц, при этом стирая по одной единице из другой группы, и распознавая, когда необходимо прекратить производить данные действия. Такая машина могла также производить действие принятия решений, например, она могла решить, является ли число простым или составным, делится ли оно на другое заданное число без остатка. Совершенно очевидно, что этот принцип мог быть использован самыми различными способами, чтобы представить вычисления в механистическом виде.

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

Из этого следовало, что одна машина могла воспроизводить действия, выполняемые любой другой машиной. Такое устройство Алан и назвал универсальной машиной. Она должна была считывать дескриптивные числа, зашифровывать их в таблицы, а затем производить действия этих таблиц. Универсальная машина могла выполнять любые действия, которые производила любая другая таблица… Такая машина могла выполнять любые действия, и этого было достаточно, чтобы на время крепко задуматься. Более того, такая машина имела совершенно определенный вид, и Алан разработал соответствующую таблицу для универсальной машины.

И самое главное – Алану удалось доказать, что математика никогда не будет исчерпана никаким конечным множеством операций.

Дальше он выразил наиболее важную идею для своего исследования: «Действия компьютера в любой момент времени строго определены символами, которые он считывает также, как и его «состояние» в текущий момент. Мы можем предположить, что существует некоторый предел B для числа символов или ячеек, которые компьютер может считывать за одну единицу времени. Чтобы считать следующие символы, ему придется сделать шаг к следующей ячейке. Также предположим, что число подобных состояний, которые должны быть приняты во внимание, также конечно. Причины тому по своей природе схожи с теми, что возникают при ограничении количества символов. Если мы допустим бесконечное число состояний, некоторые из них будут «в некоторой степени похожими» и вследствие этого могут быть перепутаны. Следует еще раз подчеркнуть, что подобное ограничение не оказывает серьезного влияния на производимое вычисление, поскольку использования более сложных состояний можно попросту избежать, записав больше символов на рабочую ленту».

Слово «компьютер» здесь использовалось в своем значении, относящемся к 1936 году: лицо, выполняющее вычисления. В другом месте своей работы он обратился к идее, что «человеческая память неизбежно является ограниченным ресурсом», но эту мысль он выразил в ходе своего размышления о природе человеческого разума. Его предположение, на котором основывались его доводы о том, что состояния были исчислимы, было довольно смелым предположением. Особенно примечательно это было тем, что в квантовой механике физические состояния могли быть «в некоторой степени похожими». Далее он продолжил рассуждать о природе вычислений: «Представим, что производимые компьютером операции разложены на «простые операции», настолько элементарные, что невозможно представить дальнейшего их разложения на еще более простые операции. Каждая такая операция несет в себе некоторое изменение в физической системе, которую представляют собой компьютер и его лента. Нам известно состояние системы при условии, что мы знаем последовательность символов на рабочей ленте, которую считывает компьютер (возможно, в особом установленном порядке), а также состояние компьютера. Мы можем предположить, что в ходе простой операции не может быть изменено больше одного символа. Любые другие изменения могут быть разложены на более простые изменения подобного вида. Ситуация относительно ячеек с изменяемыми таким образом символами точно такая же, как и в случае со считанными ячейками. Таким образом, мы можем без ограничения общности предположить, что ячейки с измененными символами равнозначны считанным ячейкам.

Поделиться с друзьями: