погрешности.
В силу этого требования большие, высокосложные вычислительные машины предстают перед нами в совершенно новом свете. Это делает, в частности, сравнение вычислительных машин с деятельностью живых организмов не лишенным определенного смысла.
Принцип моделирования
Все вычислительные автоматы могут быть разделены на два больших класса на основании признака, который непосредственно очевиден и который, как вы увидите несколько ниже, переносится и на живые организмы. Это классы моделирующих и цифровых машин.
Рассмотрим сначала принцип моделирования. Действие вычислительной машины может основываться на представлении чисел посредством определенных физических величин. В качестве таких величин мы можем, например, использовать силу электрического тока, величину электрического потенциала или число градусов угла поворота диска (возможно, с учетом числа полных оборотов, сделанных диском) и т. д. Тогда такие операции, как сложение, умножение и интегрирование, можно производить, подбирая различные физические процессы, воздействующие на эти величины нужным образом. Токи можно перемножать, пропуская их по обмоткам обычного ваттметра; если якорь ваттметра связать с реостатом, то за счет поворота якоря (возникающего в результате прохождения перемножаемых токов по его обмоткам) можно получить изменение сопротивления реостата; наконец, включив этот реостат в цепь, в которой некоторый независимый источник тока поддерживает постоянную разность потенциалов, можно изменение сопротивления преобразовать в изменение тока в этой цепи. Весь агрегат представляет собой «черный ящик», в который вводятся два тока и который выдает ток, равный их произведению. Разумеется, вам известны и многие другие способы, с помощью которых разнообразные естественные процессы можно использовать для выполнения умножения и многих других математических операций.
Первой хорошо смонтированной большой вычислительной машиной, которая когда-либо была сделана, явилась моделирующая машина – дифференциальный анализатор В. Буша. Кстати сказать, эта машина производила вычисления не с помощью электрических токов, а с помощью вращающихся дисков. Я не буду рассматривать остроумные приемы, позволявшие различным образом сочетать углы поворота дисков машины в соответствии с характером выполняемых математических операций.
Я не буду пытаться перечислять, классифицировать или систематизировать все многообразие принципов моделирования и механизмов, которые можно использовать для вычислений. Их чрезвычайно много. Руководящим принципом, без которого невозможно понять ситуацию, является классический принцип всей теории передачи сообщений Communication theory – принцип увеличения отношения «сигнал/шум». Это означает, что во всякой процедуре моделирования критическим является вопрос, как велики неконтролируемые флуктуации механизма, составляющие «шум», по сравнению со значимыми «сигналами», выражающими числа, над которыми оперирует машина. Пригодность любого принципа моделирования зависит от того, насколько малой можно сделать относительную величину неконтролируемых флуктуаций – «уровень шума», применяя данный принцип.
Выразим это иначе. Не существует ни одной моделирующей машины, которая действительно давала бы произведение двух чисел. То, что она дает, – это произведение плюс небольшая, но неизвестная величина, которая выражает случайный шум механизма и протекающих в нем физических процессов. Вся проблема заключается в том, чтобы понизить эту величину. Вся техника, связанная с переработкой информации, подчиняется этому принципу. Например, наличие этого принципа привело к тому, что получили распространение сложные и неуклюжие на вид механические устройства вместо более простых и изящных электрических. (Такое положение существовало, по крайней мере, на протяжении большей части последних 20 лет. Сравнительно недавно в некоторых приложениях, где требуется лишь весьма ограниченная точность, электрические устройства вновь вышли на первый план.) Если сравнивать механические и электрические моделирующие процессы, то в общих чертах справедливо следующее. Механические устройства могут доводить отношение уровня шума к «максимальному уровню сигнала» до величины порядка 1:104 или 1:105. В электрических устройствах это отношение редко бывает лучше, чем 1:102. Разумеется, эти отношения характеризуют ошибки в элементарных операциях вычисления, а не конечные результаты. Очевидно, что в последних ошибки будут существенным образом больше.
Цифровой принцип
Цифровая машина работает по хорошо известному методу представления чисел как совокупностей цифр. Это, кстати, та же процедура, которую все мы применяем в наших индивидуальных механических вычислениях, когда мы выражаем числа в десятичной системе счисления. Строго говоря, нет необходимости проводить вычисление непременно в десятичной системе. В качестве основания для цифрового обозначения чисел можно использовать любое целое число, большее единицы. Десятичная система с основанием является наиболее употребительной, и все цифровые машины, построенные до настоящего времени, работают на основе этой системы. Однако кажется вероятным, что в конце концов будут доказаны преимущества двоичной системы (с основанием 2). В настоящее время строится ряд цифровых машин, в которых используется двоичная система[32]. Основными операциями в цифровой машине обычно являются четыре действия арифметики: сложение, вычитание, умножение и деление. На первый взгляд может показаться, что цифровая машина выполняет эти действия с абсолютной точностью (в отличие от моделирующих машин, о которых говорилось выше). Однако, как мы увидим ниже, это неверно.
Возьмем умножение. Цифровая машина, производя умножение одного десятизначного числа на другое десятизначное число, даст двадцатизначное число – их произведение – без какой бы то ни было ошибки. На этом этапе ее точность абсолютна, даже несмотря на то, что электрические и механические компоненты арифметического органа машины как таковые обладают ограниченной точностью. До тех пор, пока не вышла из строя какая-нибудь компонента, т. е. до тех пор, пока действие каждой компоненты сопровождается лишь флуктуациями в допустимых пределах, результат будет абсолютно точным. В этом, разумеется, состоит значительное и характерное преимущество цифровой процедуры. Ошибка как явление, сопровождающее нормальную операцию, а не только лишь (как указывалось выше) в виде случайности, происходящей вследствие какой-то конкретной неисправности, тем не менее вкрадывается; это происходит следующим образом. Абсолютно точным произведением двух 10-значных чисел является 20-значное число. Если машина построена для того, чтобы работать только с 10-значными числами, ей приходится отбрасывать последние 10 цифр этого 20-значного числа и оперировать только с первыми десятью знаками. Здесь можно не рассматривать то небольшое, хотя и распространенное в практике уточнение, которое дает так называемое «округление» числа. Если же машина может оперировать с 20-значными числами, то умножение двух таких чисел даст 40 знаков, и снова 20 цифр придется отбросить и т. д. Это означает, что, каково бы ни было максимальное число знаков, на которое рассчитана машина, в процессе последовательных умножений этот максимум рано или поздно будет достигнут. И как только он будет достигнут, следующее умножение даст число цифр, которое превосходит этот максимум, и в произведении будет сохранена лишь половина его цифр (первая половина цифр, соответствующим образом округленная). Поэтому ясно, что ситуация с максимальным числом знаков, равным 10, типична, и мы с полным основанием можем воспользоваться ею для того, чтобы разъяснить суть дела.
Таким образом, необходимость округления (точного) 20-значного произведения до установленного (максимального) числа из десяти цифр приводит