Третий механизм: строительные блоки
Внутренняя модель сложной адаптивной системы, как правило, основывается на ограниченном множестве выборок, описывающих ситуации, произошедшие в прошлом. Эти выборки похожи, но каждая из них обладает определенной новизной. Как сложная адаптивная система может создавать на базе ограниченного предшествующего опыта внутренние модели, полезные в будущем? Ключ к этому парадоксу — использование так называемых строительных блоков, то есть элементов, на которые можно разложить любую систему, среду или сценарий. Рассмотрим в качестве примера финансовую организацию, которая идеально соответствует определению сложной адаптивной системы. Допустим, что организация должна принять решение, выдавать ли клиенту кредит. Главный вопрос заключается в том, сможет ли клиент вернуть кредит в условленный срок. Банк не представляет, сможет ли клиент совершать платежи по кредиту через 15 лет, так как не способен предсказывать будущее. Усложним ситуацию и предположим, что клиент не имеет кредитной истории, то есть банку о нем ничего не известно. В этом случае банк разложит проблему на составляющие и, проанализировав определяющие характеристики нового клиента — уровень его образования, должность, семейное положение и другие, — рассмотрит поведение клиентов со схожим профилем. Эти характеристики будут строительными блоками, описывающими сценарий, с которым столкнулся банк как сложная адаптивная система.
Способность сочетать строительные блоки для создания неявных внутренних моделей развивается по законам эволюции, а обучение явных внутренних моделей обычно проходит в гораздо более короткие сроки, хотя в природе такой способностью обладают только высшие живые организмы.
Классическим примером искусственной жизни (вернее, сложной адаптивной системы) в информатике являются клеточные автоматы. Клеточный автомат — достаточно простое понятие, предназначенное для изучения сложности высших систем.
Оно было предложено авторитетными математиками и друзьями Станиславом Уламом (1909–1984) и Джоном фон Нейманом (1903–1957).
Американский математик польского происхождения Станислав Улам.
Автоматы — это математические модели, которые для определенных входных значений запрограммированы на выполнение ряда инструкций. Иными словами, автомат — это обобщение алгоритма или компьютерной программы. Таким образом, в информатике автоматами является все, от программируемого микрочипа, способного выполнять определенные действия, и заканчивая операционной системой. Еще один пример автомата, о котором мы уже рассказывали, это машина Тьюринга.
Как правило, теоретические автоматы, подобные машине Тьюринга, — это устройства, фиксирующие входные сигналы и печатающие выходные значения на одномерных лентах. Автомат проходит вдоль ленты и считывает написанные на ней символы, как показано на рисунке. На основе считанных символов и заложенных в автомат инструкций он выполняет то или иное действие, к примеру, печатает на определенном участке ленты некий символ.
Два основных компонента машины Тьюринга — бумажная лента и устройство чтения-записи.
Клеточные автоматы представляют собой особый класс автоматов, которые не перемещаются по поверхности двухмерных лент. В них среда, содержащая входные и выходные значения, представляет собой плоскость, разделенную на клетки подобно шахматной доске, причем в каждой клетке расположен неподвижный клеточный автомат. Входную информацию в клеточном автомате содержат клетки, смежные с той, в которой он находится. Выходная информация фиксируется в клетке, где расположен сам клеточный автомат.
Каждый автомат, находящийся в одной из клеток доски, содержит ряд инструкций. К примеру, если число черных клеток, окружающих клетку, где расположен клеточный автомат, четно, он закрасит свою клетку в черный цвет, в противном случае — в белый. Поместив аналогичные автоматы во все клетки доски, мы получим различные рисунки, которые будут меняться в зависимости от того, в какой цвет разные автоматы будут закрашивать те или иные клетки.
Некоторые из бесконечного множества возможных конфигураций клеточного автомата порождают повторяющиеся узоры, как, например, в игре «Жизнь» Конвея.
Читатель найдет в интернете множество фигур, порождающих прекрасные рисунки, которые затем уничтожаются и создаются вновь, причем все подобные фигуры описываются очень простыми правилами.