
2426
.pdf
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,j1∙Li1,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

Последовательность вершин S* глобального оптимального пути длиной L* сохраняется и при уменьшении значения L* по (3.91) также обновляется.
4.5. После завершения каждой итерации происходит обновление феромона на всех дугах графа по известной зависимости [199, 217]
τi1, j1(g +1) = (1- p f )×τi1, j1(g)+ Dτi1, j1(g), |
(3.92) |
где pf – коэффициент испарения феромона, p f Î[0,1]; |
i1 [1; ng]; |
j1 [1; ng]. |
|
Dτi1, j1(g) = |
rкол |
|
|
å Dτi1, j1,r (g); |
|||
|
r=1 |
|
|
ìQ Lr (g) |
если (i1, j1)Î Sr (g); |
||
Dτi1, j1,r (g)= í0 если |
(i1, j1)Ï S |
r |
(g), |
î |
|
|
(3.93)
(3.94)
где Sr(g) – последовательность вершин графа, пройденных агентом r на итерации g; Lr(g) – величина целевой функции (длина пути, пройденного агентом r) на итерации g; Q – постоянная.
4.6. Уровень феромона на ребрах глобального оптимального пути длиной L* после каждой итерации дополнительно увеличивается на величину [62, 85, 110, 199, 217]
Dτ |
e |
(g)= e ×Q L* , |
(3.95) |
|
r |
|
где er – количество элитных агентов.
5. Цикл завершается после выполнения заданного числа итераций: g≥G. После этого выполняется локальная оптимизация лучшей найденной траектории S* глобального оптимального пути L* с учетом препятствий рабочей области по методике, изложенной в разделе 3.5, на этом завершается работа алгоритма.
Детализированная блок-схема модифицированного алгоритма роевого интеллекта для пяти учитываемых обобщенных координат груза в последовательном исполнении приведена на рис. 3.19.
Распараллеливание модифицированного алгоритма роевого ин-
теллекта. При разработке параллельных алгоритмов и многопоточных приложений на их основе внимание в первую очередь уделяется той части задачи, выполнение которой занимает наибольшее время [8, 85].
115

|
Пуск |
1 |
|
2 |
|
|
Ввод исходных данных: sнач=(xн0,yн0,zн0,γн0,ωн0); sкон=(xк0,yк0,zк0,γк0,ωк0); { R |
}; |
|
||
|
|
|
|||
|
|
ig |
|
|
|
|
imax;jmax;kmax;lmax;mmax; [YПР]; rкол; α; β; er; G; cγω; Gr; u; [T]; δopt; lзап_г; lзап_в |
3 |
|
||
|
|
|
|
|
|
|
Построение массива гиперповерхности [Ymin] по методике раздела 3.4 |
|
4 |
|
|
|
|
|
|
|
|
Формирование матрицы смежности [A] с использованием массива гиперповерхности |
|||||
|
[Ymin] по (3.81) |
|
|
|
|
|
|
|
|
5 |
|
Вычисление ассоциированных расстояний Li,j по (3.18) или (3.84). Вычисление мат-
рицы видимости [N] по [A] и Li1,j1 по (3.85). Задание L*=∞. Вычисление iнач, jнач, kнач, lнач, mнач по (3.54). Положить i(1)=iнач; j(1)=jнач; k(1)=kнач; l(1)=lнач; m(1)=mнач
|
g=1:G |
6 |
|
|
|
|
|
|
|
22 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
7 |
|
19 |
|
|
|
|
||||||||
|
r=1:rкол |
|
|
Выбор пути, оп- |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
тимального на |
|
|
|
|||
|
|
|
|
|
Вычисление дли- |
|
|
|
||||||||
|
i=2:(imax–1) |
8 |
|
|
|
данной итерации |
|
|
|
|||||||
|
|
|
|
|
|
ны пути Lr(g) |
|
* |
|
|
|
|
|
|||
|
|
|
|
|
|
агента r по (3.89) |
|
L (g) по условию |
|
|
|
|||||
|
|
9 |
|
|
|
|
|
|
|
|
(3.90) |
|
|
|
||
|
nm=0 |
|
|
20 |
|
|
|
|
|
|||||||
|
|
|
|
|
|
23 |
|
|
|
|||||||
|
|
|
|
|
|
Генерация слу- |
|
|
|
|
|
|
||||
|
|
10 |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
* |
|
|
|
||||||
|
dj=–1:+1 |
|
|
|
|
чайного числа |
|
|
|
Сравнение L (g) и |
|
|
|
|||
|
11 |
|
|
|
|
|
L*, обновление L* |
|
|
|
||||||
|
|
Rand в интервале |
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
по (3.91); обнов- |
|
|
|
|||||||
|
j(i)=j(i–1)+dj; |
|
|
|
[0;1] |
|
|
|
|
|
|
|||||
Ограничения: j(i)£jmax; j(i)³1 |
|
|
|
|
|
21 |
ление последова- |
|
|
|
||||||
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
Определение |
|
|
тельности вершин |
|
|
|
|||
|
|
12 |
|
|
|
|||||||||||
|
dk=–1:+1 |
|
|
|
индексов j(i), |
|
|
глобального оп- |
|
|
|
|||||
|
|
13 |
|
|
k(i), l(i), m(i) |
|
|
тимального пути |
|
|
|
|||||
|
k(i)=k(i–1)+dk; |
|
|
|
|
|
новой верши- |
|
|
S*; обновление |
|
|
|
|||
Ограничения: k(i)£kmax; k(i)³1 |
|
|
|
ны пути Sr(g) |
|
|
феромона по |
|
|
|
||||||
|
|
|
|
|
|
|
агента r по |
|
|
(3.92) и (3.95) |
|
24 |
|
|||
|
dl=–1:+1 |
14 |
|
|||||||||||||
|
|
|
|
|
|
(3.88) |
|
|
|
|
|
|
|
|
|
|
|
15 |
|
|
|
|
|
|
|
Локальная опти- |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
мизация лучшей |
|
|||||
|
l(i)=l(i–1)+dl; |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
найденной траек- |
|
|||
Ограничения: l(i)£lmax; l(i)³1 |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
тории S* гло- |
|
||||||
|
|
|
16 |
|
|
|
|
|
|
|||||||
|
dm=–1:+1 |
|
|
|
|
|
|
|
|
бального опти- |
|
|||||
|
17 |
|
|
|
|
|
|
|
|
|
мального пути L* |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||
m(i)=m(i–1)+dm; nm=nm+1; |
|
|
|
|
|
|
|
|
|
по методике раз- |
|
|||||
|
|
|
|
|
|
|
||||||||||
Ограничения: m(i)£mmax; m(i)³1 |
|
|
|
|
|
|
|
|
|
дела 3.5 |
|
|
||||
|
|
18 |
|
|
|
|
|
|
|
|
|
25 |
|
|||
Вычисление P(nm) по (3.86) и |
|
|
|
|
||||||||||||
σ(nm) по (3.87) для смежной с те- |
|
|
|
|
|
|
|
|
|
Вывод резуль- |
||||||
|
|
|
|
|
|
|
|
|
татов: S*, L* |
|||||||
кущей вершины с индексами i, j, |
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
26 |
|
||||
|
k, l, m |
|
|
|
|
|
|
|
|
|
|
|
Останов |
|
Рис. 3.19. Блок-схема последовательного алгоритма роевого интеллекта для пяти учитываемых обобщенных координат груза
116

