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