Мысли
Этот странный придуманный мир
Руслан Богатырев
(Окончание. Начало в № 30)
Машина клеточных автоматов под названием САМ-8 разработана в рамках проекта ARPA в Лаборатории компьютерных наук Массачусетского технологического института (MIT LCS). Это компьютерная архитектура, построенная на клеточных автоматах. И в то же время – это параллельная масштабируемая архитектура для высокоскоростного моделирования пространственных систем средствами клеточных автоматов.
Вычислительный комплекс состоит из рабочей станции Sun, на которой под управлением операционной системы SunOS функционирует специальная среда программирования. Эта среда реализована в рамках коммерческого интерпретатора языка Forth для SunOS. САМ-8 представляет собой отдельный наращиваемый аппаратный модуль, в который встроены специально разработанные кристаллы STEP и который подключается к рабочей станции Sun через интерфейсную плату с шиной SBus. Для низкоуровневого управления модулями САМ-8 разработана библиотека Си-функций, что позволяет для программного подключения использовать различные интерпретаторы головного компьютера.
Комплекс САМ-8, одним из основных вдохновителей которого стал Норман Марголус, используется в различных проектах, в частности, для задач моделирования физических процессов, характеризующихся "астрономическим параллелизмом" молекул и элементарных частиц. Одними из первых изучению на САМ-8 подверглись обратимые решетчатые газы (reversible lattice gases), которые моделировали известный компьютер Эда Фредкина из биллиардных шаров (billiard-ball computer). Пожалуй, наиболее тесное сотрудничество в работах на САМ-8 лаборатория MIT LCS установила с исследовательской группой Джефа Йепица из лаборатории Phillips Военно-воздушных сил США (U.S. Air Force's Phillips Laboratory), где САМ-8 используется для разработки новых методов имитации роста кристаллов в сложных текучих жидкостях и для проведения работ по геофизическому моделированию. Наибольшее применение комплекс САМ-8 нашел в изучении модели решетчатых газов, причем дело здесь не ограничивается одной лишь линейной гидродинамикой. Бизнес пошел столь успешно, что для производства и продажи комплексов САМ-8 из структуры MIT LCS недавно выделилась отдельная компания STEP Research Inc.
Впрочем, оставим в стороне САМ-8 и перейдем к собственно искусственной жизни. Настало время объяснить, что же специалисты понимают под термином "жизнь" в информационном смысле:
1) Живая система заключает внутри себя полное свое описание.
2) Для избежания противоречий с пунктом 1 будем считать, что живая система не пытается задавать описание своего описания.
3) Описание играет двойственную роль. Оно является кодированным описанием остальной части системы. В то же самое время оно является разновидностью действующей модели самого себя, причем эта модель не должна декодироваться.
4) Выделенная часть системы – супервизор (supervisor unit) – "знает" о двойственной роли описания и гарантирует, что описание при воспроизводстве интерпретируется и как код, и как данные.
5) Другая часть системы – универсальный конструктор (universal constructor unit) – может строить произвольно большой класс объектов, включая и саму живую систему.
6) Воспроизводство наступает в тот момент, когда супервизор дает указание универсальному конструктору создавать новую копию системы, включающую ее описание.
Система, определяемая этими шестью положениями, имеет много общего с клеточным автоматом Джона фон Неймана и на самом деле представляет собой несколько ограниченную форму "жизни". Недостатки данной "аксиоматики" видны невооруженным глазом. Взять хотя бы асексуальность подобных "живых" систем. Если воспроизводство ведется среди однополых существ, то потомок полностью копирует своего предка, т. е. не допускаются никакие "генетические" изменения. Другими словами, все эти "живые" системы штампуются под одну заготовку. Читатель может самостоятельно поупражняться, сопоставляя с этой "аксиоматикой" представителей живого и неживого мира.
Одно из наиболее популярных направлений последних двух-трех лет связано с понятием автономных агентов. Их нельзя рассматривать как "подпрограммы", – это скорее прислуга, даже компаньон, поскольку одной из важнейших отличительных их черт является автономность, независимость от пользователя. Идея агентов опирается на понятие делегирования своих функций. Другими словами, пользователь должен довериться агенту в выполнении определенной задачи или класса задач. Всегда существует риск, что агент может что-то "перепутать", сделать что-то не так. Следовательно, доверие и риск
должны быть сбалансированы. Автономные агенты позволяют существенно повысить производительность работы при решении тех задач, в которых на человека возлагается основная нагрузка по координации различных действий.
В том, что касается автономных (интеллектуальных) агентов, хотелось бы отметить один весьма прагматический проект, который сейчас ведется под руководством профессора Генри Либермана в Media-лаборатории MIT (MIT Media Lab). Речь идет об агентах, отвечающих за автоматическое генерирование технической документации. Для решения этой задачи немало сделал в свое время академик Андрей Петрович Ершов, сформулировавший понятие деловой прозы как четко определенного подмножества естественного языка, которое может быть использовано, в частности, для синтеза технической документации (это одно из самых узких мест в любом производстве). Группа под руководством профессора Либермана исследует возможности нового подхода к решению этой проблемы, теперь уже на основе автономных агентов.
Следующее направление в области искусственной жизни – генетическое программирование (genetic programming) – является попыткой использовать метафору генной инженерии для описания различных алгоритмов. Строки (strings) искусственной "генетической" системы аналогичны хромосомам в биологических системах. Законченный набор строк называется структурой (structure). Структуры декодируются в набор параметров, альтернативы решений или точку в пространстве решений. Строки состоят из характеристик, или детекторов, которые могут принимать различные значения. Детекторы могут размещаться на разных позициях в строке. Все это сделано по аналогии с реальным миром. В природных системах полный генетический пакет называется генотипом. Организм, который образуется при взаимодействии генотипа с окружающей средой, носит название фенотипа. Хромосомы состоят из генов, которые могут принимать разные значения. (Например, ген цвета для глаза животного может иметь значение "зеленый" и позицию 10.)
В генетических алгоритмах роль основных строительных блоков играют строки фиксированной длины, тогда как в генетическом программировании эти строки разворачиваются в деревья, столь знакомые специалистам в области трансляции. Например, выражение а+ b*с выглядит так:
Ныне одним из лидеров в области генетического программирования является группа исследователей из Стэнфордского университета (Stanford University), работающая под руководством профессора Джона Коза. Генетическое программирование вдохнуло новую жизнь в хорошенько уже подзабытый язык LISP (List Processing), который создавался группой Джона Маккарти (того самого, кто в 60-е годы ввел в наш обиход термин "искусственный интеллект") как раз для обработки списков и функционального программирования. Кстати, именно этот язык в США был и остается одним из наиболее распространенных языков программирования для задач искусственного интеллекта.
7. Вселенная – это большой автомат?
За последние три десятка лет вышел в свет целый ряд классических работ, в которых наша Вселенная представлялась авторами как гигантский клеточный автомат. Этой идеи придерживались такие известные ученые, как Фредкин, Тоффо-яи, Беннет, Ландауэр, Хиллис, Фейнман, Уиллер и другие. Марвин Минский написал знаменитую работу "Клеточный вакуум", где показал, что в клеточных автоматах часы (осцилляторы) при приближении к скорости света замедляются, но не так, как это имеет место в непрерывном пространстве. Гипотеза, надо сказать, интересная, -тем более что, будучи технократической, она в то же время не отрицает и Высшего Разума. Бог вполне мог "загрузить" в машину ее начальное состояние.
Но что-то (наверное, интуиция) подсказывает, что к такой модели мира надо относиться с настороженностью, а может, даже и с недоверием. Во-первых, фатальная предопределенность прошлого, настоящего и будущего ("чему быть – того не миновать") при всей своей простоте не является конструктивной. Во-вторых, пока не очень понятно, насколько полезной для познания мира окажется такая тотальная дискретность пространства и времени. Вспомним хотя бы неисчерпаемое богатство фрактальной геометрии Мандельброта и сравним самовоспроизводство клеточных автоматов и самоподобие фракталов.
И все-таки, что же, в конце концов, первично – материя или сознание? А если и то и другое, и одновременно – ни то и ни другое? Подождите, но ведь нужна определенность, что-то одно. Если считать, что материя и сознание – это разные вещи, то что в таком случае их связывает? НЕЧТО. Может быть, это – язык, информационный канал, информация? В Евангелии сказано: "В начале было Слово, и Слово было у Бога, и Слово было Бог". Да, Бог – это удачный выход из затруднения, тем более что ни доказать, ни опровергнуть его существование мы не в силах.
Давайте подойдем к проблеме несколько иначе. Что "там" на самом деле происходит, мы в точности не знаем и никогда не узнаем. Поэтому рассматривать можно любую модель мира, лишь бы от нее была какая-то польза.
В начале статьи я обратил ваше внимание на две составляющих человеческого мышления – абстракцию и интуицию (если хотите, "искру божью"). Первая носит рациональный характер, вторая же – иррациональный.
Посмотрим теперь на мир с точки зрения программирования. Если весь мир – не что иное, как просто информация (код и данные), то эта информация представляется на каком-то языке. В то же время мы знаем, что программа всегда выполняется в каком-то КОНТЕКСТЕ, точно так же, как язык всегда погружается в какую-то среду. Язык без среды – ничто. Жизненный опыт подсказывает, что язык всегда ограничен. Даже естественного языка при всей его гибкости и "живости" недостаточно для отображения информации. НЕВОЗМОЖНО придумать для музыки такой язык, который в точности бы передавал все оттенки звучания. Настоящий мастер имеет свой неповторимый почерк в исполнении того или иного музыкального произведения. Вот вам еще один довод в пользу недостаточности языка. Так может, программирование, программы -это и есть то недостающее звено, которое мы ищем? Программное обеспечение, по меткому выражению академика Гурия Ивановича Марчука, стало "овеществленным интеллектом человечества", а потому программирование смело можно рассматривать как оживление математических абстракций.
Взглянем на нашу проблему со стороны гуманитарных наук. Вряд ли кто станет отрицать, что культура, несущая в себе богатейший пласт общечеловеческих ценностей, играет важнейшую роль в формировании человеческого разума. Культура не может быть врожденной, она может быть только приобретенной. Но если вдуматься, культура – это и есть тот контекст, в котором выполняется наша генетическая программа. Это не единственный контекст, но даже то, что он в течение жизни постоянно меняется, и создает вариативность, возможность избежать фатальной предопределенности. Люди передают от поколения к поколению не просто знания, а вот именно общественный контекст. Итак, если язык -это понятие скорее рациональное, то контекст (среда, инфраструктура) – понятие иррациональное.
Теперь объединим все это в единое целое. Интуиция подсказывает, что информация растворяется в материи и сознании точно так же, как они растворяются в ней. В результате мы имеем животворящий "бульон", среду, а если хотите – и божий мир. Как тут не вспомнить слова русского поэта-философа Афанасия Фета:
Не я, мой друг, а божий мир богат,
В пылинке он лелеет жизнь и множит.
И что один твой выражает взгляд,
Того поэт пересказать не может.
Какой мир прекрасней – тот реальный, что нас окружает, или другой, придуманный, который мы сами себе представляем? Нелепый, казалось бы, вопрос, – для кого как.
Однако, как это ни странно, мы всегда живем только в придуманном мире, даже если никогда об этом и не задумываемся. Но придуманный мир, как мне представляется, собран из двух половинок: пассивно придуманный (органы чувств, виртуально-реальный) и активно придуманный (разум, реально-виртуальный). Два взаимодополняющих процесса – созерцание и творчество – отражают пассивный и активный характер познания реального мира. Одни люди больше развивают в себе активное начало, другие – пассивное. Носители информации – различные языки (жестов, музыки, цвета, формы, запаха, естественный, машинный, математический и т. п.) и даже те информационные каналы, которые слабо изучены или мало пока известны (гипноз, психотропное воздействие и т. п.), – все это оказывает влияние на обе половинки придуманного мира. Поэтому очень важно (конечно, по мере возможности) четко себе представлять, какой из этих половинок вы в данный момент пользуетесь, – другими словами, каков источник информации.
В этой статье я познакомил вас с различными абстрактными моделями, которые легко воплощаются в реальные игры. Напомню еще раз высказывание Бернарда Шоу, взятое в качестве эпиграфа к этой статье: "Человек благоразумный подстраивает себя под окружающий его мир, тогда как безрассудный человек упорно подстраивает этот мир под самого себя. Так что весь прогресс опирается налюдей безрассудных". И еще одно знаменитое изречение: "Что наша жизнь – игра!" Я с ними полностью согласен; это и впрямь игра – но только та, в которой человеку ДАНО изменять ее правила!
Литература:
Ершов А.П. Избранные труды. – М.: Наука. 1994.
Кнут Д. Программирование как искусство. Лекции лауреатов премии Тьюринга за первые двадцать лет. 1966-1985. – М.: Мир. 1993. С.48-64.
Минский М. Вычисления и автоматы. – М.: Мир. 1971.
Литерсон Дж. Теория сетей Петри и моделирование систем. – М.: Мир. 1984.
Пайтген X., Рихтер П. Красота фракталов. – М.: Мир. 1994.
Тоффоли Т., Марголус Н. Машины клеточных автоматов. – М.: Мир. 1990.
Dowling L, Shaw A. The Schillinger System of Musical Composition. – 1941.
Gardner M. Mathematical Games: On Cellular Automata, Self-reproduction, the Garden of Men and the Game of Life. – Scientific American. 1971. No.2. P.112-117.
Koza J. Genetic Programming: On the Programming of Computers by Means of Natural Selection. -MIT Press. 1992.
Mitchell M. An Introduction to Genetic Algorithms. – MIT Press. 1996.
Wolfram S. Cellular Automata and Complexity: Collected Papers. – Addison-Wesley. 1994.
Internet-сайты, на которых можно найти информацию по теме статьи:
http://mm.cs.emu.edu
CMU Artificial Intelligence Repository // Carnegie Mellon University
http://mm.cs./hu.edu:80/~cal/ahan/lifepage.html
Artificial Life
http://www./cs.mil.edu
MIT Laboratory for Computer Science
Santa Fe Institute // Artificial Life
{НАЧАЛО ВРЕЗКИ}
Одно из наиболее популярных направлений последних двух-трех лет связано с понятием автономных агентов. Их нельзя рассматривать как "подпрограммы", — это скорее прислуга, даже компаньон, поскольку одной из важнейших отличительных их черт является автономность, независимость от пользователя.
{КОНЕЦ ВРЕЗКИ}