§5L|NGOW| NDOWS命令 5.1文件菜单( File menu) 1.1.新建(NeW) 选用“新建”命令、单击“新建”按钮或直接按F2键可创建一个新的 “ Model”窗口,输入所要求解的模型。 1.2.打开(Open) 选用“打开”命令、单击“打开”按钮或直接按F3键可打开一个已经存在 的文本文件。此文件可能是 Model文件。 1.3.保存(Save 选用“保存”命令、单击“保存”按钮或直接按F4键保存当前活动窗口( 最前台的窗口)中的模型结果、命令序列等保存为文件 1.4.另存为. (Save As...) 选用“另存为 ”命令或按F5键可以将当前活动窗口中的内容保存为 文本文件,其文件名为你在“另存为. 对话框中输入的文件名。利 用这种方法可将任何窗口的内容如模型、求解结果或命令保存为文件。 1.5.关闭(C1ose) 选用“关闭”( Close)命令或按F6键将关闭当前活动窗口。若此窗口是新建 窗口或已经改变了当前文件的内容,将提示是否想要保存改变后的内容
1.1. 新建(New) 选用“新建”命令、单击“新建”按钮或直接按F2键可创建一个新的 “Model”窗口,输入所要求解的模型。 1.2. 打开(Open) 选用“打开”命令、单击“打开”按钮或直接按F3键可打开一个已经存在 的文本文件。此文件可能是Model文件。 1.3. 保存(Save) 选用“保存”命令、单击“保存”按钮或直接按F4键保存当前活动窗口( 最前台的窗口)中的模型结果、命令序列等保存为文件。 1.4. 另存为...(Save As...) 选用“另存为...”命令或按F5键可以将当前活动窗口中的内容保存为 文本文件,其文件名为你在“另存为...”对话框中输入的文件名。利 用这种方法可将任何窗口的内容如模型、求解结果或命令保存为文件。 1.5. 关闭(Close) 选用“关闭”(Close)命令或按F6键将关闭当前活动窗口。若此窗口是新建 窗口或已经改变了当前文件的内容,将提示是否想要保存改变后的内容。 §5 LINGO WINDOWS 命令 5.1 文件菜单(File Menu)
6.打印( Print) 选用“打印”( Print)命令、单击“打印”按钮或直接按F键可将当前活动 窗口中的内容发送到打印机 1.7.打印设置( Print Setup...) 选用“打印设置 命令或直接按F8键可将文件输出到指定打印机 8.打印预览( Print preview) 选用“打印预览 ”命令或直接按 Shift+F8键可进行打印预览 9.输出到日志文件( Log output...) 选用“ Log output ”命令或按F9键打开一个对话框,用于生成一个日 志文件,它存储接下来在“命令窗口”中输入的所有命令 1.10.提交 LINGO命令脚本文件( Take Commands...) 选用“ Take commands...”命令或直接按F11键可将命令脚本 ( command script)文件提交给系统进程来运行 11.引入 LINGO文件( Import Lingo File 选用“ Import lingo file ”命令或直接按F12键可打开LING格式 模型的文件,然后 LINGO系统会尽可能把模型转化为LⅠNGO语法允许的程序 1.12.退出(Exit) 选用“Exit”命令或直接按F10键可以退出 LINGO系统
1.6.打印(Print) 选用“打印” (Print)命令、单击“打印”按钮或直接按F7键可将当前活动 窗口中的内容发送到打印机。 1.7.打印设置(Print Setup...) 选用“打印设置...”命令或直接按F8键可将文件输出到指定打印机。 1.8.打印预览(Print Preview) 选用“打印预览...”命令或直接按Shift+F8键可进行打印预览。 1.9.输出到日志文件(Log Output...) 选用“Log Output...”命令或按F9键打开一个对话框,用于生成一个日 志文件,它存储接下来在“命令窗口”中输入的所有命令。 1.10.提交LINGO命令脚本文件(Take Commands...) 选用“Take Commands...”命令或直接按F11键可将命令脚本 (command script)文件提交给系统进程来运行。 1.11.引入LINGO文件(Import Lingo File...) 选用“Import Lingo File...”命令或直接按F12键可打开LINGO格式 模型的文件,然后LINGO系统会尽可能把模型转化为LINGO语法允许的程序。 1.12.退出(Exit) 选用“Exit”命令或直接按F10键可以退出LINGO系统
2.152兽 Edit Menu) 选用“恢复”(Undo)命令或按Ctr1+Z组合键,将撤销上次操作、恢复至其前状 态 2.2.剪切(Cut) 选用“剪切”(Cut)命令或按Ctrl+X组合键可将当前选中的内容剪切至剪贴板中 2.3.复制(Copy) 选用“复制”(Copy)命令、单击“复制”按钮或按Ctr+℃组合键可将当前选中 的内容复制到剪贴板中。 2.4.粘贴( Paste 选用“粘贴”( Paste)命令、单击“粘贴”按钮或按Ctrl+V组合键可将粘贴板中 的当前内容复制到当前插入点的位置。 2.5.特定粘贴..( Paste Specia1. 与上面命令不同,它可用于剪贴板中的内容不是文本的情形 2.6.全选( Select a11) 选用“ Select all”命令或按Ctr1+A组合键可选定当前窗口中的所有内容。 2.7.匹配小括号 Match parenthesis) 选用“ Match parenthesis”命令、单击“ Match parenthesis”按钮或按Ctr1+P组合 键可为当前选中的开括号查找匹配的闭括号。 2.8.粘贴函数〔 Paste function) 选用“ Paste function”命令可以将内部函数粘贴到当前插入点
2.1. 恢复(Undo) 选用“恢复”(Undo)命令或按Ctrl+Z组合键,将撤销上次操作、恢复至其前状 态。 2.2. 剪切(Cut) 选用“剪切”(Cut)命令或按Ctrl+X组合键可将当前选中的内容剪切至剪贴板中 。 2.3. 复制(Copy) 选用“复制”(Copy)命令、单击“复制”按钮或按Ctrl+C组合键可将当前选中 的内容复制到剪贴板中。 2.4. 粘贴(Paste) 选用“粘贴”(Paste)命令、单击“粘贴”按钮或按Ctrl+V组合键可将粘贴板中 的当前内容复制到当前插入点的位置。 2.5.特定粘贴..(Paste Special…) 与上面命令不同,它可用于剪贴板中的内容不是文本的情形。 2.6. 全选(Select All) •选用“Select All”命令或按Ctrl+A组合键可选定当前窗口中的所有内容。 2.7. 匹配小括号(Match Parenthesis) 选用“Match Parenthesis”命令、单击“Match Parenthesis”按钮或按Ctrl+P组合 键可为当前选中的开括号查找匹配的闭括号。 2.8. 粘贴函数(Paste Function) 选用“Paste Function”命令可以将内部函数粘贴到当前插入点。 5.2 编辑菜单 (Edit Menu)
3.539,解9菜兽。ge 选用“求解”命令、单击“ Slove"按钮或按Ctrl+S组合键可将当前模型送 入内存求解 3.2.求解结果 (Solution 选用“ Solution ”命令、单击“ Solution...”按钮或直接按 Ctrl+0组合键可打开求解结果对话框。可指定查看当前内存中求解结果的 那些内容 3.3.查看 (Look 选用“Look ”命令或直接按Ctr1+组合键可查看全部的或选中的模 型文本内容 3.4.灵敏性分析( Range,Ctr1+R) 产生当前模型的灵敏性分析报告:研究当目标函数的费用系数和约束右端 项在什么范围(此时假定其它系数不变)时,最优基保持不变。灵敏性分 析是在求解模型时作岀的,因此在求解模型时灵敏性分析是激活状态,默 认是不激活。为激活灵敏性分析,运行 LINGO| Options…,选择 Genera1 Solver tab,在 Dual Computations列表框中,选择 Prices and ranges选 而。灵衙性分析耗带相当多求解时间,因此速度很关键时,没必要濫活
3.1. 求解模型(Slove) 选用“求解”命令、单击“Slove”按钮或按Ctrl+S组合键可将当前模型送 入内存求解 3.2. 求解结果...(Solution...) 选用“Solution...”命令、单击“Solution...”按钮或直接按 Ctrl+O组合键可打开求解结果对话框。可指定查看当前内存中求解结果的 那些内容 3.3. 查看...(Look...) 选用“Look...”命令或直接按Ctrl+L组合键可查看全部的或选中的模 型文本内容 3.4. 灵敏性分析(Range,Ctrl+R) 产生当前模型的灵敏性分析报告:研究当目标函数的费用系数和约束右端 项在什么范围(此时假定其它系数不变)时,最优基保持不变。灵敏性分 析是在求解模型时作出的,因此在求解模型时灵敏性分析是激活状态,默 认是不激活。为激活灵敏性分析,运行LINGO|Options…,选择General Solver Tab,在Dual Computations列表框中,选择Prices and Ranges选 项。灵敏性分析耗费相当多求解时间,因此速度很关键时,没必要激活。 5.3 LINGO 菜单
简单举例: 例5.1某家具公司制造书桌、餐桌、椅子,所用资源有三种:木料 、木工、漆工。生产数据如下表所示 每个书桌 每个餐桌 每个椅子 现有资源总数 木料 8单位 6单位 1单位 48单位 漆工 4单位 2单位 1.5单位 20单位 木工 2单位 1.5单位 0.5单位 8单位 成品单价 60单位 30单位 20单位 若要求桌子的生产量不超过5件,如何安排三种产品的生产可使利 润最大? 用 DESKS、 TABLES、 CHAIRS分别表示三种产品生产量,建立LP模型 max=60大 desks+30tab1es+20大 chairs; 8*desks+6*tables+chairs<=4 8 4大 des ks+2tab1es+1.5大 chairs<=20; 2*desks+1. 5*tables+ 5*chairs<=8 tables<=5 求解这个模型,并激活灵敏性分析 查看报告窗口( Reports Window),结果如下:
简单举例: 例5.1某家具公司制造书桌、餐桌、椅子,所用资源有三种:木料 、木工、漆工。生产数据如下表所示: 每个书桌 每个餐桌 每个椅子 现有资源总数 木 料 8单位 6单位 1单位 48单位 漆 工 4单位 2单位 1.5单位 20单位 木 工 2单位 1.5单位 0.5单位 8单位 成品单价 60单位 30单位 20单位 若要求桌子的生产量不超过5件,如何安排三种产品的生产可使利 润最大? 用DESKS、TABLES、CHAIRS分别表示三种产品生产量,建立LP模型 max=60*desks+30*tables+20*chairs; 8*desks+6*tables+chairs<=48; 4*desks+2*tables+1.5*chairs<=20; 2*desks+1.5*tables+.5*chairs<=8; tables<=5; 求解这个模型,并激活灵敏性分析。 查看报告窗口(Reports Window),结果如下:
Global optimal solution found at iteration: 3 3次迭代后得到全局最优解 Objective value 280.0000 最优目标函数值:280 Variable Value Reduced cost DESKS 2.000000 0.000000 TABLES 0.000000 5.000000 CHA工RS 8.000000 0.000000 最优解中变量值:2个书桌( desks),0个餐桌( tables),8个椅 子( chairs)。 desks、 chairs基变量(非0), tables非基变量(0) Reduced cost: 最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变 动时,目标函数的变化率。 基变量 reduced cost=0,非基变量X,相应 reduced cost值表示X增加 个单位时目标函数减少(增加)的量[max(min)型问题] 本例中: tables的 reduced cost=5,表示当非基变量 tables值从0变为1 时(此时假定其他非基变量保持不变,但为满足约束条件,基变量 显然会发生变化),最优目标函数值=280-5=275
Global optimal solution found at iteration: 3 3次迭代后得到全局最优解 Objective value: 280.0000 最优目标函数值:280 Variable Value Reduced Cost DESKS 2.000000 0.000000 TABLES 0.000000 5.000000 CHAIRS 8.000000 0.000000 最优解中变量值:2个书桌(desks), 0个餐桌(tables), 8个椅 子(chairs)。 desks、chairs基变量(非0),tables非基变量(0) Reduced Cost: 最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变 动时, 目标函数的变化率。 基变量reduced cost=0, 非基变量 Xj ,相应 reduced cost值表示Xj增加 一个单位时目标函数减少(增加)的量[ma x (min)型问题]。 本例中:tables的reduced cost=5,表示当非基变量tables值从0变为 1 时(此时假定其他非基变量保持不变,但为满足约束条件,基变量 显然会发生变化),最优目标函数值 = 280 - 5 = 275
ROW Slack or Surplus Dual price 280.0000 1.000000 24.00000 0.000000 2345 0.000000 10.00000 0.000000 10.00000 5.000000 0.000000 Slack(松弛:小于等于) or Surplus(剩余:大于等于): 松驰变量值(即约束离相等差多少) 第1行松驰变量=280(行一表示目标函数,行二对应第一个约束) 第2行松驰变量=24 第3行松驰变量=0 第4行松驰变量=0 第5行松驰变量=5
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 Slack(松弛:小于等于) or Surplus(剩余:大于等于): 松驰变量值(即约束离相等差多少) 第1行松驰变量 =280(行一表示目标函数,行二对应第一个约束) 第2行松驰变量 =24 第3行松驰变量 =0 第4行松驰变量 =0 第5行松驰变量 =5
ROW Slack or surplus Dual price 280.0000 1.000000 12345 24.00000 0.000000 0.000000 10.00000 0.000000 10.00000 5.000000 0.000000 DUAL PRICE(对偶价格) 对应约束有微小变动时,目标函数的变化率 输出结果中对应每一约束有一个对偶价格。若其值为p,表示对应 约束中不等式右端项若增加1个单位,目标函数将增加(减少)p个 单位[max(min型问题]。 显然,若在最优解处约束正好取等号(即“紧约束”,又称有效约 束或起作用约束),对偶价格值才可能不是0。 本例中:第3、4行是紧约束,对应对偶价格值为10,表示当紧约束 3)4 DESKS 2 TABLES 1.5 CHAIRS <=20 变为3)4 DESKS+2 TABLES+15 CHAIRS<=21 时,目标函数值=280+10=290。第4行类似。 对非紧约束(如第2、5行是非紧约束), DUAL PRICE=0,表示对 应约束中不等式右端项的微小扰动不影响目标函数 有时,分析 DUAL PRICE,也可对产生不可行问题原因有所了解
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 DUAL PRICE(对偶价格): 对应约束有微小变动时,目标函数的变化率。 输出结果中对应每一约束有一个对偶价格。若其值为p,表示对应 约束中不等式右端项若增加1个单位,目标函数将增加(减少)p个 单位[max(min)型问题]。 显然,若在最优解处约束正好取等号(即“紧约束”,又称有效约 束或起作用约束),对偶价格值才可能不是0。 本例中:第3、4行是紧约束,对应对偶价格值为10,表示当紧约束 3) 4 DESKS + 2 TABLES + 1.5 CHAIRS <= 20 变为 3) 4 DESKS + 2 TABLES + 1.5 CHAIRS <= 21 时,目标函数值 = 280 +10 = 290。第4行类似。 对非紧约束(如第2、5行是非紧约束),DUAL PRICE =0, 表示对 应约束中不等式右端项的微小扰动不影响目标函数。 有时,分析DUAL PRICE,也可对产生不可行问题原因有所了解
灵敏度分析(最优解不变的前提下,目标函数系数的变化范围): Ranges in which the basis is unchanged Objective Coefficient Ranges Current Allowable Allowable Variable Coefficient 工 ncrease Decrease DESKS 60.00000 20.0 4.0 TABLES 30.00000 5.0 工NFIN工TY CHA工RS 20.00000 2.5 5.0 目标函数中 DESKS变量原来的费用系数为60,允许增加( Allowable increase)=20、允许减少( Allowable decrease)=4,说 明当它在[60-4,60+20]=[56,80]范围变化时,最优基保持不变。 TABLES、 CHAIRS变量,可类似解释 由于此时约束没有变化(只是目标函数中某个费用系数发生变化), 所以最优基保持不变的意思也就是最优解不变(当然,由于目标函 数中费用系数发生了变化,所以最优值会变化)
灵敏度分析(最优解不变的前提下,目标函数系数的变化范围): Ranges in which the basis is unchanged: Objective Coefficient Ranges Current Allowable Allowable Variable Coefficient Increase Decrease DESKS 60.00000 20.0 4.0 TABLES 30.00000 5.0 INFINITY CHAIRS 20.00000 2.5 5.0 目标函数中DESKS变量原来的费用系数为60,允许增加( Allowable Increase)=20、允许减少(Allowable Decrease)=4,说 明当它在[60-4,60+20] = [56,80]范围变化时,最优基保持不变。 TABLES、CHAIRS变量,可类似解释。 由于此时约束没有变化(只是目标函数中某个费用系数发生变化), 所以最优基保持不变的意思也就是最优解不变(当然,由于目标函 数中费用系数发生了变化,所以最优值会变化)
Righthand Side Ranges ROW Current Allowable Allowable RHS 工 ncrease Decrease 48.00000 工NE工N工TY 24.0 2345 20.00000 4.0 4.0 8.000000 2.0 1.333333 5.000000 工NE工N工空Y 第2行约束中右端项( Right Hand Side,简写为RHS)原来为48,当 它在[48-24,48+]=[24,∞范围变化时,最优基保持不变 第3、4、5行可类似解释。不过由于此时约束发生变化,最优基即 使不变,最优解、最优值也会发生变化。 灵敏性分析结果表示的是最优基保持不变的系数范围。 由此,也可进一步确定当目标函数的费用系数和约束右端项发生小 的变化时,最优基和最优解、最优值如何变化
Righthand Side Ranges Row Current Allowable Allowable RHS Increase Decrease 2 48.00000 INFINITY 24.0 3 20.00000 4.0 4.0 4 8.000000 2.0 1.333333 5 5.000000 INFINITY 5.0 第2行约束中右端项(Right Hand Side,简写为RHS)原来为48,当 它在[48-24,48+∞] = [24,∞]范围变化时,最优基保持不变。 第3、4、5行可类似解释。不过由于此时约束发生变化,最优基即 使不变,最优解、最优值也会发生变化。 灵敏性分析结果表示的是最优基保持不变的系数范围。 由此,也可进一步确定当目标函数的费用系数和约束右端项发生小 的变化时,最优基和最优解、最优值如何变化