Компьютерам, умеющим самостоятельно адаптироваться к изменяющейся ситуации, совсем не нужно быть разумными по-человечески. На Земле есть существа, которые, несмотря на свою примитивность, успешно решают сложнейшие проблемы — и делают это решительно не человеческими методами. Не стоит ли поучиться у них?
Вспомните муравьёв. Эти насекомые образуют поразительно сложные коллективы, для описания которых требуются слова, почти никогда не применяемые в отношении животных. Они используют разделение труда. Они воюют и обращают пленников в «рабство». У некоторых видов есть даже что-то вроде сельского хозяйства: они разводят съедобные грибы и пасут тлю, выделяющую сладкое вещество, которое муравьи употребляют в пищу.
При этом отдельные муравьи не отличаются умом даже по меркам насекомых. Мозг муравья состоит всего из 250 тысяч нейронов. По этому показателю они уступают не только пчёлам, но даже тараканам, у которых целый миллион нейронов (у человека, для сравнения, их 86 миллиардов). Об уровне интеллекта нельзя судить лишь по количеству нейронов, но в данном случае эту цифру подкрепляют и другие факты. Многие виды насекомых обладают более разнообразными поведенческими реакциями, чем муравьи.
Как может сочетаться такая сложность с такой простотой? Ответ на этот вопрос учёные выяснили не сразу. В 1953 году молодой энтомолог Эдвард О. Уилсон поставил перед собой задачу: разобраться, как муравьи-разведчики передают рабочим муравьям информацию о том, где находится найденная ими еда.
Очевидно, что они не могут объяснить это на словах — у муравьёв нет речи. И не только речи — они вообще не издают звуков, да и слух у них, как правило, так себе. Пчёлы кодируют навигационные сведения в замысловатых «танцах», но за муравьями не водится ничего подобного. Муравьи большинства видов не отличаются хорошим зрением, что закрывает для них такой метод общения. Если не зрение и не слух, то что же? Остаётся запах.
Правдоподобная догадка — это хорошо, но на одних догадках далеко не уедешь. Необходимо экспериментальное подтверждение (или, если не повезёт, опровержение). Уилсон обустраивает искусственный муравейник из оргстекла, населяет его огненными муравьями и начинает наблюдения.
Вскоре он замечает, что муравьи, возвращающиеся с добычей, волочат брюшко по земле — вероятно, выделяя при этом вещество, которое могут учуять другие. Это уже весомый довод в пользу предположения, что коммуникация происходит химическим путём, но довода этого по-прежнему мало.
Следующий шаг — определить, какое вещество выделяют эти насекомые. Уилсон начинает препарировать муравьёв, пытаясь найти источник того самого запаха. Это не так уж просто: в огненном муравье не больше трёх-четырёх миллиметров, а брюшко — и того меньше.
Учёный проверяет орган за органом, но муравьи никак не реагируют на их запах. Наконец, он обнаруживает крохотную железу непонятного назначения — и муравейник сходит с ума. Муравьи наперегонки бросаются к мазку вещества из этой железы. Уилсон пишет этим веществом своё имя, и через мгновенье сотни муравьёв заполняют проложенную дорожку, складываясь в латинские буквы.
Позже «сигнальные» вещества вроде того, которое нашёл Уилсон, назовут феромонами. Лексикон среднего муравья состоит из десятка-другого феромонных сигналов. Встречая их, он действует как конечный автомат: без вопросов и размышлений переходит к алгоритму, который соответствует сигналу, и отрабатывает его до тех пор, пока не произойдёт переход в другое состояние.
Вот прекрасный пример того, насколько жёстко запрограммированы реакции муравьёв. Когда муравей гибнет внутри муравейника, поначалу никто не обращает на него внимания, даже если он лежит на пути и мешает движению. Через пару дней его разложение приводит к образованию олеиновой кислоты. Запах олеиновой кислоты — это сигнал.
Первый же муравей, учуявший его, переходит в режим могильщика: он хватает источник запаха и тащит на свалку. Действительно ли это муравей и мёртв ли он — не играет роли. Если измазать в олеиновой кислоте здорового муравья, его так или иначе выкинут из муравейника. Сопротивление бесполезно: лишь когда запах выветрится, муравью позволят «вернуться в мир живых».
Окрестности каждого муравейника покрыты густой сетью невидимых химических записей. Эта сеть представляет собой своего рода внешнюю память колонии. Муравьи следуют записанным в ней инструкциям с беспрекословностью компьютеров, исполняющих программу, попутно дописывая, улучшая и отлаживая её.
Создание невидимой феромонной программы начинается с муравья, который сбился с готовой дорожки. Без неё он вынужден хаотично рыскать в окрестностях муравейника, разыскивая еду для колонии. Найдя что-то, заслуживающее внимания, муравей возвращается в гнездо, оставляя за собой пахучий след.
«Внешняя память» муравьёв не застрахована от ошибок. Если феромонный путь замкнётся, муравьи попадут в бесконечный цикл, из которого нет выхода. Каждый новый круг по замкнутому маршруту усиливает запах следа, привлекая всё новых и новых жертв. Так продолжается до тех пор, пока муравьи не погибнут от истощения. Новые добытчики движутся уже по его следам, и каждый из них тоже отмечает пройденный путь феромонами. Чем больше муравьёв достигают хлебного места и возвращаются обратно, тем мощнее становится феромонный след.
И вот тут есть интересная подробность: муравьи далеко не сразу выстраиваются гуськом и идут друг за другом след в след. Пока запах слабый, они добираются до цели как придётся и часто отклоняются от траектории, по которой следовал разведчик и которая, скорее всего, далека от идеала.
Рано или поздно кому-то удаётся наткнуться на более короткий и быстрый маршрут. Пока другие добираются до цели окружной дорогой, этот муравей и его последователи успевают совершить три захода. В результате их феромонный след усиливается гораздо быстрее. Запах привлекает других муравьёв, и вскоре самый короткий путь превращается в главную магистраль. Менее удачные дорожки оказываются заброшены и постепенно утрачивают запах.
Что произошло? Муравьи нашли оптимальное решение довольно сложной задачи. Даже их ошибки и случайные блуждания в итоге принесли пользу: с их помощью колония изучила все возможные варианты, а затем сделала выбор в пользу лучшего.
Если найденную дорогу перегородит препятствие, процесс повторится: муравьи ринутся в обход, найдут несколько альтернативных вариантов, кратчайший путь быстрее накопит феромонные следы, победит более длинные и всё вернётся на круги своя. Нарушенная программа скорректируется.
Тут самое время перейти от компьютерных метафор к настоящим компьютерам. В 1991 году особенности поведения муравьёв привлекли внимание бельгийского математика Марко Дориго. Он заметил, что муравьи фактически занимаются решением задачи коммивояжёра и это у них неплохо получается.
Задачу коммивояжёра обычно формулируют следующим образом: проложите наиболее выгодный маршрут, по которому следует отправиться странствующему торговцу, если необходимо посетить такие-то города, а в финале вернуться в исходную точку. Множество практических задач, начиная с проектирования микропроцессоров и заканчивая секвенированием ДНК, сводится к той или иной вариации на эту тему.
Для человека поиск решения не составляет труда (достаточно одного взгляда на карту), а вот для компьютера задача коммивояжёра — это грандиозная проблема. Дело в том, что её нельзя решить «в лоб». Маршрутов оказывается невероятно много даже при относительно скромном количестве городов. Так много, что их невозможно перебрать и проанализировать по очереди. Приходится искать лазейки и хитрить.
Дориго предположил, что компьютерную модель поведения муравьёв можно использовать для поиска пути, проходящего через заданные вершины графа. Виртуальные муравьи, стартуя из исходной точки, будут тестировать различные маршруты, отмечая виртуальными феромонами вершины, где они побывали. Спустя несколько итераций оптимальный путь станет очевиден: вершины, через которые он проходит, накопят больше всего отметок.
Метод назвали алгоритмом муравьиной колонии. С одной стороны, он положил начало исследованиям в области так называемого «интеллекта роя» — области информатики, изучающей алгоритмы, основанные на тех же принципах, что и самоорганизация и спонтанный порядок в природе. С другой стороны, его хоть и осторожно, но начинают применять на практике.
Малоизвестный факт: персонажи игры Sims спроектированы по образу и подобию муравьёв. Уилл Райт, придумавший Sims, разрабатывал симулятор муравейника SimAnt, и результат настолько впечатлил его, что он решил воспроизвести удачный подход в новом проекте. Каждый предмет в игре распускает невидимые «феромоны» определённого типа: еда, энергия, гигиена, общение или развлечения. Когда у персонажа возникает какая-то потребность, он направляется по самой сильной феромонной дорожке соответствующего типа. Один из пионеров в этой области — швейцарская компания AntOptima, в 2001 году отпочковавшаяся от располагающегося в Лугано Института Далле Молле по изучению искусственного интеллекта. За прошедшее с тех пор время она успела внедрить продукты, основанные на алгоритме муравьиной колонии, в несколько европейских компаний.
Один из крупнейших клиентов AntOptima — главная швейцарская сеть супермаркетов Migros. Муравьиный алгоритм используется для организации движения 1200 грузовиков, которые развозят товары по 600 магазинам, разбросанным по всей Швейцарии. Задача усложняется тем, что, во-первых, автопарк Migros неоднороден и состоит из трёх видов грузовиков разной вместительности и, во-вторых, часть магазинов не приспособлена для разгрузки некоторых типов грузовиков.
В AntOptima разработали замысловатую модификацию алгоритма муравьиной колонии, учитывающую все эти тонкости. Используется не один «муравейник», а два: один оптимизирует расстояние, а другой — сроки доставки. Чтобы учесть разнотипность транспорта, муравьям случайным образом присваивается один из типов грузовиков. Алгоритм запускают каждое утро, чтобы получить маршруты для каждого грузовика на весь день.
Схожая проблема стояла перед корпорацией Air Liquide, занимающейся производством сжиженных газов, используемых в промышленности и медицине. У корпорации около сотни заводов в Соединённых Штатах, ежедневно отправляющих продукцию в шесть тысяч пунктов, находящихся в разных частях континента. Для доставки применяются четыре сотни грузовиков, железная дорога и трубопроводы. Кроме того, для полноты картины нужно учитывать стоимость электроэнергии. Она не только везде своя, но ещё и постоянно меняется.
Систему, ежедневно планирующую эффективную доставку с учётом всех этих факторов, для Air Liquide написали в компании BiosGroup. Любопытный побочный эффект: идеальные маршруты оказались настолько противоестественными, что поначалу вызвали ропот у водителей. Алгоритм запросто мог отправить машину к дальнему заводу, пропустив завод, который находится рядом с клиентом. При ближайшем рассмотрении неизменно оказывалось, что прав он, а не люди: если учесть не только расстояние, но и все прочие факторы, сделать крюк бывает выгоднее.
Во France Telecom муравьиный алгоритм попытались применить для маршрутизации информации в сети. Проектом руководил эксперт в области сложных систем Эрик Бонобо. «Компьютерра» рассказывала об этом в 2004 году:
Бонобо разработал специальные программные агенты, которые могут пересылаться по сети от маршрутизатора к маршрутизатору как сообщения. Когда агент достигает маршрутизатора, он оставляет на нём особую пометку. Если там побывал не один агент, а несколько, их пометки скапливаются. Одним словом, всё как у муравьёв.
Как ни странно, этот подход сработал. И даже ошибки, которые неизбежно возникают поначалу, постепенно сами собой исчезли. «У общественных насекомых ошибки и случайное поведение не приводят к сбоям, — объясняет Бонобо. — Наоборот, делая ошибки, они добиваются успеха и отыскивают новые способы решения проблем в дополнение к старым».
Есть и другие примеры. Подражание муравьям неплохо помогает и в управлении группами автономных роботов (в этой области экспериментировал Виджай Кумар из университета Пенсильвании, сейчас более известный своими роящимися квадрокоптерами), и в борьбе с пробками на дорогах, и даже при решении некоторых задач в области искусственного интеллекта (впрочем, чему тут удивляться: специалисты подозревают, что между взаимодействиями нейронов в мозге и отдельных особей в рое есть много общего).
Впрочем, одна из интересных возможностей пока остаётся нераскрытой. Все описанные модели муравейника, как правило, просчитывались на единственном компьютере. А ведь у интеллекта муравейника есть редкое достоинство: его работа потрясающе распараллеливается, поскольку муравьи действуют хоть и с общей целью, но при этом совершенно независимо друг от друга. Ситуация, в которой это качество будет полезным, может возникнуть совсем скоро.
Если верны прогнозы, согласно которым вот-вот наступит время интернета вещей и повсеместного компьютинга, вскоре инженерам придётся думать, как наладить автоматическое взаимодействие десятков, а то и сотен независимых устройств. Возможно, ответ дадут как раз наблюдения за общественными насекомыми вроде муравьёв.