目录1 线性规划 (1)1.1 模型及分析 (1)1.2 Matlab求解方法 (2)1.3 Lingo求解方法 (3)2 运输规划 (4)2.1 模型及分析 (5)2.2 Lingo求解方法 (6)3 整数规划 (8)3.1 模型及分析 (9)3.2 LINGGO求解方法 (9)4 图与网络分析 (11)4.1 模型及分析 (11)4.2 Matlab求解方法 (11)5 预测分析 (14)5.1 货运量预测 (14)5.1.1 模型及分析 (14)5.1.2 R软件求解方法 (14)5.1.3 Excel求解方法 (15)5.2 综合客运量预测 (17)5.2.1模型及分析 (17)5.2.2用Excel里的模型求解 (17)6参考文献 (19)1 线性规划某地段的地面剖面图如图1所示(折线ABCD ),拟在AD 之间修建一条公路。
修筑公路除一般的建造费用外,由于填挖土方不平衡而需要增加的额外费用为1=6M V ∆∆元/m3 ,其中V ∆为填挖不平衡土方量(公路填挖宽度为10m );由于纵坡而引起汽车额外的油料费用(设计年限的总费用)为2=3000i M ∆元/m ,其中i 为纵坡度。
问如何设计纵坡才能使这些附加的费用为最少? 要求最大纵坡不大于10%,并且1230,0,0i i i ≥≤≥。
因坡度不大,公路长度可按水平距离计算,即''''400AB B C C D m ===。
2050100高程(m)4008001200水平距离(m)图1 某路段的地面线高程1.1 模型及分析原问题可用如下的数学模型来表达:()1212min 240001206000z x x x x =--+-12121212901040..50500x x x x s t x x x x ≤⎧⎪≥⎪⎪-≤⎪⎨≥⎪⎪≤⎪-≥⎪⎩ 当012021≤--x x 时,则目标函数为:2118000300002880000m in x x z ++-=这时,需增加一个附加约束条件: 012021≤--x x 所以数学模型为:12min 28800003000018000z x x =-++12121212121290104050..500120,0x x x x x s t x x x x x x x ≤⎧⎪≥⎪⎪-≤⎪≥⎪⎨≤⎪⎪-≥⎪+≥⎪⎪≥⎩ 该问题为线形规划问题,为求得最优解,可用MATLAB 和LINGO 求解。
1.2 Matlab 求解方法将上述列出的数学模型转成标准模型,如下所示。
12min 28800003000018000z x x =-++ cx Z =min12121212121290104050..? ..11500120,0x x x x Ax b x s t s t A x b x LB x UBx x x x x x ≤⎧⎪-≤-⎪⎪-≤≤⎧⎪-≤-⎪⎪=⎨⎨≤⎪⎪≤≤⎩⎪-+≤⎪--≤⎪⎪≥⎩ 用命令:[x ,fval]= =linprog (z ,A ,b ,A1,b1,LB ,UB )在MATLAB 中求解。
编写M 文件如下:(如图2所示)z=[30000,18000];A=[1,0;0,-1;1,-1; -1,0;0,1;-1,1;-1,-1]; b=[90;-10;40;-50;50;0;-120]; A1=[]; b1=[]; LB=[0;0]; UB=[];[x,fval]=linprog(z,A,b,A1,b1,LB,UB)图2 MATLAB求解结果由于MATLAB软件不能代入计算常数项,所以用3000=120000(元),得到最优解为:170x m =,250x m=,min120000z=元1.3 Lingo求解方法在模型窗口中输入如下代码:min=-2880000+30000*x1+18000*x2;x1<=90;x2>=10;x1-x2<=40;x1>=50;x2<=50;x1-x2>=0;x1+x2>=120;x1>=0;x2>=0;输入过程和计算结果见下图3和图4.图3 LINGO输入过程图4 LINGO计算结果2 运输规划假设某平衡物资问题有三个产地i O (i=1,2,3)和四个销地j D (j=1,2,3,,4),始点i O 需要运出的物资量为i a 、终点j D 需要此物资的总量为j b ;及各产销点之间的运输费用单价如表2所示,出行总量15ijN a b===∑∑。
试求系统运输费用最小的运输费用方案ij f (i=1,2,3,4)。
表1 各OD 点间出行时耗表2.1 模型及分析在平衡物资运输的研究中,经常遇到这样的分配问题。
设1O ,2O ,…,m O 为物资产地,相应地1a ,2a ,…,m a 相应的物资运出量。
1D ,2D ,…,n D 为物资销地,1b ,2b ,…,n b 为需要此物资的总量。
总的运输量为N 。
那么ija bN ==∑∑,设从产地m O 到销地n D 的运输量为ijf ,运输费用为ij C ,则总的运输费用为: ijij C Cf =∑∑。
现在的问题是如何分配运量ijf使得总的运输费用为最少。
即找出ijf,满足0ijf≥ (i=1,2,…,m ; j=1,2,…,n)iji f a =∑ (i=1,2,…,m ) ijj fb =∑ (j=1,2,…,n )且使ijij C Cf =∑∑最小。
2.2 Lingo求解方法(1)程序sets:row/1,2,3/:a;arrange/1,2,3,4/:b;link(row,arrange): c,x;endsetsdata:a=5,4,6;b=4,2,3,6;c=6,22,5,6,3,10,4,8,1,8,2,1;enddata[OBJ]min=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(i,j):x(i,j)>=0;);End在模型窗口中输入上述代码,然后点击工具条上的solve按钮即可。
如图5所示:图5 运输规划模型LINGO程序图(2)计算结果由上述过程解得该系统最小总运输费为59,如图6所示。
图6 运输规划模型LINGO 总运输费用图由图7可看出最优系统相应的分配情况是:从1O 到1D 的出行量为2,从1O 到3D 的出行量是3;从2O 到1D 的出行量是2,从2O 到2D 为2;从3O 到4D 的出行量为6,其余始点到终点的出行量均为0。
图7 运输规划模型交通分配图3 整数规划现用集装箱托运甲、乙两种货物,每箱的体积、质量、可获得利润及托运所受限制见表2。
问两种货物各托运都少箱可获利最大?表2 每箱货物的体积、质量、可获利润及托运所受限制3.1 模型及分析设1x 、2x 分别为甲、乙两种货物的托运箱数,则此问题的线性规划数学模型为:12max 129z x x =+1212124520..28,0x x s t x x x x +≤⎧⎪+≤⎨⎪≥⎩且为整数 3.2 LINGGO 求解方法(1)程序 sets: num_i/1,2/:b; num_j/1,2/:x,c; link(num_i,num_j):a; endsets data: b=20,8; c=12,9; a=4,5,2,1; enddata[OBJ]max=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):x(j)>=0;); for(num_j(j):gin(x(j));); End在模型窗口中输入上述代码,然后点击工具条上的solve按钮即可。
如图8所示:图8 整数规划模型LINGO程序图(2)计算结果从图9中可得,甲货物的托运箱数为4,乙货物的托运箱数0,则可获得的最大利润为48百元,如图9所示。
图9 整数规划模型LINGO总获利图4 图与网络分析某地区七个城镇间的公路交通网如图10所示,试用标号法计算从A 城到G 城的最短路线。
图中弧旁数据为公路长度。
图10 某地区七个城镇间的公路交通网4.1 模型及分析最短路问题可借助于距离矩阵求解,先构造一个距离矩阵D :ij D d ⎡⎤=⎣⎦ D 中的元素ij d 定义如下:i j 0? i ji j ij d ⎧⎪==⎨⎪∞⎩给定的权当节点与节点之间有边连接时;当;当与之间不存在边时;依题意可得,距离矩阵为:6308720812024033060ij D d ∞∞∞∞⎧⎫⎪⎪∞∞∞∞⎪⎪⎪⎪∞∞∞⎪⎪⎡⎤==∞∞∞∞⎨⎬⎣⎦⎪⎪∞∞∞∞∞⎪⎪∞∞∞∞⎪⎪⎪⎪∞∞∞∞∞∞⎩⎭4.2 Matlab 求解方法(1)程序新建M-file ,在窗口中输入以下代码:如图11所示,然后保存文件至默认文件夹。
图11 代码输入图(2)计算结果最后在Command Window窗口输入以下代码,如图12所示。
>>a=[0,6,3,inf,inf,inf,inf;inf,0,inf,8,7,inf,inf;inf,2,0,8,inf,12,inf;inf,inf,i nf,0,2,4,inf;inf,inf,inf,inf,0,inf,3;inf,inf,inf,inf,3,0,6;inf,inf,inf,inf,inf,inf,0];>> [long,path]=floyd(a,1,7)图12代码输入窗口则自动弹出结果,结果显示:A到G的最短路长为15,最短路线为:,如图13所示。
图13 计算结果5 预测分析5.1 货运量预测某市社会总产值与货运量之间有线性相关关系,见表3.试建立数学模型,并预测当该市社会总产值达60亿元时,该市的货运量是多少。
表3 某社会总产值与货运量之间关系5.1.1 模型及分析根据题意可知,社会总产值(亿元)与货运量(千万t )存在相关关系,可以用二元线性回归方程进行分析。
可建立方程如下:Y a b =+X式中:X ——社会总产值; Y ——货运量; a,b ——参数。
可用R 软件和Excel 计算回归方程中的系数,求解过程如下。
5.1.2 R 软件求解方法(1)在R 软件中编写如下图14中程序(第一块红色部分),运行计算,得到a=-53.4341,b=1.9385。
(2)再在R 软件中编写如下代码,进行求解当社会总产值x=60时的货运量。
编程:new<-data.frame(X=60)lm.pred<-predict(lm.sol,new,interval="prediction",level=0.95) lm.pred按回车键运行,由图14得出当社会总产值X=60时:货运量Y 为62.87392千万t 。