intlinprog
输出函数和绘图函数语法intlinprog
可以在算法中发生某些事件后调用输出函数或绘图函数。这些事件包括完成算法的一个阶段,如解决根LP问题,添加切割,成功完成启发式,在分枝定界过程中找到一个新的整数可行解,显著改善相对间隙,或在分枝定界树中探索若干节点。
谨慎
intlinprog
输出函数和绘图函数不同于其他求解器中的函数。有关其他最优化工具箱™求解器中的输出函数或绘图函数,请参阅输出函数和绘图函数语法和绘制函数.
有一个内置的输出函数:savemilp金宝搏官方网站solutions
.该函数收集算法在事件时刻找到的整数可行点。它将可行点放入一个名为xIntSol
在您的基本工作空间中,其中每一列是一个整数可行点。它将目标函数的值保存在一个名为fIntSol
,其中每一项是中相应列的目标函数xIntSol
.
有一个内置的绘图功能:optimplotmilp
.这个函数绘制出最佳目标函数值的内部计算界限。有关它的使用示例,请参见工厂,仓库,销售分配模型:基于求解器.
调用输出函数或绘图函数OutputFcn
或PlotFcn
名称-值对,包括输出函数或绘图函数的句柄。例如,
选择= optimoptions (@intlinprog,“OutputFcn”@savemilps金宝搏官方网站olutions,“PlotFcn”, @optimplotmilp);x = intlinprog (f intcon A、b Aeq,说真的,磅,乌兰巴托,选项);
如果您有多个输出函数或绘图函数,请将它们作为单元格数组传递。
选择= optimoptions (@intlinprog,“OutputFcn”, {@savemil金宝搏官方网站psolutions, @customFcn});
使用下面的语法编写自己的输出函数或plot函数:
函数停止= customFcn (x, optimValues状态)
intlinprog
传递的数据x
,optimValues
,状态
你的功能。
停止
——设置为真正的
停止intlinprog
.设置为假
允许intlinprog
继续。
x
-一个空矩阵[]
或者一个N
——- - - - - -1
这个向量是一个可行点。x
只有在什么时候非空intlinprog
求一个新的整数可行解。x
何时可以非空阶段
是“启发式”
或“分支”
.
optimValues
-一个结构,其细节在optimValues结构.
状态
-这些价值之一:
“init”
- - - - - -intlinprog
正在开始。使用此状态设置所需的任何图或数据结构。
“通路”
- - - - - -intlinprog
就是解决问题。访问与求解程序进程相关的数据。例如,绘制或执行文件操作。
“完成”
- - - - - -intlinprog
他已经解决了这个问题。关闭任何文件,完成对图的注释等。
有关编写输出函数或plot函数的示例,请参阅内置函数savemilp金宝搏官方网站solutions.m
或optimplotmilp.m
.
optimValues
结构optimValues 场 |
意义 |
---|---|
阶段 |
算法的阶段。可能的值:
|
fval |
到目前为止在一个整数可行点上找到的最佳目标函数。当 |
下界 |
目标函数值的全局下界。空的时候 |
relativegap |
相对差距 |
numnodes |
探测节点数。非零只有当 |
numfeaspoints |
已找到的整数可行解的个数。金宝搏官方网站 |
时间 |
以秒为单位的时间,用 |