实验四求解非线性规划模型_第1页
实验四求解非线性规划模型_第2页
实验四求解非线性规划模型_第3页
实验四求解非线性规划模型_第4页
实验四求解非线性规划模型_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上 数学建模 实验指导书姓名:吴家猛 班号:AP08055 学号:AP五邑大学数学物理系二八年八月印刷实验4 指导书实验项目名称:求解非线性规划模型所属课程名称:数学建模实验计划学时:2学时一、 实验目的掌握数学软件Lingo用集合步和循环语句等编程求解非线性规划模型。二、 实验内容和要求(一) 实验内容(钢管下料模型)某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割后售出,从钢管厂进货时原料钢管都是168米。现有顾客需要968根12米、848根23米、1253根28米和988根35米的钢管。1. 因为零售商如果采用不同切割模式太多,将会导致生产过程复杂化,从而增加生

2、产成本,所以该零售商规定采用的切割模式不超过3种。请你确定下料方案。2. 若该零售商规定采用的切割模式不超过4种。请你重新确定下料方案。3. 思考题在上面下料问题中若不限制切割模式的数量,请你确定下料方案。(二) 要求 有问题分析、数学模型、Lingo的求解程序、程序的运行结果和所有问题的回答。三、 实验主要仪器设备和材料 每人一台计算机,要求已安装Lingo 8.0以上版本。四、 实验方法、步骤及结果测试 (1)模型建立: 决策变量: 由于不同切割模式不超过3种,可以用表示按照第i模式(i=1,2,3)切割的原料,显然它们应当是非负整数,设所使用的第i种切割模式下每根原料钢管生产12米,23

3、米,28米和38米的钢管分别为. 决策目标:切割原料钢管的总根数最少,目标为 Min 约束条件 为满足客户的需求,应有 每一种切割模式必须可行,合理,所以每根原料钢管的成品量不能超过168米,也不能少于157米,于是有: 为了把模型求解的范围缩小,我们再假设第一种全部用来切割12米的,一根可以切割14根,第二种全部用来切割23米的,一根可以切割7根,第三种一根可以用来切割4根28和1根35米的故最多要用70+122+988=1180根,又假设每根完全用完,没有剩余量,则最少要用根,故有 模型求解:将构成的模型输入LINGO中,程序如下:Title 钢管下料 - 最小化钢管根数的LINGO模型;

4、SETS: NEEDS/1.4/:LENGTH,NUM; ! 定义基本集合NEEDS及其属性LENGTH,NUM;CUTS/1.3/:X; ! 定义基本集合CUTS及其属性X;PATTERNS(NEEDS,CUTS):R; ! 定义派生集合PATTERNS(这是一个稠密集合)及其属性R;ENDSETSDATA:LENGTH=12 23 28 35;NUM=968 848 1253 988;C=168;ENDDATAmin=SUM(CUTS(I): X(I) );!目标函数;FOR(NEEDS(I): SUM(CUTS(J): X(J)*R(I,J) ) NUM(I) ); !满足需求约束;FO

