💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
目录
路径规划是移动机器人技术研究领域中非常重要的部分。面对愈渐复杂的工作环境,传统的路径规划技术存在各种难以解决的问题,如计算量大、完备性差、需要环境精确建模等,难以满足现代的实际需求。因此,无需环境精确建模、结构简单且通用性高的智能优化算法便成为路径规划研究的新兴热点。
麻雀搜索算法是2019年提出的群智能优化算法,其思想来源是麻雀种群的觅食行为和反捕食行为。麻雀搜索算法由于其结构简单、收敛速度快等优点,已经在一些实际工程问题上得到应用。因此,本研究基于麻雀搜索算法对移动机器人路径规划问题进行研究。
部分代码:
%% 参数设置
max_gen = 200; % 最大迭代次数
num_polution = 50; % 种群数量
soft_value = 0.8; %安全值
recover_Percent = 0.3; %%发现者比例
scout_Percent = 0.2; %%侦查者比例
recover_Num = round( num_polution * recover_Percent ); % %发现者
scout_Num = round(num_polution * scout_Percent); %%侦查者数量
X_min = 1;
%% 初始化
X = zeros(num_polution,dimensions);
for i = 1:num_polution
for j = 1:dimensions
column = G(:,j+1); % 地图的一列
id = find(column == 0); % 该列自由栅格的位置
X(i,j) = id(randi(length(id))); % 随机选择一个自由栅格
id = [];
end
fit( i ) = fitness(X( i, : ),G);%%%行向量
end
fit_person_best = fit; % 个体最优适应度
person_best = X; % 个体最优位置
[fit_global_best, best_person_Index] = min( fit ); % 全局最优适应度
global_best = X(best_person_Index, : ); % 全局最优位置
[fit_max,B]=max(fit);
worse_person= X(B,:);
%%
for gene = 1:max_gen
gene
[ans1,sort_Index] = sort(fit); %适应值度从小到大排序
[fit_max,B] = max(fit);
worse_person = X(B,:); %找出适应度最差的个体
[~,Index] = sort(fit_person_best);
r2 = rand(1);
if r2 < soft_value
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for i = 1:recover_Num
r1 = rand(1);
X(Index(i),:) = person_best(Index(i),:)*exp(-(i)/(r1*max_gen)); %%%%%发现者广泛进行搜索操作
X(Index(i),:) = Bounds(X(Index(i),:), X_min,Xmax); %%%%输出整数路径
fit(Index(i)) = fitness(X(Index(i),:),G);
end
else
X(Index(i),:) = person_best(Index(i),:) + randn(1)*ones(1,dimensions); %%%%%%%飞往其他地方觅食
X(Index(i),:) = Bounds(X(Index(i),:),X_min,Xmax);
fit(Index(i)) = fitness(X(Index(i),:),G);
end
[1]张恩浩. 基于麻雀搜索算法的移动机器人路径规划算法研究[D].重庆理工大学,2022.DOI:10.27753/d.cnki.gcqgx.2022.000820.