1 简介
扫地机器人的路径规划是机器人学科的一个重要的研究领域,研究的范围涉及人工智能学、机器人学、数学分析以及计算机编程等多个领域和学科.在人工智能快速发展的背景下,扫地机器人的使用获得了空前的发展,并且机器人的路径规划及研究引发了各界的广泛重视.本文基于扫地机器人及其路径规划理论,通过详细介绍遗传算法原理、算子介绍及编码操作,将遗传算法用于求解智能扫地机器人的路径规划.
2 部分代码
%% 变异操作
% 函数说明
% 输入变量:pop:种群,pm:变异概率
% 输出变量:newpop变异以后的种群
function [new_pop] = mutation(pop, pm, G, x)
[px, ~] = size(pop);
new_pop = {};
for i = 1:px %对每一条染色体遍历
% 初始化最大迭代次数
max_iteration = 0;
single_new_pop = pop{i, 1};
[~, m] = size(single_new_pop); %m为单一个体的长度
% single_new_pop_slice初始化
single_new_pop_slice = [];
if(rand < pm)%产生变异
while isempty(single_new_pop_slice)
% 生成2-(m-1)的两个随机数,并排序
mpoint = sort(round(rand(1,2)*(m-3)) + [2 2]);
%mpoint
%获得变异前面和后面的点,看是不是连续的,不连续就连续化
single_new_pop_slice = [single_new_pop(mpoint(1, 1)-1) single_new_pop(mpoint(1, 2)+1)];
single_new_pop_slice = generate_continuous_path(single_new_pop_slice, G, x);
%max_iteration = max_iteration + 1;
if max_iteration >= 100000
break
end
end
if max_iteration >= 100000
new_pop{i, 1} = pop{i, 1};
else
new_pop{i, 1} = [single_new_pop(1, 1:mpoint(1, 1)-1), single_new_pop_slice(2:end-1), single_new_pop(1, mpoint(1, 2)+1:m)];
%mpoint的前面的和后面的不变,中间用一段新的连续的路径替换
end
% single_new_pop_slice再次初始化
single_new_pop_slice = [];
else
new_pop{i, 1} = pop{i, 1};
end
end
3 仿真结果
4 参考文献
[1]王浩, 方露, 庄奎,等. 基于遗传算法扫地机器人设计路径规划[J]. 中阿科技论坛(中英文), 2021(4):3.
[2]荀燕琴, 田竹梅, 任国凤,等. 基于遗传算法的智能扫地机器人路径规划研究[J]. 高师理科学刊, 2020, 40(3):5.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。