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