"Предварительно
нужно сказать, что не бывает
двух одинаковых симметриад, и
геометрия каждой из них
является как бы новым
"изобретением" океана" Станислав Лем "Солярис" |
Клеточные автоматы представляют собой одно из самых красивых и удивительных открытий в области компьютерной математики. Клеточная плазма ведет себя как живая. Она кипит, пульсирует, рождает и вновь поглощает разнообразные диковинные структуры. Клеточные автоматы, пожалуй, самая яркая модель того, что в философии называют диалектическим самодвижением. В каком-то смысле можно утверждать, что игры клеточных автоматов воспроизводят наиболее существенные свойства эволюционирующей материи. Диалектические идеи философов древности в них предстают в своем овеществленном виде. Самоорганизационные процессы, которые происходят в недрах искусственной клеточной плазмы, представляют собой одно из ярчайших доказательств справедливости диалектической модели саморазвития материи. На играх клеточных автоматов можно наглядно проиллюстрировать те принципы, на основе которых из первородного хаоса вселенной рождались упорядоченные структуры нашего мира. Разумеется, речь идет лишь о принципиальной аналогии, но аналогии столь эвристичной и убедительной, что мы без труда узнаем на экране дисплея интуитивно ощущаемые нашим сознанием характерные черты великого формотворящего процесса эволюции материи. Клеточная плазма напоминает некую особую креативную жидкость, которая, переливаясь и перелепливаясь, может принимать различные изменчивые формы. Опять, как и в случае комплексных фрактальных множеств, вспоминается живой океан Соляриса, порожденный фантазией Станислава Лема. Наверное, не случайно многие математические объекты, открываемые в области синергетики (единственной строгой научной дисциплины, прикоснувшейся к проблеме развития) так похожи на описания структур, рождаемых его живым, эволюционирующим океаном.
Клеточная плазма состоит из отдельных ячеек, каждая из которых соседствует с восемью примыкающими к ней клетками. Состояние каждой отдельной клетки определяется состоянием ее непосредственных соседей. Если начать моделирование с хаотической конфигурации клеток, предварительно случайно разбросав их по всей поверхности, то можно наблюдать, как исходный хаос будет постепенно трансформироваться. В зависимости от принятых правил игры, клеточная "жидкость" может постепенно образовывать "затвердевающие" сгустки, расходящиеся кольцевые волны или погрузиться в состояние изменчивого динамического хаоса. Все эти эволюции напоминают "копошение" некой протобиологической субстанции, готовой породить в своих недрах зачатки будущей жизни.
Индивидуальное развитие живого организма называется в биологии онтогенезом. Онтогенез представляет собой, наверное, одно из наиболее поразительных и загадочных явлений в природе. Как, почему, откуда возникает строгий и сложнейший порядок биологических структур? Теория естественного отбора не может объяснить этот феномен. Дарвиновский принцип выживания наиболее приспособленных объясняет лишь, почему биологические организмы устроены целесообразно, но ничего не говорит о том, каковы механизмы образования сложнейших, высокоупорядоченных биологических "машин" и их индивидуальной эволюции. Что управляет онтогенезом? Какие невидимые воздействия формируют живые тела? На первый взгляд кажется невероятным, чтобы столь сложные структурные образования формировались сами собой, без вмешательства неких внешних организующих сил. Именно из этого предположения исходит популярная до сих пор теория номогенеза, которая постулирует наличие в природе неких неизвестных внешних управляющих воздействий. При этом вопрос о происхождении этих воздействий остается открытым. Номогенетическая точка зрения не является, однако, удовлетворительным научным объяснением явления онтогенеза. Во-первых, эта гипотеза нарушает один из основополагающих методологических императивов научного метода: не умножай сущностей более необходимого. Не следует искать каких-то экзотических внешних причин, в то время когда эти причины могут быть непосредственно связаны с внутренней природой самого исследуемого объекта. Во-вторых, из всего опыта развития науки можно заключить, что алгоритмы, по которым протекают даже самые сложные природные явления, не содержат излишних причин. Природа всегда обходится самыми простыми, но подчас гениальными механизмами.
Ученый и философ XIX - нач. XX века Эрнст Геккель, помимо ряда фундаментальных научных и философских трудов, создал замечательный живописный атлас, который назвал - "Красота форм в природе". Атлас содержит множество удивительно красивых изображений самых различных организмов, начиная от простейших живых форм и заканчивая высшими животными. Иллюстрации Геккеля заставляют обратить внимание на то, сколь строгий математический порядок царит в живой природе, сколь сложна и в то же время строго закономерна структура биологических объектов. Если никто и ничто не управляет их развитием, то порядок биологических структур каким-то образом должен возникать сам собой из взаимоотношений самих делящихся клеток. В одной из своих недавних статей Иван Жилин сообщил читателям "КВ" о полной расшифровке американскими учеными генома плодовой мушки - дрозофилы. Из тех шестидесяти мегабайт далеко не все гены кодируют белки. Кроме "белковых" генов и "молчащей", "эгоистичной" ДНК, в геномах живых организмов есть так называемые регуляторные гены. В их функцию входит включение или выключение других генов, в зависимости от действия тех или иных внешних факторов. Фон внешних факторов для каждой клеточки многоклеточного организма создают соседние клетки и внешняя среда. Клетки тела многоклеточного организма способны сложным образом управлять друг другом, переключая друг другу те или иные регуляторные гены. Развивающийся многоклеточный организм можно представить как очень большой и сложный трехмерный клеточный автомат. В играх клеточных автоматов действуют те же принципы взаимного управления элементов системы друг другом, а локальная корреляция событий в соседних ячейках нередко порождает весьма сложные и упорядоченные структуры, форма которых определяется правилами взаимодействия ячеек между собой.
В природе действует общий принцип, согласно которому сложные структуры возникают там, где управляющие параметры принимают пограничные, критические значения. Например, биологическая эволюция протекает именно на Земле, а не на Меркурии, Венере или Марсе. Земля находится как раз в пограничной температурной зоне - не слишком далеко, но и не слишком близко от Солнца. На Земле существуют такие условия, при которых молекулы движутся достаточно "энергично" для того, чтобы могли интенсивно протекать формообразовательные физико-химические процессы, и в то же время их энергия не является чрезмерной, разрушительной для сложных биохимических структур. Земная жизнь развивается в тонком пограничном слое, отделяющем испепеляющий жар солнца от ледяного космического холода.
Идея клеточного автомата, о котором пойдет речь ниже, возникла именно под влиянием выше изложенных философских соображений. В одном из прошлых номеров "КВ" я уже описывал правила взаимодействия ячеек этого автомата (см. "КВ" №26, 8-14 июля 1999 г.). Напомню, что их суть сводится к следующему. Пусть состояние каждой отдельной клеточки характеризуется неким вещественным параметром x, который может принимать любые значения в интервале между 0 и 1. В очередной следующий момент времени состояние клетки определяется средним значением Z, вычисленным по сумме значений параметра в соседних восьми клетках. Состояние каждой ячейки в следующий момент времени вычисляется по формуле X=4xZx(1-Z). В указанной выше статье описывался вычислительный эксперимент, в котором в начальный момент времени все клетки игрового поля заполнялись случайными числами, равномерно распределенными в интервале от 0 до 1. Далее компьютерная программа моделировала эволюцию исходной хаотической конфигурации на всем клеточном поле. Теперь проделаем иной вычислительный эксперимент. Первоначально в центре пустого поля выберем единственную клетку. Запишем в нее случайное число. Этот фрагмент программы может выглядеть следующим образом.
l = 200: m = 1 Randomize: x(l, l) = Rnd Screen.Cls
Здесь l - индекс исходной клетки в двумерном массиве x (общий размер массива x в приведенном примере составлял 400x400 элементов), а m - счетчик поколений. Затем запустим в действие описанные правила. В процессе моделирования будем наблюдать за развитием клеточной популяции, берущей начало от одной единственной исходной клетки. При написании моделирующей программы следует учесть, что ненулевые значения могут возникать лишь в ячейках, непосредственно примыкающих к уже заполненным клеткам. На первом шаге игры заполнятся лишь восемь соседних с исходной клеткой ячеек. На втором шаге игровое поле расширится еще на один ряд клеток с каждой стороны, и так далее... Поэтому моделирующая программа должна постепенно расширять анализируемое игровое поле от исходной клетки в каждую сторону на один ряд с каждой стороны.
k = l - m: n = l + m For i = k To n For j = k To n s = x(i + 1, j) + x(i, j + 1) + x(i, j - 1) + x(i + 1, j + 1) + x(i + 1, j - 1) + x(i - 1, j) + x(i - 1, j + 1) + x(i - 1, j - 1) s = s / 8 y(i, j) = 4 * s * (1 - s) c = 255 * (1 - y(i, j)) Screen.Pset (i, j), RGB(c, c, c) Next j Next i
Вычислительный процесс должен продолжаться до тех пор, пока растущая клеточная конфигурация не достигнет границы игрового поля.
В природе развитие эмбриона живого организма начинается также с одной оплодотворенной клетки. Исходная клетка делится и вскоре образуется полая сфера с однослойной клеточной оболочкой, называемая бластулой. Затем бластула выгибается, образуя так называемую гаструлу. Далее в процессе онтогенеза структура эмбриона, причудливым образом складываясь, продолжает усложняться от фазы к фазе. Между процессом индивидуального развития многоклеточных организмов и описанным вычислительным экспериментом прослеживаются определенные внешние гомологии. Как и развивающийся эмбрион, растущая клеточная фигура на начальном этапе игры принимает круглую форму. Затем внутри образовавшейся округлой области начинают происходить формообразовательные процессы. По мере разрастания клеточная конфигурация усложняется, приобретая все большее количество декоративных деталей. При этом ее форма остается строго правильной и симметричной. Это объясняется тем, что процесс дифференцировки растущей клеточной структуры протекает по одинаковым правилам во всех направлениях, и в результате образуются только симметричные конфигурации.
Описанный алгоритм порождает бесконечное множество неповторяющихся сложных геометрических фигур, которые можно было бы назвать клеточными симметроидами. Порой они напоминают диковинные цветы, порой - тело медузы, некоторые похожи на витражи средневековых соборов, орнаменты восточных ковров или магические символы. На иллюстрациях приведены черно-белые изображения. При желании их можно раскрасить, использовав к примеру материал статьи в "КВ" № 2, 13-19 января 2000 года.
На втором рисунке помещена страница из атласа Э.Геккеля, изображающая одну из разновидностей медуз. Между формой их тела и структурами клеточных симметроидов прослеживается определенное внешнее сходство. Пример симметроидов убедительно свидетельствует, что порядок, пусть даже самый изысканный и сложный (коим является порядок в мире живой природы), может спонтанно рождаться из простейших локальных взаимодействий элементов систем между собой. Таинство онтогенеза совсем не обязательно приписывать неким сторонним разумным силам, как это утверждается в упоминавшейся теории номогенеза. Природа сама может рождать самые удивительные формы, причем вполне самопроизвольно, на основе синергетических взаимодействий элементов, подобно тому, как это в гораздо более простой форме реализуется в играх клеточных автоматов.
А.КОЛЕСНИКОВ,
[email protected]
Комментарии
Но поменьше лирики и побольше алгоритмов. Приведено очень мало примеров применения метода КА,а с его помощью моделируют достаточно много совершенно разных процессов, от движения толпы в сужающемся проходе до различных поверхностных физико химических процессов, при этом получая результаты с достаточно большой точностью.