Текст книги "ГЕДЕЛЬ, ЭШЕР, БАХ: эта бесконечная гирлянда"
Автор книги: Даглас Хофштадтер
Жанры:
Философия
,сообщить о нарушении
Текущая страница: 27 (всего у книги 64 страниц)
В какой-то момент PARRY надолго задумалась, и я объяснил друзьям, что задержка, скорее всего, связана с большой нагрузкой на систему разделения времени. Я сказал им, что они могут узнать, сколько человек подключены к системе в данный момент; для этого нужно напечатать специальный символ «контроль», который пойдет прямо в операционную систему, минуя PARRY. Один из моих приятелей нажал на соответствующую клавишу, после чего некие данные о статусе операционной системы отпечатались на экране поверх фраз PARRY. При этом PARRY об этом понятия не имела, поскольку это программа, «понимающая» только в скачках и пари, но ничего не знающая об операционных системах, терминалах и специальных символах контроля. Для моих друзей, однако, PARRY и операционная система были одним и тем же – «компьютером», загадочным, аморфным, далеким существом, которое отвечало на то, что они печатали. Так что для них было вполне естественно, когда один из них с улыбкой напечатал «Почему вы пишете поверх того, что на экране?» Идея о том, что PARRY может ничего знать об операционной системе, при помощи которой она действует, была непонятна моим друзьям. Идея что «мы» знаем все о «нас самих» казалась им настолько естественной из их опыта людских контактов, что они просто распространили ту же идею на компьютер – в конце концов, он же был достаточно умен, чтобы «разговаривать» с ними по-английски! Их вопрос похож на то, как если бы вы спросили кого-нибудь: «Почему вы сегодня производите так мало красных кровяных шариков?» Люди не знают об этом уровне – «уровне операционных систем» – их тела.
Главная причина этого смешения уровней была в том, что общение со всеми уровнями компьютерной системы происходило на одном и том же экране, на одном и том же терминале. Хотя наивность моих друзей может показаться преувеличенной, даже опытные компьютерные специалисты часто допускают подобные ошибки, когда несколько уровней сложной системы бывают одновременно представлены на одном и том же экране. Они забывают, кто их «собеседник» и печатают что-то, не имеющее смысла на данном уровне, хотя и вполне приемлемое на другом. Может показаться, что хорошо было бы заставить саму систему сортировать уровни – интерпретировать команды согласно тому, какая из них «имеет смысл». К несчастью, подобная интерпретация требует от машины немалой толики здравого смысла и совершенного знания намерений программиста, а это требует настолько развитого искусственного интеллекта, которого на сегодняшний день у компьютеров нет.
Граница между аппаратурой и программным обеспечением
Путаница может также возникнуть из-за того, что одни уровни гибки, а другие – строги и жестки. Например, в некоторых компьютерах есть замечательные программы-редакторы, которые позволяют переводить куски текста из одного формата в другой, почти так же, как жидкость может быть перелита из одного сосуда в другой. Узкую страницу можно превратить в широкую, и наоборот. При такой мощи можно ожидать, что поменять шрифт, скажем, на курсив, также не представит никакого труда. Однако у программы может быть только один шрифт, что делает подобные изменения невозможными. Бывает также, что нужный шрифт можно получить на экране, но не на принтере – или наоборот. Долго работая с компьютерами, легко избаловаться и считать, что программированию должно поддаваться все; не должно быть негибких принтеров, имеющих только один шрифт, или даже конечный набор шрифтов, шрифты должны определяться пользователем! Но достигнув этой степени гибкости, мы начинаем расстраиваться, что принтер не печатает разноцветными чернилами на бумаге любой формы и размера или что он не чинит сам себя…
Проблема в том, что в какой-то момент вся эта гибкость должна, используя фразу из главы V, «коснуться дна». Должен существовать жесткий уровень аппаратуры, на котором основано все остальное. Он может быть спрятан под гибкими уровнями так глубоко, что немногие пользователи чувствуют ограничения, налагаемые аппаратурой – однако эти ограничения неизбежны.
В чем именно состоит разница между программным обеспечением и аппаратурой? Это разница между программами и машинами – между длинными и сложными последовательностями команд и физическими аппаратами, которые эти команды выполняют. Я сказал бы, что программное обеспечение – это «то, что можно передать по телефону», а аппаратура – это «все остальное». Пианино – это аппаратура, а ноты – программное обеспечение. Телефонный аппарат – это аппаратура, а телефонный номер – программное обеспечение. К сожалению, это полезное различие далеко не всегда так ясно.
В нас, человеческих существах, тоже есть аспекты «аппаратуры» и «программного обеспечения» и разница между ними для нас настолько естественна, что мы перестаем ее замечать. Мы привыкли к негибкости нашей физиологии: то, что мы не можем усилием воли вылечить себя от всех болезней или заставить расти у нас на голове волосы любого цвета – лишь два простых примера. Однако мы можем «перепрограммировать» наш мозг, чтобы оперировать в рамках новых понятий. Удивительная гибкость интеллекта кажется почти несовместимой с тем фактом, что наш мозг сделан из «аппаратуры», подчиняющейся строгим правилам, аппаратуры, которую невозможно изменить. Мы не можем заставить наши нейроны реагировать быстрее или медленнее, не можем «поменять проводку» у себя в мозгу, не можем изменить внутренность нейрона – короче, у нас нет никакого выбора относительно нашей «аппаратуры» – и тем не менее, мы можем контролировать собственные мысли.
Однако существуют аспекты нашего мышления, не поддающиеся контролю. Мы не можем, по желанию, стать сообразительнее; не можем выучить новый язык так быстро, как бы нам хотелось; не можем заставить себя думать о нескольких вещах сразу и так далее. Это знание о нашей природе столь изначально, что его даже трудно заметить; это все равно, что постоянно сознавать, что вокруг нас – воздух. Мы никогда не думаем о возможной причине подобных «дефектов» нашего интеллекта – устройстве нашего мозга. Основная цель этой книги – предложить пути примирения между аппаратурой – мозгом и программным обеспечением – интеллектом.
Промежуточные уровни и погода
Мы видели, что в компьютерных системах есть множество довольно четко определенных уровней, и что работающая программа может быть описана в терминах любого из них. Таким образом, существуют не только низший и высший уровни – есть самые различные степени низкого и высокого. Типичны ли промежуточные ступени для всех систем с низшими и высшими уровнями? Рассмотрим для примера систему, аппаратурой которой является земная атмосфера, а программным обеспечением – погода. Проследить за движением всех молекул одновременно было бы способом «понимания» природы на весьма низком уровне – что-то вроде работы с огромной сложной программой на машинном языке. Ясно, что эта задача лежит далеко за пределами человеческих возможностей. Однако у нас есть наш особый, человеческий способ наблюдения за погодными явлениями и их описания. Мы воспринимаем природные явления на высоком уровне – крупными блоками, такими, как дождь, снег, туман, ураганы, холодные фронты, времена года, атмосферное давление, ветры, течения, кучевые облака, грозы, уровни инверсии и так далее. Во всех этих явлениях участвует астрономическое число молекул, которые каким-то образом действуют вместе, давая крупномасштабный эффект. Этот метод сравним с использованием для анализа погоды языка компилятора.
Существует ли аналог исследованию погоды при помощи промежуточных языков, таких, как язык ассемблера? Бывают ли, к примеру, очень маленькие местные «мини-штормы», как те крохотные смерчи, крутящие пыльные столбы максимум пару метров в диаметре? Является ли порыв ветра блоком промежуточного уровня, играющим роль в создании погодных явлений более крупного масштаба? Или же не существует практического способа использовать наши знания о подобных явлениях с тем, чтобы получить более полное объяснение погоды?
Тут возникают еще два вопроса. Первый такой: «Может ли быть, что погодные явления, воспринимаемые нами как смерчи и засухи, на самом деле – лишь явления промежуточных уровней, составляющие часть каких-то более общих, медленно протекающих явлений?» В таком случае, погодные явления настоящего высшего уровня были бы глобальными, и их время измерялось бы по геологической шкале. Ледниковый период был бы погодным событием такого высшего уровня. Второй вопрос: «Есть ли такие погодные явления промежуточного уровня, которых люди до сих пор не замечали, но которые могли бы дать нам более глубокое понимание погоды?»
От смерчей к кваркам
Последнее предположение может звучать, как чистая фантазия, но это не совсем так. Стоит только взглянуть на точнейшую из точных наук, физику, чтобы найти необычные примеры систем, описанных в терминах взаимодействия таких «частей», которые сами по себе невидимы. В физике, как и в любой другой дисциплине, системой считается группа взаимодействующих частей. В большинстве известных нам систем части сохраняют свою индивидуальность при взаимодействии, так что мы можем различить их внутри системы. Например, когда собирается футбольная команда, ее игроки продолжают быть отдельными личностями, они не сливаются, теряя свою индивидуальность, в какое-то составное существо. И все же – и это очень важно – определенные процессы в их мозгу вызваны именно контекстом команды, вне которого эти процессы не происходили бы. Таким образом, в некотором смысле индивидуальность игроков меняется, когда они становятся частью большей системы – команды. Такой тип системы называется почти разложимой системой (термин взят из статьи Г. А. Саймона «Архитектура сложности» (H. А. Simon, «Architecture of complexity»). Подобная система состоит из слабо взаимодействующих модулей, которые сохраняют свою собственную индивидуальность во время взаимодействия, но, слегка меняясь по сравнению с тем, какими они бывают вне системы, тем самым способствуют связному поведению целой системы. Изучаемые в физике системы обычно принадлежат именно к такому типу. Считается, например, что атом состоит из ядра, положительный заряд которого удерживает на орбите, или в связанном состоянии, некоторое количество электронов. Связанные электроны весьма похожи на свободные электроны, несмотря на то, что они находятся внутри сложной системы.
Некоторые системы, изучаемые в физике, представляют собой контраст по сравнению с относительно простым атомом. В таких системах взаимодействие частей необычайно сильно, в результате чего они проглатываются большей системой и частично или полностью теряют свою индивидуальность. Примером является ядро атома, которое обычно описывается как «набор протонов и нейтронов». Но силы, удерживающие вместе частицы, составляющие ядро, так велики, что эти частицы становятся совершенно непохожи на самих себя в «свободной» форме (то есть когда они находятся вне ядра). На самом деле, ядро во многих смыслах более похоже на единую частицу, чем на набор взаимодействующих частиц. Когда ядро расщепляется, при этом обычно освобождаются протоны и нейтроны, но также и другие частицы, такие как пи-мезоны и гамма-лучи. Находятся ли все эти частицы внутри ядра до его расщепления, или же они – что-то вроде «искр», летящих при расщеплении ядра? Возможно, что искать ответа на подобный вопрос не имеет смысла. На уровне физики частиц разница между возможностью «высекать искры» и действительным наличием субчастиц не столь ясна.
Таким образом, ядро – это система, «части» которой, хотя они и невидимы внутри системы, могут быть извлечены и сделаны видимыми. Однако есть и более патологические случаи, такие, как протон и нейтрон, взятые как системы. Существует предположение, что каждый из них состоит из тройки «кварков» – гипотетических частиц, которые могут соединяться по две или по три, образуя при этом многие из известных основных частиц. Однако взаимодействие между кварками настолько сильно, что их не только невозможно увидеть внутри протонов и нейтронов, но и невозможно извлечь оттуда! Таким образом, хотя кварки помогают теоретически объяснить некоторые свойства протонов и нейтронов, их собственное существование, возможно, никогда не будет установлено с достоверностью. Здесь перед нами – антипод «почти разложимой системы», система, которую скорее можно назвать «почти неразложимой». Интересно, однако, что теория протонов и нейтронов (и других частиц), основанная на «модели кварков», дает хорошее количественное объяснение многих экспериментальных результатов, касающихся частиц, предположительно составленных из кварков.
Сверхпроводимость: «парадокс» ренормализации
В главе V мы обсуждали то, как ренормализованные частицы возникают из своих голых центров в результате рекурсивно накапливающихся взаимодействий с виртуальными частицами. Ренормализованную частицу можно рассматривать либо как это сложное математическое построение, либо как некий «бугорок», чем она и является физически. Одно из самых странных и впечатляющих последствий этого способа описания частиц – это объяснение, которое оно дает знаменитому явлению сверхпроводимости (свободному от сопротивления течению электронов в некоторых твердых телах при очень низких температурах).
Оказывается, что электроны в твердых телах ренормализованы в результате их взаимодействия с некими странными квантами вибраций, называемыми фононами (которые, в свою очередь, ренормализованы!). Такие ренормализованные электроны называются поляронами. Вычисления показывают, что при низких температурах два полярона с противоположным спином начинают притягивать друг друга и могут стать определенным образом связанными. При некоторых условиях все поляроны, переносящие ток, связываются по два, образуя так называемые куперовы пары. Парадоксально то, что образование этих пар происходит именно потому, что электроны – голые центры спаренных поляронов – электрически отталкиваются друг от друга. В отличие от электронов, куперовы пары не притягиваются и не отталкиваются; поэтому они могут свободно перемещаться в металле, словно в вакууме. Изменив математическое описание подобного металла с такого, чьими основными единицами являются поляроны, на такое, чьи основные единицы – куперовы пары, вы получите значительно упрощенный набор уравнений. Эта математическая простота указывает на то, что деление на «блоки» куперовых пар – естественный взгляд на сверхпроводимость.
Здесь есть несколько уровней частиц: сама куперова пара, пара составляющих ее поляронов с противоположным спином, электроны и фотоны из которых составлены поляроны; внутри электронов – виртуальные фононы и позитроны… и так далее, и тому подобное. Мы можем смотреть на каждый уровень и воспринимать происходящие там явления согласно нашему пониманию лежащих ниже уровней.
«Запечатывание»
Точно так же, к счастью, нам не нужно знать о кварках всего, чтобы понимать многое в поведении частиц, составной частью которых они могут быть. Специалист по ядерной физике может разрабатывать теории о ядрах, основанные на протонах и нейтронах, и игнорировать как теории о кварках, так и теории, оспаривающие последние. Ядерный физик работает с блочной картиной протонов и нейтронов – описанием, основанным на теориях низших уровней, которое при этом не требует понимания этих теорий. Подобно этому, атомный физик работает с блочной картиной атомного ядра, основанной на теории ядра. Химик работает с блочной картиной электронов и их орбит, создавая на этом основании теории небольших молекул, которые, в свою очередь, могут быть использованы как блоки специалистом по молекулярной биологии, который интуитивно понимает, как соединяются маленькие молекулы, но специализируется в области крупных молекул и их взаимодействий. Далее, специалист по биологии клеток берет блочную картину единиц, усердно изучаемых молекулярным биологом, и пытается использовать ее для объяснения клеточного взаимодействия. Думаю, что вам понятно, к чему я веду. Каждый уровень в каком-то смысле «запечатан» – изолирован от уровней, находящихся ниже его. Это еще один из выразительных терминов Саймона, напоминающий о том, как подводная лодка делится на секции; если одна из частей разгерметизируется, проблема не распространяется на остальные секции, так как двери испорченной секции закрываются, изолируя ее от соседних помещений.
Хотя некоторая «утечка» между иерархическими уровнями наук присутствует всегда, и химик не может полностью игнорировать низшие уровни физики, или биолог – полностью игнорировать химию, утечки между далекими уровнями почти не происходит. Именно поэтому мы можем понимать других людей, не имея при этом глубокого понимания модели кварков, структуры ядра, природы орбит электронов, химических связей, структуры белков, органоидов в клетках, путей межклеточного сообщения, физиологии различных органов человеческого тела, или сложных взаимодействий между органами. Все, что нам необходимо, – это блочная модель действия высших уровней; и, как мы все знаем, подобные модели весьма реалистичны и успешны.
Разделение на блоки и детерминизм
Однако у блочной модели есть и значительная негативная сторона; обычно она не дает точных предсказаний. Это значит, что хотя блочные модели спасают нас от невыполнимой задачи воспринимать людей как набор кварков (или того, что в них имеется на низшем уровне), они дают нам только вероятностные оценки того, как другие люди чувствуют, реагируют на наши слова и поступки и так далее. Короче, используя блочную модель, мы приносим в жертву детерминизм и выигрываем в простоте. Несмотря на то, что мы не знаем, как люди среагируют на наш анекдот, мы все же рассказываем его; при этом мы скорее ожидаем, что они засмеются (или не засмеются), чем, скажем, полезут на ближайший столб. (Конечно, мастер дзена запросто мог бы сделать именно это!) Блочная модель определяет «интервал» возможного поведения и вероятность того, что определенное поведение будет лежать в той или иной области этого интервала.
«Компьютеры могут делать только то, что им приказано»
Эти идеи могут быть приложены не только к сложным физическим системам, но и к компьютерам. Известно высказывание: «Компьютеры могут делать только то, что им приказано». В каком-то смысле это верно, но при этом не учитывается следующий факт: последствия ваших инструкций неизвестны вам заранее, поэтому поведение компьютера может быть так же удивительно и непредсказуемо для вас, как и поведение человека. Обычно вам заранее известен тот приблизительный промежуток, в рамки которого уложится результат, но неизвестны детали того, где именно этот результат будет расположен. Например, вы можете написать программу для того, чтобы вычислить первый миллион цифр числа π. Ваша программа начнет выдавать эти цифры гораздо быстрее, чем могли бы это сделать вы сами – но то, что компьютер обгоняет программиста, не удивительно. Вы знаете заранее, в каком интервале будет лежать результат – а именно, цифры от 0 до 9; то есть у вас имеется блочная модель поведения программы; если бы вы знали все остальное, вам не нужно было бы писать программу.
Это старое высказывание неверно и в другом смысле. Дело в том, что, программируя на языках все высших уровней, вы все с меньшей и меньшей точностью можете сказать, что именно вы приказываете компьютеру! Многие прослойки переводов могут отделять «передний конец» сложной программы от действительных команд на машинном языке. На уровне, на котором вы думаете и программируете, ваши высказывания могут быть более похожи на утверждения и предложения, чем на команды. При этом внутренняя «возня», вызванная вводом высказывания высшего уровня, обычно остается для вас невидима, так же, как, когда вы едите бутерброд, вы не думаете о пищеварительных процессах, которые при этом начинаются у вас внутри.
Так или иначе, мнение, что «компьютеры могут делать только то, что им приказано», впервые высказанное лэди Лавлэйс в ее знаменитых мемуарах, настолько распространено и так связано с мнением о том, что «компьютеры не могут думать», что мы вернемся к нему в следующих главах, когда сможем обсудить этот вопрос на более высоком уровне.
Два типа системы
Системы, построенные из многих частей, бывают двух типов. Первый их них характеризуется тем, что поведение одних частей аннулирует поведение других. В подобных системах не столь важно, что делается на низшем уровне, поскольку результатом любых происходящих там событий будет почти одинаковое поведение высшего уровня. Примером такой системы может служить баллон с газом, молекулы которого сталкиваются друг с другом в результате множества сложных микроскопических процессов; однако макроскопическое целое – это стабильная система в спокойном состоянии, в которой определены температура, давление и объем. В системах второго типа микроскопические изменения на низшем уровне могут возрасти до такой степени, что в результате заметно изменится макроскопический уровень. Примером такой системы является сборочный конвейер. Если один из сборщиков ошибется, с конвейера сойдет бракованная деталь.
Компьютер – это сложная комбинация систем обоих типов. Его провода представляют собой предсказуемую систему: они проводят электричество в соответствии с законом Ома. Этот весьма точный закон похож на законы, описывающие поведение газа в баллоне, поскольку он зависит от статистических эффектов: хаотическое поведение биллионов частиц дает в результате предсказуемое общее поведение системы. Компьютер также содержит макроскопические части, такие как печатающее устройство, чье поведение задается определенными электрическими импульсами. То, что печатает это устройство, ни в коей мере не является результатом мириад взаимоуничтожающих микроскопических эффектов. В большинстве компьютерных программ значение каждого бита играет важную роль в том, что напечатает компьютер. От изменения любого бита информации значительно изменяется и конечный результат.
Системы, состоящие только из «надежных» подсистем, – то есть таких подсистем, чье поведение может быть с уверенностью предсказано на основании описания их частей, – играют важнейшую роль в нашей повседневной жизни, поскольку они являются оплотом стабильности. Мы можем быть уверены, что стены не упадут нам на голову, что тротуар окажется сегодня там же, где вчера, что солнце не исчезнет с небосвода, что часы показывают правильное время и так далее. Блочные модели подобных систем практически полностью детерминисткие. Разумеется, другой тип системы, играющей важную роль в нашей жизни, это система, чье поведение варьируется в зависимости от внутренних микроскопических параметров, – зачастую огромного множества таких параметров, – которые не поддаются прямому наблюдению. Наша блочная модель подобной системы будет выражаться в терминах некоего «пространства» ее действия и будет включать вероятностные оценки того, в каком месте этого пространства «приземлится» система в данный момент.
Баллон с газом, который, как я уже сказал, является надежной системой в результате множества взаимоуничтожающих микроскопических эффектов, подчиняется точным, детерминистким законам физики. Это блочные законы, поскольку они рассматривают газ как единое целое, игнорируя его составляющие части. Более того, микроскопическое и макроскопическое описания газа используют совершенно разные термины. Первое требует определения положения и скорости каждой из молекул газа; второе требует определения только трех новых величин температуры, давления и объема. Две первые величины вообще не имеют соответствия на микроскопическом уровне. Математическое соотношение этих трех величин, выраженное в следующем простом уравнении: pV=cT, где с – постоянная, – это закон, который одновременно зависит и не зависит от событий на низшем уровне. Если говорить менее парадоксально, этот закон может быть выведен из законов, управляющих молекулярным уровнем, в этом смысле он зависит от низшего уровня. С другой стороны, этот закон позволяет, при желании, полностью игнорировать низший уровень; в этом смысле он от него не зависит.
Важно иметь в виду, что закон высшего уровня не может быть выражен в терминах низших уровней. «Давление» и «температура» – новые термины, которые не могут быть поняты только на основании низшего уровня. Мы, люди, прямо воспринимаем температуру и давление, поскольку мы так устроены, не удивительно, что мы открыли этот закон. Но существа, которые воспринимали бы газы как абстрактные математические конструкции, должны были бы обладать умением выводить новые понятия, чтобы открыть подобный закон.
Эпифеномены
В завершение этой главы я хотел бы рассказать забавную историю о сложных системах. Однажды я беседовал с двумя программистами, работавшими с операционной системой компьютера, который я использовал. Они сказали, что она запросто справляется со своей задачей, когда к ней подключено менее тридцати пяти человек; но когда это число достигает тридцати пяти, время ответа внезапно замедляется настолько, что с таким же успехом можно отключиться от системы, пойти домой и вернуться попозже. Шутя, я сказал: «Эту проблему решить ничего не стоит – для этого нужно только отыскать то место в операционной системе, где записано число „35“, и поменять его на „60“!» Все рассмеялись. Дело, разумеется, в том, что такого места просто не существует. Откуда же, в таком случае, появляется это критическое число – 35 пользователей? Это видимое следствие общей организации системы – так называемый «эпифеномен».
Так же вы можете спросить о бегуне. «Где в нем содержится число „10“, позволяющее ему пробегать 100 метров за 10 секунд?» Ясно, что оно не содержится ни в каком специальном месте. Время, которое бегун показывает на стометровке, – результат его физического состоянии, быстроты его реакций, и миллиона других факторов, взаимодействующих между собой, когда он бежит. Это время вполне воспроизводимо, но оно не записано нигде в его теле. Оно распределено по всем клеткам его тела и проявляется только во время бега.
Рис. 60. Картина «МУ» (Рисунок автора. Русский графический вариант выполнен переводчиком.)