8 февраля 2018 г. | Автор: Мария Валяева
Игра в имитацию

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

Важные птицы

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

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

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

Программа MASSIVE для имитации массовки в киноиндустрии основана на алгоритме птичьего полёта. Кадр фильма «300 спартанцев»

Программа MASSIVE, потомок «Птицоида», используется в киноиндустрии для создания массовых сцен. Для каждого персонажа сцены задаются отдельные правила поведения — изменённый «птичий» алгоритм, благодаря чему события на экране выглядят правдоподобно. Например, орки в фильме «Властелин колец» следовали правилам «будь ближе к другим оркам», «старайся не натыкаться на других орков», «иди вместе со всеми», «увидишь человека — заруби его». MASSIVE использовалась в создании фильмов «Хоббит», «Аватар», «300 спартанцев», «Пираты Карибского моря» и многих других. Представьте, сколько денег было сэкономлено на массовке.

Как рыба в воде

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

Рыбий «кодекс поведения» вдохновил автомобильную фирму Nissan на создание группы роботов EPORO. Каждый робот из группы имеет специальный сенсор — лазерный дальнометр, имитирующий боковую линию рыб. EPORO обмениваются друг с другом по беспроводной сети информацией, необходимой для безопасного совместного движения. 

Робот EPORO, имитирующий боковую линию рыб

Пока EPORO — модельный объект. На его основе учёные из Nissan надеются создать безопасный автомобиль, который мог бы, избегая столкновений и огибая препятствия, двигаться в общем потоке. Такому автомобилю не будут нужны ни светофоры, ни дорожная разметка, ни…водитель.

Алгоритм движения рыбьего косяка чем-то похож на правила птичьей стаи

Интересно, что подобный алгоритм поведения используют водители транспорта: замедляются, когда впереди чья-то машина, и ускоряются, когда кто-то может врезаться сзади.
Законы пчелиного роя

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

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

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

Успешное применение алгоритма: группа роботов Snowbots, разработанная учёными из Сандийской лаборатории (США), находит жертв лавин в четыре раза быстрее специально обученных собак.

Командный дух

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

Команда марсоходов может объездить планету быстрее, чем один. Curiosity нужна компания!

А что насчёт человека? Google сортирует страницы в порядке убывания их популярности. Когда пользователь просматривает страницу, это как бы «даёт очко» в её пользу в рейтинге интернет-страниц.

Каждый шаг марсохода требует подробных инструкций учёных. В результате за 24 часа он проходит в среднем 100 метров. Это как исследовать Землю, передвигаясь в день на расстояние футбольного поля! Учёные думают над созданием группы роботов, которая обеспечила бы больший охват поверхности Марса и, благодаря «живым» алгоритмам, позволила бы проводить исследования без непрерывного потока инструкций с Земли.

«Википедия» — энциклопедия, которую делают всем миром: миллионы статей обо всём на свете более чем на двухстах языках! Один человек может что-то не знать, но все вместе мы обладаем гигантским багажом знаний.

Главный урок алгоритмов животных: если каждый будет следовать простым правилам, каким бы ни был слабым, вместе можно сделать очень много. Простые вещи невероятно важны: если каждый будет выбрасывать мусор в урну, город сразу станет намного чище. Это тот случай, когда мелочи имеют значение.