数学模型-汽车厂生产计划

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

模型求解3)模型中增加条件:x1,x2,x3均为整数,重新求解。OBJECTIVEFUNCTIONVALUE1)632.2581VARIABLEVALUEREDUCEDCOSTX164.5161290.000000X2167.7419280.000000X30.0000000.946237ROWSLACKORSURPLUSDUALPRICES2)0.0000000.7311833)0.0000000.003226结果为小数,怎么办?1)舍去小数:取x1=64,x2=167,算出目标函数值z=629,与LP最优值632.2581相差不大。2)试探:如取x1=65,x2=167;x1=64,x2=168等,计算函数值z,通过比较可能得到更优的解。•但必须检验它们是否满足约束条件。为什么?IP可用LINDO直接求解整数规划(IntegerProgramming,简记IP)“gin3”表示“前3个变量为整数”,等价于:ginx1ginx2ginx3IP的最优解x1=64,x2=168,x3=0,最优值z=632max2x1+3x2+4x3st1.5x1+3x2+5x3600280x1+250x2+400x360000endgin3OBJECTIVEFUNCTIONVALUE1)632.0000VARIABLEVALUEREDUCEDCOSTX164.000000-2.000000X2168.000000-3.000000X30.000000-4.000000321432xxxzMax600535.1..321xxxts60000400250280321xxx为非负整数321,,xxx模型求解IP结果输出其中3个子模型应去掉,然后逐一求解,比较目标函数值,再加上整数约束,得最优解:80,0,0321xxx0,80,0321xxx80,80,0321xxx0,0,80321xxx0,80,80321xxx80,0,80321xxx80,80,80321xxx0,,321xxx方法1:分解为8个LP子模型汽车厂生产计划•若生产某类汽车,则至少生产80辆,求生产计划。321432xxxzMax600535.1..321xxxts60000400250280321xxxx1,x2,,x3=0或80x1=80,x2=150,x3=0,最优值z=610LINDO中对0-1变量的限定:inty1inty2inty3方法2:引入0-1变量,化为整数规划M为大的正数,可取1000OBJECTIVEFUNCTIONVALUE1)610.0000VARIABLEVALUEREDUCEDCOSTX180.000000-2.000000X2150.000000-3.000000X30.000000-4.000000Y11.0000000.000000Y21.0000000.000000Y30.0000000.000000•若生产某类汽车,则至少生产80辆,求生产计划。x1=0或80x2=0或80x3=0或80}1,0{,80,11111yyxMyx}1,0{,80,22222yyxMyx}1,0{,80,33333yyxMyx最优解同前NLP虽然可用现成的数学软件求解(如LINGO,MATLAB),但是其结果常依赖于初值的选择。方法3:化为非线性规划非线性规划(Non-LinearProgramming,简记NLP)实践表明,本例仅当初值非常接近上面方法算出的最优解时,才能得到正确的结果。•若生产某类汽车,则至少生产80辆,求生产计划。x1=0或80x2=0或80x3=0或800)80(11xx0)80(22xx0)80(33xx应如何安排原油的采购和加工?例2原油采购与加工市场上可买到不超过1500吨的原油A:•购买量不超过500吨时的单价为10000元/吨;•购买量超过500吨但不超过1000吨时,超过500吨的部分8000元/吨;•购买量超过1000吨时,超过1000吨的部分6000元/吨。售价4800元/吨售价5600元/吨库存500吨库存1000吨汽油甲(A50%)原油A原油B汽油乙(A60%)决策变量目标函数问题分析•利润:销售汽油的收入-购买原油A的支出•难点:原油A的购价与购买量的关系较复杂)()(6.5)(8.422122111xcxxxxzMax甲(A50%)AB乙(A60%)购买xx11x12x21x224.8千元/吨5.6千元/吨原油A的购买量,原油A,B生产汽油甲,乙的数量c(x)~购买原油A的支出利润(千元)c(x)如何表述?原油供应约束条件xxx500121110002221xx1500x500)1(1000300061000)(50010008500)(010)(xxxxxxxc•x500吨单价为10千元/吨;•500吨x1000吨,超过500吨的8千元/吨;•1000吨x1500吨,超过1000吨的6千元/吨。目标函数购买xABx11x12x21x22库存500吨库存1000吨目标函数中c(x)不是线性函数,是非线性规划;对于用分段函数定义的c(x),一般的非线性规划软件也难以输入和求解;想办法将模型化简,用现成的软件求解。汽油含原油A的比例限制5.0211111xxx6.0221212xxx2111xx221232xx约束条件甲(A50%)AB乙(A60%)x11x12x21x22x1,x2,x3~以价格10,8,6(千元/吨)采购A的吨数目标函数只有当以10千元/吨的价格购买x1=500(吨)时,才能以8千元/吨的价格购买x2方法1)6810()(6.5)(8.432122122111xxxxxxxzMax0)500(32xx500,,0321xxx非线性规划模型,可以用LINGO求解模型求解x=x1+x2+x3,c(x)=10x1+8x2+6x3•500吨x1000吨,超过500吨的8千元/吨增加约束0)500(21xxx=x1+x2+x3,c(x)=10x1+8x2+6x3方法1:LINGO求解Model:Max=4.8*x11+4.8*x21+5.6*x12+5.6*x22-10*x1-8*x2-6*x3;x11+x12x+500;x21+x221000;x11-x210;2*x12-3*x220;x=x1+x2+x3;(x1-500)*x2=0;(x2-500)*x3=0;x1500;x2500;x3500;x0;x110;x120;x210;x220;x10;x20;x30;endObjectivevalue:4800.000VariableValueReducedCostX11500.00000.0000000E+00X21500.00000.0000000E+00X120.0000000E+000.0000000E+00X220.0000000E+000.0000000E+00X10.1021405E-1310.00000X20.0000000E+008.000000X30.0000000E+006.000000X0.0000000E+000.0000000E+00LINGO得到的是局部最优解,还能得到更好的解吗?用库存的500吨原油A、500吨原油B生产汽油甲,不购买新的原油A,利润为4,800千元。y1,y2,y3=1~以价格10,8,6(千元/吨)采购A增加约束方法20-1线性规划模型,可用LINDO求解112500500yxy223500500yxy33500yxy1,y2,y3=0或1OBJECTIVEFUNCTIONVALUE1)5000.000VARIABLEVALUEREDUCEDCOSTY11.0000000.000000Y21.0000002200.000000Y31.0000001200.000000X110.0000000.800000X210.0000000.800000X121500.0000000.000000X221000.0000000.000000X1500.0000000.000000X2500.0000000.000000X30.0000000.400000X1000.0000000.000000购买1000吨原油A,与库存的500吨原油A和1000吨原油B一起,生产汽油乙,利润为5,000千元。x1,x2,x3~以价格10,8,6(千元/吨)采购A的吨数y=0x=0x0y=1优于方法1的结果b1b2b3b4方法3b1xb2,x=z1b1+z2b2,z1+z2=1,z1,z20,c(x)=z1c(b1)+z2c(b2).c(x)x1200090005000050010001500b2xb3,x=z2b2+z3b3,z2+z3=1,z2,z30,c(x)=z2c(b2)+z3c(b3).b3xb4,x=z3b3+z4b4,z3+z4=1,z3,z40,c(x)=z3c(b3)+z4c(b4).500)1(1000300061000)(50010008500)(010)(xxxxxxxc直接处理处理分段线性函数c(x)IP模型,LINDO求解,得到的结果与方法2相同.处理分段线性函数,方法3更具一般性44332211bzbzbzbzx)()()()()(44332211bczbczbczbczxcbkxbk+1yk=1,否则,yk=03432321211,,,yzyyzyyzyz)4,3,2,1(0,14321kzzzzzk10,,,1321321或yyyyyy方法3bkxbk+1,x=zkbk+zk+1bk+1zk+zk+1=1,zk,zk+10,c(x)=zkc(bk)+zk+1c(bk+1).c(x)x1200090005000050010001500b1b2b3b4对于k=1,2,3

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功