版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Lingo使用教程使用教程 东南大学数模培训材料东南大学数模培训材料 2011.7.2 Module 00-2 优化问题三要素:优化问题三要素:决策变量决策变量;目标函数目标函数;约束条件约束条件 约约 束束 条条 件件决策变量决策变量 优化问题的一般形式优化问题的一般形式 n j i Dx ljxg mixhts xf ,.,1, 0)( ,.,1, 0)(. . )(min 无约束优化无约束优化(没有约束没有约束)与约束优化与约束优化(有约束有约束) 可行解(只满足约束)与最优解可行解(只满足约束)与最优解(取到最优值取到最优值) 目标函数目标函数 Module 00-3 局部最优解与整体
2、最优解局部最优解与整体最优解 局部最优解局部最优解 (Local Optimal Solution, 如如 x1 ) 整体最优解整体最优解 (Global Optimal Solution, 如如 x2 ) x * f(x) x1 x2 o 优化模型的优化模型的 简单分类简单分类 线性规划线性规划(LP) 目标和约束均为线性函数目标和约束均为线性函数 非线性规划非线性规划(NLP) 目标或约束中存在非线性函数目标或约束中存在非线性函数 二次规划二次规划(QP) 目标为二次函数、约束为线性目标为二次函数、约束为线性 整数规划整数规划(IP) 决策变量决策变量(全部或部分全部或部分)为整数为整数
3、整数整数线性线性规划规划(ILP),整数,整数非线性非线性规划规划(INLP) 纯整数规划纯整数规划(PIP), 混合整数规划混合整数规划(MIP) 一般整数规划,一般整数规划,0-1(整数)规划(整数)规划(ZOP) n j i Dx ljxg mixhts xf ,.,1, 0)( ,.,1, 0)(. . )(min 连连 续续 优优 化化 离离 散散 优优 化化 数学规划数学规划 优化模型的简单分类和求解难度 优化 线性规划非线性规划 二次规划 连续优化整数规划 问题求解的难度增加 LP,ILP,BILP,NLP,INLP,QP,IQP,PIP,ZOP 11 22 min . . ,
4、, T n f xc x st Axb A xb xDR 线性规划问题线性规划问题LP的标准形式的标准形式 11 22 m a x . . , , T n fxcx s tA xb Axb xDR MATLAB命令:linprog, bintprog MATLABMATLAB优化工具箱优化工具箱能求解的优化模型能求解的优化模型 优化工具箱优化工具箱3.0 (MATLAB 7.0 R14) 连续优化连续优化离散优化离散优化 无约束优化无约束优化 非线性非线性 极小极小 fminunc 非光滑非光滑(不可不可 微微)优化优化 fminsearch 非线性非线性 方程方程(组组) fzero fso
5、lve 全局全局 优化优化 暂缺暂缺 非线性非线性 最小二乘最小二乘 lsqnonlin lsqcurvefit 线性规划线性规划 linprog 纯纯0-1规划规划 bintprog 一般一般IP(暂缺暂缺) 非线性规划非线性规划 fmincon fminimax fgoalattain fseminf 上下界约束上下界约束 fminbnd fmincon lsqnonlin lsqcurvefit 约束线性约束线性 最小二乘最小二乘 lsqnonneg lsqlin 约束优化约束优化 二次规划二次规划 quadprog LINDO 公司软件产品简要介绍 美国芝加哥美国芝加哥(Chicago
6、)大学的大学的Linus Schrage教授于教授于1980 年前后开发年前后开发, 后来成立后来成立 LINDO系统公司(系统公司(LINDO Systems Inc.),), 网址:网址:http:/ LINDO: Linear INteractive and Discrete Optimizer (V6.1) LINDO API: LINDO Application Programming Interface LINGO: Linear INteractive General Optimizer (V13.0) Whats Best!: (SpreadSheet e.g. EXCEL)
7、演示演示(试用试用)版、高级版、超级版、工业版、扩展版版、高级版、超级版、工业版、扩展版 (求解(求解问题规模问题规模和和选件选件不同)不同) LINDO/LINGO软件能求解的模型软件能求解的模型 优化优化 线性规划线性规划非线性规划非线性规划 二次规划二次规划 连续优化连续优化整数规划整数规划 LINDO LINGO LINGO软件的功能与特点软件的功能与特点 LINGO模型的优点模型的优点 集成了线性集成了线性(非线性非线性) / 连续连续(整数整数) 优化功能优化功能 具有多点搜索具有多点搜索 / 全局优化功能全局优化功能 提供了灵活的编程语言提供了灵活的编程语言(矩阵生成器矩阵生成器
8、),可方便地,可方便地 输入模型输入模型 提供与其他数据文件的接口提供与其他数据文件的接口 提供与其他编程语言的接口提供与其他编程语言的接口 LINDO API 可用于自主开发可用于自主开发 运行速度较快运行速度较快 LP QP NLP IP 全局优化全局优化(选选) ILP IQP INLP LINGO软件的求解过程 LINGO预处理程序预处理程序 线性优化求解程序线性优化求解程序非线性优化求解程序非线性优化求解程序 分枝定界管理程序分枝定界管理程序 1. 确定常数确定常数 2. 识别类型识别类型 1. 单纯形算法单纯形算法 2. 内点算法内点算法(选选) 1、顺序线性规划法、顺序线性规划法
9、(SLP) 2、广义既约梯度法、广义既约梯度法(GRG) (选选) 3、多点搜索、多点搜索(Multistart) (选选) vLINGO provides all of the tools you will need to get up and running quickly. You get the LINGO User Manual (in printed form and available via the online Help), which fully describes the commands and features of the program. Also include
10、d with super versions and larger is a copy of Optimization Modeling with LINGO, http:/ x1+x2=350; x1=100; 2*x1+x2=600; 12 12 1 12 12 min ( )23 . . 350 100 2600 ,0 f xxx stxx x xx x x 线性规划模型的解的几种情况 线性规划问题线性规划问题 有可行解有可行解(Feasible) 无可行解无可行解 (Infeasible) 有最优解(有最优解(Optimal)无最优解无最优解 (Unbounded) 例例2.如何在LIN
11、GO中求解如下的IQP问题: LINGO代码: max=98*x1+277*x2-x12-0.3*x1*x2-2*x22; x1+x2=100; x1= required(J); end 例2。 职员时序安排模型 一项工作一周7天都需要有人(比如护 士工作),每天(周一至周日)所需的最少职员数为20、16、13、 16、19、14和12,并要求每个职员一周连续工作5天,试求每周所 需最少职员数,并给出安排。注意这里我们考虑稳定后的情况。 model: sets: days/mon.sun/: required,start; endsets data: !每天所需的最少职员数; required
12、 = 20 16 13 16 19 14 12; enddata !最小化每周所需职员数; min=sum(days: start); for(days(J): sum(days(I) | I #le# 5: start(wrap(J+I+2,7) = required(J); end 最优解决方案是:每周最少需要22个职员,周一安排8人 ,周二安排2人,周三无需安排人,周四安排6人,周五 和周六都安排3人,周日无需安排人。 LINDO /LINGO软件软件 vLINGO: Linear INteractive General Optimizer (V12.0) v求解数学规划问题 Min Z
13、 = f (x) s.t x D ( Rn ) v需要掌握的几个重要方面 基本语法结构 掌握集合(SETS)的应用 正确阅读求解报告 正确理解求解状态窗口 学会设置基本的求解选项(OPTIONS) 一、一、Lingo基本语法基本语法 1、定义了目标函数为MIN=. 2、以一个分号“;”结尾 除SETS, ENDSETS, DATA , ENDDATA, END之外 3、变量可以放在约束条件右端,也可放在约束条件的左端。 4、默认假定各变量非负。 5、注释:“!” 6、为、 建模时需要注意的几个基本问题建模时需要注意的几个基本问题 v尽量使用实数优化,减少整数约束和整数变量 v尽量使用光滑优化,
14、减少非光滑约束的个数 v尽量少使用绝对值、符号函数、多个变量求最大/最小值、 四舍五入、取整函数等 v尽量使用线性模型,减少非线性约束和非线性变量的个数 如x/y 5 改为x5y v合理设定变量上下界,尽可能给出变量初始值 v模型中使用的参数数量级要适当 不同参数绝对值数量级之间差距一般要求小于3 LINGO函数 LINGO有9种类型的函数: 1 基本运算符:包括算术运算符、逻辑运算符和关系运算符 2 数学函数:三角函数和常规的数学函数 3 金融函数:LINGO提供的两种金融函数 4 概率函数:LINGO提供了大量概率相关的函数 5 变量界定函数:这类函数用来定义变量的取值范围 6 集操作函数
15、:这类函数为对集的操作提供帮助 7 集循环函数:遍历集的元素,执行一定的操作的函数 8 数据输入输出函数:这类函数允许模型和外部数据源相联系, 进行数据的输入输出 9 辅助函数:各种杂类函数 v过滤条件使用结果:0 1 4.1运算符及其优先级运算符及其优先级 4.1.3 关系运算符 在LINGO中,关系运算符主要是被用来指定一个表达式的左边是否等于、小 于等于、或者大于等于右边,形成模型的一个约束条件。关系运算符与逻辑运 算符#eq#、#le#、#ge#截然不同,前者是模型中该关系运算符所指定关系的 为真描述,而后者仅仅判断一个该关系是否被满足:满足为真,不满足为假。 LINGO有三种关系运算
16、符:“=”、“=”。LINGO中还能用“”表示大于等于关系。LINGO并不支持严格小于和严格大 于关系运算符。然而,如果需要严格小于和严格大于关系,比如让比如让A严格小于严格小于 B: AB,那么可以把它变成如下的小于等于表达式:,那么可以把它变成如下的小于等于表达式:A+=B, 这里这里是一个小的正数,它的值依赖于模型中是一个小的正数,它的值依赖于模型中A小于小于B多少才算不等。多少才算不等。 v运算符的优先级 最高最低 v先左后右,先括号内,后括号外 4.2 数学函数 LINGO提供了大量的标准数学函数: abs(x) 返回x的绝对值 sin(x) 返回x的正弦值,x采用弧度制 cos(x
17、) 返回x的余弦值 tan(x) 返回x的正切值 exp(x) 返回常数e的x次方 log(x) 返回x的自然对数 lgm(x) 返回x的gamma函数的自然对数 sign(x) 如果x=0时,返回不超过x的最大整数; 当x=30; end 5. LINGO常用菜单命令常用菜单命令 1 求解模型(求解模型(Slove) 从从LINGO菜单中选用菜单中选用“求解求解”命令、单击命令、单击“Slove”按钮或按按钮或按Ctrl+S组合组合 键可以将当前模型送入内存求解。键可以将当前模型送入内存求解。 2 求解结果(求解结果(Solution) 从从LINGO菜单中选用菜单中选用“Solution”
18、命令、单击命令、单击“Solution ”按钮或直接按按钮或直接按Ctrl+O组合键可以打开求解结果的对话框。这里可以指定查组合键可以打开求解结果的对话框。这里可以指定查 看当前内存中求解结果的那些内容。看当前内存中求解结果的那些内容。 3 查看(查看(Look) 从从LINGO菜单中选用菜单中选用“Look”命令或直接按命令或直接按Ctrl+L组合键可以查看组合键可以查看 全部的或选中的模型文本内容。全部的或选中的模型文本内容。 4 灵敏性分析灵敏性分析(Range,Ctrl+R) 用该命令产生当前模型的灵敏性分析报告:研究当目标函数的费用系数和用该命令产生当前模型的灵敏性分析报告:研究当目
19、标函数的费用系数和 约束右端项在什么范围(此时假定其它系数不变)时,最优基保持不变。灵约束右端项在什么范围(此时假定其它系数不变)时,最优基保持不变。灵 敏性分析是在求解模型时作出的,因此在求解模型时灵敏性分析是激活状态敏性分析是在求解模型时作出的,因此在求解模型时灵敏性分析是激活状态 ,但是默认是不激活的。,但是默认是不激活的。为了激活灵敏性分析,运行为了激活灵敏性分析,运行LINGO|Options,选,选 择择General Solver Tab, 在在Dual Computations列表框中,选择列表框中,选择Prices sets: demand/1.6/:a,b,d; suppl
20、y/1.2/:x,y,e; link(demand,supply):c; endsets data: a=1.25,8.75,0.5,5.75,3,7.25; b=1.25,0.75,4.75,5,6.5,7.75; d=3,5,4,7,6,11; e=20,20; enddata init: x,y=5,1,2,7; endinit m i n = s u m ( l i n k ( i , j ) : c ( i , j ) * ( ( x ( j ) - a ( i ) ) 2 + ( y ( j ) - b(i)2)(1/2); for(demand(i):sum(supply(j):
21、c(i,j)=d(i);); for(supply(i):sum(demand(j):c(j,i)=e(i);); END 集合段集合段 数据段数据段 初始段初始段 供应约束供应约束 需求需求 需求点的位置需求点的位置 供需量供需量 供应供应 初始点初始点 目标目标 需求约束需求约束 连接连接 2、Lingo的集合的集合Set及其属性及其属性Attribute v例1 v建筑工地位置坐标 (ai,bi) 、水泥日用量di : 对每个建筑工地(6个)都有一个对应的值 都是一个由6个元素组成的数组是已知的 v料场位置坐标 (xj,yj) 、日储量ej 对每个料场(2个)都有一个对应的值 都是一个由
22、2个元素组成的数组目前是已知的 v料场到建筑工地的供应计划 c i j 对每个料场与建筑工地之间(62)都有一个对应的值 是一个62 个元素组成的矩阵是未知数 vLINDO无数组,每个变量输入麻烦 Lingo的集合Set下标集合 100个工地? 集合Set及其属性Attribute v定义数组下标集合demand/1.6/表示6个建筑工地 a,b,d称为该集合的属性 表示坐标(ai,bi) 、水泥日用量di v定义数组下标集合supply/1.2/表示6个建筑工地 该集合的属性x,y,e 表示坐标(xj,yj) 、日储量ej v定义数组下标集合link(demand,supply)表示 62个
23、料场到建筑工地的连接 该集合的属性c 表示每个料场与建筑工地之间供应计划c i j 1到6的整数 v建立 下标集合 例4 需求点的位置需求点的位置 供需量供需量 sets: demand/1.6/:a,b,d; supply/1.2/:x,y,e; link(demand,supply):c; endsets data: a=1.25,8.75,0.5,5.75,3,7.25; b=1.25,0.75,4.75,5,6.5,7.75; d=3,5,4,7,6,11; x,y=5,1,2,7; e=20,20; enddata v赋值 需求需求 供应供应 连接连接 基本基本 集合集合 派生派生
24、集合集合 626152514241 323122211211 212121 654321 654321 654321 , , , , , , cccccc cccccc eeyyxx dddddd bbbbbb aaaaaa Lingo 建模语言集合段 数据段 3、定义集合定义集合Set v直接把元素列举出来 v定义格式 集合名 元素列表 属性列表 setname /member_list/ : attribute_list; 可选项 v元素列表 显式列举法列出全部元素, 用逗号或空格分开 隐式列举法 1.n v属性列表缺省集合可在程序中作为一循环变量使用, 构造更复杂的派生集合 v元素列表缺
25、省必须在数据段给出元素列表赋值 基本集合基本集合primary set 派生集合派生集合derived set v基于其它集合而派生出来的二维或多维集合 v定义格式 集合名 父集合列表 元素列表 属性列表 setname(parent_set_list) /member_list/ : attribute_list; v元素列表缺省 所有组合稠密集合稠密集合、或数据段列表赋值 v元素列表稀疏集合稀疏集合 元素列表法枚举 元素过滤法利用过滤条件 setname(parent_set_list) |filtrate_condition :attribute_list; 集合的类型 集合集合 派生集
26、合派生集合 基本集合基本集合 稀疏集合稀疏集合 稠密集合稠密集合 元素列表法元素列表法 元素过滤法元素过滤法 直接列举法直接列举法 隐式列举法隐式列举法 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( STUDE
27、NTS, STUDENTS) | ENDSETS 3、Lingo集合循环函数集合循环函数 v难点!重点! v循环操作函数集合上的元素下标: 集合函数名 function(setname (set_index_list)|condition:expression_list); 集合名集合索引列表过滤条件 表达式 FORMAXMINSUM PROD v目标:吨公里 for(demand(i):sum(supply(j):c(i,j)=d(i);); for(supply(i):sum(demand(j):c(j,i)=e(i);); 例1 26 22 1/2 11 min()() ijjiji j
28、i cxayb v约束:需求 供应 2 1 6 1 .,1,.,6 ,1,2 iji j ijj i stcdi cej min=sum(link(i,j):c(i,j)*(x(j)-a(i)2+(y(j)-b(i)2)(1/2); v默认:非负实数变量 4、Lingo变量定界函数变量定界函数 例4 v约束:非负 .0,1,.,6,1,2 ij stcij 目标与约束段目标与约束段 MODEL: Title Location Problem; sets: demand/1.6/:a,b,d; supply/1.2/:x,y,e; link(demand,supply):c; endsets d
29、ata: a=1.25,8.75,0.5,5.75,3,7.25; b=1.25,0.75,4.75,5,6.5,7.75; d=3,5,4,7,6,11; x,y=5,1,2,7; e=20,20; enddata m i n = s u m ( l i n k ( i , j ) : c ( i , j ) * ( ( x ( j ) - a ( i ) ) 2 + ( y ( j ) - b(i)2)(1/2); for(demand(i):sum(supply(j):c(i,j)=d(i);); for(supply(i):sum(demand(j):c(j,i)1的正整数):N点求解
30、 例例6.某家具公司制造书桌、餐桌和椅子,所用的资源有三种:木料、某家具公司制造书桌、餐桌和椅子,所用的资源有三种:木料、 木工和漆工。生产数据如下表所示:木工和漆工。生产数据如下表所示: 若要求桌子的生产量不超过若要求桌子的生产量不超过5件,如何安排三种产品的生产可使利润最大?件,如何安排三种产品的生产可使利润最大? 用用DESKS、TABLES和和CHAIRS分别表示三种产品的生产量,建立分别表示三种产品的生产量,建立LP模型。模型。 max=60*desks+30*tables+20*chairs; 8*desks+6*tables+chairs=48; 4*desks+2*tables
31、+1.5*chairs=20; 2*desks+1.5*tables+.5*chairs=8; tables=5; 求解这个模型,并激活灵敏性分析。这时,查看报告窗口(求解这个模型,并激活灵敏性分析。这时,查看报告窗口( Reports Window),可以看到如下结果。可以看到如下结果。 Global optimal solution found at iteration: 3 Objective value: 280.0000 Variable Value Reduced Cost DESKS 2.000000 0.000000 TABLES 0.000000 5.000000 CHAIR
32、S 8.000000 0.000000 Row Slack or Surplus Dual Price 1 280.0000 1.000000 2 24.00000 0.000000 3 0.000000 10.00000 4 0.000000 10.00000 5 5.000000 0.000000 “Global optimal solution found at iteration: 3”表示表示3次迭代后得到全局次迭代后得到全局 最优解。最优解。 “Objective value:280.0000”表示最优目标值为表示最优目标值为280。 “Value”给给 出最优解中各变量的值:造出
33、最优解中各变量的值:造2个书桌(个书桌(desks), 0个餐桌(个餐桌(tables), 8个椅子个椅子 (chairs)。所以)。所以desks、chairs是基变量(非是基变量(非0),),tables是非基变量(是非基变量(0) 。 “Slack or Surplus”给出松驰变量的值:给出松驰变量的值: 第第1行松驰变量行松驰变量 =280(模型(模型第一行表示目标函数第一行表示目标函数,所以第二行对应第一个约,所以第二行对应第一个约 束)束) 第第2行松驰变量行松驰变量 =24 第第3行松驰变量行松驰变量 =0 第第4行松驰变量行松驰变量 =0 第第5行松驰变量行松驰变量 =5 “
34、Reduced Cost”列出最优单纯形表中判别数所在行的变量的系数,表示当列出最优单纯形表中判别数所在行的变量的系数,表示当 变量有微小变动时变量有微小变动时, 目标函数的变化率。其中基变量的目标函数的变化率。其中基变量的reduced cost值应为值应为0, 对于非基变量对于非基变量 Xj, 相应的相应的 reduced cost值表示当某个变量值表示当某个变量Xj 增加一个单位时增加一个单位时 目标函数减少的量目标函数减少的量( max型问题型问题)。本例中:变量。本例中:变量tables对应的对应的reduced cost值值 为为5,表示当非基变量,表示当非基变量tables的值从
35、的值从0变为变为 1时(此时假定其他非基变量保持不时(此时假定其他非基变量保持不 变变,但为了满足约束条件,基变量显然会发生变化),最优的目标函数值但为了满足约束条件,基变量显然会发生变化),最优的目标函数值 = 280 - 5 = 275。 “DUAL PRICE”(对偶价格)表示当对应约束有微小变动时(对偶价格)表示当对应约束有微小变动时, 目标函数的目标函数的 变化率。输出结果中对应于每一个约束有一个对偶价格。变化率。输出结果中对应于每一个约束有一个对偶价格。 若其数值为若其数值为p, 表表 示对应约束中不等式右端项若增加示对应约束中不等式右端项若增加1 个单位,目标函数将增加个单位,目
36、标函数将增加p个单位(个单位(max 型问题)。显然,如果在最优解处约束正好取等号(也就是型问题)。显然,如果在最优解处约束正好取等号(也就是“紧约束紧约束”,也,也 称为有效约束或起作用约束),对偶价格值才可能不是称为有效约束或起作用约束),对偶价格值才可能不是0。本例中:第。本例中:第3、4行行 是紧约束,对应的对偶价格值为是紧约束,对应的对偶价格值为10,表示当紧约束,表示当紧约束 3) 4 DESKS + 2 TABLES + 1.5 CHAIRS = 20 变为变为 3) 4 DESKS + 2 TABLES + 1.5 CHAIRS = 21 时,目标函数值时,目标函数值 = 28
37、0 +10 = 290。对第。对第4行也类似。行也类似。 对于非紧约束(如本例中第对于非紧约束(如本例中第2、5行是非紧约束),行是非紧约束),DUAL PRICE 的值为的值为0, 表示对应约束中不等式右端项的微小扰动不影响目标函数。有时表示对应约束中不等式右端项的微小扰动不影响目标函数。有时, 通过分析通过分析 DUAL PRICE, 也可对产生不可行问题的原因有所了解。也可对产生不可行问题的原因有所了解。 灵敏度分析的结果是灵敏度分析的结果是 Ranges in which the basis is unchanged: Objective Coefficient Ranges Curr
38、ent Allowable Allowable Variable Coefficient Increase Decrease DESKS 60.00000 20.00000 4.000000 TABLES 30.00000 5.000000 INFINITY CHAIRS 20.00000 2.500000 5.000000 Righthand Side Ranges Row Current Allowable Allowable RHS Increase Decrease 2 48.00000 INFINITY 24.00000 3 20.00000 4.000000 4.000000 4
39、8.000000 2.000000 1.333333 5 5.000000 INFINITY 5.000000 目标函数中目标函数中DESKS变量原来的费用系数为变量原来的费用系数为60,允许增加(,允许增加(Allowable Increase)=20、允许减少(、允许减少(Allowable Decrease)=4,说明当它在,说明当它在60-4, 60+20 = 56,80范围变化时,最优基保持不变。对范围变化时,最优基保持不变。对TABLES、CHAIRS变量变量 ,可以类似解释。由于此时约束没有变化(只是目标函数中某个费用系数发生,可以类似解释。由于此时约束没有变化(只是目标函数中某
40、个费用系数发生 变化),所以最优基保持不变的意思也就是最优解不变(当然,由于目标函数变化),所以最优基保持不变的意思也就是最优解不变(当然,由于目标函数 中费用系数发生了变化,所以最优值会变化)。中费用系数发生了变化,所以最优值会变化)。 第第2行约束中右端项(行约束中右端项(Right Hand Side,简写为,简写为RHS)原来为)原来为48,当它在,当它在 48-24,48+ = 24,范围变化时,最优基保持不变。第范围变化时,最优基保持不变。第3、4、5行可以类行可以类 似解释。不过由于此时约束发生变化,最优基即使不变,最优解、最优值也会似解释。不过由于此时约束发生变化,最优基即使不
41、变,最优解、最优值也会 发生变化。发生变化。 灵敏性分析结果表示的是最优基保持不变的系数范围。灵敏性分析结果表示的是最优基保持不变的系数范围。由此,也可以进一步由此,也可以进一步 确定当目标函数的费用系数和约束右端项发生小的变化时,最优基和最优解、确定当目标函数的费用系数和约束右端项发生小的变化时,最优基和最优解、 最优值如何变化。下面我们通过求解一个实际问题来进行说明。最优值如何变化。下面我们通过求解一个实际问题来进行说明。 例例7一奶制品加工厂用牛奶生产一奶制品加工厂用牛奶生产A1,A2两种奶制品,两种奶制品,1桶牛奶可以在甲车桶牛奶可以在甲车 间用间用12小时加工成小时加工成3公斤公斤A
42、1,或者在乙车间用,或者在乙车间用8小时加工成小时加工成4公斤公斤A2。根。根 据市场需求,生产的据市场需求,生产的A1,A2全部能售出,且每公斤全部能售出,且每公斤A1获利获利24元,每公斤元,每公斤 A2获利获利16元。现在加工厂每天能得到元。现在加工厂每天能得到50桶牛奶的供应,每天正式工人总桶牛奶的供应,每天正式工人总 的劳动时间的劳动时间480小时,并且甲车间每天至多能加工小时,并且甲车间每天至多能加工100公斤公斤A1,乙车间的,乙车间的 加工能力没有限制。试为该厂制订一个生产计划,使每天获利最大,并加工能力没有限制。试为该厂制订一个生产计划,使每天获利最大,并 进一步讨论以下进一
43、步讨论以下3个附加问题:个附加问题: 1) 若用若用35元可以买到元可以买到1桶牛奶,应否作这项投资?若投资,每天最多桶牛奶,应否作这项投资?若投资,每天最多 购买多少桶牛奶?购买多少桶牛奶? 2) 若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是 每小时几元?每小时几元? 3) 由于市场需求变化,每公斤由于市场需求变化,每公斤A1的获利增加到的获利增加到30元,应否改变生产元,应否改变生产 计划?计划? 模型代码如下:模型代码如下: max=72*x1+64*x2; x1+x2=50; 12*x1+8*x2=480; 3*x
44、1=100; 求解这个模型并做灵敏性分析,结果如下。求解这个模型并做灵敏性分析,结果如下。 Global optimal solution found at iteration: 0 Objective value: 3360.000 Variable Value Reduced Cost X1 20.00000 0.000000 X2 30.00000 0.000000 Row Slack or Surplus Dual Price 1 3360.000 1.000000 2 0.000000 48.00000 3 0.000000 2.000000 4 40.00000 0.000000
45、Ranges in which the basis is unchanged: Objective Coefficient Ranges Current Allowable Allowable Variable Coefficient Increase Decrease X1 72.00000 24.00000 8.000000 X2 64.00000 8.000000 16.00000 Righthand Side Ranges Row Current Allowable Allowable RHS Increase Decrease 2 50.00000 10.00000 6.666667
46、 3 480.0000 53.33333 80.00000 4 100.0000 INFINITY 40.00000 结果告诉我们:这个线性规划的最优解为结果告诉我们:这个线性规划的最优解为x1=20,x2=30,最优,最优 值为值为z=3360,即用,即用20桶牛奶生产桶牛奶生产A1, 30桶牛奶生产桶牛奶生产A2,可获最大,可获最大 利润利润3360元。输出中除了告诉我们问题的最优解和最优值以外,还元。输出中除了告诉我们问题的最优解和最优值以外,还 有许多对分析结果有用的信息,下面结合题目中提出的有许多对分析结果有用的信息,下面结合题目中提出的3个附加问个附加问 题给予说明。题给予说明。
47、3个约束条件的右端不妨看作个约束条件的右端不妨看作3种种“资源资源”:原料、劳:原料、劳 动时间、车间甲的加工能力。输出中动时间、车间甲的加工能力。输出中Slack or Surplus给出这给出这3种资种资 源在最优解下是否有剩余:原料、劳动时间的剩余均为零,车间甲源在最优解下是否有剩余:原料、劳动时间的剩余均为零,车间甲 尚余尚余40(公斤)加工能力。(公斤)加工能力。 目标函数可以看作目标函数可以看作“效益效益”,成为紧约束的,成为紧约束的“资源资源”一旦增加一旦增加 ,“效益效益”必然跟着增长。输出中必然跟着增长。输出中DUAL PRICES 给出这给出这3种资源种资源 在最优解下在最
48、优解下“资源资源”增加增加1个单位时个单位时“效益效益”的增量:原料增加的增量:原料增加1个个 单位(单位(1桶牛奶)时利润增长桶牛奶)时利润增长48(元),劳动时间增加(元),劳动时间增加1个单位(个单位(1 小时)时利润增长小时)时利润增长2(元),而增加非紧约束车间甲的能力显然不(元),而增加非紧约束车间甲的能力显然不 会使利润增长。这里,会使利润增长。这里,“效益效益”的增量可以看作的增量可以看作“资源资源”的潜在价的潜在价 值,经济学上称为影子价格,即值,经济学上称为影子价格,即1桶牛奶的影子价格为桶牛奶的影子价格为48元,元,1小时小时 劳动的影子价格为劳动的影子价格为2元,车间甲的影子价格为零。元,车间甲的影子价格为零。 用直接求解的办法验证上面的结论,即将输入文件中原料约束用直接求解的办法验证上面的结论,即将输入文件中原料约束milk)右)右 端的端的50改为改为51,看看得到的最优值(利润)是否恰好增长,看看得到的最优值(利润)是否恰好增长48(元)。用(元)。用 影子价格的概念很容易回答附加问题影子价格的概念很容易回答附加问题1):用):用35元可以买到元可以买到1桶牛奶,低桶牛奶,低 于于1桶牛奶的影子价格桶牛奶的影子价格48,当然应该作这项投资。回答附加问题,当然应该作这项投资。回答附加问题2):聘):聘 用临时工人以增加劳
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年天津北海油人力资源咨询服务有限公司招聘外包工作人员备考题库及答案详解(易错题)
- 2025年人民日报社公开招聘64名备考题库及答案详解(新)
- 靶向药物总结2026
- 2026荣耀校招笔试题及答案
- 全科医学医师考试题库(含答案)
- 小学六年级《音乐》质量监测试题及答案
- 与摸球相关的概率课件2025-2026学年北师大版数学七年级下册
- 2025-2026学年移动教学设计万能模版
- 2025-2026学年咏雪教学设计教资
- 2025-2026学年教案模板双人书桌
- 2026年内蒙古机电职业技术学院单招职业适应性考试题库附答案详解(基础题)
- 山东济宁市2025-2026学年高二上学期期末考试语文试题及参考答案
- 安徽能源集团秋招面试题及答案
- 2026年沈阳职业技术学院单招职业技能测试模拟测试卷附答案解析
- 2026年及未来5年中国城市地铁综合监控系统市场运行态势及行业发展前景预测报告
- 干细胞治疗共济失调的联合用药策略
- 山林共协议书范本
- 哈尔滨工业大学概况
- 《婚姻家庭继承法(第八版)》课件 房绍坤 第1-8章 婚姻家庭法概述-收养制度
- 施工便道施工方案 ()
- 配电线路故障指示器技术规范2013版
评论
0/150
提交评论