5、R(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) ) X(I+1) ); !人为增加约束;FOR(CUTS(J): GIN(X(J) ) ;FOR(PATTERNS(I,J): GIN(R(I,J) );end输出结果为:Local optimal solution found at iteration: Objective value: 603.0000 Model Title: 钢管下料

6、 - 最小化钢管根数的LINGO模型 Variable Value Reduced Cost C 168.0000 0. LENGTH( 1) 12.00000 0. LENGTH( 2) 23.00000 0. LENGTH( 3) 28.00000 0. LENGTH( 4) 35.00000 0. NUM( 1) 968.0000 0. NUM( 2) 848.0000 0. NUM( 3) 1253.000 0. NUM( 4) 988.0000 0. X( 1) 389.0000 1. X( 2) 144.0000 1. X( 3) 70.00000 1. R( 1, 1) 2. 0

7、. R( 1, 2) 0. 0. R( 1, 3) 3. 0. R( 2, 1) 2. 0. R( 2, 2) 0. 0. R( 2, 3) 1. 0. R( 3, 1) 1. 0. R( 3, 2) 6. 0. R( 3, 3) 0. 0. R( 4, 1) 2. 0. R( 4, 2) 0. 0. R( 4, 3) 3. 0. Row Slack or Surplus Dual Price 1 603.0000 -1. 2 20.00000 0. 3 0. 0. 4 0. 0. 5 0. 0. 6 0. 0. 7 0. 0. 8 4. 0. 9 11.00000 0. 10 11.0000

8、0 0. 11 7. 0. 12 3. 0. 13 577.0000 0. 14 245.0000 0. 15 74.00000 0.由运算得出的数据可以知道: 总使用原料钢管的总根数为603根,第一种切割模式下一根原料钢管切割成2根12米、2根23米、1根28米和2根35米;第二种切割模式下一根原料钢管切割成6根28米;第三种切割模式下一根原料钢管切割成3根12米、1根23米和3根35米。(2)模型建立: 决策变量: 由于不同切割模式不超过4种,可以用表示按照第i模式(i=1,2,3、4)切割的原料,显然它们应当是非负整数,设所使用的第i种切割模式下每根原料钢管生产12米,23米,28米和3

9、8米的钢管分别为. 决策目标:切割原料钢管的总根数最少,目标为 Min 约束条件 为满足客户的需求,应有 每一种切割模式必须可行,合理,所以每根原料钢管的成品量不能超过168米,也不能少于157米,于是有: 为了把模型求解的范围缩小,我们再假设第一种全部用来切割12米的,一根可以切割14根,第二种全部用来切割23米的,一根可以切割7根,第三种一根可以用来切割4根28米和1根35米的,第四种一根可以用来切割1根28米和4根35米的,故最多要用70+122+313+170=675根,又假设每根完全用完,没有剩余量,则最少要用根,故有 模型求解:将构成的模型输入LINGO中,程序如下:Title 钢

10、管下料 - 最小化钢管根数的LINGO模型;SETS: NEEDS/1.4/:LENGTH,NUM; ! 定义基本集合NEEDS及其属性LENGTH,NUM;CUTS/1.4/:X; ! 定义基本集合CUTS及其属性X;PATTERNS(NEEDS,CUTS):R; ! 定义派生集合PATTERNS(这是一个稠密集合)及其属性R;ENDSETSDATA:LENGTH=12 23 28 35;NUM=968 848 1253 988;C=168;ENDDATAmin=SUM(CUTS(I): X(I) );!目标函数;FOR(NEEDS(I): SUM(CUTS(J): X(J)*R(I,J)

11、) NUM(I) ); !满足需求约束;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) ) X(I+1) ); !人为增加约束;FOR(CUTS(J): GIN(X(J) ) ;FOR(PATTERNS(I,J): GIN(R(I,J) );输出结果为:Local optimal solution found at iteration: Objective value: 601.000

12、0 Model Title: 钢管下料 - 最小化钢管根数的LINGO模型 Variable Value Reduced Cost C 168.0000 0. LENGTH( 1) 12.00000 0. LENGTH( 2) 23.00000 0. LENGTH( 3) 28.00000 0. LENGTH( 4) 35.00000 0. NUM( 1) 968.0000 0. NUM( 2) 848.0000 0. NUM( 3) 1253.000 0. NUM( 4) 988.0000 0. X( 1) 243.0000 1. X( 2) 208.0000 1. X( 3) 134.00

13、00 1. X( 4) 16.00000 1. R( 1, 1) 0. 0. R( 1, 2) 4. 0. R( 1, 3) 0. 0. R( 1, 4) 9. 0. R( 2, 1) 0. 0. R( 2, 2) 4. 0. R( 2, 3) 0. 0. R( 2, 4) 1. 0. R( 3, 1) 1. 0. R( 3, 2) 1. 0. R( 3, 3) 6. 0. R( 3, 4) 0. 0. R( 4, 1) 4. 0. R( 4, 2) 0. 0. R( 4, 3) 0. 0. R( 4, 4) 1. 0. Row Slack or Surplus Dual Price 1 60

14、1.0000 -1. 2 8. 0. 3 0. 0. 4 2. 0. 5 0. 0. 6 0. 0. 7 0. 0. 8 0. 0. 9 2. 0. 10 11.00000 0. 11 11.00000 0. 12 11.00000 0. 13 9. 0. 14 3. 0. 15 19.00000 0. 16 35.00000 0. 17 74.00000 0. 18 118.0000 0.由计算结果可知:总使用原料钢管的总根数为601根,第一种切割模式下一根原料钢管切割成1根28米、4根35米;第二种切割模式下一根原料钢管切割成4根12米、4根23米、1根28米;第三种切割模式下一根原料钢管

15、切割成6根28米;第四种切割模式下一根原料钢管切割成9根12米、1根23米、1根35米。(3)思考题:由于不限制切割模式的种类,故需要算出总切割模式总数,用C+程序来计算。 在MicrosoftVisualC+6.0中输入以下程序:#includeusing namespace std;int c=0,sum;/sum表示满足客户要求所用的原料钢管的根数的上限;int i,j,k,l; /某种模式时,i表示切割12米的根数,j表示切割23米的根数,k表示切割28米的根数,l表示切割35米的根数,int a,e; int d1,d2,d3,d4;int sumi=0,sumj=0,sumk=0,

16、suml=0;int main() e=(12*968+23*848+28*1253+35*988)/168-1; /需要钢管原料的下限 for(l=0;l5;l+) for(k=0;k7;k+) for(j=0;j8;j+) for(i=0;i=157&a=168) c=c+1; /符合条件的模式数量值 sumi=sumi+i; sumj=sumj+j; sumk=sumk+k; suml=suml+l; cout 第c种模式:切割i根12米的, j根23米的,k根28米的,l根35米的;d2) if(d1d3) if(d1d4)sum=d1*c; else sum=d4*c;else if(d3d4) sum=d3*c; else sum=d4*c;else if(d2d3)if(d2d4) sum=d2*c;else sum=d4*c; else if(d3d4) sum=d3*c; else sum=d4*c; cout 总共有c种模式endl; /总模式有的总值cout需要钢管原料的下限为:eendl;co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论