Разум, машины и математика — страница 20 из 24


Четвертое свойство: разнообразие

Разнообразие — еще одна определяющая характеристика сложных адаптивных систем. В любой сложной адаптивной системе наблюдается значительное разнообразие агентов, которые совместно определяют шаблоны поведения системы. В качестве примера приведем тропический лес, где можно пройти полкилометра и не увидеть двух деревьев одного вида. Или рассмотрим такую сложную адаптивную систему, как целый город, к примеру Рим, где живут миллионы самых разных людей со своими занятиями и особенностями, где работают тысячи компаний, по большей части непохожих друг на друга, при этом каждая из этих компаний, в свою очередь, также представляет собой сложную адаптивную систему.

Такое разнообразие вовсе не случайно. Каждый агент в рамках системы занимает свою нишу, которая определяется его связями с соседними агентами. Если мы исключим из сложной адаптивной системы один агент, другие автоматически займут его место. Когда система прекращает адаптироваться к условиям среды, наступает стабильное состояние, иными словами наблюдается сходимость.

Разнообразие также наблюдается, когда агент или совокупность агентов занимают новые ниши, в результате чего сложная адаптивная система получает новые функциональные возможности. Хороший пример — мимикрия, в ходе которой, к примеру, цветки орхидей имитируют внешний вид насекомых, чтобы привлечь других насекомых — переносчиков пыльцы и сделать опыление более эффективным.



Цветки растения офрис пчелоносная имитируют насекомых, чтобы привлечь других насекомых — переносчиков пыльцы.


Однако главный вопрос звучит так: какой фактор допускает и даже стимулирует возникновение столь большого разнообразия в сложных адаптивных системах? При подробном изучении таких систем можно последовательно проследить, какие изменения они претерпевали в процессе возникновения того или иного агента, и тем самым понять роль отдельных агентов в системе. К примеру, когда в сложной адаптивной системе в результате адаптации возникают циклические потоки, что ведет к переработке ресурсов и повышению общей эффективности, в ней открываются ниши, где появляются новые, «перерабатывающие» агенты. Другой пример сценария, порождающего разнообразие, — рост предприятия: в процессе роста возникает необходимость в новых иерархиях и, следовательно, в агентах нового типа, которые будут отвечать за координацию действий на каждом уровне иерархии.


Второй механизм: внутреннее моделирование

Любая сложная адаптивная система способна создавать внутренние модели окружающей среды, позволяющие предсказать будущие события и изменения, которые должны произойти для успешной адаптации системы к этим событиям. Такие модели строятся на основе информационных потоков, поступающих в систему и вызывающих полезные изменения ее внутренней структуры. После того как модель построена, она помогает системе предсказывать, какие последствия будет иметь появление определенных закономерностей в среде. Но как система может представить накопленный опыт в виде моделей? Как система создаст модель для прогноза последствий будущих событий?

Оптимальной движущей силой для создания подобных моделей является давление отбора. Бактерия всегда «знает», что ей нужно следовать в направлении, где находится больше питательных веществ. Этот «инстинкт» описывается внутренней моделью, указывающей, что если бактерия будет следовать подобной схеме поведения, то с наибольшей вероятностью гарантирует себе пропитание. Бактерии, которые благодаря кодификации структур и иерархий внутренних агентов смогли создать подобные модели, имеют больше шансов оставить потомство и, следовательно, передать ему это отличительное свойство.

Существует два вида внутренних моделей: явные и неявные. В примере с бактерией, следующей инстинктам в поиске питания, мы имеем дело с неявной моделью, так как она не позволяет ни «думать», ни моделировать альтернативные варианты развития событий. Явные модели, свойственные высшим живым организмам, напротив, позволяют оценивать различные гипотетические сценарии и принимать оптимальные решения после анализа альтернативных вариантов. Примером явной модели в сложной адаптивной информационной системе может служить машина для игры в шахматы, способная анализировать сотни тысяч вариантов на каждом ходу.

Логично, что неявная модель создается и адаптируется к среде по законам эволюции, в то время как для явных моделей скорость адаптации намного выше.



Колония бактерий Escherichia coli, увеличенная в 10 000 раз. Каждая «палочка» обозначает бактерию.


Третий механизм: строительные блоки

