Материал: 2426

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

1. Задание численных значений исходных данных: sнач=(xн0, yн0,

zн0, γн0, ωн0); sкон=(xк0, yк0, zк0, γк0, ωк0); { Rig }; imax; jmax; kmax; lmax; mmax;

[YПР]; rкол; α; β; er; G; cγω; u; [T]; δopt; lзап_г; lзап_в. Параметры соответствуют описанным при постановке задачи в разделе 3.1, за исключени-

ем следующих собственных параметров алгоритма роевого интеллекта, задаваемых эмпирически: rкол – количество независимых агентов; α и β – весовые относительные коэффициенты значимости феромона и видимости; G – количество итераций алгоритма роевого интеллекта; [T] – матрица феромонов (с начальными постоянными значениями уровня); er – количество элитных агентов.

2. По методике, изложенной в разделе 3.4, формируется массив [Ymin] гиперповерхности минимальных значений вертикальных координат условного центра груза с учетом его угловых координат:

Ymin(i,k,l,m), i [1; imax]; k [1; kmax]; l [1; lmax]; m [1; mmax].

3. Используя вложенные циклы по i, j, k, l, m, определяющие координаты x, y, z, γ, ω соответственно, c использованием массива [Ymin] гиперповерхности минимальных значений вертикальных координат условного центра груза с учетом его угловых координат формируется

квадратная матрица смежности вершин графа A=[ai1,j1]ing1, j1=1 размером ng×ng, элементы которой равны:

ai1,j1=1, если существует дуга (si1, sj1);

 

ai1,j1=0, если нет дуги (si1, sj1).

(3.81)

Причем по (3.81) проверяются только смежные с текущей вершины, поскольку перемещение осуществляется только в определенные вершины-преемники, смежные с текущей:

i1=m∙lmax∙kmax∙jmax∙imax+l∙kmax∙jmax∙imax+k∙jmax∙imax+j∙imax+i; j1=mp∙lmax∙kmax∙jmax∙imax+lp∙kmax∙jmax∙imax+kp∙jmax∙imax+jp∙imax+ip; (3.82)

ip [i–1; i+1]; jp [j–1; j+1]; kp [k–1; k+1]; lp [l–1; l+1]; mp [m–1; m+1].

Отсутствие дуги подтверждается в случае, если условие (3.55) не выполняется хотя бы для одной из двух точек: i1 с индексами координат i, j, k, l, m или j1 с индексами ip, jp, kp, lp, mp.

Остальные элементы матрицы [A] принимаются равными 0. Матрица смежности [A] полностью определяет структуру графа с учетом геометрии препятствий в рабочей области, про которые принято до-

110

пущение об их неподвижности, и геометрии объекта (точек (Rg)ig ,

ig [1; cг]).

4. Алгоритм роевого интеллекта состоит в последовательности итераций g1, g2, …, G, на каждой из которых rкол агентов независимо друг от друга совершают полный цикл движения из sнач в sкон, двигаясь только через смежные вершины. Выбор вершины sj1 для перехода в нее отдельного агента из текущей вершины si1 осуществляется при помощи вероятностного правила на основе двух компонент – видимости ηi1,j1 и уровня феромонов τi1,j1, которые ассоциированы с вершинами, смежными с текущей.

Каждая дуга (si1, sj1) Nr имеет весовой коэффициент ηi1,j1. В терминах традиционного алгоритма роевого интеллекта, разработанного для решения задачи коммивояжера, ηi1,j1 – это видимость между вершинами si1 и sj1. Это величина, обратная значению целевой функции

[62, 85, 110, 199, 217]:

ηi1,j1 =1/Li1,j1,

(3.83)

где Li1,j1 – значение целевой функции между вершинами si1 и sj1, опре-

деляемое по (3.18) (СВД); i1 [1; ng]; j1 [1; ng].

Предложен и исследован на применимость другой способ определения видимости ηi1,j1 для вершины sj1, смежной с текущей рассматриваемой вершиной si1. Видимость предлагается определять как предполагаемое (прогнозируемое) значение целевой функции между смежной вершиной sj1 и конечной вершиной sкон без учета препятствий. Данный подход используется в эвристических алгоритмах поиска кратчайшей траектории на графах, в частности в алгоритме А* и его модификациях, и доказал свою эффективность [74, 175]. «Жадная» эвристическая функция расстояния до ближайшего соседа (3.18) из классического алгоритма роевого интеллекта заменяется эвристической функцией оценки предполагаемого расстояния до цели:

Li1, j1 = (xj1 -xк0)2 +(yj1 -yк0)2 +(zj1 -zк0)2 +cγω ×(γ j1 -γк0)2 +(ωj1 -ωк0)2 . (3.84)

Для работы алгоритма используются две квадратные матрицы:

видимости N=[ηi1,j1]ing1, j1=1 и феромонов T(g)=[τi1,j1]ing1, j1=1, где τi1,j1(g) – количество феромонов на дуге (si1, sj1) на итерации g. В начальный момент времени все элементы матрицы феромонов T принимаются равными некоторому постоянному малому положительному значению.

111

 

 

 

 

 

l=–1, 0, +1; m=–1, 0, +1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j+1

а)

 

 

 

 

 

 

 

 

 

j

Y0

 

 

Yg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j–1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Xg

 

i+1

 

 

 

 

 

 

 

 

 

 

 

 

 

