数学建模社区-数学中国

标题: matlab编写dijkstare算法出现错误,求解谢谢!!! [打印本页]

作者: 纽约车    时间: 2015-7-4 14:47
标题: matlab编写dijkstare算法出现错误,求解谢谢!!!
%dijsk最短路径算法
clear,clc
G=[0 5 15 inf 10 17 inf inf inf;
    6 0 inf 12 inf 10 20 14 inf;
    15 inf 0 18 inf inf inf inf inf;
    inf 12 18 0 inf inf inf 7 14;
    10 inf inf inf 0 16 inf inf inf;
    17 10 inf inf 16 0 15 inf inf;
    inf 20 inf inf inf 15 0 11 inf;
    inf 14 inf 7 inf inf 11 0 9;
    inf inf inf 14 inf inf inf 9 0;];
%邻接矩阵  
N=size(G,1); %顶点数
v0=1; %源点  
v1=ones(1,N); %除去原点后的集合
v1(v0)=0;
%计算和源点最近的点
D=G(v0,:);
while 1   
    D2=D;   
    for i=1:N      
        if v1(i)==0            
            D2(i)=inf;        
        end     
    end   
    D2      
    [Dmin id]=min(D2);   
    if isinf(Dmin),error,
    end      
    v0=[v0 id] %将最近的点加入v0集合,并从v1集合中删除     
    v1(id)=0;           
    if size(v0,2)==N,break;end     
    %计算v0(1)到v1各点的最近距离      
    fprintf('计算v0(1)到v1各点的最近距离\n');v0,v1     
    id=0;      
    for j=1:N %计算到j的最近距离         
        if v1(j)
            for i=1:N                 
                if ~v1(i) %i在vo中                     
                    D(j)=min(D(j),D(i)+G(i,j));               
                end                  
                D(j)=min(D(j),G(v0(1),i)+G(i,j));            
            end        
        end   
    end      
    fprintf('最近距离\n');D     
    if isinf(Dmin),error,end
end
v0   
%>> v0


作者: 纽约车    时间: 2015-7-4 14:50
笑脸那里是:这个符号

作者: 纽约车    时间: 2015-7-4 14:50
笑脸那里是:这个符号

作者: 纽约车    时间: 2015-7-4 14:50
笑脸那里是:这个符号

作者: 森之张卫东    时间: 2015-7-10 21:32
我的电脑能运行,不知道你的到底是啥问题?

部分结果.PNG (110.14 KB, 下载次数: 127)

部分结果.PNG






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5