您现在的位置:首页 >> 技术文章 >> MATLAB技术 >> 内容

MATLAB代做|FPGA代做|Python代做--带便函数权值的最短路径

时间:2019-2-2 16:22:18 点击:

  核心提示:带便函数权值的最短路径...
function [distance,path]=zuiduanlujing(D,start1,terminal);
%求带便函数权值的最短路径
%嵌套调用函数
[B,F]=datainfun;    %获得路段距离和公路铁路性质数据数据
for k=1:7
    39+k
    for t=1:15
start1=39+k;
terminal=t;
D=B;    % 赋值
%function [d,EE]=dijkstra(D,start1,end)
[m,n]=size(D);
path=[];
d=inf.*ones(1,m);
d(1,start1)=0;   %用以标记此刻各顶点离集合距离,初始为inf
dd=zeros(1,m);  %标记顶点集合,初始为零
dd(1,start1)=1;  
ind=zeros(1,m);   %给逆向路径数组
y=start1;
length1=zeros(1,m);  %定义初始的各位置的路径长度(包含运输费用的计算)
%DD=zeros(m,m);
%DD(y,y)=1;
time=0;
while length(find(dd==1))<m  %当集合未包含所有的顶点时
    for i=1:m   %以y为起始点时更新d(i)
        if dd(i)==0  
            temp=length1(i);   %记录此长度值
            if(F(y,i)==1)
                length1(i)=length1(y)+B(y,i); %计算长度
            else
                length1(i)=0;    %铁路运输结束
            end
            t=d(i); %标记记录
            % volum=(d(y)-fun(length(y))); %就算公路段前的运输费
            d(i)=min(d(i),fun(length1(i)).*F(y,i)+(d(y)-fun(length1(y))*F(y,i))+D(y,i)*~F(y,i));  %更新tag,包含多方面
            if(t>d(i))  %若变化后d(i)值小于原来值
                ind(i)=y;   %最短路径的前一节点 
            else
                length1(i)=temp;    %恢复长度
            end
        end
    end
    ddd=inf;
    for i=1:m
        if dd(i)==0&&d(i)<ddd  %需要记录所有值
            ddd=d(i);   %有多个点时,取最后一个
            yy=i;
        end
    end
    %yy=find(d==ddd);    %找到这样点的坐标
   % counter=counter+1;
    %DD(y,yy(1,1))=counter;
    %DD(yy(1,1),y)=counter;
    y=yy;
    dd(1,y)=1;

end
here1=terminal;
    while 1 %用于输出路径
        path(end+1)=terminal;
    if ind(terminal)~=0
        terminal=ind(terminal);
    else
        break;
    end
    end
    path=fliplr(path);   %正序输出最短路径
    
    distance=d(here1)
    end
end
end

联系:highspeedlogic

QQ :1224848052

微信:HuangL1121

邮箱:1224848052@qq.com

网站:http://www.mat7lab.com/

网站:http://www.hslogic.com/

微信扫一扫:

作者:带便函数权值的最短路径 来源:带便函数权值的最短路径
  • 您是如何找到本站的?
  • 百度搜索
  • Google搜索
  • 查阅资料过程中
  • 论坛发现
  • 百度贴吧发现
  • 朋友介绍
本站最新成功开发工程项目案例
相关文章
  • 没有相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
  • matlab代做|matlab专业代做|matlab淘宝代做|matlab代写(www.hslogic.com) © 2019 版权所有 All Rights Reserved.
  • Email:highspeed_logic@163.com 站长QQ: 1224848052

    专业代做/代写/承接、MATLAB、SIMULINK、FPGA项目、博士/硕士/本科毕业设计、课题设计、论文,毕业论文,Coursework、Eassy、Assignment