Простых роботов научили решать сложные задачи путём самоорганизации в цепь

Роботы передвигаются по шестиугольному полю. Их цель √ посетить все лузы в правильном порядке.

Роботы передвигаются по шестиугольному полю. Их цель √ посетить все лузы в правильном порядке.
Фото Lorenzo Garattoni, Mauro Birattari / Science Robotics (2018).

Каждый робот оснащён инфракрасным детектором и излучателем для связи с "коллегами".

Каждый робот оснащён инфракрасным детектором и излучателем для связи с "коллегами".
Фото Lorenzo Garattoni, Mauro Birattari / Science Robotics (2018).

Роботы передвигаются по шестиугольному полю. Их цель √ посетить все лузы в правильном порядке.
Каждый робот оснащён инфракрасным детектором и излучателем для связи с "коллегами".
Взаимодействие друг с другом помогает машинам достигать цели, к которой они не могут прийти поодиночке.

В природе часто бывает так, что каждый из членов сообщества выполняет свою часть работы и при этом ни один не видит цели, стоящей перед всем "трудовым коллективом". Однако при взаимодействии таких участников решается очень сложная задача, которую никто из них в отдельности решить не смог. Примером может служить поведение пчёл в улье или муравьёв в муравейнике. Другой пример – развитие эмбриона. Каждая клетка "только и знает", что программу своего поведения в тех или иных внешних условиях. Однако когда все клетки зародыша выполняют работу вместе, в результате получается живое существо со всем многообразием органов и тканей.

Инженеры, создающие роботов, давно пытаются реализовать нечто подобное "в металле". Обычно перед такими системами ставят механические задачи, например, перенести груз. Если же речь идёт о принятии решений, то исследователи обычно учат своих "подопечных" выбирать из двух альтернатив.

Лоренцо Гараттони (Lorenzo Garattoni) и Мауро Бираттари (Mauro Birattari) из Брюсслельского свободного университета поставили перед роботами более сложную задачу. Требовалось выполнить в правильном порядке три действия, причём порядок не был известен машинам заранее. Например, роботу требуется взять в сарае пустой ящик, нагрузить его яблоками и отнести в кузов автомобиля. Он не знает, с чего начинать и чем заканчивать, и должен этому научиться. Если он попытается выполнить эти действия не в том порядке (рвать яблоки, не имея ящика, сначала отнести ящик в грузовик, а потом наполнить фруктами под яблоней), его задача не будет выполнена.

Каждый робот оснащён инфракрасным детектором и излучателем для связи с "коллегами".

В работе авторов, опубликованной в журнале Science Robotics, речь, конечно, не о яблоках. Схема эксперимента выглядит следующим образом. Поле имеет вид правильного шестиугольника со стороной 90 сантиметров. Из этих шести сторон есть три, в центре которых располагается луза – красная, зелёная или синяя. По полю передвигаются 20 двухколёсных роботов, каждый размером пять сантиметров. Все они имеют одинаковые программы. Задача считается решённой, когда десять любых роботов побывают во всех трёх лузах в правильном порядке (например, "красный, синий, зелёный").

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

Если эта цель не достигнута за контрольное время (40 минут), эксперимент начинается заново. Правильный порядок (общий для всех роботов, но не известный им заранее) и исходное положение "участников" при каждом запуске эксперимента генерируются случайным образом.

Каждая машина может, ориентируясь на сигналы "коллег", принять решение о выборе одной из четырёх ролей: бегун, хранитель, звено цепи или хвост. Изначально все роботы – бегуны. Они беспорядочно перемещаются по арене. Потом у каждой лузы появляется хранитель. Им становится первый бегун, побывавшей в этой лузе. Хранитель передаёт бегунам сигналы, катиться им в лузу или нет (радиус действия его передатчика ограничен ближайшими окрестностями). С момента когда у лузы появился хранитель, ни один бегун, побывавший в лузе, не считается выполнившим задание, если только он не был направлен в неё хранителем.

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

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

Остальные два хранителя "знают", что они сами начали не с той лузы. Поэтому они действуют методом проб и ошибок. Сначала такой "куратор" отправляет в свою лузу бегуна, если тот побывал только в одной, и при этом правильной, точке. Хранитель получает сигнал о том, правильным ли пунктом на пути этого бегуна оказалась его луза. Если да, получается, что луза вторая в последовательности. Тогда он продолжает направлять туда бегунов, побывавших только в первой. Если же нет, то он отправляет в свою точку роботов, которые были уже в двух пунктах назначения, и притом в правильном порядке.

Тем, кто не подходит под "визовые требования" к посещению лузы, хранитель предлагает стать звеном цепи. Роботы выстраиваются в прямую линию вдоль края поля. Эта стена мешает бегунам, не "командированным" хранителем, достичь лузы.

Авторы экспериментировали не только на реальных роботах, но использовали и компьютерный симулятор (предварительно убедившись, что он даёт те же результаты, что и настоящие опыты). Это позволило им использовать любое число "участников" и любое контрольное время (которое в реальности ограничено ёмкостью аккумулятора робота).

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

Всего получилось четыре схемы эксперимента: "три лузы и моментальное оповещение" (I3), "четыре лузы и моментальное оповещение" (I4), "три лузы и оповещение постфактум" (II3), "четыре лузы и оповещение постфактум" (II4). Понятно, что задача обойти все пункты в правильном порядке в последних трёх случаях значительно сложнее, чем в первом. Исследователи учитывали это, выбирая контрольное время. Если в схеме I3 оно составило 40 минут, то во всех остальных почти 28 часов, что намного превышает время автономной работы реального робота.

Эксперименты показали, что настоящие роботы более чем в 80% случаев справляются с задачей I3 за время меньше контрольного. Примерно такие же результаты показал симулятор для I4. Для II3 успех скромнее – примерно 75% случаев, и почти столько же для II4.

Но во всех случаях вероятность успеха оказалась значительно выше 50%. Это означает, что взаимодействие небольших роботов с простыми программами порождает "коллективный интеллект", который решает довольно сложную по меркам подобных исследований когнитивную задачу.

Напомним, что ранее "Вести.Наука" (nauka.vesti.ru) писали о флоте дронов, которые выстраиваются в фигуру по выбору пользователя, о самообучающемся рое роботов-лодок и об управлениями тысячами устройств с помощью автоматического программирования.