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

Основы оптимизации в радиотехнических системах. Практикум

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]