资源描述:
《数学建模作业5数学规划模型~~~~供应和选址的问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、问题提出某公司有6个建筑工地要开工,每个工地的位置(用平面坐标系(a,b)表示,距离单位:km)及水泥日用量d(吨)由下表给出。目前有两个料场位于A(5,1),B(2,7),日储量各有20吨。(1)试制定每天的供应计划,即从A,B两料场分别向各工地运送多少水泥,可使运输费用(总的吨千米数)最小,并求出吨千米数。(注:先画图,在坐标上标出各工地位置(用蓝色*标示)和料场位置(用红色o标示))(2)目前公司准备建立两个新的料场,日储量各为20吨,为使运输费用最省,问新的料场应建在何处,并算出两料场分别向工地运输多少
2、吨水泥和费用。(注:初始值取x0=[35471000005115477]’)二、问题分析对于问题(1),确定用A,B两料场分别向各工地运送水泥,使运输费用(总的吨千米数)最小,即要知道两点间线段最小,料场到工地的路线是直的,而要满足六个工地的需求,又要考虑到A、B两个料场的供应量,即在各工地用量必须满足和各料场运送量不超过日储量的条件下,使总的吨千米数最小,这是线性问题。。对于问题(2),需要重新改建六个新的料场,使得在在各工地用量必须满足和各料场运送量不超过日储量的条件下,使总的吨千米数最小,则需要确定新的料场的
3、具体位置,这是非线性问题。三、模型假设1、假设料场和建筑工地之间都可以由直线到达;2、运输费用由“吨千米数”来衡量;3、两料场的日存储量够向各建筑工地供应;4、运输途中不发生意外,从料场运出的水泥总量不会超过各个料场的日存储量。四、模型建立(显示模型函数的构造过程)记工地的位置为,水泥日用量为,i=1,…,6;料场位置为,日储量为,j=1,2;料场向工地的运送量为。目标函数为:约束条件为:当用临时料场时决策变量为:当不用临时料场时决策变量为:,,使用临时料场的情形:使用两个临时料场A(5,1),B(2,7).求从料
4、场j向工地的运送量.在各工地用量必须满足和各料场运送量不超过日储量的条件下,使总的吨千米数最小,这是线性规划问题。线性规划模型为:其中,i=1,2,…,6,j=1,2,为常数设X11=X1,X21=X2,,X31=X3,X41=X4,X51=X5,,X61=X6X12=X7,X22=X8,,X32=X9,X42=X10,X52=X11,,X62=X12改建两个新料场的情形:改建两个新料场,要同时确定料场的位置(xj,yj)和运送量,在同样条件下使总吨千米数最小.这是非线性规划问题.非线性规划模型为:设X11=X1,
5、X21=X2,X31=X3,X41=X4,X51=X5,,X61=X6X12=X7,X22=X8,X32=X9,X42=X10,X52=X11,X62=X12x1=X13,y1=X14,x2=X15,y2=X16五、模型求解(显示模型的求解方法、步骤及运算程序、结果)建立chengxu.m程序:x=[1.258.750.55.7537.25];y=[1.250.754.7556.57.75];x0=[5,2];y0=[1,7];plot(x,y,'*b');holdon;plot(x0,y0,'or');text(
6、1.25,1.25,'¹¤µØ1');text(8.75,0.75,'¹¤µØ2');text(0.5,4.75,'¹¤µØ3')text(5.75,5,'¹¤µØ4');text(3,6.5,'¹¤µØ5');text(7.25,7.25,'¹¤µØ6')text(5,1,'Áϳ¡A');text(2,7,'Áϳ¡B');使用临时料场的情形:编写程序liaochang1.m如下:cleara=[1.258.750.55.7537.25];b=[1.250.754.7556.57.75];d=[3547611]
7、;x=[52];y=[17];e=[2020];fori=1:6forj=1:2aa(i,j)=sqrt((x(j)-a(i))^2+(y(j)-b(i))^2);endendCC=[aa(:,1);aa(:,2)]'A=[111111000000000000111111];B=[20;20];Aeq=[100000100000010000010000001000001000000100000100000010000010000001000001];beq=[d(1);d(2);d(3);d(4);d(5);d(6
8、)];vlb=[000000000000];vub=[];x0=[123010010101];[xx,fval]=linprog(CC,A,B,Aeq,beq,vlb,vub,x0)程序截图如下:程序的运行结果为:xx=3.00005.00000.00007.00000.00001.00000.00000.00004.00000.00006.000010.0