УДК 519.711 ББК 22.18
ОРГАНИЗАЦИЯ СТРОЯ АГЕНТОВ С ПОМОЩЬЮ КЛЕТОЧНОГО АВТОМАТА
Кузнецов А. В.1,
(Воронежский государственный университет, Воронеж)
Рассматривается алгоритм распределенной организации заданного графом строя агентов и численная симуляция такого алгоритма. Описывается клеточный автомат, моделирующий движение агентов, и исследуются его особенности в связи с типом ландшафта, по которому перемещаются агенты. Указанный клеточный автомат имеет два представления - одномерное и двумерное.
Ключевые слова: клеточный автомат, автономные агенты, рефлексивные агенты, управление строем агентов.
1. Введение
Статья является итогом работ автора по исследованию поиска оптимального пути группами автономных агентов по ландшафтам разной степени сложности в рамках клеточно-автоматного подхода. В работах [1, 4, 14] был сконструирован клеточный автомат, позволяющий моделировать разные виды взаимодействия между иерархически организованными агентами, движущимися по ландшафту переменной сложности, и исследованы некоторые характеристики этих взаимодействий. Эти работы возникли в результате переосмысления автором моделей, предложенных в [6] и [12]. Однако, в отличие от [6], агенты двигались иерархически вложенными друг в друга роями по местности, состоящей из препятствий разной проходимости, причем
1 Александр Владимирович Кузнецов, кандидат физико-математических наук, доцент (avkuz@bk.ru).
способ их передвижения отличался гораздо большей самостоятельностью, чем в [12], где агенты двигались, в сущности, по набору опорных точек.
В данной работе анализируется эффективность предложенного клеточного автомата для поиска оптимального маршрута в ландшафтах разного вида. Также предлагается алгоритм организации строя агентов с учетом необходимости обхода препятствий. Отметим, что автомат, предложенный автором в цитированных выше работах, уже предполагал возможность самоорганизации агентов в иерархические рои с помощью аналога социального потенциала, предложенного в [13]. В отличие от работ [7, 16, 18, 19], посвященных построению строя роботов с использованием одномерного клеточного автомата, используется автомат, имеющий одновременно и одномерное, и двумерное представление в зависимости от типа решаемой задачи. Также, в отличие от упомянутых работ, рассматривается строй, порожденный графом, а не набором математических функций, а в качестве окрестностей в одномерном представлении клеточного автомата рассматриваются окрестности, порожденные геодезическим расстоянием на графе строя. Наконец, агенты в настоящей статье не обмениваются координатами для поддержания строя и не безусловно следуют за лидером (что может быть крайне невыгодным на пересеченной местности), а стараются поддерживать строй, выбирая при этом направление движения самостоятельно, исходя из своих предположений о передвижении других агентов в наблюдаемой ими окружающей среде.
2. Непрерывная постановка задачи
В работе далее будут использоваться следующие стандартные обозначения: М, Z и N - множества вещественных, целых и натуральных чисел соответственно, М^о, - множества неотрицательных вещественных и целых чисел, Мга - пространство п-мерных векторов с вещественными координатами, || ■ || - произвольная (например, евклидова) норма в Мга.
Пусть заданы
1. Область Q с R2.
2. Множество агентов Ад = {адк\к = 1,п}.
3. Точки начала и конца движения агента адk е Ад Ак, Вк е
Q, к = 1,п
4. Функция проходимости uc : [0, Т] х Q ^ R^0, uc(i, г) -это максимально возможная норма скорости в момент времени t е [0, Т] в точке г е Q.
5. Желаемый граф строя Ф = (Ад, Е, сооф), Е С Ад2 - множество ребер, сооф : [0, Т] х Ад ^ Q - функция, дающая желаемые для сохранения строя координаты агента в Q.
6. Фактический граф строя Г = (Ад, Е, соо^), соо^ : [0, Т] х Ад ^ Q - функция, дающая реальные координаты агента в Q.
Траектория к-го агента гк : [0, Т ] ^ Q отвечает условиям
(1) IIГк(i)II = uc(t, rk(t)),
(2) rk(0) = Ak, rk (t) = Bk, t > Tk, Tk < T,
(3) rk(t) = ri(t), к = l,t е [0,T],
где
Tk (rk) = min{i е M^o\rfc (t) = Bk},
Цгк(i)|| - норма скорости к-го агента в момент времени t, У С С([0, Т];Q) - множество допустимых траекторий. В явном виде выписать функционалы Тк в общем случае невозможно. Отметим, что уравнение (1) означает, что агент движется в каждой точке области с максимальной (по норме) возможной в этот момент времени скоростью.
Необходимо найти такие траектории агентов, чтоб время Т = maxfc=Y^ Тк было минимальным, т.е. надо минимизировать все функционалы Тк, сопоставляющие траектории гк агента адк продолжительность прохождения по этой траектории. Более формально, нужно решить задачу минимизации
(4) Т(г\,... ,rn) = max Тк(rk) ^ min, гк еУ,к = 1,п.
к=1,п
Также необходимо, чтоб в любой момент времени t е [0, Т] отличие графов Ф и Г было бы минимально:
(5) dist(r(i), Ф(*)) ^ min. 138
Формальное описание функции несходства графов dist будет дано ниже в разделе 6. Таким образом, необходимо найти траектории г к € У ,к = 1,п, являющиеся решениями задачи оптимизации с двумя целевыми функциями (4)-(5).
3. Дискретная модель
Для поиска приближенных решений задачи оптимизации, приведенной в предыдущем параграфе, будет использоваться клеточный автомат, или, в отечественной терминологии, однородная структура со входами и выходами [2, с. 159].
Определение 1. Однородной структурой со входами и выходами называется набор (Zfc, Ж, V), где Ж - конечный автомат с п основными и р боковыми входными каналами, т основными и р боковыми выходными каналами, I состояниями, помещенный в каждом узле целочисленной решетки Zfc и задаваемый системой уравнений:
у(1) = уг(х(1),Ъ(1), 5(1)), а(1) = МзШ з(г +1) = <р(х(г),ъ(г), з(г)),
<рг : Еп х Ер х У ^ Ет,
: У ^
у : Еп х Ер х У ^ Ет,
где х = (х\,... ,хп), Ь = (Ь\,... ,ЬР), а = (а\,... ,ар), у = (У1,..., Ут) обозначают соответственно основной вход, боковой вход, боковой выход и основной выход, 5 - состояние автомата, £ = 0,М - такт дискретного времени, Е - входной и выходной алфавит, У - множество состояний автомата Ж, V = (а\,...,ар), од € Zfc, г = 1,р, - шаблон соседства: для автомата в узле а каждый од € V определяет конечный автомат с координатами а + од, с г-м боковым выходным каналом которого соединен г-й боковой входной канал автомата в узле а.
В клеточных автоматах, моделирующих движение агентов, конечному автомату W будет соответствовать ячейка «местности», содержащая агента, или пустая ячейка, боковым каналам будут соответствовать связи между ячейками, задающие закономерности перемещения агентов между ячейками, а основным каналам - например, модели каналов связи между агентами.
Клеточные автоматы, описывающие движение автономных агентов, можно условно поделить на два типа. Первый из них -двухмерный клеточный автомат (так называемый world-space cellular automaton, рис. 1a [17]), например, с правилами, близкими к Game of Life Конвея, приведенный в работе [13] для моделирования образования роя агентов.
(a) (b)
Рис. 1: World-space cellular automaton и robot-space cellular automaton
Второй тип - это одномерный клеточный автомат (так называемый robot-space cellular automaton), каждая клетка которого содержит координаты агента на плоскости, его реальное и желаемое взаимное расположение с соседними агентами (см. рис. 1b [19]).
Такие автоматы применяются в работах для построения строя реальных роботов и для компьютерного моделирования данного процесса, например в [19].
Автор в своих предыдущих работах подробно описывал конструкцию клеточного автомата (далее - КА), используемого им 140
для моделирования движения агентов. КА, предлагаемый в настоящей работе, незначительно отличается от раннее описанных, поэтому приведем его краткую характеристику. Пусть заданы
1. Замощение Оь области О С К2 (для простоты можно считать, что это правильный квадратный паркет Оь = {ш^\г,] £ (^ь С Ъ} и не различать клетку и ее координаты (г,,])).
2. Взаимно-однозначная функция получения уникального идентификатора (УИд) агента шё : Ад ^ N.
3. Множество возможных направлений движения агентов
я = Ш )\г,3 = =М }.
4. Дискретная функция непроходимости и : Ъ^о х Оь ^ Ъ, устанавливающая, сколько тактов функционирования КА необходимо для преодоления клетки (%,$). При этом предполагается, что для совершенно непроходимой в момент времени £ клетки (г,.]) и(£, (г,.])) = Эта функция получается, по своей сути, дискретизацией функции проходимости, например:
шахгеП uc(rí, г)
иц(í) = u(t, (i,j)) =
_minr€w uc(rt,r)
где [x\ означает целую часть х, а т - продолжительность одного такта.
5. Дискретные функции, дающие желаемые для сохранения строя, предусмотренного графом Ф, координаты агента в текущий момент дискретного времени сооф : Z^o х Ад ^ Q^ и реальные координаты агента coor : Z^0 х Ад ^ Q^.
6. Шаблон формации Ф^(ад) = {(i,j,agld)l(i,j) £ Z2, agid £ uid(A#)u{0}}, содержащий относительные координаты соседей агента по строю (строгое определение соседства дано в разделе 6), причем agid = 0, если нет требований к тому, какой именно сосед должен находиться, и agid > 0, если в клетке с координатами coo(t, ag) + (i, j) в момент времени t должен находиться именно сосед с УИд agid. Таким образом, для элемента (i, j, agid) £ Фь(ад), agid = 0, справедливо соотношение
(i,j) +coo$(ag) = сооф (ад'), uid(ag') = agid.
Пусть rh Q ^h - маршрут (на языке перечислительной комбинаторики - решеточный путь), начальная клетка маршрута rh[ 1] = (i,j) + d\, d\ £ V, к-я клетка маршрута rh[k] = rh[k — 1] + dk, dk £V, к > 1. Обозначим (к — 1)-ю клетку маршрута rh с координатами (г', j'), в которой агент находится в момент времени t, как rh(t). Тогда дискретным аналогом уравнения (1), определяющего движение агента, будет уравнение
к
(6) \\rh(t + к) — rh(t)\\ = ||4II ||4_(t) , к < \\dk\\ul/f (t).
Детальное формальное определение функций локального такового функционирования описываемого КА (без задания весов, необходимых для поддержания строя) приведено в работе [4]. Вкратце, агент на каждом такте выбирает случайный маршрут движения, удовлетворяющий уравнению (6) и отвечающий ряду других ограничений (например, два агента не могут одновременно находиться в одной клетке). Распределение случайного выбора маршрута таково, что вероятность выбрать минимизирующий нижеприведенные функционалы (7), (9) или (10) маршрут максимальна.
В связи с особенностями реализации, КА должен быть представим как в виде robot-space cellular automaton, так и в виде world-space cellular automaton, так как первый тип автомата удобен для построения строя, а второй - для работы алгоритма поиска оптимального маршрута и для построения тестовых ландшафтов. Поэтому агент (как ячейка robot-space cellular automaton) ад £ Ад в момент времени t £ Z^o представляет собой объект вида
ад = {self Id, leadld, lead, w, V', trgtAct, trgtTmp,
formTmpl, @cell},
где self Id = uid(ag) - УИд агента; leadld £ N - УИд лидера данного агента; lead £ {true, false} указывает на то, что агент является ведущим; w - количество тактов, которое агент уже простоял в текущей клетке; V - упорядоченный по убыванию желательности список возможных направлений из V для 142
агента на следующий такт; trgtAct € Qh - текущая целевая клетка агента; trgtTmp € Qh - временная целевая клетка агента; formTmpl = <&h(ag) - шаблон строя; @cell - указатель на ячейку, в которой находится агент ад в момент времени t. Ячейка cell, соответствующая клетке (i,j) € Qh для world-space cellular automaton, представляет собой
cell = {и, coo, @ад},
где и = u(t, coo) - значение функции непроходимости клетки (т.е. минимальное количество тактов, нужное для преодоления клетки); coo = (i,j); @ад - указатель на агента, находящегося в клетке (i,j) в момент времени t или нуль, если в (i,j) в момент времени t нет агента. Будем обозначать агента, на которого указывает @ад как agij и писать
agij = {selfldij,leadldij,Wij, Vij ,trgtActij,trgtTmpij,
formTmplij, @cellij }.
Если @agij = 0, то для единообразия будем считать, что
agij = {0,0,0,0,0,0,0,0}.
Также будем обозначать ячейку, на которую ссылается @се11к, как cellk и писать cellk = (uk, cook, @адк). Помимо этого будем обозначать, что celkj = {uij, (i,j), @agij}.
В результате использования ячеек, содержащих указатели, возможно при реализации КА сэкономить объем памяти, нужной для хранения конфигурации КА, так как количество агентов обычно существенно меньше количества клеток и при хранении состояния агента в каждой клетке world-space cellular automaton потребовалось бы хранение большого количества нулевых значений. Также возможно увеличить быстродействие КА, так как при перемещении агента в новую клетку не нужно копировать его состояние целиком, а нужно лишь изменить значение пары указателей, и при доступе к ячейке cell уже сразу известен адрес
@ад и наоборот. В псевдокоде алгоритмов мы также будем обозначать поля объектов cell и ад принятым в языках программирования способом, т.е. в формате «имя_объекта.имя_поля», опуская числовые индексы.
Будем обозначать как Vr (г, j) окрестность клетки (г, j) радиуса г
Vr(i,j) = {с £ Z2|\\с — (i,j)\\ < г}.
Определим функцию
'о,х ^ 0
(0, 1,
е(х) =
' 1,х > 0.
Введем дискретный аналог функционалов Тк:
(7) Th(rh) = ao \\dii\\Uii + ai ^(agldij),
(i,j)trh (i,j)erh
где a0, a\ ^ 0 - параметры модели, отвечающие за то, предпочитает ли агент менее непроходимые или же менее населенные другими агентами маршруты, dij = dk, если rh[k] = (i,j).
Обозначим множество всех маршрутов Md(i,j; гг ,jr) агента agij, соединяющих (i,j) и (гг,jr), причем (i,j) не входит в маршрут и если (гг ,jr) = trgtActij, то (ir ,jr) не входит в маршрут, d = rh[1] — (i,j).
Общая идея состоит в том, чтоб каждый агент в клетке (i,j) искал оптимальный по времени маршрут в некоторой своей окрестности Vr(i,j), а потом собирал из таких локально оптимальных маршрутов квазиоптимальный маршрут. Поскольку непроходимость области Qh может меняться со временем, а также не быть полностью разведанной и проходы могут блокироваться другими агентами, то поиск глобального оптимального маршрута может быть невозможен или лишен смысла. Тактовое функционирование world-space cellular automaton, в котором агенты ищут кратчайший маршрут до точки назначения, описывается с помощью алгоритма 1, в который входят алгоритмы 3 и 4, приведенные в Приложении.
Следует подчеркнуть, что для агента движение в сторону скорейшего маршрута наиболее вероятно, но не обязательно. Точнее, агент в клетке (г, j) назначает каждому направлению d е V
вес weights[d]:
(8) weights[d] = min Т^(гь).
rheMd(i,j;ir ,jr)
Далее V перемешивается в соответствии с весами из weights. Процедура взвешенного случайного перемешивания нетривиальна: используется предложенный в [9] алгоритм. Таким образом, получается упорядоченный список направлений. Если движение в первом по данному списку направлении маршрута невозможно (например, путь заблокирован), то агент выбирает следующий по времени прохождения маршрут и т.д. Это требуется для разрешения коллизий между агентами и для симуляции элемента случайности в передвижении агентов.
Алгоритм 1 (Поиска квазиоптимального по времени пути).
1: for all ag € Ag do
2: weights = sortDirections(ag) > Сортировка направлений, алгоритм 3
3: Случайно перемешать ag.V в соответствии с весами из weights
4: end for
5: for all ag' € Ag do
6: Actualize(ag') > Актуализация, алгоритм 4
7: end for
8: t = t+1
Можно обратить внимание, что в алгоритме разделен поиск наилучшего (в смысле кратчайшего по времени маршрута) направления движения агентов (алгоритм 3) и действительное обновление конфигурации КА. Это сделано для двух целей: для возможности вставки между этими блоками алгоритма, отвечающего за построение строя, и для параллельного вычисления наилучших направлений перемещения. При этом поиск маршрута является самым трудным вычислительно моментом работы КА и занимает, при вычислении алгоритмом Дейкстры, минимум
0((2r + 1)4) времени каждый ход для каждого агента, так как по сути кратчайший путь в окрестности Vr(i,j) - это кратчайший путь на графе c (2r + 1)"2 вершинами для всех агентов.
Поиск локально оптимального маршрута может повторяться каждый такт времени, как в предыдущих работах автора, альтернативно агент agij может рассчитать, например, алгоритмом Дейкстры или А* локально оптимальный в Vr(i,j) маршрут, следовать по нему и производить повторный пересчет лишь при достижении (гг ,jr) или при обнаружении по ходу маршрута непроходимых препятствий или скоплений других агентов. Очевидно, в этом случае список предпочитаемых направлений движения agij.V заменяется на цепной путь di,d,2,.. .dp, соединяющий (i,j) и (ir,jr). Выбор между этими методами зависит от скорости изменения ландшафта. Также возможно производить поиск пути с учетом знаний агента о местности и предыдущего опыта агента, как это показано в [14]. В этом случае, помимо слоя разделяемой всеми агентами реальности Cell = {cell}, для каждого агента задается свой слой «субъективной реальности». В данный слой, который также описывается как множество ячеек, по мере поступления агент сохраняет информацию об уже посещенных клетках, количестве и времени посещений клеток. При поиске локально оптимального пути необходимо, например, увеличивать «веса» переходов в уже посещенные клетки, для чего рассматривать вместо функционала (7) функционал
(9) Th(rh)= Th(rh)+ а.2 ^ visiUj, а.2 > 0,
(i,j)£rh
где visitij - количество предыдущих посещений клетки (i,j), аналогично [14], моделировать конфликт агентов, как в [4] и т.д. Если агенту известно расстояние от coon - ближайшей к клетке назначения клетке из множества rh П Vr (i, j) до точки назначения cootarget, то для повышения качества алгоритма поиска можно рассматривать вместо (9) функционал
(10) Th(fh) = Th(fh) + ai3\\coon — cootarget\, «3 ^ 0.
3.1. Автоматы и теория категорий
Отметим, что агенты, движущиеся по решетке, могут соответствовать не только реальным роботам, перемещающимся по пересеченной местности, но и моделировать некоторый процесс неклассических вычислений. Можно рассматривать конфигурации world-space cellular automaton Cell = {cell} как категорию, в которой объектами являются ячейки, а морфизмами - решеточные пути между ячейками. Аналогично можно рассмотреть конфигурации robot-space cellular automaton Ад как категорию, в которой объектами являются состояния агентов agi в момент времени t, а морфизмами - отображения jt0 : o,gi(t) ^ agi(t + t0).
Операция @ порождает пару функторов между этими категориями:
: ag ^ {u, coo, @ад}, : cell ^ {self Id, leadld, lead, w, V',trgtAct,trgtTmp,
formTmpl, @cell}.
Далее, в рамках теории категорий всякую клетку (г, j) € Qh можно интерпретировать как итератор. В этом случае ад € Ад является коитератором [11], который порождает поток клеток, через которые он проходит.
4. Случайные ландшафты
Назовем ландшафтом в момент времени t множество непро-ходимостей клеток определенного подмножества замощения C(Qh, 1) = {uij\uij = u(t, Wij),Wij € Qh}, такого что u принимает на {wij\г = 1,n, j = 1, m} не более l значений, причем к классу г принадлежит Ni клеток, т.е. i=1 Ni = М, М = |£(Qh, 1)\. Введем следующие характеристики ландшафта, известные из ландшафтной экологии (см., например, [8, 10, 20]).
Определение 2. Конфигурационная энтропия ландшафта C(üh, I) определяется как
S(C(üh, 1)) = -У ^ In ^. \ \ h а м м
г=1
Определение 3. Total Edge (TE) определяется как общее количество соприкосновений сторон клеток в C(üh, I), принадлежащих к разным классам. Будем далее обозначать Total Edge ландшафта C(üh, I) как TE(C(üh, I)).
Определение 4. Total Edge Density (TED) для ландшафта £nxm(l) определяется как отношение TE(C(üh, l)) к общему количеству клеток C(üh, 1):
TED(C(Qh, I)) = TE(C(üh, l))/M.
Специально для исследования алгоритмов нахождения кратчайшего пути и построения строя в [15] были разработаны методы построения случайных ландшафтов с заданной конфигурационной энтропией, TE и TED и исследованы зависимости между упомянутыми характеристиками.
5. Поиск квазиоптимальной траектории
Получившийся в результате работы алгоритма 1 маршрут сравнивался с глобально оптимальным, найденным с помощью алгоритма Дейкстры. Для разных типов ландшафтов результаты сравнения получились довольно разными. Определим отклонение длины Л маршрута rh(t) = ( i(t), j(t)) от оптимального по времени маршрута r^t) = (гopt(t), jopt(t)), t е Z^o:
^=|л(г)д - л(: ^ ■ ш%, Л( Topt)
и отклонение времени T прохождения маршрута h от времени Topt прохождения оптимального маршрута ropt:
öt = IT -Toptl ■ 100%.
Topt
Зададим функцию N(S) = 0,00160518e4'22769S зависимости количества препятствий от конфигурационной энтропии ландшафта. Для ландшафтов одного типа это будет в действительности количество препятствий, для ландшафтов другого типа эта величина применяется для того, чтобы их можно было легче сравнивать с другими.
Исследовались квадратные случайные ландшафты £(п х т, I) со сторонами в п = т = 100 клеток, с I = 9 различными классами клеток. Агент имел радиус обзора г = 5 и функционал поиска оптимального маршрута вида (10).
Было произведено по 1000 экспериментов для каждого значения N(S) в случайном ландшафте £(100 х 100,9). В каждом эксперименте агент перемещался из клетки (1,1) в клетку (98, 98)2. Оказалось, что при возрастании конфигурационной энтропии S в ландшафте, состоящем из равномерно распределенных клеток разной непроходимости (см. рис. 7c в Приложении), среднее отклонение длины и времени от оптимальных (рис. 2a) медленно убывает, причем в районе N(S) = 70 наблюдается небольшая ступенька (более выраженная у ландшафтов малой площади), очевидно связанная со ступенькой в зависимости среднего значения TED от N(S) (рис. 2b).
Однако при возрастании количества препятствий в ландшафте, состоящем из нескольких максимально труднопроходимых клеток, которые окружены менее непроходимыми, которые, в свою очередь, окружены еще менее непроходимыми и т.д. (рис. 7a, 7b в Приложении), характеристики алгоритма поиска несколько иные. При росте количества максимально непроходимых клеток N0bst и соответствующем росте конфигурационной энтропии (для такого ландшафта справедливо соотношение N0bst = N (S)) среднее отклонение длины и времени от оптимальных медленно убывает, причем в районе N0bst = 70 наблюдается резкий скачок (рис. 3a и 3b), после чего опять наблюдается
2Данные доступны по адресу https://www.researchgate.net/publication/ 319998893_Eksperimentalnye_dannye_po_sravneniu_kvazioptimalnoj_i_ optimalnoj_traektorij_agenta.
медленное убывание среднего отклонения. Автор полагает, что именно такие ландшафты, а не полностью равномерно случайные, более соответствуют встречающимся в приложениях и что отклонение от оптимального маршрута не более 10% по длине и порядка 30% по времени вполне достаточно для многих практических нужд. Следует учесть, что при поиске локально оптимального маршрута алгоритмом Дейкстры требуется всего примерно 0((2г + 1)4) времени. При «склейке» квазиоптимального маршрута длиной Ь клеток из локально оптимальных временная сложность будет, таким образом, примерно 0((2г + 1)4V) при пересчете направления маршрута каждый ход, при котором изменяется положение агента, или 0((2г + 1)3Ь) при пересчете маршрута лишь по достижении границы окрестности вместо
0((пт)2) при поиске глобально оптимального маршрута, что да-
^ 2 ет определенный выигрыш при г2 ^ пт.
ТРГ)
(а) (Ь)
Рис. 2: Проигрыш времени (круглые маркеры) и отклонение от траектории (квадратные) в процентах по сравнению с оптимальным маршрутом для равномерного случайного ландшафта
На рис. 4а приводятся гистограммы распределения времени прибытия в конечную точку маршрута для равномерного ландшафта (МоЬзг = 130). Слева на рисунке изображена гистограмма распределения времени прибытия в конечную точку для оптимального маршрута, найденного алгоритмом Дейкстры, справа - для квазиоптимального маршрута. Данные гистограммы при-
(а)
(Ь)
Рис. 3: Проигрыш времени (круглые маркеры) и отклонение от траектории (квадратные) в процентах по сравнению с оптимальным маршрутом для «естественного» случайного ландшафта
мерно соответствуют (с ^-значениями около 0,7) распределению Нортона-Райса с функцией плотности
где 1к - модифицированная функция Бесселя первого рода.
Аналогичные гистограммы приведены на рис. 4Ь для распределения времени прибытия в конечную точку маршрута для «естественного» ландшафта (И0ь8г = 130).
6. Метрика сходства графов и метрика, порожденная графом
Определение 5. Определим расстояние gd : Ад2 ^ , следующим образом. Если между агентами ад1, ад2 Е Ад существует в Ф кратчайший путь длиной I, то gd(ад1 ,ад2) = I, иначе gd(ад 1 ,ад2) = ж, gd(аg 1 ,ад 1) = 0.
р(т, а, А; х)
(а) (Ь)
Рис. 4: Гистограммы распределения времени прибытия в конечную точку маршрута для равномерного (а) и «естественного» (Ь) ландшафтов
Это расстояние принято называть геодезическим расстоянием на графе. Будем считать окрестностью агента ag G Ад радиуса р множество Wp (ад) Ç Ад, такое что У (ад ' G Wr(ад)) gd(ag,ag') < р. Соответственно, будем считать соседями агента ад всех агентов ад' G Wp(ад).
Пусть Г; = (Agi,Ei, coo^), Agi Ç Ад, E{ Ç Ад2, coo^ : Z^q x Agi ^ Qh - функция соответствия вершины графа Г и клетки Qh, i = 1, 2, - два графа, описывающие строи агентов. Определим расстояние несходства между ними в момент времени t как
dist(ri(t), Г2(t)) = то+mi\\coor (t,ag)-coor2 (t,ag)\\,
аде Agc
где Agc Ç Ад - множество вершин наибольшего общего подграфа Г1 и Г2, то = 1Адо \ Адсmi = lAgi \ Адск = (diam(Qh))-1 - диаметр множества Qh в клетках. Это расстояние в своей сущности является частным случаем ранее введенного в [3] расстояния графов.
7. Синтез локальной функции перехода
Обратим внимание на то, что у двумерного robot-space cellular automaton окрестность Vr(г, j) каждой ячейки в клетке (г, j) порождена окрестностью (г, j) в обычной евклидовой метрике R2, и алгоритм нахождения скорейшего маршрута учитывает такую окрестность. Однако алгоритм построения строя основан именно на robot-space cellular automaton и в качестве множества ячеек рассматривает Ад, а в качестве окрестности агента ад е Ад - окрестности Wp(ag), порожденные геодезическим расстоянием на графе строя Ф.
Доработаем алгоритм 1 так, чтоб агенты стремились в каждый момент времени поддерживать формацию, заданную графом Ф. Отметим, что без существенных потерь во времени прохождения поддерживать в точности заданную формацию можно лишь на ландшафтах с относительно малым количеством препятствий (иначе говоря, с малой конфигурационной энтропией).
Если предположить, что строй агентов в момент времени t описывается графом r(t), то агенты стараются выбрать такое направление движения, которое было бы компромиссным между направлением, минимизирующим dist^(i), r(t)) (точнее, минимизирующим расстояние между графом строя и той части реального графа строя, которая известна агенту) и направлением в сторону кратчайшего по времени пути.
В рамках такой логики агентов, существуют следующие виды взаимодействия:
1. predict : Ад ^ - функция, с помощью которой агент предсказывает новое положение другого агента на следующем такте функционирования КА. Поскольку каждый агент каждый такт вычисляет и сортирует возможные направления движения по желательности (алгоритмы 3 и 7), то predict(ag) может возвращать, например, d0 + (г, j), где d0 - самое желательное для агента в клетке ( , ) направление. Проще говоря, все агенты содержат одинаковый алгоритм поведения. Поэтому каждый агент может «мысленно» подставить себя на место другого и просчи-
тать, куда бы пошел он сам в этой ситуации. Результат такого подсчета и возвращает функция predict. Более формально, агент вызывает функцию вычисления весов не со своими координатами на плоскости и не со своей позицией в графе строя, а с координатами и позицией в строю того агента, для которого он хочет предсказать положение.
2. Рекурсивный запрос остановки. Агент просит остановиться своего лидера, который просит остановиться своего лидера и т.п., пока запрос не дойдет до агента, не имеющего лидера.
3. Рекурсивный запрос продолжения движения. Агент просит продолжить движение своего лидера, который просит продолжить движение у своего лидера и т.п., пока запрос не дойдет до агента, не имеющего лидера.
Отметим, что поскольку dist($, Г) ^ 0 и Т^(гь) > 0 для любых графов Ф, Г и маршрута г^, то для скаляризации вышеупомянутых целевых функций их проще всего сложить. Идея алгоритма состоит в том, что
1. Находящиеся в одной окрестности Vr (г, j) и в одной окрестности Wp(ag) агенты выбирают лидера (алгоритм 6), за которым следуют, причем так, чтоб лидер агентов одной окрестности обязательно бы следовал за лидером агентов в другой, кроме лидера самого высокого уровня. Множество агентов из Wp(ag), найденных агентом ад в окрестности Vr(г, j), обозначим как found(ag).
2. Каждому возможному направлению d движения агента a в клетке ( , ) присваиваются веса, учитывающие как направление в сторону кратчайшего пути, аналогично (8), так и в сторону сохранения строя, например
weights[d] = min Т^(гь) +
rheMd(i,j;ir ,jr)
+ \\c°Mt ,ад') + d — predict(ag '))||.
ад' £found(ag)
3. Множество V случайно перемешивается в соответствии с весами weights, получая множество V. Используется предложенный в [9] алгоритм случайного взвешенного перемешивания. Без перемешивания возможна ситуация, когда веса направлений движения в нескольких направлениях будут равны и неясно, какой вес выбрать. Также во многих случаях агенту будет тогда неясно, что предпочесть - удерживать строй и проиграть в скорости или же отклониться от строя и выиграть в скорости. Более того, перемешиванием моделируется ситуация, когда люди, например, неверно угадывают направление движения соседа и сталкиваются с ним.
4. Агент выбирает лучшее направление из перемешанного V, если не слишком отстал от лидера. Поскольку перемешивание не равномерно, а учитывает веса (т.е. самые оптимальные маршруты имеют самый большой шанс оказаться первыми) с помощью особого алгоритма, то поддержание строя от такого перемешивания практически не страдает. У экспоненциального распределения, которое используется для перемешивания, очень легкий хвост и вероятность выбора направления, сильно нарушающего строй, близка к нулю.
5. Если агент слишком отстал, то для движения за лидером агент в клетке (i,j) вычисляет положение лидера (if ,jf ) согласно своему шаблону формации, и ищет в окрестности Vs (if ,jf) своего лидера. При обнаружении лидера agi в (ii,ji) G Vs(if ,jf ) агент выбирает такое направление движения d, чтоб минимизировать \\(i,j) + d — predict(agi)||.
6. Если в окрестности Vr(i,j) ведущего агента ад слишком много агентов, не принадлежащих Wp(ag) или, наоборот, не хватает агентов, принадлежащих Wp(ag), то ад пытается выбрать другое направление (строка 24 алгоритма 2) или запросить «лишних» или «недостающих» агентов выбрать другое направление. Подробный разбор механизма обмена сообщениями в среде «Психоход» [5] выходит за рамки настоящей работы, но, в целом, когда агент обнаруживает, что ему пришло сообщение типа «запрос другого направления», то он генерирует веса направлений
заново, причем устанавливает вес ранее выбранного направления в 0, делая невозможным выбор этого направления.
Рекурсивные запросы от ведомых агентов к лидерам нужны для восстановления сильных нарушений строя или на очень неоднородных ландшафтах, когда самоорганизация для необща-ющихся агентов не работает. При этом, если лидер ад заметил отклонение от строя ведомых агентов из множества found, то он вместо остановки выбирает направление движения
def(a5) _ ^ад'e/oW(cooriag') - сооф(од'))
НЕ a9'efound(coor(ag') - сооФ(ад' ))Н'
Подробно вышеуказанное поведение агентов может быть описано как алгоритм 2, в который входят алгоритмы 5-7, приведенные в Приложении.
Алгоритм 2 (Поддержания строя).
1: for all ад е Ад do
2: weights _ SORTDlRECTIONS(ag) > Алгоритм 3
3: predicted, less, more, found _ FlNDNElGHBOURS(ag, e)> Алгоритм 5
4: if t == 0 then
5: FINDLEADER(ag, found) > Алгоритм 6
6: end if
7: distances _ FlNDDlRECTlON(ag, found, predicted) > Алгоритм 7
8: Случайно перемешать ag.T)' в соответствии с весами из weights и distances.
9: d0 _ ag.V[1] > Лучшее направление
10: if ag.lead Л distances[d0] » r0 then > r0 - допустимое
расхождение со строем 11: trgtTmp _ trgtAct > Назначить временную цель
12: trgtAct _ (ag.@cell ^ coo) + def(ag)
13: Рекурсивный запрос остановки агента с УИд
ag.leadld
14: else if ag.lead Л distances[d0] & г0Л был рекурсивный запрос остановки then
Управление подвижными объектами и навигация 15: Продолжить движение
16: Рекурсивный запрос продолжить движение агента с
УИд ag.leadld 17: else if — ag.lead Л distances[do] » r0 then 18: Рекурсивный запрос остановки агента с УИд
a . a d d
19: tг gtTmp = trgtAct > Назначить временную цель
20: trgt Act = f ound[l eadld] — (is, js) >
(is, js,ag.selfld) £ ag.formTmpl - собственное положение агента в строю
21: else if distances[d0] & г0Л была назначена временная цель then
22: trgt Act = tr gtTmp
23: Рекурсивный запрос продолжить движение агента с
УИд a . a d d 24: else if длина morе или less слишком велика then 25: Случайно перемешать ag.V в соответствии с весами
из weights и distances.
26 end if
27 end for
28 for all ag' £ Ag do > Актуальное перемещение агентов
29 Actual ize(ag ') > Алгоритм 4
30 end for
31 t = t+1
8. Результаты симуляции
Предложенный алгоритм организации строя был смоделирован в программе «Психоход»3, разработанной в [5], и при наличии небольших одиночных препятствий агенты ведут себя так, как показано на рис. 5a. На указанном рисунке изображено шесть агентов agi = 1, 6, имеющих граф строя, показанный на рис. 5b. Для ag2, ag4 лидером является агент agi, для ag3, ag5 - агент ag2, для ag6 - агент ag3. Агенты пытаются наименее времязатратным
3 https://bitbucket.org/bokohodteam/bokohod.
образом обойти препятствие (показанное в виде прямоугольника), после чего восстанавливают строй.
Однако когда ландшафт становится более неоднородным, эффективность построения строя снижается. Причины у этого следующие: агенты теряют способность адекватно предсказывать направления движения друг у друга и агентам негде развернуть правильный строй после его нарушения из-за препятствия, так как препятствия встречаются слишком часто.
Обозначим
ДФ = ^ ^ ^ Цеооф(t,ag) - coor(t,ag)||,
адeAg t=LT
где сооФ (t,ag) - желаемое положение агента ад в такт t = 1,Т согласно графу строя Ф, соог (t, ад) - реальное положение агента
ад в такт £ = 1,Т. Моделирование4 вышеупомянутого строя из шести агентов на «естественном ландшафте», типа указанного в разделе 5, дает результат, приведенный на рис. 6. На этом рисунке показана зависимость &.Ф/6 (множитель 1/6 взят, потому как агентов шесть, и смысл величины &.Ф/6 - это среднее отклонение агента от своей позиции в строю) от количества препятствий которая аппроксимируется с коэффициентом детерминации В2 = 0,992729 как
&Ф/6 ъ 0,9010731п(^оЬв4 + 1) - 0,673763.
Выяснилось, что уменьшить отклонение агентов от строя
ДФ/6
^ 20 ад 60 во 100 120 140 OBSt
Рис. 6: Зависимость среднего отклонения позиции агентов от предусмотренной строем и количества препятствий
возможно, увеличивая параметр е, указывающий, в насколько широкой окрестности Vs (гf, jf) заданной шаблоном строя, (if, jf, agid) следует искать агента с УИд agid.
4Данные доступны по адресу https://www.researchgate.net/publication/ 318663064_Eksperimentalnye_dannye_otnositelno_obhoda_prepatstvij _stroem_iz_sesti_agentov.
Управление большими системами. Выпуск 70 9. Заключение
Получены зависимости эффективности построения квазиоптимального маршрута от типа ландшафта и временная вычислительная сложность этого построения. Разработан алгоритм построения и поддержания строя агентов, двигающихся по ландшафту с препятствиями, в котором в качестве критерия близости получившегося строя к заданному используется определенная метрика несходства графов. Также описана новая методика тестирования алгоритмов нахождения оптимального маршрута с помощью случайных ландшафтов с заданными характеристиками типа конфигурационной энтропии.
Клеточный автомат, сконструированный в статье, может быть использован как часть искусственного интелекта наземного робота, передвигающегося в составе строя других подобных ему роботов. Хочется подчеркнуть, что клеточный автомат был положен в основу предлагаемой модели в силу нелинейности уравнений (1)-(3), определяющих движение агента, и невозможности получить в явном виде функционал времени прохождения к цели Т для меняющегося со временем ландшафта. Перечисленные обстоятельства, а также тот факт, что функция проходимости uc обычно задана в табличном виде (т.е. изначально разрывна) сильно препятствуют применению классических методов.
Далее планируется получить результат, аналогичный приведенному в статье, для организации телекоммуникационной ad hoc сети агентов, движущихся по пересеченной местности.
Приложение
В данном разделе приведены примеры ландшафтов различного вида. Подробное описание способов генерации ландшафтов приведено в работах [14, 15]. Также приведен псевдокод алгоритмов, необходимых для построения строя и поиска оптимального по времени маршрута.
9 10 11 12
13
14
15
1 2
3
4
5
6
7
8 9
10
Алгоритм 3 (Сортировки направлений движения).
function SORTDlRECTIONS(ag)
(i,j) = agMcell ^ coo weights = {}
if ag.w > 0 then ag.w = ag.w — 1 end if
if ag.w == 0 Л (г, j) = ag.trgtAct then
(i,j) — ag.trgtAct
direction =
i,j) - ag.trgtAct||
(ir,jr) = клетка, в которой c границей Vr(i,j) пересекается луч с началом в (i,j) и направленный в направлении direction
ag.V = V for all d eV do
weights[d] = mmrheMd{iJ;ir Jr) J(rh) end for end if
return weights end function
Алгоритм 4 (Актуализации новых положений).
function Actualize^') k = 1
(i,j) = ag'Mcell ^ coo repeat
(inew, jnew) := (i, j) + ag'.V[k\ к = к + 1
until a9inew ,jnew = 0 V (inew Jnew) = (i,j)
cellinew,jnew Mag = @ag' ag'Mcell = @cellin£W ,jn£W .coo end function
Алгоритм 5 (Обнаружения соседей).
1: function FINDNEIGHBOURS(ai/, £)
2: predicted = {}, less = {}, тогe = {}, found = {}
3: ( i, j) = ag.@ce 11 ^ coo
4: for all (s,p, agld) £ ag.jorm.Tmpl do > Поиск в
окрестности Wp(ag) 5: Искать в окрестности Vs(i + s,j+ p) агента
6: if агент ag' найден и agld == 0 then
7: agld = ag '.self Id
8: predicted[agld\ = predict(ag')
9: Добавить в f ound agld
10: else if агент ag' найден и agld == ag'.self Id then
11: predicted[ag Id] = predict(ag')
12: Добавить в u n d a d
13: else if агент ag' найден и agld = ag '.sel fldAagld = 0
then
14: Добавить в more ag'.self Id > длина тогe - это
mi из определения метрики 15: end if
16: if Длина^д./ ormTmpl) > Длина(ргedicted) then
17: Добавить в less УИд не найденных агентов >
длина Iess - это m0 из определения метрики 18: end if
19: end for
20: return p d d, , m , u n d 21: end function
Алгоритм 6 (Назначения и обнаружения лидера).
1: function FINDLEADER(ag, f ОППd) 2: a . a d d = 0
3: for all id £ f ound do > агент выбирает лидером агента с
самым маленьким УИд из своих соседей 4: if i d < ag.sel fid then
5: ag.leadld = id
6: end if
7: end for
Управление подвижными объектами и навигация 8: end function
Алгоритм 7 (Поиска направления для поддержания формации).
1: function FiNDDiRECTiON(a(/, found, predicted)
2: dist = 0, distances = {}
3: (i, j) = agMce 11 ^ coo
4: for all d eV do
5: for all id e f ound do
6: dis t = dis t + \\d + (i, j) — predicted[i d]
7: end for
8: distance s[d] = dist
9: end for
10: return distances
11: end function
(а) 5 = 1,6, N0ьst = 14 (Ь) 5 = 1,8, N0ьst = 33 (с) 5 = 1,84877 Рис. 7: Примеры ландшафтов. Чем клетка темнее, тем больше ее непроходимость
Литература
1. КУЗНЕЦОВ А.В. Модель совместного движения агентов с трехуровневой иерархией на основе клеточного автомата // Журнал вычислительной математики и математической физики. - 2017. - Т. 57, № 2. - С. 339-349. - URL: https://elibrary.ru/item.asp?id=28918677.
2. КУДРЯВЦЕВ В.Б., ПОДКОЛЗИН А.С., БОЛОТОВ А.А. Основы теории однородных структур. - М.: Наука, 1990. -296 с.
3. КУЗНЕЦОВ А.В. Мера несходства на множестве графов и ее приложения // Вестник ВГУ. Серия: Системный анализ и информационные технологии. - 2017. - Т. 1. - С. 125-131. -URL: https://elibrary.ru/item.asp?id=29185115.
4. КУЗНЕЦОВ А.В. Упрощенная модель боевых действий на основе клеточного автомата // Известия РАН. Теория и системы управления. - 2017. - Т. 56, № 3. - С. 59-71. -URL: https://elibrary.ru/item.asp?id=29369822.
5. КУЗНЕЦОВ А.В., ЛЕЩЕВ А.С. Программная среда мно-гоагентного моделирования «Психоход». Пр. для ЭВМ № 2017619605. Дата регистрации: 28.08.2017, номер и дата поступления заявки: 2017616880 11.07.2017. Правообл. А.В. Кузнецов, А.С. Лещев // Программы для ЭВМ. Базы данных. Топологии интегральных микросхем. - 2017. - № 9.
6. МАЛИНЕЦКИЙ Г. Г., СТЕПАНЦОВ М. Е. Применение клеточных автоматов для моделирования движения группы людей // Журнал вычислительной математики и математической физики. - 2004. - Т. 44, № 11. - C. 2094-2098.
7. BEER В., MEAD R., WEINBERG J.B. A Distributed Method for Evaluating Properties of a Robot Formation // Proc. of the 24th Conference on Artificial Intelligence (AAAI-2010), July 11-15, 2010, Atlanta, Georgia, USA. - URL: http://www.aaai.org/ocs/index.php/AAAI/AAAI10/paper/ view/1677.
8. CUSHMAN S.A. Calculating the configurational entropy of a landscape mosaic // Landscape Ecology. - 2016. - Vol. 31, No. 3. - P. 481-489. - URL: http://dx.doi.org/10.1007/s10980-015-0305-2.
9. EFRAIMIDIS P., SPIRAKIS P. Weighted Random Sampling // Encyclopedia of Algorithms / Ed. by Ming-Yang Kao. - Boston, MA: Springer US, 2008. - P. 1-99. -ISBN: http://isbndb.com/search-all.html?kw=978-0-387-30162-4978-0-387-30162-4. - URL: https://doi.org/10.1007/978-0-387-30162-4_478.
10. FRAGSTATS: Spatial Pattern Analysis Program for Categorical Maps. Documentation. - URL: http://www.umass.edu/landeco/research/fragstats/documents/ fragstats_documents.html.
11. GEUVERS H. Inductive and coinductive types with iteration and recursion // Proc. of the 1992 workshop on Types for Proofs and Programs. - Bastad: Chalmers University of Technology, 1992. - P. 183-207. - URL: http://www.cs.ru.nl/ herman/PUBS/BRABasInf_RecTyp.pdf.
12. ILACHINSKI A. Artificial War: Multiagent-Based Simulation of Combat. - Singapore: World Scientific Publishing Company, 2004. - P. 747.
13. JONES M.P., DUDENHOEFFER D.D. A formation behavior for large-scale micro-robot force deployment // Winter Simulation Conference. - Vol. 01. - Los Alamitos, CA, USA: IEEE Computer Society, 2000. - P. 972-982. - URL: doi.ieeecomputersociety.org/10.1109/WSC.2000.899900.
14. KUZNETSOV A.V. Cellular automata-based model of group motion of agents with memory and related continuous model // Mathematical Modeling. Information Technology and Nanotechnology - 2017 / Ed. by S. Sazhin, E. Shchepakina, V. Sobolev, D. Kudryashov. - CEUR Workshop Proc. No. 1904. - Aachen, 2017. - P. 223-231. - URL: http://ceur-ws.org/Vol-1904/paper38.pdf.
15. KUZNETSOV A. Generation of a Random Landscape by given Configuration Entropy and Total Edge // Computational Technologies. - 2017. - Vol. 22, No. 4. - P. 4-10. - URL: https://elibrary.ru/item.asp?id=30053459.
16. LONG R.L., MEAD R., WEINBERG J.B. Distributed Auction-Based Initialization of Mobile Robot Formations // Proc. of the 24th Conference on Artificial Intelligence (AAAI-2010), July 11-15, 2010, Atlanta, Georgia, USA. - 2010. - URL: http://www.aaai.org/ocs/index.php/AAAI/AAAI10/paper/ view/1673.
17. MEAD R. Cellular Automata for Control and Interactions of Large Formations of Robots. - 2008. - URL: http://robotics.usc.edu/ rossmead/docs/2008/ 2008Mead_Thesis.pdf.
18. MEAD R., WEINBERG J.B. 2-Dimensional Cellular Automata Approach for Robot Grid Formations // Proc. of the 23rd Conference on Artificial Intelligence (AAAI-2008), July 13-17, 2008, Chicago, Illinois, USA. - 2008. - P. 1818-1819. - URL: http://www.aaai.org/Library/AAAI/2008/aaai08-299.php.
19. MEAD R., WEINBERG J.B. A Single- and MultiDimensional Cellular Automata Approach to Robot Formation Control // Proc. of IEEE Int. Conference on Robotics and Automation (ICRA-08). - 2008. - URL: http://robotics.usc.edu/ rossmead/docs/2008/ 2008WeinbergMead_ICRA08.pdf.
20. RODRAGUEZ-ITURBE I., D'ODORICO P., RINALDO A. Configuration entropy of fractal landscapes // Geophysical Research Letters. - 1998. - Vol. 25, No. 7. - P. 1015-1018. -URL: http://dx.doi.org/10.1029/98GL00654.
ORGANIZATION OF AN AGENTS' FORMATION THROUGH A CELLULAR AUTOMATON
Alexander Kuznetsov, Voronezh State University, Voronezh, Cand.Sc., associate professor (avkuz@bk.ru).
Abstract: The article deals with the algorithm for a distributed organization of the agents' formation defined by a graph and the numerical simulation of such algorithm. Agents move through terrain with many random obstacles ("random landscape"). At first, we describe the continuous statement of the two-criteria minimization problem. The first criterion is the agent's route time. The second criterion is the closeness of agents' formation to the desired one. Next, we introduce a cellular automaton simulating the movement ofagents for obtaining quasi-optimal solutions of the problem. The cellular automaton has one-dimensional and two-dimensional representations. Agents use reflexion to predict the motion of other agents. Then we compare obtained solutions with optimal ones for different types of random landscapes via numerical experiment. At this point, we obtain the empirical distribution for the time of an agent's exit to finish point. Finally, we find the relation between a type of random landscape through which agents move and the quality of agents' formation.
Keywords: cellular automaton, autonomous agents, reflexive agents, agents' formation control.
Статья представлена к публикации членом редакционной коллегии А.А. Шевляковым.
Поступила в редакцию 08.08.2017. Дата опубликования 30.11.2017.