正在加载图片...
[注意]二次规划(QP)问题 实例2:钢管下料(问题1) LINDO可求解二次规划(QP)问题,但输入方式较 目标1(总余量)MZ1=3x1+x2+3x3+3x4+x5+x6+3 复杂,因为在 LINDO中不许出现非线性表达式 4x1+3x2+2x3+x4+x3≥50 民为、个度际约宽在实的对乘黄增加育关量的 x,+2x1+x4+3x≥20 阶最优条件,转化为互补问题 END”后面使用QCP命令指明实际约束开始的行号, x为整数 然后才能求解 建议总是用 LINGO解QP 最优解:x2=12,xs=15,其余为0; 最优值:27 注意对QP和P:敏感性分析意义不大 按模式2切割12根,按模式5切割15根,余料27米 实例2:钢管下料(问题1) LINGO软件简介 目标2(总根数)MmZ2=x+x2+x2+x+x3+x+x LⅠNGO模型的优点 最优解:x2=15, 4x1+3x2+2x3+x4+x5≥50 xs=5,x=5, 包含了 LINDO的全部功能,并能处理非线性优化 x2+2x4+x3+3x6220 其余为0; CUTOIb LTX 提供了灵活的编程语言(矩阵生成器 x3+x3+2x2≥15 最优值:25。 x为整数 LINGO模型的构成:4个段 按模式2切割15根, ·目标与约束段 按模 模式5切割5根 与目标1的结果“共切割27根 按模式7切劊根,余料27米”相比 ·集合段( SETS ENDSETS) 共25根,余料35米虽余料增加8米,但减少了2根 数据段( DATA ENDDATA) 当余料没有用处时,通常以总根数最少为目标 ·初始段( INIT ENDINIT) (学学奖 集合的类型 集合循环函数 tname [/member list/ 四个集合循环函数:FOR、SUM、MAX、MIN I: attribute list) @function( setname I( set index list)[ I condition): expression list): 派生集合基本集合 稀疏集合(密集合 2BENEFIT(LJ)MATCH(L,J/ 素列表法元素过滤法直接列举法)隐式列举法 objective! MAX=@SUM( PAIRS(L, J): BENEFIT( 1, D)* MATCH( L, D) ∑ MATCH(J,K)=1 (, AKPAlRC CITIES /AL, A2, A3, Bl, B2/ STUDENTS /IS8, 1, B2 AIRS STUDENT a FOR(STUDENTS( I) constraints ENDSETS aSUM( PAIRS( J, K)IJ#EQ# I #OR# K#EQ# 1: MATCH(J, K))=l)9 [注意]二次规划(QP)问题 • LINDO可求解二次规划(QP)问题,但输入方式较 复杂,因为在LINDO中不许出现非线性表达式 – 需要为每一个实际约束增加一个对偶变量 (LAGRANGE乘子),在实际约束前增加有关变量的 一阶最优条件,转化为互补问题 – “END”后面使用QCP命令指明实际约束开始的行号, 然后才能求解 • 建议总是用LINGO解QP [注意]对QP和IP: 敏感性分析意义不大 目标1(总余量) 1 1 2 3 4 5 6 7 Min Z = 3x + x +3x +3x + x + x +3x 4x1 + 3x2 + 2x3 + x4 + x5 ≥ 50 2 3 20 x2 + x4 + x5 + x6 ≥ x3 + x5 + 2x7 ≥ 15 按模式2切割12根,按模式5切割15根,余料27米 最优解:x2=12, x5=15, 其余为0; 最优值:27 x CUT01a.LTX i 为整数 实例2:钢管下料(问题1) 当余料没有用处时,通常以总根数最少为目标 2 1 2 3 4 5 6 7 目标2(总根数) Min Z = x + x + x + x + x + x + x 最优解:x2=15, x5=5, x7=5, 其余为0; 最优值:25。 4x1 + 3x2 + 2x3 + x4 + x5 ≥ 50 2 3 20 x2 + x4 + x5 + x6 ≥ x3 + x5 + 2x7 ≥ 15 xi 为整数 按模式2切割15根, 按模式5切割5根, 按模式7切割5根, 共25根,余料35米 虽余料增加8米,但减少了2根 与目标1的结果“共切割27根, 余料27米” 相比: CUT01b.LTX 实例2:钢管下料(问题1) LINGO软件简介 • 目标与约束段 • 集合段(SETS ENDSETS) • 数据段(DATA ENDDATA) • 初始段(INIT ENDINIT) LINGO模型的构成:4个段 LINGO模型的优点 •包含了LINDO的全部功能,并能处理非线性优化 •提供了灵活的编程语言(矩阵生成器) 集合的类型 集合 派生集合 基本集合 稀疏集合 稠密集合 元素列表法 元素过滤法 直接列举法 隐式列举法 setname [/member_list/] [: attribute_list]; setname(parent_set_list) [/member_list/] [: attribute_list]; SETS: CITIES /A1,A2,A3,B1,B2/; ROADS(CITIES, CITIES)/ A1,B1 A1,B2 A2,B1 A3,B2/:D; ENDSETS SETS: STUDENTS /S1..S8/; PAIRS( STUDENTS, STUDENTS) | &2 #GT# &1: BENEFIT, MATCH; ENDSETS 集合循环函数 四个集合循环函数:FOR、SUM 、 MAX、MIN @function( setname [ ( set_index_list)[ | condition]] : expression_list); @FOR(STUDENTS( I): [constraints] @SUM( PAIRS( J, K) | J #EQ# I #OR# K #EQ# I: MATCH( J, K)) =1); Example: ∑I J ∈PAIRS BENEFIT I J MATCH I J ( , ) ( , )* ( , ) ( , ) 1 ( , ) ∑ = = = ∈ K I J I or J K PAIRS MATCH J K [objective] MAX = @SUM( PAIRS( I, J): BENEFIT( I, J) * MATCH( I, J));
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有