Радость познания | страница 27
Однако в действительности возможности гораздо шире — я хотел бы сослаться на недавнюю статью в «Scientific American» С. Беннета и Р. Ландауэра «The Fundamental Physical Limits of Computation» («Фундаментальные физические ограничения вычислений»). Можно сделать компьютер, в котором каждый элемент, каждый транзистор может действовать как в прямом, так дополнительно и в обратном направлении, и все-таки компьютер будет работать. Все операции в компьютере можно проводить в обоих направлениях. Некоторое время вычисления продолжаются одним способом, а затем он сам считает результат недействительным, «развычисляется» и снова движется вперед — и так цикл продолжается. Если его немного переконструировать, можно заставить такой компьютер последовательно анализировать и заканчивать вычисления, чтобы он был более пригоден для расчетов вперед, а не назад.
Известно, что все допустимые вычисления можно выполнять, компилируя несколько простых элементов, например транзисторов; или, если вам нужны логические абстракции, работать с так называемой схемой NAND gate (схема НЕ-И). Такая схема требует два входных «провода» и один выходной (Рис. 6). Забудем на минуту про NOT (НЕ). Что такое схема AND (И)? Схема AND — это устройство с выходом 1, только если оба входных провода представляют 1, в противном случае его выход равен 0. Схема NOT-AND (НЕ-И) означает противоположное, таким образом, выходной провод вчитывается как 1 (то есть имеет уровень напряжения, соответствующий 1), если только оба входа не дают 1. Если же оба входных провода дают 1, то выходной провод читается как 0 (имеет уровень напряжения, соответствующий 0). На рис. 6 показана небольшая таблица входных и выходных данных для схемы NAND. Aw. В — входные данные, а С представляет выход. Если оба, А и В, равны 1, то выход есть 0, в противном случае 1. Но такое устройство необратимо: информация теряется.
Здесь я знаю только выход и не могу восстановить вход. Нельзя ждать, что устройство двинется рывком вперед, а затем вернется назад и вычислит что-нибудь правильно. Например, если мы знаем, что выход сейчас равен 1, мы не можем восстановить, произошло ли это от А = 0, В = 1, или А= 1, В = 0, или от А = 0, В = 0 — причем нельзя вернуться назад. Такое устройство представляет необратимую схему. Грандиозное открытие Беннета и независимо Фредкина состоит в том, что можно выполнять вычисления с различного рода фундаментальными схемами, например с обратимыми схемами. Проиллюстрирую их идею с помощью устройства, которое можно назвать обратимой схемой NAND. Оно имеет три входа и три выхода