【路径规划】基于matlab GUI改进的遗传算法机器人栅格地图避障路径规划【含Matlab 703期】
一、遗传算法简介
1 引言
2 遗传算法理论
2.1 遗传算法的生物学基础
2.2 遗传算法的理论基础
2.3 遗传算法的基本概念
2.4 标准的遗传算法
2.5 遗传算法的特点
2.6 遗传算法的改进方向
3 遗传算法流程
4 关键参数说明
二、部分源代码
function varargout = newGUI(varargin)
% NEWGUI MATLAB code for newGUI.fig
% NEWGUI, by itself, creates a new NEWGUI or raises the existing
% singleton*.
%
% H = NEWGUI returns the handle to a new NEWGUI or the handle to
% the existing singleton*.
%
% NEWGUI('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in NEWGUI.M with the given input arguments.
%
% NEWGUI('Property','Value',...) creates a new NEWGUI or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before newGUI_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to newGUI_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help newGUI% Last Modified by GUIDE v2.5 02-Feb-2020 22:22:09% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @newGUI_OpeningFcn, ...'gui_OutputFcn', @newGUI_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);
if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});
endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
elsegui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT% --- Executes just before newGUI is made visible.
function newGUI_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to newGUI (see VARARGIN)% Choose default command line output for newGUI
handles.output = hObject;% Update handles structure
guidata(hObject, handles);% UIWAIT makes newGUI wait for user response (see UIRESUME)
% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.
function varargout = newGUI_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structure
varargout{1} = handles.output;function edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents of edit1 as a double% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');
endfunction edit2_Callback(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit2 as text
% str2double(get(hObject,'String')) returns contents of edit2 as a double% --- Executes during object creation, after setting all properties.
function edit2_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');
endfunction edit3_Callback(hObject, eventdata, handles)
% hObject handle to edit3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit3 as text
% str2double(get(hObject,'String')) returns contents of edit3 as a double% --- Executes during object creation, after setting all properties.
function edit3_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');
end% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)global G;
global X_min_path;
global Y_min_path;
global Min_path_value;
global Mean_path_value;
global colorbar1;NP=get(handles.edit4,'String');% 种群数量
max_gen=get(handles.edit3,'String');
a=get(handles.edit1,'String');
b=get(handles.edit2,'String');
NP=str2double(NP);
a=str2double(a);
b=str2double(b);
max_gen=str2double(max_gen);
% disp([NP,a,b])
% disp(G)p_start = 0; % 起始序号
p_end = size(G,1)*size(G,2)-1; % 终止序号%NP = 200; % 种群数量
%max_gen = 50; % 最大进化代数
pc = 0.8; % 交叉概率
pm = 0.2; % 变异概率%init_path = [];
z = 1;
new_pop1 = {}; % 元包类型路径
[y, x] = size(G);
% 起点所在列(从左到右编号1.2.3...)
xs = mod(p_start, x) + 1;
% 起点所在行(从上到下编号行1.2.3...)
ys = fix(p_start / x) + 1;
% 终点所在列、行
xe = mod(p_end, x) + 1;
ye = fix(p_end / x) + 1;% 种群初始化step1,必经节点,从起始点所在行开始往上,在每行中挑选一个自由栅格,构成必经节点
pass_num = ye - ys + 1;
% disp(pass_num)
% disp(NP);
pop = zeros(NP, pass_num);
for i = 1 : NPpop(i, 1) = p_start;j = 1;% 除去起点和终点for yk = ys+1 : ye-1j = j + 1;% 每一行的可行点can = []; for xk = 1 : x% 栅格序号no = (xk - 1) + (yk - 1) * x;if G(yk, xk) == 0% 把点加入can矩阵中can = [can no];endendcan_num = length(can);% 产生随机整数index = randi(can_num);% 为每一行加一个可行点pop(i, j) = can(index);end
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
《智能优化算法及其MATLAB实例(第2版)》包子阳 余继周 杨杉著 电子工业出版社
【路径规划】基于matlab GUI改进的遗传算法机器人栅格地图避障路径规划【含Matlab 703期】相关推荐
- 【路径规划】基于matlab GUI蚁群算法机器人栅格地图最短路径规划【含Matlab源码 927期】
⛄一.蚁群算法简介 1 引言 在自然界中各种生物群体显现出来的智能近几十年来得到了学者们的广泛关注,学者们通过对简单生物体的群体行为进行模拟,进而提出了群智能算法.其中, 模拟蚁群觅食过程的蚁群优化算 ...
- 【路径规划】基于matlab蚁群优化遗传算法机器人栅格地图最短路径规划【含Matlab源码 1581期】
⛄一.简介 路径规划是实现移动机器人自主导航的关键技术,是指在有障碍物的环境中,按照一定的评价标准(如距离.时间.能耗等),寻找到一条从起始点到目标点的无碰撞路径,这里选取最短距离路径规划的评价标准, ...
- 基于Dijkstra最短路径算法的栅格地图避障路线规划仿真
目录 1.算法仿真效果 2.MATLAB源码 3.算法概述 4.部分参考文献 1.算法仿真效果 matlab2022a仿真结果如下: 2.MATLAB源码 %********************* ...
- 【光学】基于matlab GUI矩阵法和等效界面法光学薄膜对反射率影响【含Matlab源码 2102期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[光学]基于matlab GUI矩阵法和等效界面法光学薄膜对反射率影响[含Matlab源码 2102期] 点击上面蓝色字体,直接付费下载, ...
- 【路径规划】基于matlab GUI多种蚁群算法栅格地图最短路径规划【含Matlab源码 650期】
⛄一.蚁群算法及栅格地图简介 1 蚁群算法 1.1 蚁群算法的提出 蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来寻找优化路径的机率型算法.它由Marc ...
- 【路径规划】基于Bresenham‘s line algorithm实现机器人栅格地图路径规划附matlab代码
1 简介 布雷森汉姆直线演算法(Bresenham's line algorithm)是用来描述两点间决定一条直线的算法,本人发现它可以用于确定栅格地图中两点间直线经过的栅格位置,它会算出一条线段在点 ...
- 【字符识别】基于matlab GUI模板匹配(区域生长法)字母+数字识别【含Matlab源码 1695期】
一.手写大写字母识别技术简介 0 引言 在高校教学过程中,考试是最为普遍的一种教学评估.综合练习的教学手段,随着科技进步,考试阅卷的方式也发生了巨大的变革.传统的阅卷方式主要以人工阅卷为主, 存在效率 ...
- 树莓派红外避障小车python_基于树莓派的环保“捡垃圾”机器人小车(避障、摄像、红外、WIFI)...
项目:基于树莓派的环保"捡垃圾"机器人小车控制平台 功能:避障.锁定某个障碍物 概述: 目前这个控制平台能够识别是"垃圾"只是塑料瓶,核心是利用Arduino控 ...
- 基于STM32F103单片机的智能扫地机器人 循迹避障车 原理图PCB设计
系统功能设计 (末尾附文件) 本系统由STM32F103C8T6单片机核心板.2路红外避障模块.2路按键.风扇驱动.电机驱动.升压模块.锂电池充电模块及电池盒供电组成. 1.按下启动按键后,小车启动, ...
- 【优化调度】基于matlab非支配排序遗传算法求解车辆充电调度优化问题【含Matlab源码 2000期】
⛄一.遗传算法简介 由于国内外人民的生活方式和电动汽车主要购买人群的不同,国内外关于车辆充电调度问题研究的侧重点也不尽相同. 我国地大物博,人口众多,交通复杂.主要从以下方面研究: 1.通过经济手段或 ...
最新文章
- 《幸福资本论》读书笔记
- Spring boot正常启动,访问却报“找不到 localhost 的网页”错误;jpa执行没有数据...
- 3、HTML <a>标签(超链接)
- tea java 代码,TeaVM编译器如何将Java应用程序转换为Javascript,以及如何使用MicroK8管理嵌入...
- javascript闭包—围观大神如何解释闭包
- linux查看link 路径,link_path_walk()路径名查找
- 同时安装sql server和oracle导致系统启动变慢的解决方案
- java 栈和队列实现迷宫代码_使用两个队列实现一个栈
- AndroidStudio_安卓原生开发_搭建AdnroidStudio环境并配置SDK---Android原生开发工作笔记136
- Laravel学习笔记(33)后台切换前台模板(修改默认的加载模版路径)
- 我们如何走到今天:重塑世界的6项创新
- IDEA+Java控制台实现宠物管理系统
- 掌上智维技术支持 App Tech Support
- 计算机主题桌面更改不了,win7怎么更换电脑主题 win7电脑主题更换不了怎么办
- 宽带无法远程连接到计算机,登录校园宽带是显示不能建立远程计算机连接,在别的电脑可以登录 是为什么?...
- SpringBoot整合邮件发送
- Centos7磁盘爆满排查
- 案例分析——收尾工作
- 百度地图WEB服务-地点检索API
- 2019辽宁公务员考试申论模拟题:网络直播发展存在的多重难题
热门文章
- webpack配置路径及hash版本号,利用html-webpack-plugin自动生成html模板
- Cocos2d-x3.0-倾斜列表
- 在WPF控件上添加Windows窗口式调整大小行为
- android:DDMS查看Threads
- Python动态页面抓取超级指南
- 2021-08-27 向量究竟是什么?线性代数的本质,第1章
- vs2013 mfc资源在另一个编辑器中打开
- unity 中画布随相机视野实时变化
- MFC 时间记时器, string 转化为CString
- Atitit sql查询语法 SQL SELECT完整语法	3 1.SELECT语法	3 2.FROM子句	5 3.WHERE子句	6 下面两张表将在后面使用到	7 1.比较运算符	7 2.逻辑