• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: Matlab
  • 标签: ksp  删除算法  

资源简介

写的用于求多条最短路径的删除算法,还有dijstra算法,更新最短路径树等子函数实现

资源截图

代码片段和文件信息

function    Pset=deletion(comksten)
    Pset=zeros(klength(com));%k条最短路径集合
    %*****************step 1 Dijkstra求第一条最短路径*******************%
    [tree path Dist]=Dijkstra(comlength(com)sten);%first shortest path by dijkstra
    %k条最短路径集合
   
    sp_num=1;%******当前最短路径数***********
    for tian=1:length(path)
        Pset(sp_numtian)=path(tian);
    end
    oringnal_dem=length(com);
    rep=[0;0];
    rep_num=0;%扩展次数
    N=com;
    next_change_node=0;
    %**********************step 2******************************%
    while sp_num        i=2;
        stepflag=1;
        while stepflag
              %*********************step3 step4********************% 
        if (length(find(N(path(i):)1)&&isempty(find(rep(2:)==path(i)))
             rep_num=rep_num+1;
             rep_element=[oringnal_dem+rep_num path(i)];%*****扩展对************%
             rep=[rep rep_element‘];
             N=addedge(Nrep_element(2)rep_element(1)path);
             next_change_node=path(i+1);
             follownodeflag=i+1;
             stepflag=0;
             Dist=[Dist inf];
             tree(rep_element(1))=-1;
             
             %%%修改树%%%
             [tree  Dist]=tree_change(Ntreerep_element(1)Distst);
        elseif (length(find(N(path(i):)1)&&(~isempty(find(rep(2:)==path(i))))
            nodeflag=1;
            j=i+1;
            while nodeflag
                if isempty(find(rep(2:)==path(j)))
                    next_change_node=path(j);
                     follownodeflag=j;
                    nodeflag=0;
                else
             

评论

共有 条评论