1.结果窗口内容解读
-
目标函数值:Global option solution found.表示求出了全局最优解;Objective value表示最优目标值,Total solver iretion表示求解时共用了几次迭代
-
决策变量:Value给出最优解中各变量的值
-
变量的判别数:Reduced Cost表示最优单纯形表中判别数所在的行的变量的系数,表示当变量有微小变化时,目标函数的变化率。其中基变量的reduced cost值应为零。对于基变量相应的reduced cost值表示这个变量增加一个单位时目标函数值减少的量(max型问题)
-
紧约束与松约束:slack or Surplus给出松弛或剩余变量的值,其值为零的对应约束为"紧约束",表示在最优解下该项资源已经用完;其值为非零的对应约束为"松约束",表示在最优解下该项资源还有剩余
-
对偶价格(经济学:影子价格):DUAl PRICE(对偶价格)表示当对应约束有微小变动时目标函数的变化率。输出结果中对应每一个"紧约束"有一个对偶价格。若其数值为怕,则表示对应约束不等式右端项正好增加一个单位,目标函数将增加P个单位(max)模型。显然,如果在最优解处约束条件正好取等号(也就是"紧约束",也称为有效约束或起作用约束),对偶价格值才可能不是0.
-
变量框(Variables):Total表示当前模型的全部变量数,Nonlinear显示其中的非线性变量数,Integers显示其中的整数变量数。非线性变量是指它至少处于某一个约束条件中的非线性关系中。
-
约束(Constains)框:Total表示当前模型扩展后的全部约束个数,Nonlinear显示其中的非线性约束个数。非线性约束是该约束至少有一个非线性变量。如果一个约束中的所有变量都是定值,那么该约束就以定值不等式表示,该约束的真假由变量的具体值决定,仍计入约束总数中。
-
非零框(Nonzeros)框:Total表示当前模型中全部非零系数的数目,Nonlinear显示其中的非线性变量系数的数目
-
内存使用(Generator Memory Used(k))框:显示当前模型在内存中使用的内存量,单位为K。可以通过使用"LINGO->Options"命令修改模型的最大内存使用量
-
已运行时间(Elapsed RuntimeI(hh:mm:ss))框:若在运行结束后查看,这时提供求解模型的总时间。若在求解过程中查看,则显示求解模型到现在所用的时间,对与小规模的模型,求解时间显示00:00:00,这个时间可能会受系统中别的应用程序的影响
-
求解器状态(Solver Status)
Model Class: |
模型类别显示的模型类别为LP, QP ILP, QP, ILP, IQP, LP, NLP等 |
State: |
Possible states are "Global Optimum", "Local Optimum", "Feasible", "Infeasible", "Unbounded", "Interrupted", and "Undetermined". |
Objective: |
目标函数的当前值. |
Infeasibility: |
不满足约束条件的个数 |
Iterations : |
迭代次数 |
其中,模型类别为
缩写 |
类型 |
描述 |
LP |
线性模型 |
所有的表达式是线性,并且模型的约束条件中变量没有被约束为整数。 |
QP |
二次模型 |
所有表达式是线性或二次型,没有整数约束。 |
ILP |
整数线性模型 |
所有的表达式是线性,在变量中存在整数约束。 |
IQP |
整数二次模型 |
所有表达式是线性或二次型,在变量中存在整数约束。 |
PILP |
纯整数线性模型 |
所有表达式是线性,所有变量是整数。 |
PIQP |
纯整数二次模型 |
所有表达式是线性或二次型,所有变量是整数。 |
NLP |
非线性模型 |
至少存在一个非线性的表达式 |
12.扩展求解器状态(Extended Solver Status)框:
域名 |
含义 |
可能的显示 |
Solver type |
使用的特殊求解程序名称 |
B-and-B(分支定界法) Global(全局最优求解) Multistart(用多个初始点求解) |
Best Obj |
目前为止找到的可行解的最佳目标函数值 |
实数 |
Obj Bound |
目标函数值的界 |
实数 |
Steps |
特殊求解程序当前运行步数: 分支数:(对B-and-B程序) 子问题数(对Global程序) 初始点数(对Multistart程序) |
非负整数 |
Active |
有效步数 |
非负整数 |
2.灵敏度分析
-
灵敏度分析是研究当目标函数的费用系数和约束条件右端项在什么范围内变化(此时假定其他参数不变)时,最优解保持不变
-
Lingo默认关闭灵敏度分析,激活操作为LINGO->Options->General Solve->Dual Computation中选择Prices&Ranges选项,灵敏度分析将耗费相当多的求解时间,因此当速度很关键或不需要灵敏度分析报告时就没必要激活。此外,灵敏度分析只对线性规划模型有意义
-
目标函数的变化范围:Allowable Increase和Allowable Decrease分别表示在最优解不变的情况下变量允许增加或减少的量(最优解不变,但是最优解对应目标函数的值会变化)
-
约束条件右端项的变化范围(Righthand side,RHS):灵敏度分析是研究与分析一个系统(或模型)的状态或输出变化对系统参数或周围条件变化的敏感程度的方法。在最优化方法中经常利用灵敏度分析来研究原始数据不准确或发生变化时最优解的稳定性。通过灵敏度分析还可以决定哪些参数对系统或模型有较大的影响。其结果表示的是最优基保持不变的系数范围。由此,也可以进一步确定当目标函数的费用系数和约束右端项发生小的变化时,最优基和最优解、最优值如何变化。
Lingo学习笔记,参考《数学模型与实验》——王绍恒,王良伟与博客https://blog.csdn.net/duxinyuhi/article/details/51698391