您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 实验四求解非线性规划模型
《数学建模》实验指导书姓名:吴家猛班号:AP08055学号:AP0805530五邑大学数学物理系二○○八年八月印刷实验4指导书实验项目名称:求解非线性规划模型所属课程名称:数学建模实验计划学时:2学时一、实验目的掌握数学软件Lingo用集合步和循环语句等编程求解非线性规划模型。二、实验内容和要求(一)实验内容(钢管下料模型)某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割后售出,从钢管厂进货时原料钢管都是168米。现有顾客需要968根12米、848根23米、1253根28米和988根35米的钢管。1.因为零售商如果采用不同切割模式太多,将会导致生产过程复杂化,从而增加生产成本,所以该零售商规定采用的切割模式不超过3种。请你确定下料方案。2.若该零售商规定采用的切割模式不超过4种。请你重新确定下料方案。3.思考题在上面下料问题中若不限制切割模式的数量,请你确定下料方案。(二)要求有问题分析、数学模型、Lingo的求解程序、程序的运行结果和所有问题的回答。三、实验主要仪器设备和材料每人一台计算机,要求已安装Lingo8.0以上版本。四、实验方法、步骤及结果测试(1)模型建立:决策变量:由于不同切割模式不超过3种,可以用ix表示按照第i模式(i=1,2,3)切割的原料,显然它们应当是非负整数,设所使用的第i种切割模式下每根原料钢管生产12米,23米,28米和38米的钢管分别为1234,,,iiiirrrr.决策目标:切割原料钢管的总根数最少,目标为Min123(1)xxx约束条件为满足客户的需求,应有111122133211222233311322333411422433968(2)848(3)1253(4)988(5)rxrxrxrxrxrxrxrxrxrxrxrx每一种切割模式必须可行,合理,所以每根原料钢管的成品量不能超过168米,也不能少于157米,于是有:11213141122232421323334315712232835168(6)15712232835168(7)15712232835168(8)rrrrrrrrrrrr为了把模型求解的范围缩小,我们再假设第一种全部用来切割12米的,一根可以切割14根,第二种全部用来切割23米的,一根可以切割7根,第三种一根可以用来切割4根28和1根35米的故最多要用70+122+988=1180根,又假设每根完全用完,没有剩余量,则最少要用(968128482312532898835)168600根,故有1236001180(9)xxx模型求解:将构成的模型输入LINGO中,程序如下:Title钢管下料-最小化钢管根数的LINGO模型;SETS:NEEDS/1..4/:LENGTH,NUM;!定义基本集合NEEDS及其属性LENGTH,NUM;CUTS/1..3/:X;!定义基本集合CUTS及其属性X;PATTERNS(NEEDS,CUTS):R;!定义派生集合PATTERNS(这是一个稠密集合)及其属性R;ENDSETSDATA:LENGTH=12232835;NUM=9688481253988;C=168;ENDDATAmin=@SUM(CUTS(I):X(I));!目标函数;@FOR(NEEDS(I):@SUM(CUTS(J):X(J)*R(I,J))NUM(I));!满足需求约束;@FOR(CUTS(J):@SUM(NEEDS(I):LENGTH(I)*R(I,J))C);!合理切割模式约束;@FOR(CUTS(J):@SUM(NEEDS(I):LENGTH(I)*R(I,J))C-@MIN(NEEDS(I):LENGTH(I))+1);!合理切割模式约束;@SUM(CUTS(I):X(I))600;@SUM(CUTS(I):X(I))1180;!人为增加约束;@FOR(CUTS(I)|I#LT#@SIZE(CUTS):X(I)X(I+1));!人为增加约束;@FOR(CUTS(J):@GIN(X(J)));@FOR(PATTERNS(I,J):@GIN(R(I,J)));end输出结果为:Localoptimalsolutionfoundatiteration:265490Objectivevalue:603.0000ModelTitle:钢管下料-最小化钢管根数的LINGO模型VariableValueReducedCostC168.00000.000000LENGTH(1)12.000000.000000LENGTH(2)23.000000.000000LENGTH(3)28.000000.000000LENGTH(4)35.000000.000000NUM(1)968.00000.000000NUM(2)848.00000.000000NUM(3)1253.0000.000000NUM(4)988.00000.000000X(1)389.00001.000000X(2)144.00001.000000X(3)70.000001.000000R(1,1)2.0000000.000000R(1,2)0.0000000.000000R(1,3)3.0000000.000000R(2,1)2.0000000.000000R(2,2)0.0000000.000000R(2,3)1.0000000.000000R(3,1)1.0000000.000000R(3,2)6.0000000.000000R(3,3)0.0000000.000000R(4,1)2.0000000.000000R(4,2)0.0000000.000000R(4,3)3.0000000.000000RowSlackorSurplusDualPrice1603.0000-1.000000220.000000.00000030.0000000.00000040.0000000.00000050.0000000.00000060.0000000.00000070.0000000.00000084.0000000.000000911.000000.0000001011.000000.000000117.0000000.000000123.0000000.00000013577.00000.00000014245.00000.0000001574.000000.000000由运算得出的数据可以知道:总使用原料钢管的总根数为603根,第一种切割模式下一根原料钢管切割成2根12米、2根23米、1根28米和2根35米;第二种切割模式下一根原料钢管切割成6根28米;第三种切割模式下一根原料钢管切割成3根12米、1根23米和3根35米。(2)模型建立:决策变量:由于不同切割模式不超过4种,可以用ix表示按照第i模式(i=1,2,3、4)切割的原料,显然它们应当是非负整数,设所使用的第i种切割模式下每根原料钢管生产12米,23米,28米和38米的钢管分别为1234,,,iiiirrrr.决策目标:切割原料钢管的总根数最少,目标为Min1234(10)xxxx约束条件为满足客户的需求,应有111122133144211222233244311322333344411422433444968(11)848(12)1253(13)988(14)rxrxrxrxrxrxrxrxrxrxrxrxrxrxrxrx每一种切割模式必须可行,合理,所以每根原料钢管的成品量不能超过168米,也不能少于157米,于是有:1121314112223242132333431424344415712232835168(15)15712232835168(16)15712232835168(17)15712232835168(18)rrrrrrrrrrrrrrrr为了把模型求解的范围缩小,我们再假设第一种全部用来切割12米的,一根可以切割14根,第二种全部用来切割23米的,一根可以切割7根,第三种一根可以用来切割4根28米和1根35米的,第四种一根可以用来切割1根28米和4根35米的,故最多要用70+122+313+170=675根,又假设每根完全用完,没有剩余量,则最少要用(968128482312532898835)168600根,故有1234600675(19)xxxx模型求解:将构成的模型输入LINGO中,程序如下:Title钢管下料-最小化钢管根数的LINGO模型;SETS:NEEDS/1..4/:LENGTH,NUM;!定义基本集合NEEDS及其属性LENGTH,NUM;CUTS/1..4/:X;!定义基本集合CUTS及其属性X;PATTERNS(NEEDS,CUTS):R;!定义派生集合PATTERNS(这是一个稠密集合)及其属性R;ENDSETSDATA:LENGTH=12232835;NUM=9688481253988;C=168;ENDDATAmin=@SUM(CUTS(I):X(I));!目标函数;@FOR(NEEDS(I):@SUM(CUTS(J):X(J)*R(I,J))NUM(I));!满足需求约束;@FOR(CUTS(J):@SUM(NEEDS(I):LENGTH(I)*R(I,J))C);!合理切割模式约束;@FOR(CUTS(J):@SUM(NEEDS(I):LENGTH(I)*R(I,J))C-@MIN(NEEDS(I):LENGTH(I))+1);!合理切割模式约束;@SUM(CUTS(I):X(I))600;@SUM(CUTS(I):X(I))675;!人为增加约束;@FOR(CUTS(I)|I#LT#@SIZE(CUTS):X(I)X(I+1));!人为增加约束;@FOR(CUTS(J):@GIN(X(J)));@FOR(PATTERNS(I,J):@GIN(R(I,J)));输出结果为:Localoptimalsolutionfoundatiteration:1066456452Objectivevalue:601.0000ModelTitle:钢管下料-最小化钢管根数的LINGO模型VariableValueReducedCostC168.00000.000000LENGTH(1)12.000000.000000LENGTH(2)23.000000.000000LENGTH(3)28.000000.000000LENGTH(4)35.000000.000000NUM(1)968.00000.000000NUM(2)848.00000.000000NUM(3)1253.0000.000000NUM(4)988.00000.000000X(1)243.00001.000000X(2)208.00001.000000X(3)134.00001.000000X(4)16.000001.000000R(1,1)0.0000000.000000R(1,2)4.0000000.000000R(1,3)0.0000000.000000R(1,4)9.0000000.000000R(2,1)0.0000000.000000R(2,2)4.0000000.000000R(2,3)0.0000000.000000R(2,4)1.0000000.000000R(3,1)1.0000000.000000R(3,2)1.0000000.000000R(3,3)6.0000000.000000R(3,4)0.0000000.000000R(4,1)4.0000000.000000R(4,2)0.0000000.000000R(4,3)0.0000000.000000R(4,4)1.0000000.000000RowSlackorSurplusDualPrice160
本文标题:实验四求解非线性规划模型
链接地址:https://www.777doc.com/doc-4972988 .html