Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы оптимизации в радиотехнических системах. Практикум
.pdf
x1=M(j,1);
x2=M(j,2);
class=M(j,3);
if (class~=cl)
if (x1>maxp)&&(x1<xx11)
maxp=x1;
elseif (x1<minp)&&(x1>xx11)
minp=x1;
end;
end;
end;
left=(xx11+maxp)/2;
right=(xx11+minp)/2;
if (classificated2(i)==0)&&(xx11<r)
a22n=(a1*H22-a1*xx22+H1*xx22-H22*xx11)/...
(H1-xx11)+100;
elseif (classificated2(i)==1)&&(xx11<r)
a22n=(a1*H22-a1*xx22+H1*xx22-H22*xx11)/...
(H1-xx11)-100;
elseif (classificated2(i)==0)&&(xx11>=r)
b11n=(b2*H11-b2*xx22+H2*xx22-H11*xx11)/...
(H2-xx11)+100;
elseif (classificated2(i)==1)&&(xx11>=r)
b11n=(b2*H11-b2*xx22+H2*xx22-H11*xx11)/...
(H2-xx11)-100;
end;
end;
end;
[M1 M2 M11 M22]=...
getMembership(x,x,a1,a22,b2,b11,H1,H2,H22,H11);
M11=(0)*(x>b11)+(b11-x)/...
(b11-H11).*(x<=b11).*((x<=left)|(x>=right))+...
(b11n-x)/(b11n-H11).*(x>left).*(x<right);
[r r1 r2 v]=getRV(a1,a22,b2,b11,H1,H2,H22,H11);
plotMembership(x,M1,M2,M11,M22,H1,H11,H2,H22);
% Уравнение разделяющей прямой (прямых)
separator=(b2*H11-b11*H2+b11*x-H11*x)/...
(b2-H2).*(x>=r2).*((x<=left)|(x>=right))+...
(a1*H22-a22*H1+a22*x-H22*x)/...
(a1-H1).*(x<r1)+...
v.*(x>=r1).*(x<r2)+...
(b2*H11-b11n*H2+b11n*x-H11*x)/...
(b2-H2).*(x>=r).*(x>left).*(x<right);
91

plotSeparator(x,M,separator,r,v,H1,H11,H2,H22);
end;
33. Cохранить изменения файла lab5.m;
34. Вычислить значения параметров ФП на основе обучающей выбор-
ки векторов путем запуска файла-сценария lab5.m. Для этого в главном
окне среды Matlab следует выполнить следующую команду:
>> lab5
Контрольные вопросы
1. Приведите последовательность команд, необходимую для реали-
зации алгоритма классификации векторов в программной среде Matlab.
Поясните назначение каждой приведенной команды.
2. Какие критерии оптимальности используются для построения ал-
горитмов адаптивных обучающихся технических систем?
3. Что означает термин «машинное обучение»? Что такое обучение
технической системы «с учителем» и «без учителя»?
4. Что такое кривая обучения технической системы?
5. Какие меры близости (метрики) используются для отнесения вектора, характеризующего объект, к тому или иному классу?
6. Назовите основные достоинства и недостатки алгоритма класси-
фикации данных, представленного в практической работе.
7. Какие параметры настройки имеет алгоритм классификации дан-
ных, представленный в практической работе?
8. Как производится установка параметров настройки алгоритма
классификации данных, представленного в практической работе?
9. Что означает термин «статистическая классификация данных»?
10. При каких условиях разделение векторов в пространстве призна-
ков может быть выполнено с помощью линейной функции? В каком случае векторы могут быть разделены с помощью плоскости (гиперплоскости)?
92

П РАКТИЧЕСКАЯ РАБОТА № 6
АЛГОРИТМЫ ФУНКЦИОНИРОВАНИЯ
АВТОНОМНЫХ ПОДВИЖНЫХ ОБЪЕК ТОВ
С ДЕЦЕНТРАЛИЗОВАННЫМ У ПРАВЛЕ НИЕМ
Цель работы
Получение навыков разработки ПО, реализующего алгоритмы функ-
ционирования группы автономных подвижных объектов.
Задание к работе
1. Изучить принципы и алгоритмы функционирования группы авто-
номных подвижных объектов.
2. Разработать ПО, выполняющее поиск оптимального маршрута
движения подвижных объектов.
3. Сделать выводы по результатам работы.
Пояснения к работе
Разработка алгоритмов функционирования подвижных объектов является одной из актуальных задач. Любым подвижным объектом (как пилотируемым, так и беспилотным) необходимо управлять. Подвижный
объект должен перемещаться в пространстве, а также выполнять определенный перечень задач в зависимости от своего назначения. В общем случае под управлением понимается процесс организации такого целенаправленного воздействия на объект, в результате которого этот объект переводится в требуемое (целевое) состояние [31]. В большинстве случаев
управление подвижным объектом должно быть оптимальным в соответствии с некоторым критерием оптимальности.
В настоящее время в нашей стране и за рубежом проводятся исследования по созданию экспериментальных автономных групп подвижных
объектов, способных самостоятельно (без телеуправления из командного
пункта) выполнять некоторые действия. Большое значение имеет разработка таких мобильных групп объектов для работы в тяжелых условиях
(под водой, при пониженных или повышенных температурах, при повышенном уровне радиации и т. д.).
93