Внутренняя модель сложной адаптивной системы, как правило, основывается на ограниченном множестве выборок, описывающих ситуации, произошедшие в прошлом. Эти выборки похожи, но каждая из них обладает определенной новизной. Как сложная адаптивная система может создавать на базе ограниченного предшествующего опыта внутренние модели, полезные в будущем? Ключ к этому парадоксу — использование так называемых строительных блоков, то есть элементов, на которые можно разложить любую систему, среду или сценарий. Рассмотрим в качестве примера финансовую организацию, которая идеально соответствует определению сложной адаптивной системы. Допустим, что организация должна принять решение, выдавать ли клиенту кредит. Главный вопрос заключается в том, сможет ли клиент вернуть кредит в условленный срок. Банк не представляет, сможет ли клиент совершать платежи по кредиту через 15 лет, так как не способен предсказывать будущее. Усложним ситуацию и предположим, что клиент не имеет кредитной истории, то есть банку о нем ничего не известно. В этом случае банк разложит проблему на составляющие и, проанализировав определяющие характеристики нового клиента — уровень его образования, должность, семейное положение и другие, — рассмотрит поведение клиентов со схожим профилем. Эти характеристики будут строительными блоками, описывающими сценарий, с которым столкнулся банк как сложная адаптивная система.

Способность сочетать строительные блоки для создания неявных внутренних моделей развивается по законам эволюции, а обучение явных внутренних моделей обычно проходит в гораздо более короткие сроки, хотя в природе такой способностью обладают только высшие живые организмы.


Клеточные автоматы

Классическим примером искусственной жизни (вернее, сложной адаптивной системы) в информатике являются клеточные автоматы. Клеточный автомат — достаточно простое понятие, предназначенное для изучения сложности высших систем.

Оно было предложено авторитетными математиками и друзьями Станиславом Уламом (1909–1984) и Джоном фон Нейманом (1903–1957).



Американский математик польского происхождения Станислав Улам.


Автоматы — это математические модели, которые для определенных входных значений запрограммированы на выполнение ряда инструкций. Иными словами, автомат — это обобщение алгоритма или компьютерной программы. Таким образом, в информатике автоматами является все, от программируемого микрочипа, способного выполнять определенные действия, и заканчивая операционной системой. Еще один пример автомата, о котором мы уже рассказывали, это машина Тьюринга.

Как правило, теоретические автоматы, подобные машине Тьюринга, — это устройства, фиксирующие входные сигналы и печатающие выходные значения на одномерных лентах. Автомат проходит вдоль ленты и считывает написанные на ней символы, как показано на рисунке. На основе считанных символов и заложенных в автомат инструкций он выполняет то или иное действие, к примеру, печатает на определенном участке ленты некий символ.



Два основных компонента машины Тьюринга — бумажная лента и устройство чтения-записи.


Клеточные автоматы представляют собой особый класс автоматов, которые не перемещаются по поверхности двухмерных лент. В них среда, содержащая входные и выходные значения, представляет собой плоскость, разделенную на клетки подобно шахматной доске, причем в каждой клетке расположен неподвижный клеточный автомат. Входную информацию в клеточном автомате содержат клетки, смежные с той, в которой он находится. Выходная информация фиксируется в клетке, где расположен сам клеточный автомат.

Каждый автомат, находящийся в одной из клеток доски, содержит ряд инструкций. К примеру, если число черных клеток, окружающих клетку, где расположен клеточный автомат, четно, он закрасит свою клетку в черный цвет, в противном случае — в белый. Поместив аналогичные автоматы во все клетки доски, мы получим различные рисунки, которые будут меняться в зависимости от того, в какой цвет разные автоматы будут закрашивать те или иные клетки.

Некоторые из бесконечного множества возможных конфигураций клеточного автомата порождают повторяющиеся узоры, как, например, в игре «Жизнь» Конвея.

Читатель найдет в интернете множество фигур, порождающих прекрасные рисунки, которые затем уничтожаются и создаются вновь, причем все подобные фигуры описываются очень простыми правилами.



Паровая машина Тьюринга. Рисунок, сделанный студентами Вашингтонского университета в одной из аудиторий.

* * *

КЛЕТОЧНЫЙ АВТОМАТ ДЖОНА КОНВЕЯ, ИЛИ ИГРА «ЖИЗНЬ»

Игра «Жизнь», придуманная Джоном Хортоном Конвеем (род. 1937), представляет собой клеточный автомат, который, несмотря на простоту, демонстрирует удивительное поведение. Правил, описывающих его работу, всего два. В них учитываются восемь клеток, смежных с каждой, а также состояние самой клетки, в которой расположен клеточный автомат.

Правило № 1: если у белой клетки три соседние с ней клетки имеют черный цвет, то эта клетка также окрашивается в черный цвет. В противном случае клетка остается белой.

Правило № 2: если клетка окрашена в черный, а две или три соседние с ней клетки также черного цвета, то клетка не меняет цвет. В противном случае она становится белой.