前段时间出于偶然的机遇,自己通过对Dijkstra算法的学习以及较为浅显的研究,写了Dijkstra最短路径算法的matlab程序,并且利用Floyd算法对同样的数据进行验证。
曾经有段时间我一直在思考自己为什么要学习这些算法呢?研究这些算法的目的是为了解决怎样的实际问题呢?或许一开始我学习算法只是出于对算法的了解。现在我越来越觉得算法的学习,不仅仅要学会使用这些算法去解决实际的问题,更是一种思维的跨越。对于同样的问题,不同的求解算法的出发点不同,解决问题的方式也有所差异。在学习相关的思维模式之后,有利于以后算法之间的融合以及互补使用。
最优化问题在工程实践中有着十分重要的作用,比如运载火箭的最优控制问题,通过利用相关的优化算法或者现代先进的控制算法可以对控制回路中的相关参数进行最优化,提升控制性能,节约燃料或者减小成本。所以研究最优化算法的必要性不可忽视。个人能力有限,欢迎更多的专家批评指正,互相交流,共同进步。
在本实验中,将最短路径问题形象的用二维矩阵的形式表现出来,便于分析。最后附上我的实验程序代码:
%%%%%%%%%%%%%Dijkstra最短路径算法%%%%%%%%%%%%%%%%
clc;
clear all;
close all;
A=10*rand(6,6);
for i=1:6
A(i,i)=0;
%地点1到地点1距离为0
end
A(2,4)=inf; %地点2到4没有通路
A(3,5)=inf; %地点3到5没有通路
A
dis=A(1,:);