С течением времени все ярче проявляет себя тенденция к замене человеческого труда работой машин и механизмов. Еще совсем недавно человечество могло лишь мечтать о том, что благодаря машинам оно сможет наконец освободиться от бремени тяжелого и однообразного труда. Сегодня же без машин трудно представить себе как домашнее хозяйство с привычными уже пылесосами и стиральными и посудомоечными машинами, так и промышленное производство, где машины с успехом заменяют человека на различных монотонных операциях — обертывании конфет, например. В последнее же время ученые и инженеры все чаще и чаще направляют свои усилия на то, чтобы машины заменили человека и в интеллектуальной сфере. Появление компьютерной техники — типичный пример результатов подобных разработок, хотя, разумеется, способности компьютеров к подлинной мыслительной деятельности зачастую сильно переоценивают. Все, кто занимается программированием, знают, насколько тупа на самом деле машина, не способная устранить даже простейшие ошибки, не будучи предварительно запрограммированной на это. Служащие различных контор, занимающиеся, к примеру, ведением бухгалтерского учета на компьютерах, наверное, уже понимают, о чем идет речь: процесс внезапно прерывается, и все расчеты бесследно исчезают. После того как это произошло, никто и ничто не убедит компьютер вернуть пропавшие данные, если в соответствующую программу не были изначально включены подробнейшие инструкции на случай именно такого отказа. Однако к вопросу о разумности компьютеров мы намерены обратиться в этой главе несколько позднее; отложим его до тех пор.
И все же компьютеры, несмотря на все существующие у них пока недостатки, — представляют собой нечто поразительное. По всей видимости, компьютер можно считать величайшим достижением технического прогресса двадцатого века. Если раньше мы лишь слышали об использовании компьютеров в научных исследованиях (и в частности, в области космонавтики), то теперь мы сталкиваемся с ними буквально на каждом шагу. Нужно ли купить билет на поезд, или забронировать себе место в самолете, или узнать о результатах выборов, или даже найти спутника жизни — мы всякий раз можем обратиться за помощью к компьютерам. Компьютеры теперь повсюду: не только в учреждениях и конторах, но все чаще и в наших квартирах, где наши же дети привязываются к ним всей душой. Там, где раньше была необходима логарифмическая таблица или длинные столбцы цифр, теперь достаточно лишь нажатия на пару клавиш. Будучи встроенными в автомобили, компьютеры помогают сэкономить бензин или даже отыскать путь в нужное место; их применение в телекоммуникациях обеспечивает оптимальную загруженность линий. Компьютеры — верные помощники конструкторов; например, при проектировании домов они не только расставят по местам двери, розетки и прочее, но еще и начертят готовый проект во всех мыслимых перспективах, оживив при этом чертежи изображением деревьев и т. п., компьютеры рассчитывают конструкции мостов, проектируют города и системы химической очистки. Компьютеры открыли для нас мир «виртуальной реальности», в котором при помощи специальных перчаток и экранов, встроенных в особые очки, мы можем участвовать в подвижных трехмерных сценах, вступая в кажущийся реальным искусственно созданный мир. Скоро наверняка появятся программы, которые будут способны обеспечить поддержание разговора на волнующую нас тему с искусственным собеседником, глядящим с экрана, или же — для душ попроще, чьи устремления не настолько высоки, — организовать боксерский бой с виртуальным противником.
Компьютеры применяются в полетных симуляторах, предназначенных для профессионального обучения пилотов и космонавтов, и в системах управления полетами ракет к Луне и внешним планетам Солнечной системы. Компьютеры управляют не только отдельными инструментами и станками, но и целыми сложными производственными процессами; мечтой экономической системы с централизованным управлением был бы, вероятно, такой суперкомпьютер, который занимался бы управлением и планированием абсолютно всех экономических процессов. Однако именно здесь и становятся очевидными границы возможностей компьютеров, каковые границы компьютерные специалисты характеризуют словосочетанием «информационное бутылочное горлышко». Для объяснения этого понятия обратимся к простому примеру.
В большинстве квартир температура воздуха регулируется автоматически. С этой целью на термостате устанавливается некоторое номинальное значение температуры; термометр постоянно замеряет комнатную температуру, определяя ее так называемое действительное значение. Если эти два значения перестают совпадать, термостат подает в центральную котельную определенный сигнал, в соответствии с которым температура подаваемой в батареи горячей воды увеличивается или уменьшается.
В результате переноса такого принципа в область производственных процессов или даже на экономическую систему в целом возникает следующая принципиальная проблема: для того чтобы компьютер смог принять решение о необходимости тех или иных действий, требуется измерение очень большого количества действительных величин, которые затем необходимо сопоставить с соответствующими номинальными значениями. Вся эта деятельность сопряжена с весьма громоздкими вычислениями, на выполнение которых затрачивается довольно значительное количество времени, в результате чего компьютер оказывается не в состоянии вовремя подавать необходимые управляющие команды — и вся система управления обрушивается. Причина заключается в том, что информация не может, образно говоря, протекать через «бутылочное горлышко» с необходимой скоростью. Решением этой проблемы в отдельных случаях могут стать более быстродействующие компьютеры; в общем же случае решение видится в самоорганизации отдельных процессов, что позволило бы процессу в целом протекать самостоятельно и естественно уже в таких условиях, когда предварительно заданы только те или иные релевантные величины.
С проблемами самоорганизации применительно к самим компьютерам мы еще встретимся. Однако чтобы разобраться в том, каковы возможности компьютеров и где находятся потенциальные границы этих возможностей, мы сначала поближе познакомимся с принципами функционирования компьютера. Каким образом мы используем его для своих целей? Иными словами: как программируют компьютеры? Начнем с последнего.
Основной принцип работы компьютера не многим отличается от принципа действия карманного калькулятора. Допустим, мы задаем калькулятору задачу: сложить числа 3 и 5. Мы должны для этого нажать на клавиши «3», «+» и «5», а затем на знак равенства «=». Калькулятор таким образом «узнает», что от него требуется результат сложения чисел «3» и «5». Имея же дело с компьютером, мы даем ему следующие команды: «Возьми одно число (в нашем случае это число «3»). Возьми второе число («5»). Сложи их друг с другом. Покажи полученный результат.»
Всю процедуру можно разделить на два этапа: первым будет выбор задаваемых чисел (например, чисел «3» и «5»), вторым — непосредственно вычисление. Выбранные нами слагаемые можно представить в виде шаров с написанными на них числами; предположим, что каждый такой шар находится в отдельной ячейке. В этом случае процесс вычисления может выглядеть следующим образом: «Возьми число «3» из первой ячейки и прибавь к нему число «5» из второй ячейки. Помести результат в следующую, третью, ячейку». При более сложных вычислениях алгоритм может стать более сложным; скажем, число из третьей ячейки необходимо будет умножить на число из четвертой и т. д. Основная задача, таким образом, каждый раз остается очень простой, однако при этом достигается большая амплитуда вариаций, поскольку мы можем и изменять числа в каждой из ячеек, и продолжать сам алгоритм. Можно, допустим, дать компьютеру команду «сохрани полученный результат снова в первой ячейке» и построить таким образом так называемый цикл, который обеспечит непрерывное повторение заданного вычислительного процесса. Например, так можно вычислить значение произведения 2×2×2×2×...
У программиста, работающего с «большими» компьютерами, используемыми в научных расчетах, те же две задачи: с одной стороны, он программирует отдельные операции — шаги, которые должен выполнить компьютер (сложение, вычитание, умножение и деление, к примеру), а с другой стороны, программист обеспечивает машину новыми данными, которые она обрабатывает в соответствии с заданной последовательностью вычислительных операций.
Собственно говоря, работа программиста заключается лишь в формировании перечня самих вычислительных операций. «Скормить» же машине новые данные, по сути дела, совсем не сложно: нужно лишь распределить нужные числа по соответствующим отдельным ячейкам. Во многих случаях достаточно оказывается короткой программы, включающей в себя относительно небольшое количество операций, позволяющее, тем не менее, обработать большие объемы информации — например при расчете банковских процентов, страховых взносов, заработной платы и т. п. Если же речь идет о более сложных вычислительных задачах, программы становятся значительно длиннее, а затраты рабочего времени высококвалифицированных специалистов, соответственно, колоссально увеличиваются. Возникает вопрос: нельзя ли с целью экономии человеческих ресурсов создать такой компьютер, который мог бы программировать себя сам? Однако сначала следует сказать еще несколько слов о программировании машин человеком.
Хотя отдельные вычислительные операции в высшей степени просты, их можно комбинировать между собой множеством различных способов. Можно выстраивать уже упоминавшиеся циклы, которые должны, допустим, приводить к тому, что приближенные вычисления будут производиться машиной до тех пор, пока результат их не покажется ей достаточно точным. В качестве примера таких вычислений можно привести процесс извлечения корня.
Однако этим возможности компьютеров не исчерпываются, с чем, собственно, и связаны и наши надежды, и наши трудности. Подобно тому, как мы представляли себе шары с числами, помещенные в отдельные ячейки и готовые к дальнейшей компьютерной обработке, можно представить ячейки и с такими шарами, на которых содержатся записи о тех или иных вычислительных операциях, своего рода сигналы к действию. Компьютер в этом случае получает команду, смысл которой приблизительно таков: «Возьми следующий шар и сделай то, что написано на этом шаре.» (Естественно, в действительности нет никаких шаров, которые компьютер мог бы «брать», как при игре в лото. Скорее, можно говорить о существовании особого запоминающего устройства, где компьютер хранит данные и откуда получает электрические сигналы, означающие для него команду «выполнить то или иное действие».) «Шар» может содержать, например, указание перемножить два заданных числа; но может также и представлять собой команду для запуска какой-то посторонней сложной программы. В результате объединения в одно целое столь разнообразных предписаний компьютерные процессы могут становиться очень и очень сложными. Эта сложность, кстати, приводит к возникновению особой «разновидности» программистов, называемой на компьютерном жаргоне английским словом «hacker»[27]. Хакер — это программист, который из чистого интереса к творчеству без конца придумывает все новые и новые программы, перестает в конце концов ориентироваться в собственных наработках, сидит перед компьютером ночь напролет с разбухшей головой, пытаясь разобраться, что и где пошло не так. При этом незадачливый хакер забирается все глубже и глубже, и к утру оказывается вынужден признать, что в его компьютере царит теперь полнейшая неразбериха. Приведенный пример, без сомнения, наглядно свидетельствует о том, насколько коварной штукой может быть программирование.
Трудности, с которыми сталкивается хакер, знакомы, разумеется, каждому программисту. Одной ведущей компьютерной фирмой в этой связи были проведены исследования вопроса о конструкции суперкомпьютеров с точки зрения их архитектуры. Исследования эти, правда, не дали никаких пригодных к использованию результатов, что совершенно неудивительно — с точки зрения синергетики. Компьютер, если разобраться, представляет собой нечто большее, нежели просто совокупность жестких структур; здесь постоянно идут процессы, которые для обеспечения их успешного взаимодействия обязаны быть так или иначе взаимно согласованы. Иными словами, компьютер можно безо всяких оговорок полагать синергетической системой.
Сегодняшний суперкомпьютер «отделен» от ввода/вывода данных. В нескольких отдельных помещениях находятся терминалы, с которых компьютер получает команды и на которые отсылает полученные в ходе работы результаты: здесь они либо появляются на экранах мониторов, либо распечатываются при помощи специальных устройств.
Однако все большую силу набирает новая тенденция, соответствующая важнейшему направлению развития синергетики. Согласно этой тенденции, вместо одного большого компьютера создается сеть из множества соединенных друг с другом обычных компьютеров, которая берет на себя решение задач, раньше предназначавшихся для суперкомпьютера. В этом случае большая машина, прежде руководившая процессом ввода/вывода данных, собственно, уже и не нужна, ведь компьютеры, включенные в сеть, вполне могут «договориться» друг с другом самостоятельно (рис. 17.1).
Рис. 17.1. Организация и самоорганизация компьютеров. Вверху: главный компьютер распределяет задачи — организация. Внизу: отдельные компьютеры распределяют задачи между собой — самоорганизация
Преимущества подобной системы — сети, составленной из нескольких компьютеров, — очевидны. Такие компьютеры производятся серийно, они взаимозаменяемы, их можно устанавливать отдельно друг от друга в разных помещениях вычислительного центра (или какого-либо учреждения). Компьютеры могут быть как одинаковыми, так и специализированными под выполнение различных задач (некоторые должны иметь только мониторы, другие же — принтеры и прочие устройства). При этом возникают принципиально новые проблемы, связанные с тем, насколько способными к самоорганизации можно считать подобные компьютерные сети, состоящие из множества машин. С одной стороны, если эти компьютеры жестко соединены друг с другом, они опять-таки представляют собой некое подобие прежнего большого компьютера; при этом распределение задач между отдельными компьютерами определяется способом соединения. С другой стороны, существует вероятность, что компьютеры автоматически установят между собой новые связи. В этом случае один из компьютеров, нуждающийся в помощи, мог бы послать другому некий сигнал, снабженный, как говорят компьютерщики, особым «флажком» или «маркером», содержащим информацию о том, откуда и куда направлено сообщение, и запрос о готовности машины-адресата взять на себя выполнение определенной задачи. В ответ на этот сигнал вводится в действие так называемый «протокол», согласно которому компьютер, получивший сообщение, должен дать отправителю ответ о своей готовности (или неготовности) взяться за выполнение поставленной задачи. После обмена сообщениями в случае готовности происходит перенаправление задачи с одной машины на другую. Такое перенаправление, разумеется, требует некоторых затрат, каковых не возникает при жестко установленных связях между компьютерами. Задача конструкторов в данном случае состоит в том, чтобы найти оптимальное решение, располагающееся где-то между жестким заданием соединений компьютеров в сети и распределением задач, имеющим место при самоорганизации этих соединений; поиски этого решения на настоящий момент только-только начаты. Компьютеры, объединенные в подобную сеть, распределяют задачи между собой и решают их параллельно, затем переходят к новому распределению и т. д. Процессы самоорганизации реализуются, как говорят ИТ-специалисты, на уровне неких «фундаментальных структур».
Что же представляют собой эти «фундаментальные структуры»? Для объяснения вновь воспользуемся результатами многочисленных опытов, рассматриваемыми на страницах этой книги, хотя до сих пор мы ни разу не упоминали о существовании этих самых «фундаментальных структур». Как нам уже известно, в опытах с нагреванием жидкости или при химических реакциях возникновение макроскопических структур происходит в результате изменения внешних условий — например при подведении к системе большего количества энергии. В случае компьютерных сетей можно ожидать аналогичных явлений: ставя перед компьютерами больше задач, мы тем самым увеличиваем объем вводимых данных, в результате чего автоматически становится возможным иное, новое распределение задач между отдельными компьютерами, т. е. самоорганизация вычислительных процессов. При этом, правда, могут возникать и нежелательные явления, уже знакомые нам по предыдущим главам, — например осцилляции. В этом случае при распределении задач между отдельными компьютерами возникают периодические колебания, в результате чего каждый отдельный компьютер пропускает через себя колоссальный поток информации. Синергетика может помочь избежать возникновения подобных осцилляций. Воспользуемся аналогией с сетью нейронов мозга. Многократное распределение задач в компьютерной сети можно использовать для укрепления поначалу слабой связи между отдельными компьютерами. При этом в действие вступает принцип конкуренции, обеспечивающий «выживание» наиболее эффективных связей и подавление остальных; это приводит к тому, что компьютеры — точно так же, как шахматисты, — начинают в конце концов «мыслить блоками». Эти блоки не обязательно должны быть локализованы в каком-то совершенно особом компьютере — они могут находиться в разных машинах одной сети.
Наконец, существует возможность поставить всю компьютерную сеть в условия, которые действовали бы подобно дарвинистскому принципу о выживании сильнейшего; например, раз за разом ставить перед компьютерами одну и ту же задачу с условием, что метод решения постоянно должен изменяться. В итоге компьютеры остановятся на том способе решения, который, к примеру, требует наименьших затрат времени[28].
Нам представляется, что реализация этих идей уже не за горами, поскольку задачи, решение которых поручается компьютерам, не слишком сильно видоизменяются со временем. В таком случае возможно, что в компьютерных сетях — подобно тому, как это происходит в других синергети-ческих системах, — внезапно возникнут новые «структуры», воплощающие иные способы распределения задач между отдельными компьютерами.
Если же объединенные в сеть компьютеры вынуждены будут решать некую совершенно новую задачу, процесс решения значительно усложнится; и в этом нет абсолютно ничего удивительного: точно так же, как это делают люди, сталкивающиеся с новой ситуацией, компьютеры, учась, должны сначала попробовать различные подходы к решению.
Компьютеры умеют очень многое. Возникает вопрос: в чем же они уступают человеку? Обработка огромного количества данных не представляет для компьютеров проблемы; есть, однако, задачи, с которыми компьютер справляется не так хорошо, как хотелось бы. Речь идет о распознавании образов.
Распознавание образов является необходимым условием во многих автоматических процессах. К примеру, автоматическому сварочному аппарату приходится «самостоятельно» отыскивать то место, на которое он должен приварить соответствующую деталь. Однако задача становится еще интереснее, когда от машины требуется распознавание сложных образов. Известный пример тому — считывающее устройство, способное декодировать и распознать рукописный текст. Ведущая роль в подобных процессах принадлежит опять-таки синергетическим эффектам. На первом этапе происходит разложение букв на отдельные элементы, так называемые элементарные характерные образы или примитивы (рис. 17.2).
Рис. 17.2. Распознавание образа путем разложения его па отдельные элементы («примитивы»)
Элементы эти подбираются так, что они могут быть восприняты машиной, скажем, как прямые и дугообразные линии, расположенные определенным образом. Такие элементы могут быть «восприняты» фотоэлементами и затем «опознаны» с помощью сравнительно простых устройств. Каждому элементу в зависимости от места его расположения сопоставлено некоторое число (рис. 17.3).
Рис. 17.3. Простой пример сопоставления примитивам чисел в зависимости от взаимного расположения примитивов
Аналогично тому, как замок с цифровым кодом открывается одной-единственной комбинацией цифр, каждая буква располагает своей собственной комбинацией цифр, соответствующих каждому из элементов этой буквы и определяющих именно эту букву. Машина проверяет наличие в имеющемся у нее перечне данной цифровой комбинации и опознает соответствующую букву как, например, букву «А». Трудности при использовании такого метода распознавания вызваны тем, что он заведомо не исключает возникновения ошибок: безупречная идентификация элементов букв — не допускающая смешения, допустим, вертикальной линии и открытого справа дугообразного элемента — попросту невозможна. Таким образом, мы возвращаемся к старой задаче об отыскании способов исправления ошибок. Такого рода явления уже встречались нам при рассмотрении лазера или движения жидкости. В каждой из упомянутых систем также вполне вероятно наличие нескольких элементов, изначально «шагающих не в ногу» с остальными. Допустим, несколько атомов в лазере испускают волны «неправильной» длины, или не все молекулы жидкости принимают участие в общем движении. Однако такие «отщепенцы» очень быстро оказываются, что называется, «прибраны к рукам» параметром порядка. Для считывающего устройства это означает, что в случае отсутствия в перечне какой-либо из обнаруженных комбинаций машина должна попытаться подобрать среди существующих наиболее близкую к ней. С этой целью используются некоторые чисто математические методы. Например, каждому числу ставится в соответствие определенная точка на координатной плоскости (рис. 17.4).
Рис. 17.4. Представление сопоставленных буквам чисел точками на координатной плоскости. В первом случае идентифицирована точка, соответствующая букве О, во втором — точка, соответствующая букве X. Комбинация же, состоящая из цифр «3» и «1», отсутствует в перечне заданных комбинаций, вследствие чего соответствующий результат распознавания считается ошибочным. Представленная система основывается всего на двух координатах; на практике же применяются многомерные системы координат
При обнаружении ошибки измеряется расстояние между каждой из заданных в перечне точек и точкой, соответствующей «сомнительному» числу. При этом, впрочем, возможна ситуация, требующая нарушения симметрии (рис. 17.5): проверяемая точка равноудалена от имеющихся в памяти машины «правильных» точек.
Рис. 17.5. Пример неуверенного распознавания. Машина определила обе цифры как единицы, но в ее перечне комбинаций отсутствует буква с таким цифровым соответствием: имеются лишь цифровые комбинации «12» и «21», соответствующие буквам О и X (см. рис. 17.4). Точка «11» находится на равном расстоянии как от той, так и от другой; следовательно, для принятия решения необходимо нарушение симметрии
В этом случае машина беспомощна: для идентификации ей недостает дополнительных критериев, в рамках которых она могла бы принять решение. Когда при распознавании рукописного слова или фразы машина оказывается не в состоянии решить, соответствует ли прочитанная ею буква, скажем, точке X или точке О, то, как показывает опыт, машина может принять решение на основании того, как распознанное слово или предложение выглядят целиком. Сопоставив полученную целостную картину с грамматическими нормами языка или просто проверив отдельные слова на предмет осмысленности, машина может наконец однозначно решить, каким же все-таки образом должна выглядеть сомнительная буква. Этот пример наглядно показывает, что при последовательном распознавании знаков принятие окончательного решения относительно содержания того или иного знака может оказаться весьма непростым делом.
Описанный метод является относительно жестким, ведь для верной идентификации считываемые машиной «палочки» и «крючочки» должны быть расположены по отношению друг к другу совершенно определенным образом. В случае с печатным текстом, в котором шрифт соответствует неким нормам, машинное чтение осуществимо без особых проблем; однако с рукописными текстами машина зачастую оказывается беспомощна. Для распознавания рукописных текстов разрабатываются другие методики: в их основе лежит то обстоятельство, что отдельные примитивы располагаются по отношению друг к другу определенным образом, аналогично тому, как слова в предложении занимают место, определенное им синтаксическими законами данного языка. На практике эта аналогия между грамматикой и системой взаимного расположения примитивов используется для создания инструкций, в соответствии с которыми машина будет действовать в процессе синтеза отдельных элементов в знаки (например в буквы алфавита). При этом машинному разуму приходится не один раз оказаться перед выбором, подобно человеку на развилке в лабиринте; путь же к желанному выходу и синтезу буквы из примитивов указывает анализ их взаимного расположения.
Особенностью человеческого восприятия является способность понимать даже искаженную информацию; мозг оказывается в состоянии самостоятельно восполнять отсутствующие фрагменты. Эта способность мозга представляет собой существенную составляющую нашей способности к восприятию и называется ассоциативной памятью. Такой же ассоциативной памятью можно снабдить и синергетический компьютер. Сначала поясним на простом примере, каким именно образом здесь участвуют принципы синергетики. Этот пример, помимо прочего, наглядно демонстрирует, насколько широка область применения синергетических принципов: от движения жидкости до способности к восприятию.
Рассмотрим модель поведения жидкости, помещенной в сосуд с дном круглой формы и нагреваемой снизу. Как это уже было описано в четвертой главе, в этом случае в жидкости возникают упорядоченные цилиндрические структуры. Предположим в рамках такой модели, что все вращающиеся цилиндрические ячейки изначально сориентированы в одном-единственном направлении (рис. 4.19). Как показывают результаты моделирования, в этом случае в жидкости самостоятельно развивается полностью упорядоченная структура из цилиндрических ячеек. Если изменить начальную ориентацию ячеек, упорядоченная структура также возникает, но движение жидкости в ней происходит уже в ином, нежели в первом случае, направлении. И наконец, можно задать одновременно два направления движения, поместив таким образом жидкость в «конфликтную ситуацию». Одна из ячеек окажется несколько «сильнее» другой, благодаря чему и одержит победу в конкурентной борьбе; окончательное направление движения жидкости в результате будет совпадать с ориентацией именно этой ячейки.
Что же при этом происходит? Используя понятия синергетики, можно описать этот процесс следующим образом. Цилиндрическое движение жидкости обусловливает возникновение соответствующего параметра порядка, который — согласно принципу подчинения — и приводит всю жидкость к упорядоченному состоянию в виде ячеистой структуры. Если же изначально из прочих выделяются сразу две ячейки, каждая из которых порождает свой собственный параметр порядка, то эти параметры порядка вступают между собой в конкурентную борьбу, и побеждает в ней тот из них, который изначально был «сильнее»; именно он в результате — опять же в соответствии с принципом подчинения — диктует свои условия в процессе приведения жидкости в упорядоченное состояние. Можно сказать, что в данном случае жидкость действует подобно ассоциативной памяти, которая из изначально заданного неполного набора данных оказывается способна восстановить соответствующий полный набор (в нашем примере — полную ячеистую структуру). Итак, мы утверждаем, что распознавание образов является, по сути, не чем иным, как своего рода созданием структур, процессом, полностью аналогичным тому, что протекает в описанной нами модели.
Взглянув на некий образ (допустим, на фрагмент картинки с изображением лица), мы выделяем в нем несколько отличительных черт — иначе говоря, примитивов. Эти примитивы порождают соответствующий параметр порядка, благодаря которому мы затем узнаем это лицо, воссоздав перед своим внутренним взором из фрагмента целое изображение. На основании аналогии между распознаванием и созданием образов был сконструирован синергетический компьютер — сначала в форме алгоритма, — который действительно оказался способен к распознаванию образов, причем ему удается распознавание даже лиц. Изображения лиц, которые компьютер должен будет распознать, либо предварительно вводятся в его память, либо могут быть «заучены» им в ходе эксперимента. Затем машине предлагается фрагмент изображения одного из таких лиц; пользуясь хранящимися в его памяти образами, компьютер реконструирует полное изображение (рис. 17.6).
Рис. 17.6. Хранящиеся в памяти компьютера изображения, снабженные буквенным кодом (вверху); этапы распознавания одного из изображений: от заданного фрагмента до восстановления полного изображения (внизу)
Компьютер, кроме того, вполне способен распознать несколько искаженное изображение, а также учесть возможные изменения выражения лица. Несколько больших затрат стоит синергетическому компьютеру распознавание сложных сцен, подобных той, что представлена на рис. 17.7.
Рис. 17.7. Сложная сцена, предлагаемая для распознавания синергетическому компьютеру
В этом случае сначала происходит идентификация изображения лица женщины на переднем плане. Однако если компьютеру «запретить» распознавание этого образа (что вполне возможно, нужно лишь задать равным нулю значение так называемого параметра внимания), то машина «увидит» и распознает только изображение мужского лица, расположенное на заднем плане. Таким образом компьютер способен поэтапно распознавать сложные сцены, включающие в себя целый ряд лиц.
И все же в некоторых (правда, немногочисленных) случаях компьютер выдавал-таки неверные ответы. Впрочем, я вскоре обнаружил, что и человеческие способности к распознаванию не безграничны. Убедиться в этом каждый может на собственном опыте, взглянув на рис. 17.8, на котором, на первый взгляд, изображен портрет Эйнштейна. Попробуйте, однако, вглядеться в это лицо пристальнее; в какой-то момент на рисунке вдруг обнаруживается пейзаж с тремя купальщицами.
Рис. 17.8. Эйнштейн или три купальщицы?
Наша собственная способность к распознаванию — так же, как и аналогичная способность компьютера — управляется некими «ожиданиями», а точнее говоря, определенными параметрами внимания. Так мы подобрались к весьма любопытному предмету — к так называемым амбивалентным, или «двойным», изображениям; еще один пример такого изображения приведен на рис. 17.9. Что здесь нарисовано: белая ваза или два черных лица в профиль? Мы видим одно из двух: или вазу, или лица.
Рис. 17.9. Лица или ваза?
Допустим, мы попытаемся сконцентрировать внимание на вазе; спустя некоторое время перед нами, однако, вдруг снова вместо вазы оказываются лица. Этот интересный психологический феномен очень легко объясним, если предположить, что как только образ (или часть образа) оказывается распознанным, соответствующий параметр внимания обращается в нуль. Далее к делу «подключается» параметр внимания, относящийся уже к другому изображению, — он владеет ситуацией до тех пор, пока и этот второй образ не будет нами распознан, после чего внимание вновь переключается. Поскольку такого рода феномены уже были подробнейшим образом рассмотрены в другой нашей книге[29], мы не будем сейчас вдаваться в подробности этих в высшей степени увлекательных явлений.
Компьютеры способны распознавать не только изображения (например лица) и тексты, но и звуковые сигналы. Звуки в этом случае преобразуются в электрические колебания, которые можно визуализировать и вывести на экран монитора (рис. 17.10). Таким образом, мы получаем определенный оптический образ, посредством которого акустическое распознавание можно свести к оптическому. Впрочем, некоторое время назад стал возможен и обратный процесс, т. е. акустическая передача оптических данных — например звуковая передача букв, распознаваемых считывающим устройством, что довольно широко используется, скажем, в гостиницах для того, чтобы будить клиентов.
Рис. 17.10. Форма акустических волн, соответствующих нескольким звукам английского языка. (По горизонтали — время, по вертикали — амплитуда колебаний.)
Как уже говорилось, переход на следующий уровень распознавания, т. е. не просто идентификация отдельной буквы или слова, а наполнение этого слова смыслом, представляет собой качественно новый и чрезвычайно сложный шаг. Это обстоятельство становится совершенно очевидным, как только компьютер берется за перевод с одного языка на другой. Мы уже знаем, что каждое слово компьютер преобразует в определенную цифровую комбинацию. Используя эту комбинацию, машина отыскивает в имеющемся у нее в распоряжении «словаре» другую цифровую комбинацию, соответствующую необходимому слову из другого языка. Найденную комбинацию машина и полагает переводом слова на иностранный язык.
Однако как только речь заходит о простейших языковых тонкостях, тут-то и начинаются, собственно, трудности — например, когда переводимое слово имеет в иностранном языке несколько значений. Это случается уже на самом примитивном уровне — вспомним хотя бы о таком немецком слове, как «Teekessel»[30]. Или вот возьмем слово «кран»: кран может быть водопроводным — но может быть и подъемным. Иными словами, перед нами вновь все та же фундаментальная проблема, для решения которой требуется нарушение симметрии: имея два совершенно равноправных значения, нужное можно выбрать только исходя из контекста. Как же в таких условиях может преуспеть машина? Очевидно, нам предстоит столкнуться здесь с целым рядом проблем, порождающих, в свою очередь, новые, еще более сложные вопросы. С точки зрения синергетики, задача машины состоит в том, чтобы установить верную иерархию параметров порядка. Если значения каких-либо слов совпадают, то словам этим ставится в соответствие одинаковый параметр порядка. Такой параметр порядка во многих случаях способен (до определенной степени, конечно) «поправить» искаженную фразу — точно так же, как лазерная волна способна «призвать к порядку» атом, «сбившийся с ноги». Иногда одно предложение может породить несколько параметров порядка; это происходят в тех случаях, когда предложение многозначно, т. е. существует возможность различных его толкований. Чтобы однозначно определить параметр порядка в подобных ситуациях, машина должна перейти на следующую ступень иерархии. Сложность при этом зачастую заключается в том, что на более высоких уровнях иерархии для «верной» интерпретации оказывается необходим колоссальный человеческий опыт.
До сих пор, говоря о компьютерах, мы в основном подразумевали то, что называется обобщенно «программным обеспечением». Теперь же давайте рассмотрим подробнее собственно физические принципы, лежащие в основе функционирования компьютера и определяющие его «аппаратное» воплощение.
Вычислительные процессы в компьютере (равно как и деятельность, которую принято называть логическим мышлением) можно разбить на множество крошечных шагов. Этими шагами могут быть выполнение действий «и», «или», «да», «нет» или же запоминание, т. с. сохранение каких-либо данных в ячейках памяти.
Упомянутые логические функции могут быть реализованы уже в очень простых механических устройствах. В общественных парках часто можно увидеть так называемые мобили, приводимые в движение водой (рис. 17.11).
Рис. 17.11. Мобиль, приводимый в движение водой
Например, вода сверху стекает в чашу, которая по достижении определенной степени наполнения переворачивается; вода переливается в нижележащие чаши и т. д. Поначалу изменение положения чаш кажется совершенно беспорядочным, однако при более пристальном наблюдении выясняется, что каждое отдельное изменение происходит в соответствии с некоторой строгой закономерностью, причем закономерность эта представляет собой не что иное, как последовательность логических шагов. Рассмотрим простой пример такого мобиля, состоящего из двух сосудов, наполняемых водой. Сосуды соединены между собой (как показано на рис. 17.12), так что вода из них может стекать в расположенный ниже переливной бак.
Рис. 17.12. Схема реализации логической операции «и». Находящийся снизу сосуд может наполниться водой только в том случае, если изначально были полны оба верхних сосуда
Из переливного бака вода попадает в четвертую емкость. Если оба верхних сосуда были пусты, эта емкость также останется пустой; она наполнится только в том случае, если изначально были полны оба верхних сосуда. Можно сформулировать это положение следующим образом: для наполнения нижней емкости необходимо, чтобы были наполнены верхние емкости 1 и 2 (рис. 17.13).
Рис. 17.13. Реализация логической операции «и»: возможные начальные состояния верхних сосудов и получаемые в результате состояния нижних сосудов
Это, пожалуй, простейший наглядный пример реализации логической операции «и». Для получения конечного результата непременно должны быть выполнены оба предварительных условия; многие процессы в реальной жизни протекают именно по такой логической схеме. Скажем, чтобы сварить яйцо, необходимо выполнение двух условий: во-первых, вода должна кипеть, а во-вторых, яйцо должно находиться в этой кипящей воде хотя бы некоторое время — до готовности. (Пример этот несколько хромает, поскольку готовность яйца определяется личным вкусом каждого; иное дело — математика, где причины и следствия можно задать строго).
Другой мобиль послужит нам иллюстрацией отношения «или». По сути дела, это будет практически тот же механизм, что описан в предыдущем примере, с той лишь разницей, что сливное отверстие в переливном баке расположено на этот раз у самого его дна, что означает возможность наполнения нижней емкости даже в том случае, когда в переливной бак попадает вода только из одного из верхних сосудов, т. е. нижняя емкость наполняется водой, если наполнить хотя бы один из верхних сосудов (рис. 17.14, 17.15).
Рис. 17.14. Схема реализации логической операции «или». Для наполнения находящегося снизу сосуда необходимо наполнить хотя бы один из верхних сосудов
Рис. 17.15. Возможные варианты наполнения сосудов, изображенных на рис. 17.14
Как показывает математическая логика, все логические операции можно представить в виде цепочек таких простейших шагов, как «и», «или», «да», «нет». Однако не будем останавливаться на слишком уж абстрактных предметах; посмотрим, каким же образом эти логические операции могут быть приспособлены к практическим вычислениям, т. е. к численным расчетам. Для этого нам придется забраться «внутрь» компьютера и исследовать все его тайны и чудеса непосредственно на месте.
Математики утверждают, что все числа могут быть выражены посредством различных комбинаций нулей и единиц (в так называемой двоичной системе счисления). Кроме того, различные математические операции — такие, как сложение, вычитание, умножение и деление — над числами, представленными в этой двоичной системе, производятся по тем же правилам, что знакомы нам по привычной, десятичной системе счисления.
Это может показаться странным, но отдельные компоненты компьютера «общаются» друг с другом именно на таком примитивном языке; компьютерные сигналы состоят лишь из нулей и единиц. Воспользуемся примером логической операции «и» для того, чтобы понять, каким образом компьютер оказывается способен перемножить числа «1» и «0», и убедиться в том, что он делает это правильно. Иными словами, проверим, получит ли машина тот же результат, что и мы. Каждый школьник знает, что 0×0 = 0, 0×1 = 0, 1×0 = 0 и 1×1 = 1. Все четыре решения можно в точности воспроизвести с помощью нашего мобиля, своего рода «водяного компьютера». Пустой сосуд при этом будет обозначать нуль, а полный — единицу. Если оба верхних сосуда пусты, то пуст оказывается и нижний, соответствующий конечному результату (который равен нулю). Таким образом, произведение 0×0 = 0 машина вычисляет верно. Если один из верхних сосудов наполнен водой, а второй пуст, то нижний сосуд оказывается пуст; следовательно, подтверждается и верность решения 0×1=0 или 1×0 = 0. Если же полны оба верхних сосуда, то и нижний сосуд в конечном итоге тоже окажется полон: 1×1 = 1. Таким образом, с таблицей умножения, которой пользуется компьютер, похоже, все в порядке.
Остальные арифметические действия также можно воспроизвести с помощью водяного мобиля. Интересующимся читателям на рис. 17.16 предлагается рассмотреть процесс сложения, который, правда, требует применения несколько более сложной конструкции мобиля. На примере устройств, подобных показанным здесь, мы можем легко убедиться в том, что компьютер осуществляет все вычислительные операции при помощи весьма несложных устройств.
Идея привлечения в качестве иллюстраций такого рода «каскадов» может показаться слегка притянутой за уши. Однако в некоторых компаниях, занимающихся производством вычислительной техники, вам и в самом деле могут продемонстрировать рабочие модели компьютеров в виде аналогичных описанным гидравлических устройств.
Рис. 17.16. Мобиль для сложения. Слева (а) показано устройство мобиля, с помощью которого можно воспроизвести операцию сложения. В зависимости от того, полна или пуста верхняя емкость, она представляет число 1 или 0. Наполнение нижних емкостей демонстрирует результат сложения в двоичной (бинарной) системе счисления. В дальнейшем мы будем говорить только о нижних емкостях. Случай, когда обе емкости остаются пустыми, соответствует конечному результату, равному нулю. Если левая емкость пуста, а правая — наполнена водой, это означает 1. Если же наполнена левая емкость, а пуста правая, то такой результат записывается в двоичной системе счисления как 10, что в десятичной системе соответствует числу 2. На схемах справа (b) поясняются все возможные варианты производимого сложения. Случай, когда обе верхние емкости пусты, соответствует сложению двух нулей. Естественно, обе нижние емкости в данном случае остаются пустыми. Если же открыть оба крана, когда левая верхняя емкость пуста, а правая наполнена водой, то правая нижняя емкость наполнится, но левая останется пустой. Этот результат будет соответствовать значению суммы 1. Аналогичное рассуждение применимо, естественно, и к случаю, когда полна левая верхняя емкость, а пуста правая. Особенно интересен случай, соответствующий сложению двух единиц; обе верхние емкости при этом наполнены водой. Открыв кран под одним из верхних сосудов, мы наполним водой сначала только правую нижнюю емкость. При добавлении в нее воды из второго верхнего сосуда происходит наполнение и левой нижней емкости. В этот момент, благодаря поплавку, поднимается заслонка в правой нижней емкости, выпуская из нее всю воду; такой конечный результат, показанный на схеме внизу справа, соответствует 10 в двоичной системе (или 2 в десятичной). Как можно убедиться, представленное устройство действительно способно производить сложение в двоичной системе счисления. Соответствующие комбинации подобных устройств позволяют складывать числа и более сложные, нежели 0 или 1; однако принцип, лежащий в основе процесса, остается по сути своей неизменным
Схемы на рис. 17.16 дают представление о том, что уже такая простая операция как «и» требует довольно сложной системы труб. Труб же, необходимых для выполнения такими компьютерами более сложных вычислительных операций (например умножения или деления), запросто хватило бы на целый многоэтажный дом. Отсюда совершенно естественно возникает вопрос, адресованный физикам или инженерам-электрикам: нельзя ли создать схемы соединений, подобных описанным, но меньших размеров? А раз в таких схемах необходимо задействовать огромное количество элементов — что, как нетрудно видеть, подразумевает огромное количество отдельных операций, — следует в то же время стремиться и к тому, чтобы сократить длительность каждой операции. К счастью, физикам давно известны иные способы создания подобных схем, не нуждающиеся ни в воде, ни в трубах. В самом начале этой книги мы уже говорили об электронах — мельчайших частицах, движение которых создает в металлическом проводнике электрический ток. Электроны способны не только переносить электрический заряд, но и сохранять его, как это происходит, скажем, в батареях или конденсаторах.
Подобно тому, как вода под воздействием силы тяжести переливается из одного сосуда в другой, электроны могут перемещаться из одной емкости в другую под воздействием градиента потенциала. Эта аналогия между течением воды и электрическим током позволила инженерам осуществить все описанные схемы соединений с помощью электроники.
Совершенствуясь в искусстве создавать все более миниатюрные схемы, техника в последние годы творит подлинные чудеса. В шестидесятые годы компьютеры собирались из радиоламп, величиной и внешним видом напоминающих обычные лампы накаливания; каждая такая лампа исполняла одну-единственную переключательную функцию. Американский компьютер ЭНИАК, начиненный восемнадцатью тысячами радиоламп, весил восемнадцать тонн и обошелся приблизительно в восемь миллионов долларов. Сегодня десятки тысяч схемных элементов, заменивших прежние радиолампы, умещаются на тончайшей плате диаметром около сантиметра, причем стоимость всей платы не превышает пяти долларов. Воплощаются в жизнь все новые и новые идеи; быстродействие компьютеров постоянно растет: за секунду машина успевает совершить сотни миллионов операций.
Здесь и выходит на сцену синергетика. В нашей книге мы постоянно обращаемся к понятию «параметр порядка». Как показывают синергетические исследования, те же параметры порядка лежат и в основе логических процессов. Таким параметром порядка, характеризующим макроскопическое состояние системы, может быть — как в приведенных выше примерах — плотность электронов в различных элементах конструкции. Благодаря соединению подобных элементов в единую схему достигается уровень, на котором параметры порядка вступают во взаимодействие друг с другом, что приводит к возникновению новых параметров порядка. С синергетиче-ской точки зрения наиболее интересным здесь представляется то, что такие взаимодействия параметров порядка могут осуществляться множеством способов (зачастую самыми разными способами внутри одной системы), причем даже в тех случаях, когда упомянутое соединение элементов как таковое изначально в системе отсутствовало. Переключения в компьютерных элементах могут сегодня производиться с помощью лазера, что обещает в будущем быстродействие в пределах триллионных долей секунды, в то время как до недавних пор даже десятитысячные доли секунды представлялись едва вообразимыми. Кроме того, переключения могут осуществляться и посредством химических реакций, и это обстоятельство особенно важно, если учесть, что постоянно продолжается поиск новых, более миниатюрных, нежели существующие, элементов для компьютерных схем; такой способ переключения позволяет говорить о размерах, непосредственно сопоставимых с размерами молекул и даже атомов. Живая природа располагает подобными образцами наимельчайших из всех мыслимых элементов: речь идет о клеточных мембранах — в частности, о мембранах нервных клеток.
Эти мембраны состоят из удлиненных молекул, имеющих некое подобие головы и хвоста и сориентированных таким образом, что один конец молекулы всегда направлен к одному из окружающих ее амнионов, а другой — от него. При этом общая нелюбовь молекул мембраны к воде вынуждает их выстраиваться на манер солдат в строю (рис. 17.17). Такие мембраны можно изготовить и искусственно, причем толщина их будет равна длине молекулы.
Рис. 17.17. Примеры мембран. Вверху: мембрана из одного молекулярного слоя; внизу: двухслойная мембрана
Под воздействием некоторых других молекул проницаемость мембраны может изменяться, благодаря чему сквозь нее могут проникать определенным образом электрически заряженные атомы либо молекулы (рис. 17.18). То есть, перед нами снова своего рода коммутирующие элементы, которые в состоянии выполнять логические функции.
Рис. 17.18. Схематическое изображение биомембраны с внедренными в нее молекулами
Очевидно, уже не за горами то время, когда человек научится наконец создавать компьютерные элементы или даже целые компьютеры атомарного размера. Процессы упорядочивания на микроскопическом уровне протекают в полном согласии с закономерностями, обнаруженными синергетикой, ведь речь здесь идет почти исключительно об эффектах, обусловленных взаимодействием множества отдельных элементов. Перед нами открываются захватывающие перспективы: оказывается, логические процессы — и в конечном счете, мыслительные процессы вообще — могут протекать на самых разнообразных субстратах. Это может быть вода, это могут быть электроны, это могут быть химические реакции, лазер или биомолекулы. Мы заглянули внутрь компьютера и рассмотрели некоторые элементы его конструкции в действии. Однако не следует впадать в заблуждение, полагая, что все мыслительные процессы должны строиться из такого рода логических элементов. Не исключено, что существуют и другие возможности, о которых мы пока даже не подозреваем, — например процессы мышления, вовсе не разложимые на отдельные логические операции.
В определенном смысле сказанное относится и к компьютерам нового поколения, которым посвящен следующий раздел.
В самом начале этой главы мы уже затрагивали вопросы программирования; совершенно очевидно, что описанный там компьютер работает последовательно, т. е. выполняя одну операцию за другой. Такой принцип делает невозможным воспроизведение компьютером способности человеческого мозга к восприятию даже при условии, что отдельные схемные элементы компьютера обладают гораздо большим быстродействием, нежели соответствующие элементы мозга. По сравнению с компьютерными элементами нейроны человеческого мозга выглядят настоящими улитками. Но каким же образом нейронам удается (и при том — относительно быстро!) распознавание весьма сложных изображений? Для объяснения этого факта было выдвинуто предположение о том, что мозг — в отличие от компьютера — функционирует не последовательно, шаг за шагом приближаясь к цели, а параллельно, т. е. одновременно обрабатывая чувственные впечатления, получаемые с различных участков изображения через органы чувств. В определенном смысле, при этом происходит то же самое, что мы можем наблюдать в слое жидкости, нагреваемой снизу: частицы жидкости повсюду движутся вверх и вниз и в результате этого движения в конце концов образуется строго упорядоченная структура. Современные компьютерные разработки, нацеленные на реализацию параллельного выполнения вычислительных процессов, ведутся в двух направлениях. Первое основано на аналогии с нейронной сетью мозга, описываемой с помощью очень простых моделей, в соответствии с которыми нейрон располагает всего двумя возможностями — он может либо находиться в состоянии покоя, либо быть возбужден. При получении сигналов от других нейронов каждый нейрон эти сигналы суммирует. До тех пор пока такой совокупный сигнал (сохраняющий, впрочем, свою электрическую природу) не превышает некоторого порогового значения, нейрон пребывает в состоянии покоя; как только пороговое значение оказывается превышено, нейрон испускает нервный импульс, передавая сигнал другим нейронам. Установив же связи между схемными элементами модели, называемыми синапсами по аналогии с настоящими соединениями между нервными клетками мозга, мы сможем сохранить в такой сети определенную структуру, которая затем сыграет роль своего рода ассоциативной памяти, способной реагировать на запросы. Другое направление исследований по реализации параллельной обработки информации ведет к созданию синергетического компьютера, принцип работы которого основан на процессах, аналогичных тем, что имеют место в нагреваемой жидкости. Читатель, вероятно, уже догадывается, что между различными принципами параллельной обработки происходит нешуточная конкурентная борьба; причем синергетические компьютеры, по всей видимости, имеют в этой борьбе весьма неплохие шансы на победу.
Компьютер представляется нам бездушной машиной, действующей в строгом соответствии с заложенной в нее программой, что само по себе исключает какую бы то ни было свободу и неопределенность. Однако в нашей книге уже рассматривались задачи, не имеющие однозначных решений; например задача о нарушении симметрии: куда покатится шар, помещенный в чашку с двумя углублениями? или же проблема восприятия: какое из изображений — ваза или лица — окажется воспринято первым? Предоставьте компьютеру подобные исходные данные, и он непременно зависнет. Решение задач такого рода следует предоставить случаю: несколько случайных флуктуаций могут «подтолкнуть» компьютер к дальнейшим вычислениям, а затем и к окончательному решению задачи. Все перепады «настроения» компьютера суть результат предварительного программирования, однако и в том случае, когда мы ничего подобного намеренно в программу не вкладывали, выдаваемые компьютером решения могут представляться как причуды или капризы. Особенно часто случается это при работе со сложными программами, содержащими множество различных процессов — проводя аналогию с психологической сферой, можно говорить о том, что одна конфликтная ситуация здесь следует за другой.
Таким образом, мы вплотную подошли к вопросу о том, насколько вообще способен компьютер воспроизвести процессы, характерные для высшей нервной деятельности. На примере распознавания текста мы уже установили, что степень сложности чрезвычайно возрастает даже при переходе от буквы к слову, не говоря уже о следующем шаге, о следующем уровне иерархии — переходе к значению предложения. Кажется, что хотя компьютер и способен воспроизвести своего рода «перекрестную связь» или, иными словами, способен к ассоциативному мышлению, он тем не менее значительно уступает в этом человеческому мозгу. И все же нельзя исключить вероятность того, что и здесь компьютер однажды сумеет превзойти мозг — не только в отношении объемов информации, которые он способен обработать, но и в самом способе обработки этой информации. Пока же думать об этом еще рано — и факт существования современных исследований в особом направлении, называемом «разработка искусственного интеллекта», ничего здесь не меняет. Несмотря на это, мы вполне можем позволить немного пофантазировать. Уже сегодня есть компьютеры, способные в определенной мере «разговаривать», а некоторые из них даже распознают (пусть и с ограничениями) простые слова и фразы, т. е. устную речь. Насколько эти способности делают машину похожей на человека? Способен ли компьютер испытывать какие-то чувства? Обладает ли он сознанием? Эти вопросы лежат за пределами собственно синергетиче-ских исследований, все же по преимуществу естественнонаучных. Тем не менее, мы коснемся здесь некоторых идей, воздержавшись, разумеется, от каких бы то ни было готовых ответов; сделано это будет, скорее, с целью дать читателю пищу для размышлений.
Что позволяет людям судить о существовании чувств? С одной стороны, мы сами способны испытывать эти чувства; с другой стороны, мы можем рассказать о своих чувствах другим людям и даже в каком-то смысле описать эти чувства. Наша способность сообщить об испытываемых нами чувствах основана, по существу, на том, что другой человек и сам способен испытывать некие чувства, иначе он никогда не понял бы, о чем идет речь. Здесь мы уже исходим из предположения, что чувства, испытываемые одним человеком, совпадают (или, по крайней мере, схожи) с чувствами другого человека. Нам никогда не удастся каким-либо образом проверить это положение объективно — вероятность того, что оно верно, велика, но убедиться в его истинности мы не в состоянии.
Прежде чем задаться вопросом о существовании чувств у компьютера, нам следует разобраться с вопросом о том, как обстоит положение с чувствами в живой природе. Люди, пожалуй, признают существование чувств у животных — в частности, чувства боли — пусть даже эти чувства у них не столь ярко проявляются, как у самих людей. Иначе складывается отношение людей к существованию чувств у представителей растительного мира. Мы срубаем деревья, срываем цветы и собираем урожай зерновых, ничуть не задумываясь о том, испытывают ли эти живые существа хоть какие-то чувства. Причина такого отношения наверняка заключена в том, что растения не могут нам ничего сообщить — в отличие от животных, которые способны издавать звуки, или пытаться вырваться, или укусить, т. е. как-то отреагировать на происходящее.
Все это говорит о том, что человек склонен признать существование чувств, только если речь идет о подобных ему самому существах, способных при этом каким-либо образом сообщить о своих переживаниях. Приведет ли дальнейшее развитие компьютеров к тому, что они станут подобны человеку? Мы уже сегодня с помощью относительно простых средств (скажем, изменив определенным образом программу) можем добиться от компьютера симуляции проявления чувств. Если какой-то из блоков компьютера оказывается перегружен, то машина может выдать нам эмоционально окрашенное сообщение о перегрузке — но будет ли это означать, что она и в самом деле испытывает те же чувства, что испытывал бы человек, перегруженный работой? На этот вопрос все мы, разумеется, ответили бы отрицательно. Жалоба машины на перегрузку — всего лишь реакция, запрограммированная человеком, а сам компьютер остается все той же бездушной железкой, какой представлялся нам до сих пор.
Но что произойдет, если у нас появятся машины, способные сами себя программировать и самостоятельно учиться, общаясь с окружающим их миром? К примеру, компьютеру-диагносту, который слышит от своих пациентов слово «боль» или — при случае — слово «радость», останется сделать всего лишь один шаг к установлению нужных связей, чтобы при отказе какого-то из своих элементов или при перегрузке использовать слово «боль». Но разве ему и в самом деле больно?
Становится ясно, что переходы от человеческого к машинному могут быть довольно плавными, и возможно, что в не столь отдаленном будущем возникнут «робоправо» или Закон о защите прав роботов, аналогичные существующему сегодня Закону о защите прав человека. Возможно также, что к этим законам о роботах люди будут относиться с большим почтением, чем к законам о правах самих людей (ведь роботы недешевы!). Сегодня это еще может показаться утопией, но вполне можно нарисовать картины такого будущего, в котором вопросы, касающиеся роботов, окажутся наиболее бурно обсуждаемыми как раз в связи с тем, что машины будут все больше и больше становиться похожи на людей. Не следует забывать, что уже сегодня существуют компьютеры, которые потрясают воображение людей несведущих — потрясают до такой степени, что те готовы обратиться к ним даже со своими душевными невзгодами. Здесь вспоминается сконструированный Йозефом Вайценбаумом компьютер Элиза, который «беседовал» с пациентами и с которым, по наблюдениям самого Вайценбаума, откровенничала даже его собственная секретарша. Образ действий компьютера был, в принципе, очень прост. К примеру, пользователь (чтобы не сказать «пациент») говорил: «У меня проблемы в общении с отцом», на что машина отвечала просьбой рассказать об этом подробнее. Основная задача компьютерной программы заключалась в том, чтобы побудить пациента как можно больше рассказать о себе. Элиза производила такое впечатление, что даже психотерапевты питали некоторые иллюзии касательно применения подобной машины в своей практике. «Отец» же Элизы, Йозеф Вайценбаум, никогда не имел в виду такого ее применения; напротив, он считал опасным доверять компьютерам задачи, которые требуют человеческой способности к суждениям, ведь даже наиумнейшая машина не способна иметь этических убеждений. Было бы глупо и безответственно предоставить машине решения тех проблем, которые корнями уходят в область этики или морали; в качестве примера можно привести такие радикальные вопросы, как, скажем, проблемы войны и мира.
Однако осторожность необходима и в других случаях. Мы постоянно слышим о результатах компьютерного моделирования, касающегося дальнейших перспектив экономического развития человечества, о прогнозах, сделанных машинами на ближайшие пятьдесят, а то и сто лет. Речь идет, к примеру, об изысканиях «Римского клуба», о расчетах, связанных с проблемами мировой энергетики, и о многих других исследованиях. С моей точки зрения, все они основаны на том, что иллюзии человечества рассеиваются, и оно возвращается к действительности, осознав наконец, что источники нашего благоденствия не безграничны, и некоторые из них, возможно, вот-вот иссякнут. С другой стороны, благодаря исследованиям в области синергетики хорошо известно, что именно сложные системы и отличаются постоянным движением от одного неустойчивого состояния к другому; следовательно, результаты компьютерного моделирования весьма чувствительно могут зависеть от таких факторов, которые мы поначалу отбросили бы, сочтя незначительными и несущественными. Небольшая погрешность, касающаяся распределения сырья и ресурсов, или производственных процессов, или вторичной переработки и т. п. могут привести к совершенно неожиданным конечным результатам; в главе, посвященной хаосу, на простых примерах рассматривались подобные случаи. Часто оказывается важнее оценить качественно отдельные детали течения различных процессов, нежели вводить в компьютеры громадные массивы информации, которую они должны обработать уже непостижимым для нас образом. Это приводит к необходимости развития особого рода чутья, понимания того, какие именно величины в каждом случае являются релевантными, т. е. действительно важными и значимыми. Вне всякого сомнения, нам придется добираться до решения сложных проблем только «на ощупь», причем грамотное использование компьютеров может оказать здесь существенную помощь. И все же — вопреки всем попыткам перспективного планирования и предварительным расчетам — в будущем нам следует всегда быть готовыми к новым неожиданностям, как приятным, так и печальным.