Все, что нужно, это чтобы каждый робот подчинялся следующим трем простым правилам:
1. Избегай столкновения с другим роботом.
2. Не слишком отдаляйся от остальных роботов (понятие «не слишком» уточняется при конкретном программировании).
3. Продолжай движение.
Вот и все. Этот алгоритм не позволяет контролировать направление движения группы, но его выполнение приводит к тому, что группа движется как единое целое.
Еще один тип эмерджентного поведения Матарик называет «держаться стены». Здесь задействован одиночный робот, взаимодействующий с окружением, о котором у него имеется очень мало информации. Здесь правила таковы:
1. Двигайся в случайном направлении, пока не повстречаешь твердый объект.
2. Не слишком приближайся к нему.
3. Но и не удаляйся от него слишком далеко.
4. Продолжай движение, не допуская простой осцилляции (шаг вперед — шаг назад).
Результат — робот, который крадется вдоль стен в двух измерениях (если это робот на колесиках, катящийся по полу) или в трех (если это насекомое-киборг).
Разумеется, Кипу не нужно, чтобы его рой вел себя как косяк рыбы. И просто ползать вдоль стен тоже слегка скучновато. Но этот базисный подход способен дать нам более сложное поведение.
При желании мы можем объединить алгоритмы следования вдоль стены и собирания в стаи, тогда мы получим стаю, двигающуюся вдоль стен. Подобрав оптимальную дистанцию, на которой робот должен находиться от стены и от каждого другого робота, мы сможет сделать, чтобы насекомые распределились по всем стенам здания, позволяя своим камерам и другим сенсорам заглянуть в каждое окно. Или же мы можем запрограммировать их на распознание открытых окон и прочих щелей, чтобы то насекомое, которое первым обнаружит путь внутрь здания, могло повести за собой остальных.
Другими словами, подчиняясь нескольким простым правилам, члены стаи смогут реагировать на свое окружение и друг на друга, формируя сложное и, на посторонний взгляд, кем-то координируемое поведение. И Кипу не надо будет контролировать каждое насекомое в отдельности.
Все это делает задачу Кипа гораздо более легкой. Вместо того, чтобы одновременно управлять каждым из 300 насекомых по отдельности, он просто разбивает их на группы, у каждой из которых есть своя боевая задача. Такая группа снабжается простыми инструкциями вроде: «рассыпаться веером», «образовать выдвинутый периметр», «укрыться», «наблюдать за объектом X», «найти путь в это здание» и т. п. Эти указания активируют различные алгоритмы, которые позволят рою или части роя с определенной задачей выполнять свою работу самостоятельно, тогда как Кип ведет общее наблюдение, лишь временами в случае нужды беря под контроль какое-то отдельное насекомое для выполнения чего-то специфического.
Это тоже кажется достаточно сложным, но не забывайте, что мы говорили о пластичности мозга. Когда один из нас (Ричард) учился в восьмом классе, родители отдали его на курсы машинописи. Поначалу он просто находил клавишу с нужной буквой и стучал по ней пальцем. Теперь печатание идет автоматически. Он задумывает слово, и оно появляется на экране. При этом он совершенно не осознанно совершает массу сложных движений и может набрать до 100 слов в минуту. А если бы он попытался сознательно выполнять все эти движения, обдумывая их последовательность, то скорость тут же упала бы до нуля.
Это как ходить пешком. Человек не обдумывает свои движения, он просто ходит.
Каждый раз, когда мы выполняем какую-то требующую определенного мастерства работу, будь то печатание или забрасывание мяча в баскетбольное кольцо, либо когда играем в компьютерные игры, требующие быстрой реакции, мы используем те же самые базисные навыки, которыми пользуется Кип, управляя своим роем. И также, как Кип и его собратья операторы НК-МЭМС, кто-то из нас показывает блестящие результаты, у кого-то не обнаруживается нужных способностей… ну, а у некоторых вырабатывается зависимость.
Ричард ЛОВЕТТ, Марк НИМАНН-РОСС
Перевел с английского Евгений ДРОЗД
© Richard A.Lovett, Mark Niemann-Ross. 2010.
Критика
Рецензии
Г.Л. Олди
Внук Персея. Книга I. Мой дедушка — истребитель
Тексты Г.Л.Олди всегда многослойны и многозначны. Как правило, в основу произведения кладется какая-то сверхидея, которая потом обрастает дополнительными ответвлениями и оттенками. Не стал исключением и новый роман «Внук Персея», тематически и сюжетно продолжающий «античный» цикл Олди, начатый романами «Герой должен быть один» и «Одиссей, сын Лаэрта», и, в свою очередь, входящий в мега-цикл «Люди, боги и я».
Действие происходит в легендарные времена крито-микенской культуры, когда лишь зарождалось то, что впоследствии получило гордое и звучное имя Эллада. В центре повествования находится судьба великого героя Персея, бросившего вызов собственному брату по отцу — Дионису, пытающемуся любой ценой пробраться на Олимп и стать одним из дюжины богов — вершителей судеб. Вся эта история показана глазами мальчика-подростка, царевича Амфитриона.
Олди, как всегда, отталкиваясь от общеизвестных фактов, строят собственный мир. Скупую и суровую реальность эгейского периода, когда не было еще ни величественных храмов, ни прекрасных мраморных статуй, писатели расцвечивают под более яркий, знакомый и узнаваемый читателем классический период, отчасти забредая и в эпоху эллинизма. Причем делается это довольно убедительно.
Стержнем книги стали размышления соавторов о природе «вождизма». Перед нами предстают два типа вожаков: зацикленный на одной идее догматик Персей, каленым железом выжигающий все то, что он считает вредным для человечества, и лукавый сибарит Дионис, разрушающий души и традиции. Две правды в конце концов оказываются двумя сторонами одной медали. Что тот, что другой путь ведут в тупик. Не потому ли братьям приходится уйти, уступив место новым героям? Только есть сомнения, что эти пришедшие на смену герои и впрямь окажутся достойной альтернативой старым.
Игорь Чёрный