Жизнь насекомых: некоторые симуляции муравьиных колоний

Встречаются иногда вещи, которые удивляют не столько самим фактом своего существования, сколько тем, как регулярно одни и те же идеи получают новые воплощения — самого разного, надо сказать, вида. Недавно попалась вот такая прекрасная вещь: Myrmedrome — симулятор муравьиных колоний под Windows и Linux. Как пишут сами разработчики программы, она пытается имитировать жизнь муравьёв максимально реалистично, при этом с минимумом (или вообще без) «искусственных эффектов».

В описании программы говорится:

Симуляция основывается на фундаментальном принципе, согласно которому каждый отдельный муравей не в состоянии уразуметь, что он живёт в сложном сообществе, и не может никак организовывать задачи колонии. Таким образом, каждый муравей живёт и работает в соответствии с несколькими простейшими правилами, взаимодействуя (неосознанно) с другими с помощью химических сигналов. Эти тысячи связей формируют самоорганизацию всей колонии, так что у наблюдателя возникает ощущение, что кто-то задал ей особую стратегию. Этим «кто-то» называется… Эволюция.

Надо заметить, что в Myrmedrome фигурируют только два типа муравьёв — рабочие и солдаты. Рабочие постоянно исследуют территорию в поисках пищи. Если они её находят, они едят сами и наполняют свои «социальные желудки», содержимым которых делятся с другими рабочими и солдатами, так что ресурсы распределяются по всей колонии. Как и в реальной жизни, рабочие муравьи, обнаружившие большое количество пищи, оставляют след феромонов, ориентирующих остальных рабочих в том же направлении. Если они встречают представителя другой колонии, рабочие либо атакуют, либо отступают, оставляя «тревожный след», на который реагируют муравьи-солдаты (они в симуляторе изображены значительно крупнее, нежели рабочие особи).

Помимо неподвижных источников пищи, наблюдатель (термин «игрок» тут как-то не очень к месту) может разместить вокруг муравьиных колоний червей — движущуюся добычу, которую каждый рабочий будет изо всех сил пытаться убить.

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

В итоге получаются иногда весьма масштабные битвы между двумя колониями:

Война муравьиных миров.

У наблюдателя не слишком много способов вмешиваться в сам процесс: он может лишь добавлять количество доступной пищи, размещать ползающую «живую добычу», по своему выбору убивать или перемещать отдельных муравьёв. Зато есть возможность регулировать основные параметры симуляции — количество враждующих колоний и особей в них (отдельно рабочих и отдельно солдат), максимальный срок их жизни (в том числе голодной), время испарений химических следов, оставленных муравьями и т.д.

Скачать пакет можно отсюда.

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

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

Поисковики в избытке выдают ссылки на программы под названием Ant Simulator, и как минимум часть из них представляет собой очередную итерацию «боидных» принципов.

Вот, например, JavaAnt или Ant Farm.

Более интерактивный и навороченный — 3D Ant Farm Simulation:

Ну а древнющую игру Sim Ant, вероятно, все так или иначе видели:

Что будем искать? Например,ChatGPT

Мы в социальных сетях