X0

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Zg

 

 

 

 

k–1

 

 

k

 

 

 

 

 

 

Z0

 

 

 

 

 

 

 

k+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j+1

 

 

 

Y0

Y0

 

 

j+1, k+1

 

X0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j

 

i

 

 

 

 

 

 

 

б) Z0

 

 

 

i+1

 

 

 

 

 

j–1

 

 

 

в)

j–1, k–1

 

 

j–1, k+1

 

 

 

 

 

i+1

l+1, m–1

l+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l+1, m+1

k–1

 

k

k+1

 

 

 

 

 

 

m+1

 

 

i

 

 

X0

 

 

 

 

 

 

 

 

 

 

m–1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

г)

 

 

Z0

 

 

 

l–1, m+1

 

 

 

д)

 

 

 

 

 

 

 

 

 

l–1, m–1

l–1

 

 

 

 

 

 

 

 

 

 

Рис. 3.18. Возможные состояния-«преемники» для текущего состояния груза

впространстве: а – пространственный вид; б – вид сзади; в – вид сбоку;

г– вид сверху; д – углы поворота

Матрица видимости [N] получается путем умножения соответствующих значений целевой функции (3.18) между текущей и всеми смежными вершинами по прямой либо между всеми смежными и ко-

112

нечной вершинами по прямой (3.84) без учета препятствий на соответствующие элементы матрицы смежности [A] (3.81):

ηi1,j1=ai1,j1Li1,j1, i1 [1; ng]; j1 [1; ng].

(3.85)

Для практической реализации алгоритма предлагается использовать подходы из области искусственного интеллекта. Формализуем функцию определения «преемника» для произвольного состояния объекта [175]. Отдельный агент перемещает груз по узлам графа на равномерной сетке. В соответствии с принятым при постановке задачи расположением осей неподвижной системы координат приращение индекса i (координаты x) на единицу целесообразно на каждом шаге агента, т.к. уменьшает расстояние до цели и общее число шагов. Остальные 4 координаты груза могут как увеличиваться так и уменьшаться на один линейный или угловой шаг, или же оставаться неизменными (рис. 3.18).

Для каждой вершины графа в общем случае получим Fпр=(qv)wv вершин-«преемников», где qv=3 число вариантов выбора по отдельной координате; wv=4 – количество координат, допускающих многовариантность при выборе преемника. В нашем случае Fпр= = (qv)wv =34=81. Однако, учитывая, что некоторые вершины графа непроходимы вследствие пересечения груза с препятствиями, общее число «преемников» Fпр для каждой конкретной вершины может быть меньше 81. В некоторых пространственных состояниях число вер- шин-«преемников» может быть равно 0, в этом случае путь тупиковый, он убирается из рассмотрения.

Вероятность перехода отдельным агентом из текущей вершины si1 в смежную вершину sj1 определяется по известному правилу [199,

217]

 

(g)=

τ α

(g)×η β

 

 

P

i1, j1

i1, j1

,

(3.86)

u

 

i1, j1

 

 

 

 

 

 

åτiα1,l (g)×ηiβ1,l

 

 

 

 

l=1

 

 

 

где α и β – весовые относительные коэффициенты значимости феромона и видимости соответственно, α+β=1,0.

4.1. Для реализации выбора отдельной вершины из списка смежных с текущей вершин одномерный вектор вероятностей Pi1,j1, j1 [1; u] преобразуется в одномерный вектор сумм вероятностей σj1, элементы которого определяются следующим образом:

113

σ

 

j1

(P

).

(3.87)

 

= å

 

j1

v=1

i1,v

 

 

Компоненты вектора сумм вероятностей σj1 представляют собой последовательность монотонно возрастающих чисел со значениями в интервале [0,1]. Последний компонент вектора сумм вероятностей имеет значение σu=1. Затем при помощи генератора случайных чисел получается число Rand в интервале [0,1] с равномерным законом распределения. Вершина-«преемник» определяется как компонент вектора сумм σj1, ближайший меньший к Rand:

(σj1< Rand) (Rand –σ)→min,

(3.88)

где знак логического умножения (конъюнкции).

4.2. При достижении индексом i (индекс координаты x), который детерминированно увеличивается на 1 при каждом шаге агента, значения (imax–1), построение пути агентом завершается. После того, как на итерации g построен путь Sr(g) для отдельного агента колонии с номером r (r [1; rкол]), определяется длина этого пути как сумма функций стоимости всех дуг вида (3.18), входящих в данный путь:

Lr (g) =

iкон

(Li,i−1 ).

(3.89)

å

 

i=2

 

 

4.3. После нахождения путей перемещения для всех rкол агентов колонии из совокупности путей {S1(g), S2(g),…, Srкол (g)} выбирается путь с минимальным значением функции стоимости пути на данной итерации алгоритма g:

L*(g)= min{L1(g), L2(g),…, Lrкол (g)}.

(3.90)

Последовательность вершин Sr(g) в описываемой реализации представляет собой матрицу размером [imax´4], в каждой строке которой хранятся индексы j(i), k(i), l(i), m(i) вершины пути, имеющей индекс i.

4.4. Затем длина оптимального пути на данной итерации L*(g) сравнивается с текущим значением длины глобального оптимального

пути L* и при необходимости последнее значение обновляется:

 

L*= min{L*(g), L*}.

(3.91)

114