машины состоит в том, чтобы давать ответы, которые в соответствующей обстановке дал бы человек.
III. Машины, привлекаемые к игре
Вопрос, поставленный в разделе I, не станет совершенно точным до тех пор, пока мы не укажем, что именно следует понимать под словом «машина». Разумеется, нам бы хотелось, чтобы в игре можно было применять любой вид инженерной техники. Мы склонны также допустить возможность, что инженер или группа инженеров могут построить машину, которая будет работать, но удовлетворительного описания работы которой они не смогут дать, поскольку метод, которым они пользовались, был в основном экспериментальным. Наконец, мы хотели бы исключить из категории машин людей, рожденных обычным образом. Трудно построить определение так, чтобы оно удовлетворяло этим трем условиям. Можно, например, потребовать, чтобы все конструкторы машины были одного пола; в действительности, однако, этого недостаточно, так как, по-видимому, можно вырастить законченный индивидуум из одной-единственной клетки, взятой (например) из кожи человека. Сделать это было бы подвигом биологической техники, заслуживающим самой высокой похвалы, но мы не склонны рассматривать этот случай как «построение мыслящей машины».
Сказанное наводит нас на мысль отказаться от требования, согласно которому в игре следует допускать любой вид техники. Мы еще больше склоняемся к этой мысли в силу того обстоятельства, что наш интерес к «мыслящим машинам» возник благодаря машине особого рода, обычно называемой «электронной вычислительной машиной» или «цифровой вычислительной машиной». Поэтому мы разрешаем принимать участие в нашей игре только цифровым вычислительным машинам.
На первый взгляд, это ограничение кажется весьма сильным. Я постараюсь показать, что в действительности дело обстоит не так. Для этого мне придется дать краткий обзор природы и свойств этих вычислительных машин.
Можно также сказать, что отождествление машин с цифровыми вычислительными машинами – равно как и наш критерий «мышления» – должно быть признано совершенно неудовлетворительным, если (вопреки моему убеждению) окажется, что цифровые вычислительные машины не в состоянии хорошо играть в имитацию.
Целый ряд вычислительных машин уже находится в действии, и естественно возникает вопрос: «А почему бы нам, вместо того чтобы сомневаться в правильности наших рассуждений, не поставить эксперимент? Удовлетворить условиям игры было бы нетрудно. В качестве задающих вопросы можно было бы использовать много различных людей, и полученные статистические данные показали бы, как часто задающим вопросы удавалось прийти к правильному заключению».
Коротко на этот вопрос можно ответить так: нас интересует не то, будут ли все цифровые вычислительные машины хорошо играть в имитацию, и не то, будут ли хорошо играть в эту игру те вычислительные машины, которыми мы располагаем в настоящее время; вопрос заключается в том, существуют ли воображаемые вычислительные [4] машины, которые могли бы играть хорошо. Но это только краткий ответ. Ниже мы рассмотрим этот вопрос в несколько ином свете.
IV. Цифровые вычислительные машины
То, что мы имеем в виду, говоря о цифровых вычислительных машинах, можно пояснить следующим образом. Предполагается, что эти машины могут выполнять любую операцию, которую мог бы выполнить человек-вычислитель. Мы считаем, что вычислитель придерживается определенных, раз навсегда заданных правил и не имеет права ни в чем отступать от них. Мы можем также считать, что эти правила собраны в книге, которая заменяется другой, когда вычислитель приступает к новой работе. У человека-вычислителя имеется также неограниченный запас бумаги, на которой он производит вычисления. Кроме того, он может выполнять операции сложения и умножения с помощью арифмометра – это несущественно.
Если данное выше пояснение принять за определение, то возникает угроза того, что наше рассуждение окажется движущимся в замкнутом круге. Чтобы избежать этой опасности, мы приведем перечень тех средств, с помощью которых достигается требуемый эффект. Можно считать, что цифровая вычислительная машина состоит из трех частей:
1) запоминающего устройства;
2) исполнительного устройства;
3) контролирующего устройства.
Запоминающее устройство – это склад информации. Оно соответствует бумаге, имеющейся у человека-вычислителя, независимо от того, является ли эта бумага той, на которой производятся выкладки, или той, на которой напечатана книга правил. Поскольку человек-вычислитель некоторые расчеты проводит в уме, часть запоминающего устройства машины будет соответствовать памяти вычислителя.
Исполнительное устройство – это часть машины, выполняющая разнообразные индивидуальные операции, из которых состоит вычисление. Характер этих операций изменяется от машины к машине. Обычно можно проделывать весьма громоздкие операции, например: «Умножить 3 540 675 445 на 7 076 345 687», однако на некоторых машинах можно выполнять только очень простые операции, вроде таких: «написать 0».
Мы уже упоминали, что имеющаяся у вычислителя «книга правил» заменяется в машине некоторой частью запоминающего устройства, которая в этом случае называется «таблицей команд». Обязанность контролирующего устройства – следить за тем, чтобы эти команды выполнялись безошибочно и в правильном порядке. Контролирующее устройство сконструировано так, что это происходит непременно.
Информация, хранящаяся в запоминающем устройстве, разбивается на небольшие части, которые распределяются по ячейкам памяти. Например, для некоторых машин такая ячейка может состоять из десяти десятичных цифр. Тем ячейкам, в которых хранится различная информация, в некотором определенном порядке приписывают номера. Типичная команда может гласить:
«Число, хранящееся в ячейке 6809, прибавить к числу, хранящемуся в ячейке 4302, а результат поместить в ту ячейку, где хранилось последнее из чисел».
Нет необходимости говорить о том, что если все это выразить на русском языке, то машина не выполнит такую команду. Более удобно было бы закодировать эту команду в виде, например, числа 6809430217. Здесь 17 говорит о том, какую из различных операций, которые можно выполнять с помощью данной машины, следует проделать с числами, хранящимися в указанных ячейках. В данном случае имеется в виду описанная выше операция, т. е. операция «число… прибавить к числу…». Следует заметить, что сама команда занимает 10 цифр и, таким образом, заполняет одну ячейку памяти, что весьма удобно. Обычно контролирующее устройство выбирает необходимые команды в том порядке, в котором они расположены, но иногда могут встречаться и такие команды:
«Теперь выполнить команду, хранящуюся в ячейке 5606, и продолжать оттуда»
или же:
«Если ячейка 4505 содержит 0, выполнить команду, хранящуюся в ячейке 6707, в противном случае продолжать идти по порядку».
Команды этих последних типов очень важны, так как они позволяют повторять снова и снова некоторую последовательность операций до тех пор, пока не будет выполнено определенное условие, причем для повторения данной последовательности операций не приходится прибегать к новым командам. Машина просто выполняет вновь и вновь одни и те же команды. Воспользуемся аналогией из повседневной жизни. Допустим, что мама хочет, чтобы Томми по дороге в школу заходил каждое утро к сапожнику, для того чтобы справиться, не готовы