1、数学建模作业5精品文档佛山科学技术学院上 机 报 告课程名称 数学建模 上机项目 料场问题 专业班级 一、 问题提出某公司有6个建筑工地要开工,每个工地的位置(用平面坐标系(a,b)表示,距离单位:km)及水泥日用量d(吨)由下表给出。目前有两个料场位于A(5,1),B(2,7),日储量各有20吨。(1)试制定每天的供应计划,即从A,B两料场分别向各工地运送多少水泥,可使运输费用(总的吨千米数)最小,并求出吨千米数。( 注:先画图,在坐标上标出各工地位置(用蓝色*标示)和料场位置(用红色o标示))(2)目前公司准备建立两个新的料场,日储量各为20吨,为使运输费用最省,问新的料场应建在何处,并算
2、出两料场分别向工地运输多少吨水泥和费用。(注:初始值取x0=3 5 4 7 1 0 0 0 0 0 5 11 5 4 7 7)二、问题分析本问题主要讨论并解决了某公司每天给工地的供应计划与临时料场选址的相关问题。工地的水泥全部由水泥料场来提供,各个工地的水泥日用量与每个水泥料场的日储量是一定的。各个工地所需水泥量可以有两个料场同时提供,也可以由一个料场全部提供。这就需要我们最优规划来解决。为使总吨千米数达到最小,在考虑有直线道路连通的情况下建立相应的数学模型,给出相关算法,并运用Matlab软件编程和处理相关数据,得到最优决策方案。符号说明:第个建筑工地;:第个临时料场;:工地的水泥日用量;:
3、料场到工地的水泥运输量;:料场到工地的距离;:料场的日储量;三、模型假设(1)假设料场和建筑工地之间都可以由直线到达;(2)运输费用由“吨千米数”来衡量; (3)两料场的日存储量够向各建筑工地供应;(4)运输途中不发生意外,从料场运出的水泥总量不会超过各个料场的日存储量; 四、模型建立(显示模型函数的构造过程)记工地的位置为(ai,bi),水泥日用量为di,i=1,6;料场位置为(xj,yj),日储量为ej,j=1,2;料场j向工地i的运送量为Xij当用临时料场时决策变量为:Xij,当不用临时料场时决策变量为:Xij,xj,yj使用两个临时料场的情形:使用两个临时料场A(5,1),B(2,7)
4、求从料场j向工地i的运送量Xij . 在各工地用量必须满足和各料场运送量不超过日储量的条件下,使总的吨千米数最小,这是线性规划问题 线性规划模型为:设 X11=X1, X21= X 2, X31= X 3, X41= X 4, X51= X 5, X61= X 6X12= X 7, X22= X 8, X32= X 9, X42= X 10, X52= X 11, X62= X 12改建两个新料场的情形: 改建两个新料场,要同时确定料场的位置(xj,yj)和运送量Xij,在同样条件下使总吨千米数最小这是非线性规划问题非线性规划模型为:设 X11=X1, X21= X 2, X31= X 3,
5、X41= X 4, X51= X 5, X61= X 6 X12= X 7, X22= X 8, X32= X 9, X42= X 10, X52= X 11, X62= X 12 x1=X13, y1=X14, x2=X15, y2=X16 五、模型求解(显示模型的求解方法、步骤及运算程序、结果)(1)先画图,在坐标上标出各工地位置(用蓝色*标示)和料场位置(用红色o标示)程序代码:x=1.25 8.75 0.5 5.75 3 7.25;y=1.25 0.75 4.75 5 6.5 7.25;x0=5,2;y0=1,7;plot(x,y,*b);hold on;plot(x0,y0,or);
6、text(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);(2)使用两个临时料场的情形:程序代码:cleara=1.25 8.75 0.5 5.75 3 7.25;b=1.25 0.75 4.75 5 6.5 7.75;d=3 5 4 7 6 11;x=5 2;y=1 7;e=20 20;for i=1:6 for j=1:2 aa(i,j)=sqrt(x(j)-a(i)2+(y(j)-b(i)2); en
7、dendCC=aa(:,1);aa(:,2);A=1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1;B=20;20;Aeq=1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1;beq=d(1);d(2);d(3);d(4);d(5);d(6);VLB=0 0 0 0 0 0 0 0 0 0 0 0 ;VUB=;x0=
8、1 2 3 0 1 0 0 1 0 1 0 1;x,fval=linprog(CC,A ,B,Aeq,beq,VLB,VUB,x0)结果x = 3.0000 5.0000 0.0000 7.0000 0.0000 1.0000 0.0000 0.0000 4.0000 0.0000 6.0000 10.0000fval = 136.2275(3)改建两个新料场的情形:程序代码:function f=liaochang(x)a=1.25 8.75 0.5 5.75 3 7.25;b=1.25 0.75 4.75 5 6.5 7.75;d=3 5 4 7 6 11;e=20 20;f1=0;for
9、 i=1:6 s(i)=sqrt(x(13)-a(i)2+(x(14)-b(i)2); f1=s(i)*x(i)+f1;endf2=0;for i=7:12 s(i)=sqrt(x(15)-a(i-6)2+(x(16)-b(i-6)2); f2=s(i)*x(i)+f2;endf=f1+f2; clearx0=3 5 4 7 1 0 0 0 0 0 5 11 5 4 7 7;A=1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0;B=20;20;Aeq=1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
10、 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0;beq=3 5 4 7 6 11;VLB=zeros(12,1);-inf;-inf;-inf;-inf;VUB=;x,fval,exitflag=fmincon(liaochang,x0,A,B,Aeq,beq,VLB,VUB)结果:x = 3.0000 5.0000 4.0000 7.0000 1.0000 0 0 0 0 0 5.0000 11.0000 5.6960 4.9286 7.2500 7.7500fval = 89.8835exitflag = 5 5即两个新料场的坐标分别为(5.6960,4.9286),(7.2500,7.7500),由料场A、B向6个工地运料方案为:123456料场A3.00005.00004.00007.00001.00000料场B00005.000011.0000总的吨千米数为89.8835,比用临时料场结果更好。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1