《道路交通工程系统分析.》由会员分享,可在线阅读,更多相关《道路交通工程系统分析.(20页珍藏版)》请在金锄头文库上搜索。
1、课 程 设 计课 程 名 称 道路交通工程系统分析 设 计 题 目 交通系统分析应用程序设计 姓 名 专 业 年 级 交通工程2009级 学 号 指 导 教 师 成 绩 日 期 2012 年 7 月 6 日 评 语指导教师: 2012年 月 日 目录1 线性归划.3 1.1 模型及分析.3 1.2 Matlab求解方法.3 1.3 Lingo求解方法.42 运输规划.6 2.1 模型及分析.6 2.2 Lingo求解方法.83 整数规划.9 3.1 模型及分析.9 3.2 Lingo求解方法.94 图与网络分析.11 4.1 模型及分析.11 4.2 Matlab求解方法.115 预测分析.1
2、2 5.1 模型及分析.12 5.2 R软件求解方法.16 5.3 Excel求解方法.176 参考资料 .181 线性规划 实例:某桥梁工地用一批长度为8.4m的角钢(数量充分多)制造钢桁架,因构造要求需将角钢截成三种不同规格的短料:2m、3.5m、4m。这三种规格短料需求量分别为100根、50根、50根。试问怎样截料才能使废料最少。1.1 模型分析 这个问题是线性规划中的截料优化问题,经过分析后可以知道该批角钢有六种截法如表1所示钢材截取方法 表1长度根 数截法一二三四五六2m2200043.5m1010204.5m011200废料长(m)0.90.40.90.41.41.4所以上述问题下
3、列数学模型来表达: 该问题为线形规划问题,为求得最优解,下面分别用Matlab和Lingo求解。1.2 用Matlab方法求解该问题化为标准模型如下所示。 用命令:x,fval= =linprog(c,A,b,A1,b1,LB,UB)在MATLAB中求解。编写M文件如下: c=0.9,0.4,0.9,0.4,1.4,0.4;A=;b=;A1=2,2,0,0,0,4;1,0,1,0,2,0;0,1,1,2,0,0; b1=100;50;50; LB=0;0;0;0;0;0; UB=; x,fval=linprog(c,A,b,A1,b1,LB,UB)图1 线性规划模型Matlab计算结果图如图1
4、所示:求得的最佳方案为 , 1.3 用Lingo方法求解 在lingo模型中输入以下代码(如图2所示):min=0.9*x1+0.4*x2+0.9*x3+0.4*x4+1.4*x5+0.4*x6;2*x1+2*x2+4*x6=100; x1+x3+2*x5=50;x2+x3+2*x4=50;x1=0 ;x2=0 ;x3=0 ;x4=0 ;x5=0 ;x6=0 ; 点击运行后得到最优解为: , 所以取25根全截4m的短料,25根全截3.5m短料,25根全截2m短料能达到最优图2 线性规划模型Lingo代码图图3 线性规划模型Lingo计算结果图2 运输问题实例:某市区交通期望图有三个起点和三个终
5、点,始点发生的出行交通量 、终点吸引的出行交通量 及始终点之间的旅行费用如表2所示,问如何安排出行交通量 才能使总的旅行费用最小?各OD点间出行费用表 表2始点点旅行费用终点D1D2D3aiO154230O2104730O398430bj2030501002.1模型及分析该问题属于交通分配问题。如表2所示,可设1,为车辆出行的始点,为各始点发生的出行交通量。,为出行的终点,为各终点吸引的出行交通量。总的出行交通量为N。,设从始点到终点的出行量为,出行费用为。则总的出行费用为:现在的问题是如何分配出行交通量,使总出行费用为最少。即找出,满足且使 最小。本题交通分配问题可用lingo软件求解,求解
6、过程如下2.2 用Lingo方法求解 在Lingo模型中输入下列代码(如图4所示): sets: row/1,2,3/:a; arrange/1,2,3/:b; link(row,arrange):c,x; endsets data: a=30,40,30; b=20,30,50; c=5,4,2, 10,4,7, 9,8,4; enddata OBJmin=sum(link(i,j):c(i,j)*x(i,j); for(row(i):sum(arrange(j):x(i,j)=a(i);); for(arrange(j):sum(row(i):x(i,j)=b(j);); for(link
7、(i,j):x(i,j)=0;); end点击运行计算可得:旅行费用最小为430(如图5所示) 图4 运输模型Lingo代码图图5 运输模型Lingo计算结果图3 整数规划 实例:用Lingo求解下列问题: 3.1模型及分析将上述模型修改如下: 该整数规划问题可用Lingo进行求解,求解过程如下3.2 用Lingo方法求解在Lingo模型中输入下列代码(如图6所示): sets: num_i/1.3/:b; num_j/1.3/:x,c; link(num_i,num_j):a; endsets data: b=-4,3,1; c=4,3,2; a=-2,5,-3, 4,1,3, 0,1,1;
8、 enddata OBJmin=sum(num_j(j):c(j)*x(j); for(num_i(i): sum(num_j(j): a(i,j)*x(j)=b(i);); for(num_j(j):bin(x(j););点击运行计算得:, (如图7所示) 图6 整数规划模型Lingo代码图图7 整数规划模型Lingo计算结果图4 图与网络分析 实例:求所示的网络中最大流。图84.1模型及分析 这是个求解最大流问题,可用Matlab求解,具体的求解过程如下4.2 用Matlap方法求解在Command Window中输入以下代码(如图9所示): n=5;C=0 4 2 0 0 0 0 4 3 0 0 0 0 3 1 0 0 0 0 3 0 0 0 0 0 for(i=1:n)for(j=1:n)f(i,j)=0;end;end for(i=1:n)No(i)=0;d(i)=0;end while(1) No(1)=n+1;d(1)=Inf; while(1)pd=1; for(i=1:n)if(No(i) for(j=1:n)if(No(j)=0&f(i,j)d(i)d(j)=d(i);end elseif(No(j)=0&f(j,i)0) No(