В частности, актуальной задачей является создание многоцелевых автономных подводных аппаратов (АПА) для замены человека при проведении глубоководных работ (геологоразведочные, спасательные работы и т.
п.), работы в условиях Арктики, обезвреживания потенциальных террористов и разминирования, круглосуточного патрулирования подводных акваторий. Большинство этих работ эффективно производится только группой АПА, действующих децентрализованно и самостоятельно принимающих решения при изменении текущих условий. Поэтому задача разработки интеллектуального АПА, способного работать в группе, крайне
актуальна. Алгоритмы и ПО групповой работы АПА – одна из самых упоминаемых тем зарубежных разработок подводной техники.
Одним из вариантов ориентации подвижных объектов в физическом
пространстве является использование так называемых алгоритмов муравья (Ant algorithm) [22, 39], или алгоритмов оптимизации по принципу муравьиной колонии. Алгоритмы муравья или другие так называемые «роевые» алгоритмы отражают ряд специфических свойств, присущих насекомым, которые ведут коллективный образ жизни. Каждый муравей выполняет только простые действия, однако при этом он вступает в сотрудничество с другими муравьями. Муравьи передают друг другу некоторую локальную информацию и на ее основе могут изменять свое поведение и
способствовать достижению общей цели колонии.
По таким же принципам должна действовать группа АПА, т. е. она
должна выполнять некоторые задачи в кратчайшие сроки при минимальных затратах энергии, минимальных повреждениях аппаратов и т. д.
Иными словами, группа АПА призвана обеспечить выполнение постав-
ленной задачи при минимизации функции потерь [40]. Каждый АПА фактически имитирует поведение одного муравья в колонии. В процессе
функционирования группы АПА оптимизация выполняется путем непрямой связи между аппаратами.
Алгоритм муравья был разработан в ходе наблюдения за муравьями,
которые способны находить оптимальный по длине маршрут от муравейника до источника пищи. В этом им помогает феромон – пахучее вещест-
во, выделяемое муравьями во время движения. Чем короче преодолеваемый путь, тем больше раз по нему проходит муравей и, следовательно,
тем больше феромона он оставляет. В процессе движения каждый член
колонии обычно выбирает маршрут с наибольшим следом феромона. Та-
94

