Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2426

.pdf
Скачиваний:
7
Добавлен:
07.01.2021
Размер:
8.54 Mб
Скачать

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

Последовательность вершин 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. Цикл завершается после выполнения заданного числа итераций: gG. После этого выполняется локальная оптимизация лучшей найденной траектории 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]