✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab完整代码及仿真定制内容点击👇
🔥 内容介绍
移动机器人路径规划是人工智能领域中的一个重要研究课题。它涉及到如何在一个给定的环境中,使机器人从起点到达目标点的最短路径。在过去的几十年里,许多路径规划算法被提出和研究,其中包括Dijkstra算法、A*算法和动态规划算法。本文将重点探讨这三种算法在移动机器人路径规划中的应用和比较。
Dijkstra算法是一种广泛应用的图搜索算法,它能够找到两点之间的最短路径。该算法通过计算每个节点的最短路径来确定最终的路径。在移动机器人路径规划中,Dijkstra算法可以被用来计算机器人从起点到达目标点的最短路径。然而,由于Dijkstra算法需要计算所有节点之间的距离,对于大规模的图来说,计算复杂度较高,因此在实际应用中并不常用。
A算法是一种启发式搜索算法,它结合了Dijkstra算法的最短路径计算和启发式函数的估计。该算法通过估计每个节点到目标点的距离来选择下一个节点,以减少计算量。在移动机器人路径规划中,A算法可以更高效地找到最短路径。它在实践中被广泛应用,因为它能够在较短的时间内找到最优解。然而,A*算法的性能高度依赖于启发式函数的选择,不同的启发式函数可能导致不同的结果。
动态规划是一种通过将问题划分为子问题,并保存子问题的解来求解复杂问题的方法。在移动机器人路径规划中,动态规划可以被用来计算机器人从起点到达目标点的最短路径。它通过保存每个节点的最短路径来避免重复计算,从而提高计算效率。然而,动态规划算法在处理大规模问题时可能会面临存储空间和计算时间的挑战。
综上所述,Dijkstra算法、A算法和动态规划算法都是移动机器人路径规划中常用的算法。每种算法都有其优点和局限性,选择适当的算法取决于具体的应用场景和需求。对于小规模问题,Dijkstra算法和动态规划算法可能是合适的选择,而对于大规模问题,A算法可能更具优势。此外,针对不同的启发式函数和问题特点,算法的性能也会有所差异。因此,在实际应用中,需要根据具体情况选择最合适的算法。
移动机器人路径规划是一个复杂而又有挑战性的问题,需要综合考虑算法的计算复杂度、准确性和效率。未来的研究方向可以包括改进现有算法的性能,设计更高效的启发式函数,以及应用深度学习等新兴技术来解决路径规划问题。通过不断地研究和创新,我们可以为移动机器人的路径规划提供更好的解决方案,推动人工智能在实际应用中的发展。
📣 部分代码
function varargout = fig3d(varargin)
% FIG3D MATLAB code for fig3d.fig
% FIG3D, by itself, creates a new FIG3D or raises the existing
% singleton*.
%
% H = FIG3D returns the handle to a new FIG3D or the handle to
% the existing singleton*.
%
% FIG3D('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in FIG3D.M with the given input arguments.
%
% FIG3D('Property','Value',...) creates a new FIG3D or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before fig3d_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to fig3d_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 fig3d
% Last Modified by GUIDE v2.5 06-Oct-2021 22:13:58
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @fig3d_OpeningFcn, ...
'gui_OutputFcn', @fig3d_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before fig3d is made visible.
function fig3d_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 fig3d (see VARARGIN)
% Choose default command line output for fig3d
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes fig3d wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = fig3d_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;
global Nf Nresp Xcalname ycalname netname w_s0 ...
decides0 targets lows0 highs0 iplot varp ...
w_s0f decides0f targetsf lows0f highs0f surfi ...
pathname lowsf highsf ...
xplot1I xplot2I DplotI YplotrsI iplot
set(gcf,'Name','Plots','ToolBar','Figure','NumberTitle','off',...
'MenuBar','none')
set(handles.popupmenu1,'Value',iplot);
set(handles.popupmenu2,'Value',varp)
set(handles.popupmenu4,'Value',surfi)
strdes='Desirability';
for i=1:Nresp
strdes=[strdes,['|Response ',int2str(i)]];
end
set(handles.popupmenu1,'String',strdes)
decides=decides0-1;
w_s=w_s0;
lows=lows0;
highs=highs0;
decidesf=decides0f-1;
w_sf=w_s0f;
lowsf=lows0f;
highsf=highs0f;
xtemp=linspace(-1,1,15)';
switch Nf
case 2
xpun=[kron(xtemp,ones(15,1)),kron(ones(15,1),xtemp)];
case 3
xpun=[kron(xtemp,kron(ones(15,1),ones(15,1))),...
kron(ones(15,1),kron(xtemp,ones(15,1))),...
kron(ones(15,1),kron(ones(15,1),xtemp))];
case 4
xpun=[kron(kron(xtemp,kron(ones(15,1),ones(15,1))),ones(15,1)),...
kron(kron(ones(15,1),kron(xtemp,ones(15,1))),ones(15,1)),...
kron(kron(ones(15,1),kron(ones(15,1),xtemp)),ones(15,1)),...
kron(kron(ones(15,1),kron(ones(15,1),ones(15,1))),xtemp)];
end
gridsearch2
Npun=15;a=(Npun+1)/2;b=(Npun-1)/2;
xplot=linspace(-1,1,Npun);
switch Nf
case 2
imax=a+b*xpun(maxind,:);
Dplot=reshape(Des,15,15);
for i=1:Nresp
eval(['Yplotrs_temp=reshape((Yplot{',int2str(i),'}*deltay',int2str(i),'+MMy',int2str(i),')/2,15,15);']);
eval(['Yplotrs{',int2str(i),'}=Yplotrs_temp;']);
end
set(handles.popupmenu2,'Visible','off')
xplot1=(xplot*delta1f+MM1f)/2;
xplot2=(xplot*delta2f+MM2f)/2;
xlabel1='Factor 1';
ylabel1='Factor 2';
case 3
imax=a+b*xpun(maxind,:);
Dplot=reshape(Des,15,15,15);
switch varp
case 1
% 1&2
Dplot=squeeze(Dplot(imax(3),:,:));
for i=1:Nresp
eval(['Yplotrs_temp=reshape((Yplot{',int2str(i),'}*deltay',int2str(i),'+MMy',int2str(i),')/2,15,15,15);']);
Yplotrs_temp=squeeze(Yplotrs_temp(imax(3),:,:));
eval(['Yplotrs{',int2str(i),'}=Yplotrs_temp;']);
end
xplot1=(xplot*delta1f+MM1f)/2;
xplot2=(xplot*delta2f+MM2f)/2;
xlabel1='Factor 1';
ylabel1='Factor 2';
case 2
% 1&3
Dplot=squeeze(Dplot(:,imax(2),:));
for i=1:Nresp
eval(['Yplotrs_temp=reshape((Yplot{',int2str(i),'}*deltay',int2str(i),'+MMy',int2str(i),')/2,15,15,15);']);
Yplotrs_temp=squeeze(Yplotrs_temp(:,imax(2),:));
eval(['Yplotrs{',int2str(i),'}=Yplotrs_temp;']);
end
xplot1=(xplot*delta1f+MM1f)/2;
xplot2=(xplot*delta3f+MM3f)/2;
xlabel1='Factor 1';
ylabel1='Factor 3';
case 3
% 2&3
Dplot=squeeze(Dplot(:,:,imax(1)));
for i=1:Nresp
eval(['Yplotrs_temp=reshape((Yplot{',int2str(i),'}*deltay',int2str(i),'+MMy',int2str(i),')/2,15,15,15);']);
Yplotrs_temp=squeeze(Yplotrs_temp(:,:,imax(1)));
eval(['Yplotrs{',int2str(i),'}=Yplotrs_temp;']);
end
xplot1=(xplot*delta2f+MM2f)/2;
xplot2=(xplot*delta3f+MM3f)/2;
xlabel1='Factor 2';
ylabel1='Factor 3';
end
set(handles.popupmenu2,'Visible','on')
set(handles.popupmenu2,'String','Factors 1&2|Factors 1&3|Factors 2&3')
case 4
imax=[a+b*xpun(maxind,:)];
Dplot=reshape(Des,15,15,15,15);
switch varp
case 1
% 1&2
Dplot=squeeze(Dplot(imax(4),imax(3),:,:));
for i=1:Nresp
eval(['Yplotrs_temp=reshape((Yplot{',int2str(i),'}*deltay',int2str(i),'+MMy',int2str(i),')/2,15,15,15,15);']);
Yplotrs_temp=squeeze(Yplotrs_temp(imax(4),imax(3),:,:));
eval(['Yplotrs{',int2str(i),'}=Yplotrs_temp;']);
end
xplot1=(xplot*delta1f+MM1f)/2;
xplot2=(xplot*delta2f+MM2f)/2;
xlabel1='Factor 1';
ylabel1='Factor 2';
case 2
% 1&3
Dplot=squeeze(Dplot(imax(4),:,imax(2),:));
for i=1:Nresp
eval(['Yplotrs_temp=reshape((Yplot{',int2str(i),'}*deltay',int2str(i),'+MMy',int2str(i),')/2,15,15,15,15);']);
Yplotrs_temp=squeeze(Yplotrs_temp(imax(4),:,imax(2),:));
eval(['Yplotrs{',int2str(i),'}=Yplotrs_temp;']);
end
xplot1=(xplot*delta1f+MM1f)/2;
xplot2=(xplot*delta3f+MM3f)/2;
xlabel1='Factor 1';
ylabel1='Factor 3';
case 4
% 2&3
Dplot=squeeze(Dplot(imax(4),:,:,imax(1)));
for i=1:Nresp
eval(['Yplotrs_temp=reshape((Yplot{',int2str(i),'}*deltay',int2str(i),'+MMy',int2str(i),')/2,15,15,15,15);']);
Yplotrs_temp=squeeze(Yplotrs_temp(imax(4),:,:,imax(1)));
eval(['Yplotrs{',int2str(i),'}=Yplotrs_temp;']);
end
xplot1=(xplot*delta2f+MM2f)/2;
xplot2=(xplot*delta3f+MM3f)/2;
xlabel1='Factor 2';
ylabel1='Factor 3';
case 3
% 1&4
Dplot=squeeze(Dplot(:,imax(3),imax(2),:));
for i=1:Nresp
eval(['Yplotrs_temp=reshape((Yplot{',int2str(i),'}*deltay',int2str(i),'+MMy',int2str(i),')/2,15,15,15,15);']);
Yplotrs_temp=squeeze(Yplotrs_temp(:,imax(3),imax(2),:));
eval(['Yplotrs{',int2str(i),'}=Yplotrs_temp;']);
end
xplot1=(xplot*delta1f+MM1f)/2;
xplot2=(xplot*delta4f+MM4f)/2;
xlabel1='Factor 1';
ylabel1='Factor 4';
case 5
% 2&4
Dplot=squeeze(Dplot(:,imax(3),:,imax(1)));
for i=1:Nresp
eval(['Yplotrs_temp=reshape((Yplot{',int2str(i),'}*deltay',int2str(i),'+MMy',int2str(i),')/2,15,15,15,15);']);
Yplotrs_temp=squeeze(Yplotrs_temp(:,imax(3),:,imax(1)));
eval(['Yplotrs{',int2str(i),'}=Yplotrs_temp;']);
end
xplot1=(xplot*delta2f+MM2f)/2;
xplot2=(xplot*delta4f+MM4f)/2;
xlabel1='Factor 2';
ylabel1='Factor 4';
case 6
% 3&4
Dplot=squeeze(Dplot(:,:,imax(2),imax(1)));
for i=1:Nresp
eval(['Yplotrs_temp=reshape((Yplot{',int2str(i),'}*deltay',int2str(i),'+MMy',int2str(i),')/2,15,15,15,15);']);
Yplotrs_temp=squeeze(Yplotrs_temp(:,:,imax(2),imax(1)));
eval(['Yplotrs{',int2str(i),'}=Yplotrs_temp;']);
end
xplot1=(xplot*delta3f+MM3f)/2;
xplot2=(xplot*delta4f+MM4f)/2;
xlabel1='Factor 3';
ylabel1='Factor 4';
end
set(handles.popupmenu2,'Visible','on')
set(handles.popupmenu2,'String','Factors 1&2|Factors 1&3|Factors 1&4|Factors 2&3|Factors 2&4|Factors 3&4')
end
% Interpolation
[X,Y]=meshgrid(min(xplot1):(max(xplot1)-min(xplot1))/14:max(xplot1),...
min(xplot2):(max(xplot2)-min(xplot2))/14:max(xplot2));
[XI,YI]=meshgrid(min(xplot1):(max(xplot1)-min(xplot1))/50:max(xplot1),...
min(xplot2):(max(xplot2)-min(xplot2))/50:max(xplot2));
DplotI=interp2(X,Y,Dplot,XI,YI);
xplot1I=interp1(min(xplot1):(max(xplot1)-min(xplot1))/14:max(xplot1),...
xplot1,min(xplot1):(max(xplot1)-min(xplot1))/50:max(xplot1));
xplot2I=interp1(min(xplot2):(max(xplot2)-min(xplot2))/14:max(xplot2),...
xplot2,min(xplot2):(max(xplot2)-min(xplot2))/50:max(xplot2));
for i=1:Nresp
YplotrsI{i}=interp2(X,Y,Yplotrs{i},XI,YI);
end
if iplot==1
switch surfi
case 1
surf(xplot1I,xplot2I,DplotI,'Linewidth',0.5)
set(gca,'LineWidth',2)
case 2
if sum(Dplot(:))>0
[c,h]=contour(xplot1I,xplot2I,DplotI,20,'Linewidth',2);
clabel(c,h,'labelspacing',300);
set(gca,'LineWidth',2)
else
set(handles.popupmenu4,'Value',1);
end
case 3
if sum(Dplot(:))>0
contourf(xplot1I,xplot2I,DplotI,20,'Linewidth',1);colorbar;
set(gca,'LineWidth',2)
else
set(handles.popupmenu4,'Value',1);
end
end
title('Desirability','Fontsize',14)
else
switch surfi
case 1
surf(xplot1I,xplot2I,YplotrsI{iplot-1},'Linewidth',0.5)
set(gca,'LineWidth',2)
case 2
[c,h]=contour(xplot1I,xplot2I,YplotrsI{iplot-1},20,'Linewidth',2);
clabel(c,h,'labelspacing',300);
set(gca,'LineWidth',2)
case 3
[c,h]=contourf(xplot1I,xplot2I,YplotrsI{iplot-1},20,'Linewidth',1);colorbar;
set(gca,'LineWidth',2)
end
title(['Response ',int2str(iplot-1)],'Fontsize',14)
end
xlabel(xlabel1,'Fontsize',14)
ylabel(ylabel1,'Fontsize',14)
axis tight
% --- Executes during object creation, after setting all properties.
function figure1_CreateFcn(hObject, eventdata, handles)
% hObject handle to figure1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu1 contents as cell array
% contents{get(hObject,'Value')} returns selected item from popupmenu1
global iplot varp
varp=get(handles.popupmenu2,'Value');
iplot=get(hObject,'Value');
% status=close(fig3d);
% if status==0
% close fig3d
% end
fig3d
% --- Executes during object creation, after setting all properties.
function popupmenu1_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu 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 selection change in popupmenu2.
function popupmenu2_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu2 contents as cell array
% contents{get(hObject,'Value')} returns selected item from popupmenu2
global varp
varp=get(handles.popupmenu2,'Value');
fig3d
% --- Executes during object creation, after setting all properties.
function popupmenu2_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenu2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu 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 selection change in popupmenu3.
function popupmenu3_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu3 contents as cell array
% contents{get(hObject,'Value')} returns selected item from popupmenu3
% --- Executes during object creation, after setting all properties.
function popupmenu3_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenu3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu 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)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on selection change in popupmenu4.
function popupmenu4_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns popupmenu4 contents as cell array
% contents{get(hObject,'Value')} returns selected item from popupmenu4
global surfi
surfi=get(hObject,'Value');
fig3d
% --- Executes during object creation, after setting all properties.
function popupmenu4_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenu4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu 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 pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global pathname
warning off
eval(['mkdir ','''',pathname,'temp',''''])
prompt={'Enter filename (default: .tiff)'};
dlgtitle='Save figure';
definput={'Figure'};
fina=inputdlg(prompt,dlgtitle,[1 40],definput);
eval(['print -dtiff -r200 ''',pathname,'\temp\',fina{1},'.tiff'''])
h=msgbox(['Figure saved in directory \temp as ',...
fina{1},'.tiff']);
prompt={'Enter filename (default: .txt)'};
dlgtitle='Save data';
definput={'Data'};
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global pathname xplot1I xplot2I DplotI YplotrsI iplot
warning off
eval(['mkdir ','''',pathname,'temp',''''])
prompt={'Enter filename (default: .txt)'};
dlgtitle='Save data';
definput={'Data'};
fina=inputdlg(prompt,dlgtitle,[1 40],definput);
switch iplot
case 1
dataplot=[xplot1I',xplot2I',DplotI];
eval(['save ''',pathname,'\temp\',fina{1},'.txt''',' dataplot -ascii'])
otherwise
dataplot=[xplot1I',xplot2I',YplotrsI{iplot-1}];
eval(['save ''',pathname,'\temp\',fina{1},'.txt''',' dataplot -ascii'])
end
h=msgbox(['Data saved in directory \temp as ',...
fina{1},'.txt in format [x axis,y axis,data matrix]']);
⛳️ 运行结果
🔗 参考文献
[1] 潘成浩,中北大学经济与管理学院,山西 太原,潘成浩,等.基于松弛Dijkstra算法的移动机器人路径规划[J].计算机与现代化, 2016(11):5.DOI:10.3969/j.issn.1006-2475.2016.11.004.
[2] 王旭,刘毅,李国燕.基于改进Dijkstra算法的移动机器人路径规划[J].国外电子测量技术, 2022, 41(6):7.DOI:10.3969/j.issn.1671-637x.2022.02.017.
[3] 贾文友,魏文涛,朱良恒,等.移动机器人改进Dijkstra算法下路径规划及可视化研究[J].徐州工程学院学报:自然科学版, 2021, 36(2):5.
[4] 王维.基于改进A~*算法的移动机器人路径规划的研究[D].西北师范大学,2019.
🎈 部分理论引用网络文献,若有侵权联系博主删除
🎁 关注我领取海量matlab电子书和数学建模资料
👇 私信完整代码和数据获取及论文数模仿真定制
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化
2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
2.图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
3 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化
4 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化
5 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化
6 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化
7 电力系统方面
微电网优化、无功优化、配电网重构、储能配置
8 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长
9 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合