Суперфрактал - Сергей Леонидович Деменок
В 1960-х годах в комнате отдыха математического факультета Кембриджского университета преподаватели и студенты постоянно играли в настольные игры и придумывали новые. Идей было так много, что один преподаватель даже вел файл под названием Games Without Names («Игры без названий») и сопутствующий файл — Names Without Games («Названия без игр»). Здесь Джон Конвей, ливерпульский фанатик игры в нарды и талантливый математик, изобрел свой клеточный автомат на квадратной сетке, которому он дал имя Game of Life («Игра "Жизнь"»).
В этой игре клетка является либо живой, либо мертвой и подчиняется следующим правилам.
• Рождение: мертвая клетка, имеющая три живые соседние клетки, становится живой.
• Выживание: живая клетка, имеющая две или три живые соседние клетки, продолжает жить.
• Смерть от одиночества: живая клетка, у которой нет по соседству живых клеток или есть только одна такая клетка, умирает.
• Смерть от перенаселенности: живая клетка с четырьмя или более соседними клетками умирает.
• Примечание. У каждой клетки есть восемь соседей; к их числу относятся четыре смежные клетки и четыре клетки, с которыми она соприкасается по диагоналям в углах. Перечисленные выше законы применяются по отношению ко всем клеткам одновременно, и каждый раз, когда это происходит, появляется новое поколение клеток.
Вот и все. Простота локальных правил может генерировать невероятно сложное поведение системы. При этом самая увлекательная особенность игры «Жизнь» заключается в том, что она разнообразна и совершенно непредсказуема. Нет другого способа узнать, что произойдет даже с самыми простыми фигурами, кроме отслеживания их жизни на протяжении многих поколений. Конвей и его коллеги делали это вручную. Живые клетки были фишками, которые размещались на доске для игры го с разметкой 19 х 19 линий. Когда для шаблона требовалось больше места, на полу укладывали дополнительные доски. Были найдены новые устойчивые конфигурации, получившие такие названия, как «батон», «корабль», «лодка» и «змея». Иногда исходный шаблон погибал или быстро менялся, превращаясь в одну из известных устойчивых конфигураций, а иногда начинал жить своей жизнью, что приводило всех в сильное волнение. Например, пентамино в форме буквы R состояло всего из пяти клеток, но продолжало эволюционировать на протяжении десятков поколений, пока на 69-м поколении не произошло исключительное событие. Эта конфигурация произвела на свет фигуру из пяти клеток, скользившую по доске.
Новая фигура получила имя «глайдер» (от англ. Glider — «планер», ее поведение проиллюстрировано на рисунке ниже). Через два поколения конфигурация переворачивается на другую сторону, а еще через два снова поворачивается таким образом, что оказывается на одну клетку ниже и на одну дальше от исходной позиции. Глайдер продолжает смещаться на одну клетку вниз и одну вперед каждые четыре поколения. Он будет двигаться в одном и том же направлении по диагонали до бесконечности, если ничто не преградит ему путь.
На мониторах ПК, планшетах или смартфонах появился целый зоопарк «живых» клеточных образований. В 1982 году Джон Конвей выдвинул предположение о том, что если бы решетка игры «Жизнь» была достаточно большой и в исходном состоянии клетки располагались на ней в случайном порядке, то
«через приличный промежуток времени появились бы разумные существа, способные к воспроизводству».И если на этом не остановиться, то у разумных клеточных существ могут появиться компьютеры, способные содержать внутри себя новые клеточные автоматы, в которых
«через приличный промежуток времени могли бы появиться разумные существа нового уровня».Эта идея восходит к работам фон Неймана над машинами, которые были бы способны самостоятельно воспроизводиться. Размышляя над тем, как машина может построить точную копию самой себя, он столкнулся с логической проблемой. Вычисляющие машины, как мы знаем, состоят из аппаратного и программного обеспечения. Аппаратное обеспечение «конструирует» новый аппарат, следуя инструкциям, закодированным в программе. В идеале машина создаст новую машину с точно такой же программой. В этом случае программа должна содержать инструкции по поводу создания новой программы, которая в свою очередь должна содержать инструкции по поводу того, как создать инструкции в отношении построения новой программы, и так далее до бесконечности. В итоге мы получаем бесконечную регрессию инструкций, содержащихся в данной программе, что недопустимо, поскольку программа должна быть конечной. С другой стороны, если программа не включает никакую информацию о себе, машина не сможет себя полностью воссоздать, поскольку в новой машине нет программного обеспечения. Фон Нейман решил эту головоломку следующим образом: для того чтобы машина могла воспроизвести себя, необходимо ввести в систему новый элемент — устройство для копирования программы. Машина-конструктор считывает программу, строит новую машину, совершенную во всех отношениях, кроме одного — в ней нет программы. На последнем этапе устройство копирования создает копию программы и отправляет ее в новую машину. Самовоспроизводящаяся машина фон Неймана использует программу двумя разными способами: машина-конструктор читает ее как набор инструкций, а копировальное устройство создает ее копию.
Только применение программы один раз в качестве инструкции, а другой раз — в качестве объекта копирования позволило решить чрезвычайно трудную проблему бесконечной регрессии.Теоретическая модель фон Неймана абсолютно точно отображает механизм самовоспроизведения живых организмов.
В каждой клетке есть символический каркас (ДНК), содержащий закодированные инструкции по репродукции новых клеток. Однако в ДНК нет описания самой ДНК. Та ДНК, которая появляется в новой клетке, представляет собой результат копирования (двойная спираль ДНК делится на две части, а ферменты создают две точные копии исходной ДНК). Подобно тому как машина фон Неймана прочитывает макет двумя способами, ДНК также ведет себя по-разному в процессе воспроизводства живой клетки. Она служит инструкцией для построения клеток, а затем делится и воспроизводит свою вторую половину из окружающей среды каждой новой клетки. По сути это означает, что информационная, или символическая, составляющая ДНК настолько активна, что способна создать свой отпечаток в окружающей среде.
Конвей не сомневался в том, что клеточные существа рано или поздно оживут, он ломал голову над тем, как в искусственном мире клеточных существ создать аналог персонального компьютера. Внутренняя схема компьютера на базовом уровне состоит из следующих компонентов: проводники, логические элементы и регистр памяти. Генератор тактовых импульсов порождает электронные импульсы, представляющие двоичные числа. Наличие импульса — это 1, а его отсутствие — 0. Все логические элементы выполняют операции трех базовых типов: НЕ, И и ИЛИ. Конвей сконструировал конфигурации, имитирующие логические элементы для таких