,
)
η(
τ
ητ
M
β
il
α
il
β
ij
α
ij
ijm
∑
⋅
⋅
=
l
P
ким образом, с каждым днем оптимальный маршрут выделяется все контрастнее.
Рассмотрим задачу поиска кратчайшего расстояния при прохождении
объектом определённого количества точек в двумерном пространстве.
Данная задача также известна как задача коммивояжера [22] и заключается в поиске наикратчайшего маршрута, проходящего по одному разу через
все вершины (города) полностью замкнутого графа с двунаправленными
гранями. Пример такого графа приведен на рис. 6.1. Задачу предлагается
решать в плоскости прямоугольных координат.
Рис. 6.1
Муравьем называется объект, который может находиться в одном из
узлов графа и снабжается «списком табу» (tabu list) – перечнем узлов, которые он уже посетил и не может больше посещать, пока не посетит все
города, то есть пока не закончится текущая итерация алгоритма. Также
муравей хранит порядок посещения вершин графа в последней итерации.
Ребро графа хранит информацию о текущем уровне феромона.
В классическом варианте алгоритма итерация начинается с помещения одного муравья в каждый город, то есть количество муравьев совпадает с количеством узлов графа.
В течение одной итерации муравей посещает все узлы графа. Вероятность перехода m-го муравья из города i в город ј, не находящийся в списке табу, определяется следующим уравнением:
где τij – уровень феромона на ребре между данными узлами; η – величина, обратная расстоянию между узлами i и j; α и β – настраивающиеся коэффициенты; M – число городов, которые еще не внесены в список табу;
m – номер муравья.
95

),p
1
(τ
τ
ijij
−⋅
=
,
Δτττ
N
1m
ijmij
ij
∑
=
+=
,
Δτ
m
ijm
L
Q
=
α β 0,5
5,0
1,0
1,0
1,0
2,0
1,0
5,0
В конце итерации, когда все города пройдены, имитируется «испаре-
ние» феромона:
где p – настраиваемый параметр. Далее выполняется отложение нового
феромона:
где N – количество муравьев; Δτ
– количество феромона, которое мура-
ijm
вей отложит на грани.
Вклад каждого муравья определяется по формуле
где Q – коэффициент, выбираемый одного порядка с длиной оптимально-
го маршрута; Lm – длина пути, пройденного муравьем m в данной итерации.
Запуск новой итерации начинается с обнуления списка табу и маршрута каждого муравья, распределения их по городам. Результатом работы алгоритма считается кратчайший путь из пройденных муравьями за все
время работы алгоритма.
Условием окончания работы может служить как выполнение заложенного количества итераций, так и величина колебаний выходного значения. Следует отметить, что хорошие результаты достигаются путем установки значения параметра p > 0,5 и следующих комбинаций коэффициентов α и β [22]:
Схема алгоритма муравья представлена на рис. 6.2.
96

НЕТ
НЕТ
НЕТ
ДА
ДА
Начало
Конец
Ввод значений a, b, p, карты
Распределение муравьев по одному на
Пройдены все
итерации
Обработаны все
муравьи m
Все города j
в списке табу
Выбор города j с вероятностью
,
)η(τ
ητ
M
β
il
α
il
β
ij
α
ij
ijm
∑
⋅
⋅
=
l
P
Переход в город j, внесение его
Обновление феромона
,)1(ττ
N
1m
m
ijij
∑
=
+−⋅=
L
Q
p
Сброс списка табу
Обновление кратчайшего маршрута
ДА
город, феромона равномерно по ребрам
графа
в список табу
Рис. 6.2
97

Ход работы
1. Запустить программную среду Matlab, установить текущую папку
«X:\…\Komplex_MO\Lab6», где X – условное обозначение литеры диска.
Поле для установки текущей папки показано на рис. 6.3;
Рис. 6.3
2. В текстовом редакторе среды Matlab создать новый файл и сохранить его под именем ant_main.m на жестком диске ПК в папке
X:\…\Komplex_MO\Lab6;
3. В файле ant_main.m поместить заголовок:
%-------------------------------------------% Главный файл приложения.
4. В файле ant_main.m поместить следующий программный код (после имеющегося кода):
clear all;
%--------------------------------------------
% Настройки
n = 25; % Количество городов и муравьев.
a = 0.5; % Вес феромона.
b = 5; % Вес расстояния.
p = 0.6; % Коэффициент испарения.
%--------------------------------------------
% Инициализация переменных.
[ants cities pheromone distance]=...
init(n, a, b, p );
%-------------------------------------------% Исполнение алгоритма.
98

repeats=60;
% Количество промежуточных графиков.
intermediatePlots=5;
% Индексы контрольных итераций
indexes=[];
% Минимальные значения длины
% маршрута в итерации.
lengths=[];
% Выходное значение.
output=[];
for i=1:repeats
% Основной алгоритм.
[ants pheromone]=...
cycle(ants,pheromone,distance,p,a,b);
% Получение кратчайшего пути
% за итерацию.
[way wayLen] = shortestWay(ants);
if(i == 1)
shortest = way;
shortestLen = wayLen;
else
if(wayLen < shortestLen)
shortestLen = wayLen;
shortest = way;
end;
% Вывод промежуточных результатов.
if(mod(i, repeats/intermediatePlots) == 0)
figure;
plotCities(cities);
plotWay(way,cities,'g',wayLen);
end;
end;
lengths=[lengths; wayLen];
output=[output; shortestLen];
indexes=[indexes;i];
% Сброс состояния муравьев.
ants=resetAnts(ants);
end;
%-------------------------------------------% Вывод результатов.
figure;
plotCities(cities);
plotWay(shortest,cities,'r',shortestLen);
lengths
shortest
shortestLen
99

figure;
hold on;
plot(indexes, lengths, '-g');
plot(indexes, output, '-r');
xlabel('Номер итерации');
ylabel('Кратчайший путь');
5. Cохранить изменения файла ant_main.m;
6. В текстовом редакторе среды Matlab создать новый файл и сохранить его под именем cityProbability.m на жестком диске ПК в папке
X:\…\Komplex_MO\Lab6;
7. В файле cityProbability.m поместить заголовок файла-функции:
function [probabilities cityVariants] = ...
cityProbability(ant,pheromone,distance,a,b,n)
%--------------------------------------------
% Функция вычисляет вероятности перехода
% в каждый из непосещенных муравьем городов.
% Аргументы:
% ant - Муравей.
% pheromone - Феромон на ребрах графа.
% distance - Матрица расстояний
% между городами
% a - вес феромона.
% b - вес расстояния.
% n - количество муравьев/городов.
% Возвращаемые значения:
% cityVariants - список непосещенных городов.
% probabilities - вероятности для них.
8. В файле cityProbability.m поместить следующий программный код
(после имеющегося кода):
probabilities=[];
cityVariants=[];
% Знаменатель формулы вероятности.
denominator = 0;
i = ant.cityIndex;
for j=1:n
100
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
