Игра в имитацию
Шрифт:
Несколько лет назад я занимался изучением теоретических возможностей и ограничений цифровых вычислительных машин. Я обдумывал машину с центральным механизмом и бесконечной памятью, хранящейся на бесконечной ленте. Такой тип машины представлялся мне достаточно общим. Я пришел к нескольким выводам, и один из моих выводов заключался в том, что идеи процесса «приближенного подсчета» и «машинного процесса» были синонимичными. Выражение «машинный процесс», конечно же, означает такой процесс, который мог бы выполняться машиной, обдумываемой мной… Такие машины, как АВМ, можно считать практическими версиями машины этого типа. По крайней мере, аналогия очень близкая.
У всех цифровых вычислительных
Алан рассматривал различные серьезные предложения по сохранению данных, считая, что «обеспечение надлежащего хранилища — ключ к цифровой вычислительной машине».
По моему мнению, эта проблема создания большой памяти, доступной в разумно короткий срок, гораздо более важная, чем проблема выполнения таких операций, как умножение на высокой скорости. Скорость необходима, если машина должна работать достаточно быстро, чтобы быть коммерчески востребованной, тогда как большая память необходима, если машина должна быть способна на нечто большее, нежели довольно простые операции. Так что емкость запоминающего элемента (памяти) — более фундаментальное требование.
Тьюринг продолжал давать краткое описание «создания мозга»:
Давайте теперь вернемся к аналогии теоретических вычислительных машин с бесконечной лентой. Можно создать одну особую машину такого типа, которая бы делала все. На самом деле, она бы работала, как модель любой другой машины. Такую особую машину можно назвать универсальной машиной; она работает довольно простым образом. Определившись, какую машину мы хотели бы имитировать, мы наносим информацию с ее описанием в виде отверстий на ленту универсальной машины. Эта описание объясняет, что машине следует делать при том или ином сценарии настройки. Универсальной машине останется только «сверяться» с этим описанием, чтобы узнать, что ей следует делать на каждом этапе. Таким образом, сложность имитируемой машины будет сосредоточена на ленте, а не в конструкции самой универсальной машины.
Учитывая свойства универсальной машины вкупе с тем фактом, что машинный процесс и процесс приближенного вычисления синонимичны, можно сказать, что универсальная машина = это такая машина, которая, при условии обеспечения надлежащими командами может выполнять любое приближенное вычисление. Этим свойством обладают такие цифровые вычислительные машины, как АВМ. Фактически они являются практическими версиями универсальной машины. У них есть некий центральный узел электронных элементов и большая память. Когда требуется решить какую-либо задачу, производится настройка соответствующих команд, хранящиеся в памяти АВМ, на ее выполнении, и вычислительный процесс запускается.
Алан отдавал предпочтение большой, быстрой памяти, при этом считая, что система аппаратных средств («железо») должна быть настолько простой, насколько это возможно. В последнем требовании выражался его «островной» менталитет, склонный все делать с наименьшими отходами. Но оба эти условия должны были обеспечивать универсальность машины. Любая идея Алана всегда подразумевала, что все действия в плане усовершенствования процесса или удобства для пользователя следовало выполнять посредством мышления, а не оборудования, с помощью команд (программы), а не «железа».
В его философии представлялось расточительностью, если не
По схожим причинам в его докладе не делалось особого акцента на том, что АВМ должна была использовать двоичную систему счисления. Алан констатировал преимущество двоичного представления информации на ленте (перфокарте), когда переключатели могли представлять 1 и 0 режимами «включено» и «выключено». И на этом все, за исключением разве лаконичного заявления о том, что для ввода/вывода чисел в машине использовалась обычная десятичная запись, а процесс их преобразования должен быть представлен в «практически невидимой форме». В беседе, состоявшейся в 1947 г., Алан конкретизировал этот кратчайший из всех возможных комментариев. Суть была в том, что универсальность машины позволяла конвертировать числа в самой машине в двоичный формат, если это отвечало технологической концепции. Использовать двоичные числа в кассовом аппарате было бы некорректно и нецелесообразно, так как преобразование чисел для ввода/вывода было более проблемным и хлопотным, чем оно того стоило.
Последнее утверждение звучит парадоксально, но это — лишь следствие того факта, что эти машины можно спроектировать так, чтобы они выполняли любое действие по приближенному подсчету в результате запоминания соответствующих команд. В частности, можно сделать такую машину, которая бы выполняла преобразование из двоичной формы в десятичную. Например, в случае с АВМ предоставление преобразователя (конвертера) достигается всего лишь добавлением двух дополнительных линий задержки в память. Подобная ситуация весьма типична для АВМ. Есть много мелких «привередливых» деталей, за которыми нужен уход и которые в обычной инженерной/конструкторской/практике потребовали бы создания особых схем. Мы можем справиться с такими проблемами, обойдясь без модификации самой машины, посредством одной голой «бумажной» работы, сводящейся в конечном итоге к вводу соответствующих команд.
Это было логично и безусловно понятно математикам, знакомым с двоичными числами, по меньшей мере, три сотни дел. Для других людей факт мелкие «привередливые» детали оборачивались головной болью для других людей. В частности, для инженеров-конструкторов было практически откровением то, что концепцию чисел можно было отделить от их представления в десятичной форме. Многие люди воспринимали саму «двоичную» арифметику АВМ, как необычное и чудесное новаторское решение. И хотя Алан был абсолютно прав, усматривая в этом частный момент, легко себе представить, какие трудности ему доводилось испытывать в общении с определенным сортом людей, которые должны были финансировать, организовывать и собирать его машину.