|
Пуск |
1 |
|
2 |
|
|
|
|
|
|
|
|
Ввод исходных данных: sнач=(xн0,yн0,zн0,γн0,ωн0); sкон=(xк0,yк0,zк0,γк0,ωк0); { R |
}; |
|
|
|
|
|
ig |
|
|
|
|
imax;jmax;kmax;lmax;mmax; [YПР]; rкол; α; β; er; G; cγω; Gr; u; [T]; δopt; lзап_г; lзап_в |
3 |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
Построение массива гиперповерхности [Ymin] по методике раздела 3.4 |
|
|
|
|
|
|
|
|
4 |
|
Формирование матрицы смежности [A] с использованием массива гиперповерхности |
|||||
|
[Ymin] по (3.81) |
|
|
|
|
5
Вычисление ассоциированных расстояний Lij по (3.18) или (3.84). Вычисление мат-
рицы видимости [N] по [A] и Li1,j1 по (3.85). Задание L*=∞. Вычисление iнач, jнач, kнач, lнач, mнач по (3.54). Положить i(1)=iнач; j(1)=jнач; k(1)=kнач; l(1)=lнач; m(1)=mнач
|
|
|
|
g=1:G |
|
6 |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
10 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выбор пути, оп- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
7 |
|
|
|
|
|
|
|
|
|
|
|
|
9 |
тимального на |
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|||
|
Независи- |
|
|
|
Независи- |
|
|
Независи- |
|
||||||
|
|
|
|
|
|
|
|
|
данной итерации |
|
|||||
|
|
мый поиск |
|
|
|
мый поиск |
|
... |
|
мый поиск |
|
|
|||
|
|
|
|
|
|
|
|
L*(g) по условию |
|
||||||
|
|
пути аген- |
|
|
|
пути аген- |
|
|
|
пути аген- |
|
(3.90) |
|
||
|
|
том r=1 |
|
|
|
том r=2 |
|
|
|
том r= rкол |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11
Сравнение L*(g) и L*, обновление L* по (3.91); обновление последовательности вершин глобального оптимального пути S*; обновление феро-
мона по (3.92) и (3.95)
|
|
|
|
12 |
14 |
13 |
|
|
|
|
Локальная оптимизация лучшей траектории S* |
|||
Останов |
Вывод резуль- |
|
глобального оптимального пути L* |
|
|
татов: S*, L* |
|
по методике раздела 3.5 |
|
|
|
|
Рис. 3.20. Блок-схема распараллеленного алгоритма роевого интеллекта (затемнены блоки, выполняемые параллельно) для пяти учитываемых обобщенных координат груза
Анализ последовательного алгоритма роевого интеллекта позволяет выделить в нем следующие этапы решения задачи: 1) начальный этап, включающий в себя загрузку и инициализацию исходных данных; 2) последовательное построение маршрутов колонией агентов, т.е. основной вычислительный этап; 3) обработка и вывод полученных результатов.
Наибольшую сложность в вычислительном плане составляет 2-й этап, время выполнения остальных этапов относительно невелико, особенно при возрастании размерности задачи. 2-й этап в свою очередь можно разбить на следующие подэтапы: построение маршрутов на текущей итерации алгоритма, выполняемое каждым агентом неза-
117

