• 大小: 14.36MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-25
  • 语言: 其他
  • 标签: 数学建模  

资源简介

该程序利用迪杰斯特拉算法经行求解,使用该代码前最好先阅读Readme.doc

资源截图

代码片段和文件信息

%该程序用于读取原始数据

%读取公汽线路的原始数据
%Pant_no中保存了
%线路编号;
%线路的票价方式(1表示单一票价,2表示分段计价);
%线路的方式(3表示上行,4表示下行,5表示环形,6表示上行和下行一样的)
%Path_num中保存了每条线路两个线路的站点个数
%Path_states中保存了每条线路的站点号和顺序
data_gj = xlsread(‘E:\代码\data_gongjiao.xls‘‘Sheet2‘‘A1:CI2080‘);
%筛选数据
[xy] = size(data_gj);
Path_no = zeros(x/43);
%求线路信息
%上行3,下行4,环形5,上下一样的6,单一票价1,分段计价2
for i = 1:x/4
    Path_no(i1) = data_gj((i-1)*4+11);%保存线路编号
    Path_no(i2) = data_gj((i-1)*4+21);%保存计费方式
    if data_gj((i-1)*4+31) > 5
        Path_no(i3) = 6;%上行和下行一样的情况,用6表示
    else
        Path_no(i3) = data_gj((i-1)*4+31);%保存行驶方式
    end
end

%求每条线路的站点顺序
Path_states = zeros(2*x/4y);%保存对应线路所经过的站点
for i = 1:x/4
    if data_gj((i-1)*4+31) > 5%如果没有标志,表示是上行和下行相同的
        Path_states((i-1)*2+1:) = data_gj((i-1)*4+3:);
        Path_states((i-1)*2+2:) = data_gj((i-1)*4+3:);%顺序倒置
        count = 0;
        for k = 1:y
            if Path_states((i-1)*2+2k) <= 10000
                count = count + 1;
            end
        end
        if mod(count2) == 0
            for j = 1:count/2
                temp = Path_states((i-1)*2+2j);
                Path_states((i-1)*2+2j) = Path_states((i-1)*2+2count - j);
                Path_states((i-1)*2+2count - j) = temp;
            end
        else
            for j = 1:(count-1)/2                               %*************************(count/2)-1
                temp = Path_states((i-1)*2+2j);
                Path_states((i-1)*2+2j) = Path_states((i-1)*2+2count-j+1);
                Path_states((i-1)*2+2count-j+1) = temp;
            end
        end
    end
    if data_gj((i-1)*4+31) == 3%等于3表示上行的
        Path_states((i-1)*2+11:end-1) = data_gj((i-1)*4+32:end);
        Path_states((i-1)*2+21:end-1) = data_gj((i-1)*4+42:end); 
        Path_states((i-1)*2+1end) = NaN;
        Path_states((i-1)*2+2end) = NaN;
    end
    if data_gj((i-1)*4+31) == 5%表示环形的
        Path_states((i-1)*2+11:end-1) = data_gj((i-1)*4+32:end);
        Path_states((i-1)*2+21:end-1) = data_gj((i-1)*4+42:end);
        Path_states((i-1)*2+1end) = NaN;
        Path_states((i-1)*2+2end) = NaN; 
    end
end

%求每条线路上的站点数
Path_num = zeros(2*x/41);%保存每条线路的站点数
for i = 1:x/4
    count1 = 0;
    count2 = 0;
    for k = 1:y
        if Path_states((i-1)*2+1k) <= 10000
            count1 = count1 + 1;
        end
        if Path_states((i-1)*2+2k) <= 10000
            count2 = count2 + 1;
        end
    end
    Path_num((i-1)*2+1) = count1;
    Path_num((i-1)*2+2) = count2;
end

%读取地铁线路的原始数据
%T_num保存每条地铁线路的站点数和地铁编号
%T_states保存每条地铁线路的站点
%D1保存T1地铁站和公汽站的关系
%D2保存T2地铁站和公汽站的关系
%D1_num保存T1每个地铁站对应的公汽站数
%D2_num保存T2每个地铁站对应的公汽站数
D1 = xlsread(‘E:\代码\data_gongjiao.xls‘‘Sheet3‘‘A1:F23‘);
D2 = xlsread(‘E:\代码\data_gongjiao.xls‘‘Sheet3‘‘A25:F42‘);
%对地铁数据进行处理
T_states(1:) = D1(:1)‘;%第一列为地铁1号线路
T1 = T_states(1:);
if mod(length(T1)2) == 0
    for i = 1:length(T1)/2
        temp = T1(i);
        T1(i) = T1(l

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4610  2011-08-22 05:23  25组程序包\data_gongjiao.m

     文件     257024  2011-08-21 10:18  25组程序包\data_gongjiao.xls

     文件    9154161  2011-08-21 23:15  25组程序包\data_question_1.mat

     文件    9580921  2011-08-21 22:17  25组程序包\data_question_2.mat

     文件        731  2011-08-22 00:27  25组程序包\decide.m

     文件       3488  2011-08-21 08:26  25组程序包\Dijkstra.m

     文件        741  2011-08-21 08:26  25组程序包\Floyd.m

     文件        296  2011-08-21 23:40  25组程序包\getOrder.m

     文件        408  2011-08-21 20:32  25组程序包\getResult.m

     文件       2458  2011-08-21 08:26  25组程序包\Min_data.m

     文件       2852  2011-08-21 22:05  25组程序包\model1_quanzhong.m

     文件      10078  2011-08-22 05:36  25组程序包\model2_quanzhong.m

     文件        921  2011-08-21 23:26  25组程序包\model_solve.m

     文件      38912  2011-08-22 05:23  25组程序包\Readme.doc

     文件       2713  2011-08-21 08:26  25组程序包\ShortestPath_Djk.m

     文件        658  2011-08-22 00:25  25组程序包\xuhao.m

     目录          0  2011-08-22 05:23  25组程序包

----------- ---------  ---------- -----  ----

             19060972                    17


评论

共有 条评论