资源简介
模拟清扫机器人搜寻垃圾,以MATLAB作为仿真环境,实现算法设计
代码片段和文件信息
clear all
close all
clc
global Minesweeper Mine Input maxTicks innum midnum outnum
maxTicks=2000;
K_No=30;
Minesweeper=0+(100-0)*rand(K_No2); %初始化K_No个清扫机器人的位置,位置坐标为0-100之间的随机数
Mine=0+(100-0)*rand(402); %初始化40个垃圾的位置,位置坐标为0-100之间的随机数
for i=1:K_No
for j=1:40
dist(ij)=sqrt((Minesweeper(i1)-Mine(j1)).^2+(Minesweeper(i2)-Mine(j2)).^2); %求30个清扫机器人与40个垃圾之间的距离
end
end
[OrderIndex]=min(dist[]2); %求每个清扫机器人与最近的地雷的距离和最近垃圾的位置的标号
ClosestMine=Mine(Index:); %找出与清扫机器人最接近的垃圾的位置
m_vLookAt=rands(K_No2); %将清扫机器人初始视线方向,未归一化
Input=normalized_ch(m_vLookAtClosestMineMinesweeper);%归一化
innum=4; %输入层、隐含层、输出层的各神经元个数
midnum=8;
outnum=2;
CodeL=innum*midnum+midnum*1+midnum*outnum+outnum*1; %总的神经元的个数
MAXGEN=20;%迭代次数
Size=K_No; %群体大小 即为小车设置30个不同的运动轨迹
FieldDD=rep([-1;1][1CodeL]);
Chrom=crtrp(SizeFieldDD); %创建初始权值阈值
%% 遗传算法适应性分数计算部分,适应性分数即目标函数值
ObjV=zeros(Size1); %小车初始适应性分数为0
ObjV=fun_ch(Chrom);
%%
gen=0;
while gen FitnV=ranking(ObjV);
SelCh=select(‘rws‘ChromFitnV1); %选择
SelCh=recombin(‘recdis‘SelCh0.7); %交叉
SelCh=mutate(‘mutbga‘SelChFieldDD); %变异
ObjVOff=fun_ch(SelCh); %计算子代目标函
相关资源
- matlab 螺旋波模拟程序,基于FHN模型
- 基于MATLAB中级联分类器的人脸五官分
- 基于人工神经网络的信号预测在Matl
- 牛顿法matlab程序
- 共轭梯度法相关matlab程序
- 用matlab编写的小动画程序钟摆
- 基于改进遗传算法的路径规划MATLAB实
- RANSAC去除误匹配算法
- MATLAB图像二值化程序源代码
- 伪彩色 MATLAB代码
- (eWiley) Optimum Array Processing最优阵列
- Matlab 图像链码获取
- 任意大小矩阵的zigzag排序Matlab程序
- matlab图像拼接算法
- matlab求解共线方程公式以及生成等高
- 有关emd分解的matlab源程序
- 离散粒子群算法DPSOMatlab代码
- Hata传播模型Matlab代码
- 基于matlab的汉字识别系统和
- matlab批量读入excel表格,可以读文件和
- matlab画ROC曲线
- matlab计算表面曲率
- 禁忌搜索解决背包问题matlab
- 蚁群算法解决背包问题matlab
- matlab遗传算法解决背包问题
- matlab实现meanshift图像分割
- MATLAB常规均匀圆阵波束形成
- 小波基构造函数 Matlab函数
- 多种插值算法Matlab实现--数学建模
- 智能优化算法及其MATLAB源程序
评论
共有 条评论