Что общего имеют интернет и колония муравьев? На самом деле намного больше, чем вы можете представить. Но лишь в том случае, если речь идет именно о колонии, а не об отдельном представителе этого вида насекомых. Как говорит муравьед в книге Дугласа Хофстедера «Гёдель, Эшер, Бах: эта бесконечная гирлянда» (Douglas Robert Hofstadter: Gödel, Escher, Bach: An Eternal Golden Braid): «Вы же никогда не примeте отдельное дерево за целый лес?».
В этой причудливой книге герой-муравьед стремится стать близким другом остроумному муравью по имени Хиллари, несмотря на то, что его пугает предельно простое устройство этих самых муравьев. Но автор использует муравья как метафору человеческому мозгу и его нейронам и компьютерным программам с их нулями и единицами.
Со времен публикации этой книги прошло много времени, но это сравнение оказалось невероятно полезным. Муравейники — это чудеса природы, созданные ордой маленьких насекомых, и их изучение позволило исследователям создать такие выдающиеся программы, как алгоритм маршрутизации потоков, и сделать ряд других не менее важных открытий.
К слову, Баладжи Прабхакар (Balaji Prabhakar), профессор кафедры электротехники и компьютерных наук, зовет открытый учеными муравьиный алгоритм не иначе, как «the anternet». Он подчеркивает, что «муравьи живут по алгоритму, который мы все очень хорошо знаем и который шлифовался миллионы лет».
Сумма всех частей
Биолог из Стэнфорда Дебра Гордон (Debra Gordon) после нескольких лет наблюдений за муравьиными колониями в аризонской пустыне пришла к выводу, что так называемые harvester ants (с англ. — степные муравьи), тот вид, который она изучала, обладает незаурядной техникой поиска пищи. Дело в том, что муравьи, которые покидали муравейник в поисках пропитания, не возвращались в него до тех пор, пока не находили что-нибудь съестное. Как вы можете представить, далеко не всем муравьям суждено вернуться: кто-то погибнет до того, как найдет пищу, кто-то — на пути в муравейник. Еще больше муравьев погибает в жаркие и засушливые дни.
Дебра отмечает, что муравейник все же отлично приспособлен под такие экстремальные внешние условия: в особо жаркие дни муравьев, отправляющихся на «охоту», значительно меньше, чем в прохладные. Таким образом муравьиная колония как бы предохраняет себя от вымирания, продолжая существовать в эти дни за счет тех запасов, которые хранятся внутри муравейника. Однако остается непонятным, каким образом происходит координация этих процессов. Ведь не существует же среди муравьев неких специальных муравьев-«менеджеров», отслеживающих динамику погоды и бдительно следящих за тем, чтобы каждый муравей имел при себе памятку о том, когда стоит выходить на сбор корма, а когда безопаснее остаться дома. (Известно, что в муравейнике есть «королева», которую все муравьи тщательно оберегают. Однако «королева» обладает несущественной властью и вся ее роль ограничивается размножением).
После ряда экспериментов Гордон выяснила, что муравьи-добытчики скапливаются в узком канале муравейника, ведущим на поверхность. Когда очередной муравей возвращается с пищей, он касается своими усиками-антеннами других муравьев. Дальнейшее поведение муравьев зависит от этих простых взаимодействий: от количества касаний и длительности промежутка времени между касаниями.
«Охотник» не возвращается в муравейник, пока не найдет что-либо съедобное» — рассказывает Гордон в студии National Geographic. — Чем меньше еды в пределах досягаемости, тем больше времени затрачивается на ее поиск и транспортировку в муравейник. Соответственно, чем больше еды, тем они быстрее несут ее обратно и тем больше муравьев отправится на ее сбор. Никто не решает, хорош ли день для поисков пищи или нет. Это решается коллективно, путем простых касаний».
The Anternet
Надпись: «Что это? Протокол передачи данных для муравьев?»
Вы можете подумать, что это открытие не оказалось таким важным, но ошибетесь. Как только Гордон показала свои данные Баладжи Прабхакару в числовом выражении, тот очень удивился, поскольку тот алгоритм, который муравьи использовали для поиска пропитания, был идентичным TCP (от англ. Transmission Control Protocol — протокол управления передачей) — один из основных протоколов передачи данных Интернета, предназначенный для управления передачей данных в сетях и подсетях TCP/IP).
TCP во многом обеспечивает возможность существования такой сети, как Интернет. Ведь что есть интернет? Это множество машин, связанных друг с другом и пересылающих друг другу файлы. Вся сложность существования этой системы в том, что нередко некоторые части могут просто-напросто отказать, оказаться перегруженными и перестать отвечать на запросы.
Если ресурс, располагающий нужным вам файлом, использует технологию TCP, то он разбивает файл на несколько частей, которые именуются «пакетами». Ресурс отправляет эти пакеты по адресу, с которого поступил запрос, и контролирует их поступление на нужный адрес через систему подтверждений, калибрует, с какой скоростью нужно отправлять оставшиеся «пакеты».
Если мы примем за главную цель муравьиной колонии — собрать больше еды, расходуя меньше муравьев, а целью сервера — отправить и получить файл, избежав перегрузки, то сходство между этими системами очевидно. Отправление пакета аналогично выходу муравья из своего гнезда во внешний мир. Получение сервером сигнала, подтверждающего о получении адресатом пакета, аналогично муравью, вернувшемуся в муравейник с пищей. Если такие сигналы возвращаются быстро, то канал обладает высокой пропускной способностью.
То же самое и с муравьями: если они возвращаются слишком быстро, значит в пределах досягаемости много еды. А раз много еды и пропускная способность хорошая, то можно отправлять больше «пакетов» и задействовать больше муравьев. Напротив, если подтверждающие сигналы не поступают на сервер, то отправка пакетов может прекратиться полностью. Коннект пропадает. То же мы наблюдаем и в муравьиной колонии: если муравьи-добытчики не возвращаются или возвращаются через продолжительный промежуток времени, то вскоре другие вообще перестанут выходить на поверхность.
(Стоит отметить, что приведенное выше объяснение — это сильное упрощение работы TCP, поскольку этот алгоритм также имеет и другие важные функции, например, обнаружение ошибок. Но обработка заторов имеет непосредственное отношение к нашей метафоре с муравьями).
При помощи подобного алгоритма колония муравьев имеет возможность собирать пищу с минимальными потерями, а глобальная сеть позволяет осуществлять передачу файлов между машинами с минимальным числом заторов — и все это без наличия какого-либо высшего, надзирающего органа. Гордон также отметила, что поскольку каждый муравей ограничен в своих способностях, «муравьиные алгоритмы просты, распределены и масштабируемы — то есть обладают теми качествами, которые должны быть в инженерных распределенных системах». Собственно, благодаря этим особенностям интернет и смог вырасти из нескольких десятков машин до нескольких миллиардов.
Баладжи Прабхакар отметил, что если бы данный алгоритм был найден еще в 70-х, на заре появления глобальной паутины, до того, как Винт Церф и Боб Канн изобрели TCP (Vint Cerf, Bob Kahn), сегодня мы использовали бы интернет совсем с другой архитектурой и дизайном.
К счастью для нас, люди оказались в состоянии додуматься до подобного алгоритма без наглядного примера. Однако Гордон уверена в том, что еще немало полезных находок откроется миру после дальнейшего изучения поведения муравьев. «Я думаю, что как только мы начнем понимать больше о том, как муравьи регулируют свое поведение, мы получим еще множество полезных приложений».
Природные архитекторы строят наше будущее
Плесень, воспроизводящая географию железных дорог Токио
Гордон и Баладжи не одиноки в своей вере. В самом последнем номере Communications of the Association for Computing Machinery (ведущий ежемесячный журнал Ассоциации вычислительной техники (ACM) напечатана статья под названием «Распределенная обработка информации в биологических и вычислительных системах». В дополнение к anternet и муравьиному планированию маршрута в нем перечислены другие биологические аналоги в вычислительных системах, в том числе плесень, которая воспроизводит географию железнодорожной системы в Токио.
Самые последние исследования Гордон указывают на то, что такой аспект муравьиного алгоритма, как коллективность, является наследственным. Это означает, что в ходе естественного отбора муравьи продолжают оттачивать свой алгоритм, и вполне возможно, что нечто новое создается прямо сейчас.
Поэтому дважды подумайте перед тем, как начинать войну с муравьями на вашей кухне. Муравьи-одиночки не причинят вам вред, а вот целая колония, обладающая коллективным разумом и действующая по алгоритмам, отработанным в течение тысячелетий, легко может вас перехитрить.
Высоких вам конверсий!
По материалам priceonomics.comImage source Achim Pfennig