У меня есть одно свойство — я совершенно спокойно уживаюсь со своими сомнениями, и колебаниями, и незнанием. Думаю, гораздо интереснее жить, не зная чего-то, чем иметь ответы, которые могут оказаться неправильными. У меня есть приблизительные ответы, и сносные убеждения, и различная степень уверенности относительно различных вещей, но у меня нет абсолютной уверенности относительно всего сущего, я многого не знаю, например, имеет ли смысл вопрос, почему мы здесь, и что такой вопрос мог бы означать. Я мог бы немного подумать об этом, но, если чувствую бесперспективность этих размышлений, переключаюсь на что-нибудь другое. Ведь я и не должен знать ответ на любой вопрос. Я не чувствую страха, не зная, например, таких вещей, почему мы затерялись в загадочной Вселенной, не имея какой-либо цели, кроме пути, нам уготованного. Все это далеко от понимания — и это совершенно меня не пугает.
2. Компьютеры будущего
Введение
Для меня большая честь и удовольствие присутствовать здесь в качестве докладчика в память об ученом, которого я исключительно уважал и восхищался — профессора Нишины. Приехать в Японию и рассказывать о компьютерах — это все равно что читать проповедь Будде. Но я много размышлял о компьютерах — и это единственное, о чем я мог думать, когда меня пригласили сделать доклад.
Первое, что я хотел бы сказать, — я не собирался говорить о компьютерах. Я хочу рассказать об их будущем. Однако наиболее важные разработки будущего составляют предмет, о котором я не буду говорить. Например, существует великое множество работ, посвященных разработке более интеллектуальных машин — машин, умеющих лучше взаимодействовать с людьми, так чтобы ввод и вывод данных осуществлялся с меньшими усилиями по сравнению с тем сложным программированием, которое мы имеем сегодня. Это часто называют искусственным интеллектом, но мне этот термин не нравится. Возможно, неинтеллектуальные машины могут работать даже лучше, чем интеллектуальные.
Другая проблема состоит в стандартизации языков программирования. Сегодня их существует слишком много, и мне кажется разумной идея просто выбрать один из них. (Я не решаюсь упомянуть, что в Японии должно существовать больше стандартных языков — поскольку у вас имеется четыре способа письма, я думаю, что попытки стандартизации чего-либо здесь, очевидно, приведут к еще большему числу стандартов, а не к меньшему!)
Другая интересная проблема будущего состоит в том, что лучше выполнять работу на автоматически отлаженных программах, но об этом я тоже не буду говорить. Отладка означает поиск ошибок в программе или в машине; но на редкость трудно отлаживать программы, когда они становятся все более сложными.
Еще одно направление усовершенствования — сделать машины трехмерными вместо построенных на чипах, расположенных на плоскости. Это должно быть сделано поэтапно, а не сразу — вы можете создать несколько слоев, а затем добавлять постепенно все большее их число. Другое важнейшее устройство — прибор, автоматически обнаруживающий дефектные элементы на чипе; тогда чип будет автоматически перезаписывать сам себя так, чтобы избежать дефектных элементов. В настоящее время, когда мы пытаемся делать большие чипы, в них часто образуются трещины или дефектные участки, и мы выбрасываем целиком весь чип. Если мы сможем использовать действующую часть чипа, эффективность станет намного выше. Я упоминал, что попытаюсь рассказать вам об известных мне реальных проблемах машин будущего. Однако то, о чем я хочу говорить, — простые, небольшие, технически и физически добротные вещи, которые можно в принципе сделать в соответствии с физическими законами. Иначе говоря, я хотел бы обсудить механизм, а не способ, которым мы используем машины.
Я буду рассказывать о некоторых технических возможностях для создания машин. Будут затронуты три темы. Одна — это машины с параллельной обработкой, представляющие устройства очень близкого будущего, почти настоящего, которые разрабатываются в настоящее время. Более отдаленное будущее — это вопрос о потреблении энергии машинами, который на первый взгляд кажется ограниченным, но в действительности это не так. И в заключение я буду говорить о размерах.
Всегда лучше иметь машины поменьше, и вопрос заключается в том, насколько малым может стать допустимый размер, чтобы в принципе машины согласовывались с законами природы? Я не буду обсуждать, какова и в чем состоит актуальность каждой из перечисленных проблем в будущем. Это зависит от экономических и социальных условий, и я не собираюсь ломать над ними голову.
Параллельные компьютеры
Первая тема касается параллельных компьютеров. Почти все современные компьютеры, обычные компьютеры, работают на компоновке или архитектуре, придуманной фон Нейманом[6], в которой существуют очень большая память, где хранится вся информация, и одна центральная область, в которой проводятся простые вычисления.
Мы берем одно число из одного отдела памяти, а другое — из другого отдела памяти, посылаем их в центральное арифметическое устройство для их сложения, а затем отсылаем ответ обратно в некоторое место памяти. Существует, по сути, один центральный процессор, который работает очень-очень быстро и очень напряженно, в то время как память в целом не участвует в процессе и представляет быстрый картотечный ящик с файловой структурой, который очень редко используется. Совершенно очевидно, что чем больше процессоров работают одновременно, тем быстрее мы должны выполнять вычисления. Но здесь возникает затруднение: допустим, кому-то, работающему на одном процессоре, понадобится та же самая информация из памяти, что и другому, пользующемуся другим процессором, — и тогда все перепутывается. В связи со сказанным очень трудно разместить параллельно для работы много процессоров.
Некоторые шаги в этом направлении были предприняты на так называемых векторных процессорах. Если иногда вам необходимо выполнить одинаковые действия на многих различных элементах, вы, возможно, выполняете их одновременно. В принципе можно написать правильные программы стандартным способом, и тогда интерпретирующая программа автоматически поймет, когда полезно использовать эту векторную возможность. Такая идея применяется в компьютерах американской фирмы «Cray» и в японских «суперкомпьютерах». Другой проект состоит в том, чтобы взять большое число эффективно работающих относительно простых (но не слишком упрощенных) компьютеров и соединить их вместе в некоторую структуру. Тогда все они могут работать, составляя часть схемы. Каждый компьютер является совершенно независимым, причем они будут передавать информацию от одного к другому, когда один или другой в ней нуждается. Такого рода схема реализована, например, в Калтехе (Калифорнийском технологическом институте), в гиперкубе «Cosmic Cube», и представляет только одну из многочисленных возможностей. Сегодня многие конструируют такие машины. Другая возможность — распределить очень большое число очень малых центральных процессоров вокруг памяти. Каждый процессор общается только с малой частью памяти, и существует детально разработанная система взаимосвязей между ними. Примером такой машины является the Connection Machine (машина с переменной структурой связей с параллельными процессорами), созданная в MIT (Массачусетсом технологическом институте). Она имеет 64 000 процессоров и систему маршрутизации, в которой каждые 16 могут переговариваться с другими 16, и, таким образом, получается 4000 возможностей маршрутного соединения.
Многие научные задачи, такие, например, как прохождение волн через некоторые материалы, можно было бы очень легко решить, применив параллельное соединение процессоров. Дело в том, что происходящее в данной части пространства в некоторый момент времени может быть определено локально — нужно только знать давление и напряжение от соседних объемов. Ответ можно вычислить одновременно для каждого объема, и эти граничные условия соединяются с различными объемами. Вот почему такой тип модели работает для решения подобных задач. Если задача достаточно обширна, следует выполнить большой объем вычислений. Параллельное соединение компьютеров может значительно ускорить время решения задачи, и этот принцип применяется не только в решении научных задач.
Куда подевалось предубеждение двухлетней давности, будто параллельное программирование трудновыполнимо? Выходит, то, что было сложным и почти невыполнимым, вскоре станет обычной программой и продемонстрирует на примере этой программы эффективность параллельного соединения компьютеров. Принимая во внимание, что мы имеем возможность параллельных вычислений, нужно полностью переписать программы, по-новому переосмыслив, что происходит внутри машины. Невозможно эффективно использовать старые программы. Это колоссальное неудобство для большинства промышленных приложений, из-за этого идея может натолкнуться на значительное сопротивление. Но большие программы, как правило, дело ученых или специалистов — умных и способных программистов. Они любят свое дело и горят желанием начать все заново. Они готовы переписать программы, если это позволит сделать их более эффективными. Итак, следует перепрограммировать тяжелые, огромные программы новым способом, и когда все в конце концов придут к этому, появится все больше и больше новых программ и программисты научатся с ними работать.
Снижение энергетических потерь
Вторая тема, о которой я хочу рассказать, — это энергетические потери в компьютерах. Тот факт, что они должны охлаждаться, является очевидным ограничением для создания больших компьютеров — уже немало усилий потрачено для охлаждения такой машины. Я хотел бы объяснить, что это просто результат плохой разработки и не содержит ничего фундаментального. Внутри компьютера каждый бит информации контролируется проводом, находящимся под тем или иным напряжением. Это называется «один бит», и нам нужно менять напряжение на проводе от одного значения до другого, увеличивать или снимать с него заряд. Я приведу аналогию с водой: мы наполняем сосуд водой до определенного уровня или опустошаем его до другого уровня. Это только аналогия — если вам нравится более реалистическая задача с подачей электричества, вы можете придумать более точную электрическую схематику. То, что мы сделаем сейчас, есть аналог происходящего в случае с водой: наполним сосуд, наливая в него воду до верхнего края
Это аналогично тому, как объяснял мистер Беннет, управляя автомобилем, — он начинает двигаться при включении зажигания и останавливается при нажатии на тормоз. Каждый раз при включении зажигания и затем при нажатии на тормоз вы теряете мощность. Другой способ провести аналогию с автомобилем — обеспечение связи колес с маховиками. Когда автомобиль останавливается, скорость маховика увеличивается; таким образом, сохраняя энергию, связь может заработать, и автомобиль опять начнет двигаться. Аналог с водой будет следующим: пусть у вас есть U-образная трубка с краном в центре на ее дне, соединяющая два рукава U-образной трубки
Еще один способ — наполнить резервуар с помощью источника напряжения, который устанавливается лишь не намного выше уровня воды. Источник своевременно поднимается, когда мы заполняем резервуар
Оба последних устройства используют тем меньше энергии, чем медленнее они движутся. Действительно, схема U-образной трубки не будет работать, пока ее центральный кран не сможет открываться и закрываться медленнее, чем вода в трубке будет успевать перетекать туда и обратно. Следовательно, мои устройства должны быть медленными, я сохранил энергетические потери, но сделал устройства медленными. Фактически энергетические потери, умноженные на время, необходимое для рабочего цикла, остаются постоянными. И все-таки это оказывается очень удобным, поскольку время, показываемое часами, много больше времени цикла для транзисторов, и мы можем этим воспользоваться, чтобы понизить энергию. Кроме того, если, к примеру, мы выполняем вычисления в три раза медленнее, мы могли бы использовать одну треть энергии три раза за время, которое содержит в девять раз меньшую мощность, чем должна растрачиваться. Может быть, это стоящая мысль. Может быть, при конструировании с применением параллельного соединения компьютеров или при других способах работы мы затратим немного больше времени, чем при максимальной скорости цикла, сделаем машины больше, чем обычно, но при этом еще снизим энергетические потери.
Для транзистора энергетические потери, умноженные на время, затрачиваемое на работу, являются результатом умножения нескольких факторов
1. Тепловой энергии, пропорциональной температуре,
2. Длины транзистора между источником и выводом тока, деленной на скорость внутренних электронов (тепловая скорость √3kT/m);
3. Длины транзистора в единицах среднего свободного пробега электронов до соударения в транзисторе;
4. Полного числа электронов, находящихся внутри транзистора во время его работы.
Подставляя соответствующие значения всех этих величин, получим, что энергия, используемая в транзисторах, в настоящее время приблизительно в миллиард — десять миллиардов или еще больше раз тепловой энергии
А теперь представьте себе, что нам удалось сделать размер транзистора меньше средней длины свободного пробега. Тогда транзистор уже не будет работать должным образом. Он не будет вести себя так, как мы предполагаем. Это напоминает мне, как еще несколько лет назад считался непреодолимым звуковой барьер. Считалось, что самолеты не могут летать со скоростью, превышающей скорость звука, поскольку, если вы их сконструируете обычным образом и затем попытаетесь вставить скорость звука в уравнения, пропеллер не сможет работать, а крылья не будут обладать подъемной силой, и вообще все будет работать неправильно. Тем не менее самолеты летают со скоростью, превышающей скорость звука. Необходимо понимать, что правильные законы подчиняются правильным условиям, и конструировать приборы необходимо согласно этим законам. Нельзя ждать, что старые разработки будут работать в новых обстоятельствах. В
Уменьшение размеров
Итак, моя третья тема — размер компьютерных элементов, и здесь мои предложения носят исключительно теоретический характер. Первое, о чем вам следует беспокоиться, когда изделие становится очень маленьким, — это броуновское движение[7] — все вокруг движется, вибрирует, и ничто не стоит на месте. Как в таком случае можно контролировать схемы? Более того, если схема действительно работает, разве она не имеет возможности случайно совершить обратный скачок? Если мы возьмем обычно используемое напряжение 2 вольта для энергии такой электрической системы
Однако в действительности возможности гораздо шире — я хотел бы сослаться на недавнюю статью в «Scientific American» С. Беннета и Р. Ландауэра «The Fundamental Physical Limits of Computation» («Фундаментальные физические ограничения вычислений»). Можно сделать компьютер, в котором каждый элемент, каждый транзистор может действовать как в прямом, так дополнительно и в обратном направлении, и все-таки компьютер будет работать. Все операции в компьютере можно проводить в обоих направлениях. Некоторое время вычисления продолжаются одним способом, а затем он сам считает результат недействительным, «развычисляется» и снова движется вперед — и так цикл продолжается. Если его немного переконструировать, можно заставить такой компьютер последовательно анализировать и заканчивать вычисления, чтобы он был более пригоден для расчетов вперед, а не назад.
Известно, что все допустимые вычисления можно выполнять, компилируя несколько простых элементов, например транзисторов; или, если вам нужны логические абстракции, работать с так называемой схемой NAND gate (схема НЕ-И). Такая схема требует два входных «провода» и один выходной
Здесь я знаю только выход и не могу восстановить вход. Нельзя ждать, что устройство двинется рывком вперед, а затем вернется назад и вычислит что-нибудь правильно. Например, если мы знаем, что выход сейчас равен 1, мы не можем восстановить, произошло ли это от А = 0, В = 1, или А= 1, В = 0, или от А = 0, В = 0 — причем нельзя вернуться назад. Такое устройство представляет необратимую схему. Грандиозное открытие Беннета и независимо Фредкина состоит в том, что можно выполнять вычисления с различного рода фундаментальными схемами, например с обратимыми схемами. Проиллюстрирую их идею с помощью устройства, которое можно назвать обратимой схемой NAND. Оно имеет три входа и три выхода
Устройство, построенное целиком на таких схемах, выполняет вычисления при движении вперед. Но если в какой-то период времени происходит движение и вперед, и назад, в итоге оно продвигается вперед и все-таки работает правильно. Если в дальнейшем происходят рывки назад, а затем вперед, работа тем не менее остается скорректированной. Это похоже на то, как частица газа бомбардируется окружающими атомами. Такая частица обычно никуда не уходит, но при малейшем толчке, малейшей флуктуации возникает немного более вероятное движение по одному пути, а не по другому, и частица с медленным дрейфом смещается вперед и проходит от одного до другого конца, несмотря на существование броуновского движения. Так и наш компьютер будет вычислять при условии, что мы приложим дрейфовую силу, чтобы организовать вычисления. Хотя он и не выполняет вычисления плавно, он, во всяком случае, вычисляет и вперед, и назад и в конечном счете закончит работу. Как с частицей в газе, если мы ее слегка подтолкнем, она потеряет очень мало энергии, но зато ее путь от одного конца до другого займет достаточное время. Если мы спешим и подтолкнем частицу сильно — потеряем массу энергии. То же будет с компьютером. Если мы терпеливы и двигаемся медленно, мы можем заставить компьютер работать почти без потери энергии, с потерей, даже меньшей, чем
Имея в виду эти возможности, давайте посмотрим, насколько малым можно сделать компьютер. Насколько велики будут размеры? Нам всем известно, что можно записать числа в двоичном базисе, как цепочки «битов», каждая цифра — единица или ноль. Каждый атом тоже можно занумеровать нулем или единицей, поэтому маленькой цепочки атомов будет достаточно для создания некоторого числа — один атом на каждый бит. (В действительности, так как атом может находиться более чем в двух состояниях, можно было бы использовать даже меньше атомов, но один на бит — вполне достаточно!) Итак, ради интеллектуального развлечения рассмотрим, можно ли построить компьютер, в котором записываются биты атомного размера, а бит, например, означает следующее: если спин атома направлен вверх, то это соответствует единице, а вниз — нулю. И тогда наш «транзистор», в котором в различных местах меняются биты, будет соответствовать некоторому взаимодействию между атомами, которые меняют свои состояния. Простейший пример — если что-то вроде 3-атомного взаимодействия будет фундаментальным элементом или схемой в таком компьютере. Очевидно, прибор не будет работать правильно, если мы сконструируем его в соответствии с законами, свойственными большим объектам. Мы должны использовать новые законы физики, квантово-механические законы, законы, присущие атомному движению
Поэтому нам следует задать вопрос, позволяют ли принципы квантовой механики расположить атомы в таком малом количестве, которое соответствует нескольким схемам в компьютере и которые будут работать в качестве компьютера? В принципе эти вопросы изучались, и такое расположение было найдено. Так как законы квантовой механики обратимы, нам нужно воспользоваться изобретением Беннета и Фредкина об обратимых логических схемах. При изучении квантово-механической ситуации было обнаружено, что квантовая механика не накладывает дополнительных ограничений на те условия, которые мистер Беннет получил из термодинамических соображений. Безусловно, существует ограничение, практическое ограничение — биты должны соответствовать размеру атома, а транзистор — 3–4 атомам. Используемая мной квантово-механическая схема содержит 3 атома. (Я не пытался записать биты на ядрах. Прежде чем говорить о чем-то другом, я подожду, пока технологические разработки доберутся до атомов!) Мы накладываем следующие ограничивающие условия: (а) ограничения размеров размерами атома; (b) условия на энергию, зависящие от времени, как получено Беннетом; и (с) особенности, которые я не упоминал, связанные со скоростью света, — нельзя посылать сигналы со скоростью, превышающей скорость света. Вот, собственно, и все физические ограничения на компьютеры, о которых мне известно.
Если мы каким-либо образом ухитримся построить компьютер атомного размера, это будет означать
Я, видимо, недооценил, насколько много времени занял у мистера Езава перевод моего доклада. На сегодняшний день я рассказал все, что заранее подготовил. Большое спасибо! Если у вас есть вопросы, я готов ответить на них.
Вопросы и ответы
Вопрос: Вы упомянули, что один бит информации можно сохранить в атоме. Интересно, можно ли сохранить тот же объем информации в одном кварке?
Ответ: Да. Но мы не можем контролировать кварки, и потому иметь с ними дело совершенно нереально. Вы могли бы подумать, что я рассказывал о вещах, не имеющих практического значения, но я так не думаю. Когда я говорю об атомах, я верю, что когда-нибудь мы будем способны контролировать их индивидуально. Но во взаимодействие кварков вовлечена слишком большая энергия — ими очень опасно манипулировать из-за радиоактивности и прочих вещей. А атомные энергии, о которых я говорил, вполне привычны для нас с точки зрения и химических, и электрических энергий, и их неисчислимое множество в реальной сфере; полагаю, что абсурдным это кажется только в данный момент.
Вопрос: Вы сказали, что чем меньше элементы компьютера, тем лучше. Но я думаю, оборудование должно быть крупнее, потому что…
Ответ: Вы полагаете, что ваш палец слишком велик, чтобы нажать на кнопку?
Вопрос: Да, именно так.
Ответ: Конечно, вы правы. Я говорю о внутренних компьютерах, возможно, для роботов или других приборов. Вход и выход — это то, что я не обсуждал: является ли вход результатом взгляда на картинки, голосовым восприятием или нажатием на кнопки. Я обсуждаю, как вычисления выполняются в принципе, а не какую следует иметь форму выхода. В самом деле верно, что вход и выход нельзя в большинстве случаев эффективно уменьшать до размеров, лежащих за пределами человеческого восприятия. Уже сейчас слишком трудно нажимать на кнопки некоторых компьютеров нашими слишком большими пальцами. Но с детально разработанными проблемами счета, отнимающего часы и часы, счет надо выполнять быстро и на очень маленьких машинах, с низкоэнергетическими затратами. Как раз над машинами такого рода я и размышляю. Это не просто применение дополнительных двух чисел, а принципиальная тщательная разработка вычислений.
Вопрос: Я бы хотел узнать о вашем методе преобразования информации от одного элемента атомного уровня к другому аналогичному элементу. Если вы используете квантовую механику или естественное взаимодействие между двумя элементами, то принцип работы такого прибора приблизится к самой Природе. Например, если вы делаете компьютерное моделирование магнита по методу Монте Карло для изучения критических явлений, ваш компьютер атомного уровня будет очень близок самому магниту. Что вы об этом думаете?
Ответ: Да. Все, что мы делаем, — это Природа. Мы приспосабливаем ее под себя, например для выполнения вычислений. В магните существует некоторый тип соотношений; если хотите, там существует продолжающийся в каком-то смысле вычислительный процесс, весьма похожий на происходящее в Солнечной системе — требующий определенного осмысления. Но это могут быть не те вычисления, которые мы хотим произвести в данный момент. То, что мы хотим сделать, — это устройство, для которого можно менять программы и проводить все необходимые вычисления, а не только для проблемы магнита, которую само устройство с удовольствием готово решать. Я не могу использовать для компьютера Солнечную систему до тех пор, пока у меня не появится задача — отследить движение планет; все, что я должен буду делать в этом случае, — это наблюдать. Была забавная статья, написанная в качестве шутки. В далеком будущем появляется «статья», в которой обсуждается новый метод выполнения аэродинамических вычислений: вместо применения компьютеров сегодняшнего дня автор изобретает простой прибор для продувания воздуха за крылом. (Он заново изобрел аэродинамическую трубу!)
Вопрос: Я недавно прочитал в газете статью о том, что работа нервной системы в человеческом мозге гораздо медленнее компьютеров настоящего времени, а элемент нервной системы гораздо меньше. Не думаете ли вы, что компьютеры, о которых вы рассказывали сегодня, имеют что-то общее с работой нервной системы мозга?
Ответ: Существует аналогия между мозгом и компьютером в том отношении, что, несомненно, существуют элементы, которые можно включить под контролем других. Нервные импульсы контролируют или возбуждают другие нервы; в известном смысле это часто зависит от того, сколько было получено импульсов — что-то вроде AND или его обобщения. Сколько энергии затрачивает клетка мозга на один такой переход? Я не знаю числа. Время, требуемое для включения в мозге, намного больше аналогичного времени даже в современных компьютерах, не говоря уже о воображаемом атомном компьютере будущего, но система внутренних связей в мозге разработана значительно детальнее. Каждый нерв соединен с тысячами других, а транзистор мы соединяем только с двумя-тремя.
Некоторые смотрят на деятельность мозга, как на работу механизма, и видят, что во многих отношениях он превосходит современные компьютеры, а во многих отношениях компьютер превосходит мозг. Эту тему инспирируют конструкторы машин, стремящиеся заложить в них все больше возможностей. Нередко случается, что у инженера возникает мысль, как работает мозг (по его мнению), и он конструирует машину, которая ведет себя подобным образом. Такая новая машина действительно может работать очень хорошо. Но я должен предупредить, что ничего не рассказывал о том, как работает мозг, и так ли важно знать об этом, чтобы создать работоспособный компьютер. Для создания летательного аппарата не обязательно понимать, каким образом птицы машут крыльями и как учесть в конструкции эти особенности. Не нужно понимать устройство двигательной системы лап гепарда — животного, бегающего очень быстро, — чтобы сконструировать автомобиль с колесами, которые вертятся очень быстро. Поэтому для создания устройства, на много порядков превышающего возможности Природы, нет необходимости имитировать ее детальное поведение. Это интересная тема, и я хотел бы поговорить об этом.
Ваш мозг очень слаб по сравнению с компьютером. Я задам серию чисел: один, три, семь… Или, лучше: ichi, san, ni, go, ichi, hachi, ichi, ni, ku, san, go[8]. А теперь я хотел бы, чтобы вы повторили их в обратном порядке. Компьютер может вместить десятки тысяч чисел и выдать их мне в обратном порядке или взять их сумму, или выполнить массу других вещей, которые мы сами сделать не можем. С другой стороны, если я рассматриваю лицо, глаза человека, я могу сказать, кто это, если знаю этого человека, или сказать, что не знаю его. Мы пока еще не понимаем, как создать такую компьютерную систему, которая выдавала бы нам подобную информацию при задании черт лица даже при условии, что вы ее учили и она видела множество лиц.
Другой интересный пример — машины, играющие в шахматы. Просто удивительно, что мы можем создавать машины, которые играют в шахматы лучше, чем почти все присутствующие здесь. Но они делают это, перебирая множество вариантов. Компьютер двигает фигуру, я могу передвинуть фигуру, потом опять он и так далее. Компьютеры просматривают каждую альтернативу и выбирают лучший вариант. Они пересматривают миллионы альтернатив, однако человек, владеющий шахматной игрой, делает это иначе. Он распознает рисунок, структуру. Перед тем как сделать ход, он просматривает только тридцать или сорок позиций. Поэтому, хотя правила при игре в Го проще, машины играют в Го довольно плохо, поскольку в каждой позиции существует слишком много возможностей сделать ход и слишком много вещей, которые надо проверить, — машины не могут смотреть так глубоко. Проблема распознавания рисунка, структуры и что делать в данных обстоятельствах — это то, что пока инженерам (они любят называть себя учеными-компьютерщиками) дается с трудом. Это, безусловно, одна из важнейших задач компьютеров будущего — возможно, более важная, чем то, о чем я говорил. Заставим машины эффективно играть в Го!
Вопрос: Думаю, что всякий метод вычислений не будет плодотворным, пока он не начнет сам составлять такие устройства или программы. Я размышлял над статьей Фредкина по консервативной логике, она очень интригующая, но как только я подумал о составлении простой программы, используя такие устройства, я запутался, так как подобная программа значительно сложнее обычной программы. Думаю, мы легко получим некоторую бесконечную регрессию, поскольку процесс создания определенной программы будет более сложным, чем сама программа, и при попытке автоматизировать программу автоматизированная программа будет намного сложнее и так далее, особенно если программа жестко смонтирована, а не отделяется от компьютера, как обычные программы. Полагаю, это основной вопрос — понять методику построения.
Ответ: У нас несколько иной опыт. Нет никакой бесконечной регрессии: она останавливается при некотором уровне сложности. Машина, о которой так ясно говорит Фредкин, и та, о которой рассказывал я в случае квантовой механики, представляют универсальные компьютеры в том смысле, что они могут быть запрограммированы и выполнять различную работу. Это не жестко смонтированная программа. Они являются не более жестко смонтированными, чем обычный компьютер, в который можно заложить информацию — программа представляет часть входных данных, — и машина решает поставленные задачи. Она с жестко смонтированной программой, но она и универсальна, как обычный компьютер. Такие вещи очень неопределенны, но я нашел алгоритм. Если у вас есть программа, написанная для необратимой машины — обычная программа, — тогда я могу преобразовать ее в обратимую машинную программу с помощью схемы прямого преобразования, которая очень неэффективна и использует много больше пошаговых операций. В реальных ситуациях число шагов может оказаться гораздо меньше. Но я по крайней мере знаю, что могу взять программу с 2n шагами, которая необратима, и преобразовать ее в обратимую программу с 3n шагами. Появилось гораздо больше шагов. Я сделал очень неэффективную программу, поскольку не пытался найти минимум — единственный разумный способ для создания более эффективной программы. Я в самом деле не думаю, что вы нашли регрессию, о которой упомянули — может быть, вы правы, но я не уверен.
Вопрос: Разве мы не жертвуем многими достоинствами таких устройств — ведь обратимые машины работают достаточно медленно? Я весьма пессимистически настроен на этот счет.
Ответ: Они работают медленнее, но они значительно меньше. Я не делаю их обратимыми, пока мне это не понадобится. Нет смысла делать эти машины обратимыми, если только вы не пытаетесь снизить энергию грандиозно, почти абсурдно, так как необратимые машины хорошо функционируют только при энергиях, в 80 раз превышающих
Вопрос: Существуют ли какие-нибудь ограничения, связанные с принципом неопределенности? Есть ли фундаментальные ограничения на энергию и шкалу времени в вашей схеме обратимой машины?
Ответ: Моя точка зрения такова. Нет никаких других квантово-механических ограничений. Надо тщательно различать понятия необратимых потерь или расхода энергии, тепловой энергии, генерируемой при работе машины, и энергии движущихся частей, которые можно извлекать из машины. Существует соотношение между временем и энергией, которую можно извлекать. Но именно эта энергия не имеет значения и не важна для рассмотрения. Лучше задать вопрос, добавляем ли мы
Ответ (
3. Лос-Аламос — взгляд снизу
Лестное введение профессора Хирчфелдера совершенно не соответствует моему рассказу «Лос-Аламос — взгляд снизу». «Взгляд снизу» означает именно то, что означает — хотя в настоящее время я относительно известен, в те годы никто и не помышлял о моем существовании. Когда я начал работать над Манхэттенским проектом[9], я даже не закончил свою докторскую диссертацию. Многие из тех, кто рассказывает вам о Лос-Аламосе, были знакомы с кем-нибудь из высших эшелонов власти или знали что-то о людях, принимающих судьбоносные решения. Меня не волновали великие решения. Я всегда барахтался где-то внизу. Правда, я не был на абсолютном дне. Как оказалось, я даже отчасти продвинул несколько исследовательских этапов, но я не был большим человеком. Итак, я хочу рассказать вам о несколько иных обстоятельствах — не тех, о которых говорилось во введении; представьте себе юного аспиранта, который еще не получил степени и работает над диссертацией. Сначала я расскажу, как я попал в проект, а потом — что со мной происходило, — только то, что происходило со мной во время работы в проекте.
Как-то раз работаю я в своей комнате[10], и вдруг ко мне вбегает Боб Уилсон[11]. Я работал как черт, но при этом был известный шутник — над чем вы смеетесь? — так вот, Боб Уилсон заглянул и сказал, что ему предложили участвовать в некоторой работе, которая, кстати, хорошо финансировалась, что это секрет, но он думает, что я никому не проговорюсь, а рассказывает мне об этом потому, что уверен, что как только я узнаю, чем он собирается заниматься, то непременно захочу к нему присоединиться. И он обрисовал мне задачу разделения различных изотопов урана. В конечном счете, как я понял, он должен был заниматься бомбой. Он собирался разработать процесс разделения изотопов урана. Правда, как оказалось в процессе дальнейшей работы, для разделения изотопов использовали другую методику. Все это он мне объяснил и сказал, что встреча состоится… Но я ответил, что не хочу этим заниматься. Он сказал, ладно, но встреча назначена на три часа, и там мы увидимся. Я тоже сказал, ладно, и он растолковал мне, почему я никому не должен проболтаться о секрете — но я и не собирался болтать. Итак, я вернулся к своей работе над диссертацией, высидел над ней примерно три минуты. И начал вышагивать из угла в угол и размышлять над этой задачей. У Германии был Гитлер и очевидная вероятность разработать атомную бомбу, разработать ее раньше нас — такая перспектива устрашала. Короче говоря, я решил сходить в три часа на встречу. А к четырем часам я уже обзавелся рабочим столом в кабинете и пытался вычислить, ограничен ли данный конкретный метод полным током, который можно получить в ионном пучке и прочими вещами. Не буду вдаваться в детали. У меня был рабочий стол, бумаги, я работал так энергично и быстро, как только мог. Справа от меня парни собирали аппаратуру, планируя соответствующие эксперименты. Все это напоминало кинофильм, в котором вы видите куски оборудования, изрыгающие бру-у-уп, бру-у-уп… Ежеминутно их чудо-установка становилась все больше и больше. Кончилось тем, что все ребята решили поработать на ней и приостановили свою исследовательскую работу. Во время войны вся наука остановилась, за исключением небольшой ее части в Лос-Аламосе. Там было тоже не так много науки, скорее много инженерии. Они беззастенчиво крали оборудование у ученых-исследователей, и все оборудование из различных исследовательских групп было свезено вместе для конструирования новой аппаратуры, необходимой для основного эксперимента — попытаться разделить изотопы урана. Я приостановил свою работу по той же причине. Через некоторое время мне пришлось взять шестимесячный отпуск и закончить диссертацию. Итак, я получил степень перед самым отъездом в Лос-Аламос и уже пребывал не на самой низкой ступени, как уверял вас до этого.
Здесь, работая в проекте еще в Принстоне, я получил свой первый опыт общения с великими учеными. Я никогда раньше не видел так много великих людей. Там существовал координационный совет, который был призван направлять нас, оказывать нам всяческое содействие и, разумеется, помочь нам найти способ разделения изотопов урана. В совет входили знаменитые ученые — Толмен и Смит, Юри, Раби и Оппенгеймер, и многие другие. Входил в совет, например, Комптон. Меня повергала в жуткий шок та неразбериха, которая царила на заседаниях совета. Я с удовольствием там присутствовал, поскольку понимал теорию процесса, который мы разрабатывали. Поэтому они задавали мне вопросы, и затем мы вместе все это обсуждали. Кто-нибудь высказывал свою точку зрения, и после этого, например, Комптон, высказывал другую точку зрения, казалось бы, он был совершенно прав, и идея выглядела разумно — в заключение он заявлял, что мы должны двигаться в таком-то направлении. Другой ученый непременно очень толково возражал, что, может быть, есть другая возможность, которую нам следует рассмотреть. Другая возможность, которую нужно рассмотреть, — я просто подскакиваю! Ему, Комптону, приходится отстаивать свою точку зрения заново! Итак, все противоречили друг другу, и вся картина за столом полностью повторялась! Наконец Толмен, который председательствует на этот раз, подводит итог: хорошо, мы слышали все аргументы, мне кажется, что аргументация Комптона наиболее убедительна, а теперь нам надо двигаться вперед. Я был совершенно потрясен — совет состоял из ученых, которые могли бы вместе высказать целый ворох блестящих идей, а вместо этого каждый по отдельности рассуждал о новоиспеченном аспекте задачи, вспоминал, что говорили другие, сосредотачивался на этом. И под конец совет принимал решение, чья идея лучше, суммировал ее со всеми остальными без должного троекратного обсуждения. Вы понимаете, что я хочу сказать? Для меня это казалось невероятным — ведь они были в самом деле великими людьми!
На проекте было окончательно решено отказаться от того способа разделения урана, который предполагался первоначально. Нам было приказано остановиться и начать работу в Лос-Аламосе, Нью-Мексико, уже над проектом, в котором действительно будут делать бомбу.
Все должны перебраться туда. Там будут проводиться необходимые эксперименты, будет и теоретическая работа. Я должен был заниматься теоретической работой, остальные ребята — экспериментальной. Мы теряли время, так как образовался вынужденный простой — нам было велено переезжать, а Лос-Аламос еще не был готов нас принять. Боб Уилсон не стал терять время даром и послал меня в Чикаго выудить в университете все, что смогу, о бомбе и сопутствующих задачах, так что мы смогли начать собирать оборудование еще в нашей лаборатории — всяческие счетчики и прочие штуковины. Это оказалось полезным, когда мы перебрались в Лос-Аламос. Итак, нельзя было терять время. Меня послали в Чикаго с инструкцией побывать в каждой группе, говорить, что я хотел бы устроиться к ним на работу, заставить их рассказывать о своей задаче в таком объеме, в котором я смогу понять детали. Так я действительно мог сесть и начать работать над задачей — постепенно перебираясь от одной группы к другой, я задавал свои вопросы по поводу задачи — и таким образом мог понять подробности целого. Идея была отличная, хотя меня немного мучила совесть. Но случайно так получилось (просто повезло!), что, когда один малый излагал мне задачу, я спросил, почему он думает решать ее таким-то способом, и за полчаса получил ее решение, а они бились над ней три месяца. Итак, я все-таки что-то сделал! По возвращении из Чикаго я описал ситуацию своим коллегам — сколько энергии высвобождается, на что должна быть похожа бомба и прочие детали. Помню, как мой друг, Поль Олум, математик, работающий со мной, потом подошел ко мне и сказал: «Когда об этом сделают кинофильм, они покажут парня, возвратившегося из Чикаго и рассказавшего Принстону все о бомбе, а он вырядится в костюм, будет носить портфель и прочие атрибуты — а тут ты, без пиджака, с грязными рукавами — и рассказываешь нам обо всем этом». Так или иначе, дело было серьезное — и он прекрасно понимал разницу между кино и реальностью.
Мы все еще задерживались, и Уилсон поехал в Лос-Аламос выяснять, почему мы застряли и есть ли какие-нибудь продвижения. Он обнаружил там, что строительная компания работает очень здорово и уже закончила строительство театра и нескольких других зданий. Но они не получили четких инструкций по поводу того, как возводить лаборатории — сколько труб необходимо для газа, сколько для воды, так что Уилсон просто ходил вокруг, прикидывал, какой будет объем воды, газа и тому подобное, и рассказывал им, как строить лаборатории. Он возвратился к нам — а мы уже были готовы к переезду, — но, видите ли, у Оппенгеймера возникли некоторые затруднения при обсуждении ряда проблем с Гровсом. Мы уже изнывали от нетерпения. Насколько я понимал положение, Уилсон позвонил в Чикаго Манли, они посовещались и решили, что мы все-таки отправимся туда, даже если там не все готово. Итак, все мы приехали в Лос-Аламос, когда строительство еще не было завершено. Между прочим, Оппенгеймер был очень терпелив со всеми, очень внимателен к проблемам каждого. Он беспокоился о моей жене, у которой был туберкулез, выяснял, есть ли здесь где-нибудь больница и многое другое — я впервые познакомился с ним лично — и он оказался удивительным человеком. Среди прочего нам рассказывали и о других вещах, например, о том, что следует быть осмотрительными. Не покупать билеты на поезд в Принстоне. Потому что Принстон был очень маленькой железнодорожной станцией. И если все купят билеты до Альбукерке, Нью-Мексико, возникнут подозрения, что здесь что-то не так. И поэтому все купили билеты где-то еще, все, кроме меня — я же посчитал, что если все купили билеты где-то еще… Короче говоря, когда я пришел на станцию и сказал, что мне нужен билет до Альбукерке, Нью-Мексико, железнодорожник воскликнул: «О! Наконец-то! Значит, весь этот груз ваш!» Мы неделями отправляли ящики со счетчиками и думали, что никто не заметит адреса — Альбукерке. Хорошо хоть, что по крайней мере я объяснил ему, почему мы отправляли туда ящики — я собираюсь перебраться на жительство в Альбукерке.
И все-таки приехали мы туда раньше времени, дома для общежитий и прочих нужд еще не были готовы. Лаборатории тоже были не совсем готовы. Мы давили на строителей, подгоняли, ругали, что теряем время. Они арендовали для нас все ранчо в округе. Мы разместились на этих ранчо и ездили по утрам на работу. В первое же утро поездка произвела на меня грандиозное впечатление — красота пейзажа для жителя восточных штатов, который почти никогда не путешествовал, была завораживающей. Огромные утесы, которые вы, вероятно, видели на картинках, я не буду вдаваться в детали. Они очень высоки на фоне плоских холмов, вы подходите к ним снизу и видите величественные утесы — поразительное зрелище. А наиболее впечатляющим для меня было то, что когда я поднимался, то говорил себе, что, может быть, здесь живут индейцы; шофер внезапно притормаживал, машина останавливалась, и я шел за угол, а там громоздились индейские пещеры, которые вы можете исследовать. Это в самом деле производило огромное впечатление во всех отношениях.
Когда я впервые прибыл на место, я очутился у ворот — понимаете, это была специальная техническая территория, которую в конце концов должны были обнести забором, но поскольку здания не были достроены, она была пока открыта. Потом здесь предполагалось создать город и окружить его
У меня было множество интересных впечатлений от общения с Бете. В первый раз, когда он пришел, у нас стояла счетная машинка «Маршан», на которой надо было работать вручную. А он и говорит: «Давайте посмотрим, давление…» Формула, которую он получал, содержала квадрат давления. «Давление равно 48, квадрат 48…» Я бросился к машинке, а он заявляет, что это около 23 сотен. Я включаю машинку, чтобы провести вычисления. Он говорит: «Вы хотите знать точно? Это 2304». Так и получилось — 2304. Я спрашиваю: «Как вы это получили?» А он отвечает: «Разве вы не знаете, как вычислять квадраты чисел вблизи 50? Если число близко к 50, например, 47, говоришь 3 (50–47 = 3), далее 3 дает число ниже 25 (25–3 = 22), например, 47 в квадрате 22… То, сколько остается добавить к 22… — это квадрат вашего остатка (25–22 = 3). Например, с числом 3 в квадрате вы получаете 9, значит, результат для 47 в квадрате — 2209. Правда, замечательно?» Он был очень силен в арифметике! Мы тут же продолжили вычисления и через несколько минут извлекали корень кубический из 21/2. Тогда для вычисления кубических корней существовала маленькая таблица для пользователя, которая содержала выборочные числа, которые вы запускали на счетные машинки, предоставленные нам компанией «Маршан». Итак (я подумал, что это займет у него немного больше времени), я открыл выдвижной ящик стола, вытащил таблицу, и он сказал «1,35». Я вычислил несколькими способами корни кубические из чисел вблизи 21/2, но ответ оказался неправильным. Я спросил: «Как вы это делаете?» Он отвечает: «Ну, вы же видите, что логарифм от 2,5 есть столько-то. Вы делите на 3, чтобы получить кубический корень от этого столько-то. Теперь логарифм от 1,3 равен… логарифм от 1,4 равен… я провожу интерполяцию между этими числами». Да, у него существовал запас арифметических трюков, и он здорово ими пользовался — для меня это был вызов. Я продолжал практиковаться. Обычно между нами возникала небольшая конкуренция. Каждый раз, когда нам нужно было что-нибудь вычислить, мы бросались за ответом, и он, и я, — и я мог даже выиграть. Через несколько лет я здорово научился проделывать расчеты. Я научился наносить удар одним махом, может быть, единственный из нас четверых. Безусловно, в игре с числами кроется много забавного — например, перемножить числа 174 на 140. Вы замечаете, что числа 173 и 141 похожи на квадратный корень из 3 и квадратный корень из 2, а их произведение — на квадратный корень из 6, на число 245. Но обратите внимание на числа, каждый заметит разницу — и все мы веселимся!
Когда мы впервые приехали туда, как я уже говорил, общежития не были готовы и теоретики решили оставаться на месте. Первым нашим жильем было старое школьное здание, оставшееся от помещавшейся здесь прежде мужской школы. Сначала я жил в кабинете механики в страшной тесноте, мы едва втискивались на двухъярусные кровати; оказалось, что там все организовано кое-как — ни к черту! — и Боб Кристи с женой должны были каждое утро проходить в ванную через нашу спальню. Все было крайне неудобно.