数学建模公交线路问题


该程序利用迪杰斯特拉算法经行求解,使用该代码前最好先阅读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


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)