AP0805414实验四求解非线性规划模型(共10页).doc

上传人:飞****2 文档编号:13853235 上传时间:2022-05-01 格式:DOC 页数:10 大小:196.50KB
返回 下载 相关 举报
AP0805414实验四求解非线性规划模型(共10页).doc_第1页
第1页 / 共10页
AP0805414实验四求解非线性规划模型(共10页).doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《AP0805414实验四求解非线性规划模型(共10页).doc》由会员分享,可在线阅读,更多相关《AP0805414实验四求解非线性规划模型(共10页).doc(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上 数学建模 实验指导书姓名:李继滨 班号:AP08054 学号: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

17、(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;cout需要钢管原料的上限为:sumNUM(I) ); !满足需求约束;FOR(CUTS(J): SUM(NEEDS(I): LENGTH(I)*R(I,J) ) C -MIN(NEEDS(I):LENGTH(I)+1 ); !合理切割模式约束;SUM(CUTS(I): X(I) ) 598; SUM(CUTS(I): X(I) ) X(I+1) ); !人为增加约束;FOR(CUTS(J): GIN(X(J) ) ;FOR(PATTERNS(I,J): GIN(R(I,J) );输出结果为:由于运行不了专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com