висимо от других; обновление следа феромона от всех агентов на текущей итерации.
|
… |
|
|
|
|
|
|
12 |
|
|
|
1 |
|
|
|
|
|
||
|
|
|
|
|
Вычисление дли- |
|
|||
|
i=2:(imax–1) |
|
|
|
|
|
ны пути Lr(g) |
|
|
|
|
2 |
|
|
|
агента r по (3.89) |
|
||
|
nm=0 |
|
|
|
|
|
13 |
||
|
|
|
|
|
|
|
|||
|
dj=–1:+1 |
3 |
|
Генерация слу- |
|||||
|
|
4 |
|
чайного числа ω |
|
|
|||
|
|
|
|
в интервале [0;1] |
|
|
|||
|
j(i)=j(i–1)+dj; |
|
|
|
14 |
||||
|
|
|
|
|
|
|
|||
Ограничения: j(i)£jmax; j(i)³1 |
|
|
|
|
Определение |
||||
|
|
|
|
|
|
|
индексов j(i), |
|
|
|
dk=–1:+1 |
|
5 |
|
|
|
|||
|
|
|
|
|
k(i), l(i), m(i) |
|
|
||
|
|
|
6 |
|
|
|
|
||
|
|
|
|
|
|
новой верши- |
|
|
|
|
k(i)=k(i–1)+dk; |
|
|
|
|
|
|||
|
|
|
|
|
|
ны пути Sr(g) |
|
|
|
Ограничения: k(i)£kmax; k(i)³1 |
|
|
|
|
|
||||
|
|
|
агента r по |
|
|
||||
|
dl=–1:+1 |
|
7 |
|
|
|
(3.88) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
|
l(i)=l(i–1)+dl; |
|
|
|
|
|
|
|
|
Ограничения: l(i)£lmax; l(i)³1 |
|
|
|
|
|
|
|
9
dm=–1:+1
10
m(i)=m(i–1)+dm; nm=nm+1;
Ограничения: m(i)£mmax; m(i)³1
Вычисление P(nm) по (3.86) и11 σ(nm) по (3.87) для смежной с текущей вершины с индексами i, j, k, l, m
…
Рис. 3.21. Блок-схема выполняемого параллельно kernelядра алгоритма роевого интеллекта для пяти координат, описывающих положение груза
Анализ программной реализации описанного выше последовательного алгоритма, учитывающего 5 координат, определяющих положение груза в пространстве, показал, что суммарное время выполнения подэтапа 2-го этапа, заключающегося в последовательном независимом поиске пути агентами колонии, составляет в среднем около 86 % от общего времени выполнения всей программы. В то же время данный блок задачи, в отличие от всех остальных, является информационно независимым.
118

Это обуславливает наиболее подходящий вариант распараллеливания 2-го этапа: агенты параллельно независимо друг от друга находят маршруты, затем выполняется барьерная синхронизация и последовательно происходит обновление феромона. Далее начинается следующая итерация.
Блок-схема распараллеленного в соответствии с приведенным подходом алгоритма роевого интеллекта, учитывающего 5 координат, приведена на рис. 3.20, 3.21.
В соответствии с законом Амдала (Amdahl) ускорение Sпр процесса вычислений при использовании pпр параллельных процессов ограничивается величиной [8]
Sпр ≤ |
|
1 |
|
, |
(3.96) |
fпо + (1 |
− fпо ) |
|
|||
|
pпр |
|
где fпо – доля последовательных операций в рассматриваемом алгоритме.
То есть ускорение выполнения алгоритма за счет распараллеливания его блоков на множестве потоков ограничено временем, необходимым для выполнения его последовательных блоков.
Согласно приведенной формуле (3.96), возможно 7-кратное ускорение по сравнению с последовательным алгоритмом роевого интеллекта (верхняя оценка ускорения Sпр≈7), что подтверждено результатами вычислительных экспериментов.
Вычислительные реализации разработанных последовательной и параллельной модификаций алгоритма роевого интеллекта и описанной методики на его основе в средах Microsoft Visual C++ и MATLAB показали работоспособность и эффективность алгоритмов роевого интеллекта для решения поставленной задачи. Для распараллеленного алгоритма были разработаны программные реализации с использованием гибридной технологии: массивно-параллельных вычислений на графических процессорах Compute Unified Device Architecture (NVIDIA CUDA) совместно с библиотекой параллельного программирования систем с распределенной памятью Message Passing Interface (MPI) и открытого стандарта параллельного программирования многопоточных систем с общей памятью Open Multi-Processing (OpenMP).
119