2.货运公司的收益问题某货运公司拥有3辆卡车,每辆载重量均为8000千克,可载体积为9.084立方米,该公司为客户从甲地托运货物到乙地,收取一定费用。
托运货物可分为四类:A、鲜活类B、禽苗类C、服装类D、其他类,公司有技术实现四类货物任意混装。
平均每类每千克所占体积和相应托运单价如下表:给托运公司。
申请量与批复量均以公斤为单位,例如客户申请量为1000kg,批复量可以为0~1000kg内的任意整数,若取0则表示拒绝客户的申请。
问题1、如果某天客户申请量为A类6500kg,B类5000kg,C类4000kg,D类3000kg,如果要求C类货物占用的体积不能超过B、D两类体积之和的三倍(注意:仅在问题1中作此要求)。
问公司应如何批复,才能使得公司获利最大?问题2、每天各类货物的申请总量是随机量,为了获取更大利益,需要对将来的申请总量进行预测。
现有一个月的数据(见附件一),请预测其7天内,每天各类货物申请量大约是多少?问题3、一般,客户的申请是在一周前随机出现的,各类申请单立即批复,批复后即不能更改,并且不能将拒绝量(即申请量减批货量)累积到以后的申请量。
请根据你对下周7天中各类货物申请量的预测,估计这7天的收益各位多少?某月申请量数据表(单位:kg)解题思路关于问题1:这是一个线性规划求最优解的明确的,直观的模型,其目标是使托运公司获利最大.可令xi(i=1,2,3,4)来表示批复的A,B,C,D类货物的重量.知道申请量的和为18500Kg,而该公司的供应能力为24000Kg,所以在重量上的供应能力可以满足.但是经计算发现可载体积最大为27.252立方米,其小于申请的总体积29.7立方米.我们又知道xi不能为负值且小于申请量.则可建立数学模型:目标函数函数为max z=1.7x1+2.25x2+4.5x3+1.12x4,约束条件s.t. 0<=x1<=65000<=x2<=50000<=x3<=40000<=x4<=30000<=0.0012x1+0.0015x2+0.003x3+0.0008x4<27.52 以下用lingo11.0编写求解程序Lingo1.lg4.运行后得到以下结果:Global optimal solution found.Objective value: 41128.00Infeasibilities: 0.000000Total solver iterations: 1Variable Value Reduced CostX1 6500.000 0.000000X2 5000.000 0.000000X3 4000.000 0.000000X4 275.0000 0.000000Row Slack or Surplus Dual Price1 41128.00 1.0000002 0.000000 0.10000003 6500.000 0.0000004 0.000000 0.15000005 5000.000 0.0000006 0.000000 0.30000007 4000.000 0.0000008 2725.000 0.0000009 275.0000 0.00000010 0.000000 1400.000从运行结果我们可以看出当批复A类6500Kg,B类货物5000Kg,C类货物4000Kg,D类货物275Kg时,托运公司所获收益最大为41128元.关于问题2:对于问题2是预测类数学模型,模型的建立是比较直观和明确的.可利用matlab7.0软件先画出其散点图,其程序为Data1.m(见附录);再利用其basic fitting功能进行多种多项式拟合,及误差分析.最终得到进行4次拟合时,比较接近其发展趋势.编写程序Data2.m(见附录),得到其拟合曲线Figure1(见下图).总申请量/(Kg)随时间的变化曲线并得到相应的三次拟合曲线Y=-0.049x^4+6.5x^3-210x^2+2000x+8900,并得到预测数据如下表.其中x=30+1,30+2,30+3...,30+7(以下所涉及的x皆是此定义,不在赘述);Y即为总申请量.预测日1 2 3 4 5 6 7期申请总21720 24030 26579 29368 32397 35665 39169由此关于总申请量的预测我们可以看出该公司在以后要想更好多的获利,其供应能力里有待提高,我们可以看到根据我们的预测模型其在以后的申请量已经很大程度上超过24000千克的运载能力,该公司可以通过增加投入购买车辆来提高利润.同时根据所建模型我们可以知道该公司是近来业绩有明显上升,这也可以与实际很好的吻合.由于题目中并没有涉及到月份的信息,我们可以把实际提供数据的月份理解为春运前的一段时间,那么模型预测结果就很好的反映了这一春运现实.对于A类预测鉴于其前期数据波动较大,经过数据处理决定采用从第10天起的数据进行预测,编程Data3.m(见附录)进而得到了2阶拟合函数Ya=-0.83x^2+17x+2200;q其中Ya即为A 类预测的值.得到预测表格如下:对于B类数据经过散点图分析,发现4次拟合可以很好的反应图形趋势,且对于要预测数据以前附近有很好的拟合效果,故采用了4次拟合.并根据程序Data4.m得到了其预测数据及拟合曲线Yb=-0.011x^4+1.2x^3-37x^2+350x+2800.预测数据见下表:对于C类数据同样分析其拟合及误差,认为进行2次拟合可以很好的进行预测.编写程序Data5.m得到其预测数据及拟合曲线Yc=15x^2-400x+5900;预测数据见下表:对于其他类货物的预测我们可以用总预测所得的各天数据减去对应的A,B,C类在该天数据之和.现编写程序Data7.m.在程序中对于数据中的一些数值进行一定处理,为了使数据所体现的趋势更加明显,剔出日期为28,29,30的数据,这样更能反映总体数据变化趋势.经过程序Data6.m的运行结果,即Figure2图像,我们可以发现两种方法得到关于申请其他类货物的预测可以很好的吻合.这正表明所建模型可以认为是合理的.其中Figure2图形如下:图形Figure2得到的关于其申请他类(D)货物的预测如下表(这里以数据拟合所得值填入表中):1 2 3 4 5 6 7预测日期其他类7994 9119 10387 11808 13388 15136 17060 申请量当然我们也认识到这种拟合对于长期预测有很大的不可预见性;由于所给数据比较少,而且数据有很强的波动,这给拟合带来了一定的困难,直接导致了模型有一定的误差,而且随着预测时间的增长,其偏离也越来越多,但短期预测准确性还是可观.增加拟合次数固然可以减少误差,但是龙格现象也会不可避免的发生.这也是该模型针对不同的数据都进行预拟合与误差分析,再决定拟合次数的原因之一.如果题目所给信息可以更全面的话,模型可以被修改的更具有实际意义.(你应该把这段内容,根据论文格式写入’模型的不足之处’中).关于问题3:根据问题一二知道,关于问题三的求解只是输入每天的每类货物的申请量,通过lingo运行程序Lingo2.lg4(见附录,此程序只是第一天的参数)得到相应的收益.模型已经非常明确.(这里你只需对程序稍做修改便可算出第2,3,4,5,6,7天的收益了.这部分自己解决吧.) 运行程序后得到第一天最大收益可为44128元,此时批复A类为0,B类为4413.4千克,C类批复6966.6千克,D类批复为0;你自己要算出第二三四五六七天对应的最大收益.附录(程序)Lingo1.lg4第一问Model:max=1.78*x1+2.25*x2+4.5*x3+1.12*x4;x1<=6500;x1>=0;x2<=5000; x2>=0;x3<=4000; x3>=0;x4<=3000; x4>=0;0.0012*x1+0.0015*x2+0.003*x3+0.0008*x4<=27.52;end第二问Data1.m%画出数据散点图Data=[1:30];Request=[11611 11368 13575 13473 14097 13151 8647 16667 13102 16641 13034 15133 ...11861 12331 10966 10716 11472 16180 11622 13051 8737 12525 9474 9325 9834 16340 18350 14965 20390 17035 ];plot(Data,Request,'X');xlabel('日期'),ylabel('总申请量(Kg)');Data2.m%预测下一周每天的总申请量%该预测有剔除波动大的点值Date=[1:6 8:17 19:30 ];Request=[11611 11368 13575 13473 14097 13151 16667 13102 16641 13034 15133 ...11861 12331 10966 10716 11472 11622 13051 8737 125259474 9325 9834 16340 18350 14965 20390 17035 ];Date1=[1:30]; %输入要检验的日期Date2=[31:37]; %输入要预测的日期[P2,S2]=polyfit(Date,Request,4) %其中P2为拟合多项式的系数,S2为残差Request1=polyval(P2,Date1); %计算拟合值Request2=polyval(P2,Date2)plot(Date,Request,'*',Date2,Request2,'X',Date1,Request1); %画图legend('实际数据','拟合数据');xlabel('日期');ylabel('总申请量')grid on;Data3.m%预测下一周每一天的A类货物的申请量Date=[10:30];RequestA=[ 3737 1807 1628 1723 ...2584 1551 2479 1199 4148 2449 2026 1690 3374 2015 2480 850 2249 1674 3666 2029 1238];Date1=[10:30]; %输入要检验的日期Date2=[31:37]; %输入要预测的日期[P2,S2]=polyfit(Date,RequestA,2); %其中P2为拟合多项式的系数,S2为残差RequestA1=polyval(P2,Date1); %计算拟合值RequestA2=polyval(P2,Date2)plot(Date,RequestA,'*',Date2,RequestA2,'X',Date1,RequestA1); %画图legend('实际数据','拟合数据');xlabel('日期');ylabel('总申请量')grid on;Data4.m%预测下一周每一天的B类货物的申请量Date=[1:30];RequestB=[2845 2833 4488 4554 2928 3497 2261 6921 1391 3580 4451 2636 3471 3854 ...3556 2659 4335 2882 4084 1999 2889 2175 2510 3409 3729 3489 3127 4568 4015 3666];Date1=[1:30]; %输入要检验的日期Date2=[31:37]; %输入要预测的日期[P2,S2]=polyfit(Date,RequestB,4); %其中P2为拟合多项式的系数,S2为残差RequestB1=polyval(P2,Date1); %计算拟合值RequestB2=polyval(P2,Date2)plot(Date,RequestB,'*',Date2,RequestB2,'X',Date1,RequestB1); %画图legend('实际数据','拟合数据');xlabel('日期');ylabel('B类申请量')Data5.m%预测下一周C类货物总申请量Date=[1:30];RequestC=[4926 2871 4447 2996 5088 2829 3893 6706 8064 3386 5317 3112 4226 4520 ...3494 2918 2860 5514 2008 5822 2840 2893 1121 1633 2736 4552 8794 5552 11953 9552 ];Date1=[1:30]; %输入要检验的日期Date2=[31:37]; %输入要预测的日期[P2,S2]=polyfit(Date,RequestC,2); %其中P2为拟合多项式的系数,S2为残差RequestC1=polyval(P2,Date1); %计算拟合值RequestC2=polyval(P2,Date2)plot(Date,RequestC,'*',Date2,RequestC2,'X',Date1,RequestC1); %画图legend('实际数据','拟合数据');xlabel('日期');ylabel('C类申请量')grid on;Data6.m%预测下一周每一天的其它类货物的申请量Request2=[21720 24030 26579 29368 32397 35665 39169];RequestA2=[1972.1 1937.0 1990.2 1861.8 1821.8 1780.8 1736.7];RequestB2=[4413.4 4707.3 5028.1 5374.5 5745.3 6138.8 6553.1];RequestC2=[8222 8785 9379 10003 10658 11344 12060];RequestE2=Request2-RequestA2-RequestB2-RequestC2%按照总预测-分预测的方法得到的其他类货物的预测Date=[1:27];RequestE=[2239 243 2750 1484 4378 3593 2117 1873 1750 5938 1459 7757 2441 1373 2365 ...2660 3078 3636 3081 3204 1318 4083 3833 1773 2519 6050 4710 ];Date1=[1:30]; %输入要检验的日期Date2=[31:37]; %输入要预测的日期[P2,S2]=polyfit(Date,RequestE,3) %其中P2为拟合多项式的系数,S2为残差RequestE1=polyval(P2,Date1); %计算拟合值RequestE22=polyval(P2,Date2)%按照对数据拟合得到的其他类货物的预测plot(Date,RequestE,'*',Date2,RequestE22,'X',Date2,RequestE2,'o',D ate1,RequestE1); %画图legend('实际数据','拟合数据');xlabel('日期');ylabel('其他(E)类申请量')第三问Lingo2.lg4Model:max=1.78*x1+2.25*x2+4.5*x3+1.12*x4;x1<=1972.1;x1>=0;x2<=4413.4; x2>=0;x3<=8222; x3>=0;x4<=7994; x4>=0;0.0012*x1+0.0015*x2+0.003*x3+0.0008*x4<=27.52; x1+x2+x3+x4<=24000;end。