主要内容

intlinprog输出函数和情节函数的语法

输出函数和情节函数是什么?

intlinprog可以调用一个输出函数或函数在某些事件发生后算法的阴谋。这些事件包括完成一个阶段的算法,如解决根LP问题,增加削减,成功地完成一个启发式,找到一个新的整数可行解和期间,明显改善的相对差距,或者探索和树的节点数量。

谨慎

intlinprog输出函数和情节函数不同于其他连接器。输出函数或情节功能在其他优化工具箱解决™,明白了输出函数和情节函数的语法绘制函数

  • 有一个内置的输出函数:savemilp金宝搏官方网站solutions。这个函数收集算法的整数可行点发现事件的时候。它把可行的点在一个矩阵xIntSol在你的基地工作空间,每一列是一个整数可行点。它将目标函数值保存在一个向量命名fIntSol的目标函数,其中每个条目对应的列xIntSol

  • 有一个内置的情节功能:optimplotmilp。这个函数块internally-calculated界限最好的目标函数值。其使用的一个示例,请参阅工厂、仓库、销售分配模型:Solver-Based

函数通过调用输出函数或阴谋OutputFcnPlotFcn名称-值对,包括输出函数或情节的处理函数。例如,

选择= optimoptions (@intlinprog,“OutputFcn”@savemilps金宝搏官方网站olutions,“PlotFcn”,@optimplotmilp);x = intlinprog (f intcon A、b Aeq,说真的,磅,乌兰巴托,选项);

如果有多个输出函数或情节功能,通过单元阵列。

选择= optimoptions (@intlinprog,“OutputFcn”,{@savemilp金宝搏官方网站solutions, @customFcn});

自定义函数的语法

编写自己的输出函数或阴谋使用这种语法功能:

函数停止= customFcn (x, optimValues状态)

intlinprog传递的数据x,optimValues,状态你的功能。

  • 停止——设置为真正的停止intlinprog。设置为允许intlinprog继续。

  • x——要么空矩阵[]或者一个N——- - - - - -1向量是一个可行的观点。x非空的只有当intlinprog发现一个新的整数可行解。x可以在非空的时候阶段“启发式”“分支”

  • optimValues——结构的细节optimValues结构

  • 状态——这些值之一:

    • “init”- - - - - -intlinprog正在开始。使用这个状态设置任何情节或你需要的数据结构。

    • “通路”- - - - - -intlinprog是解决这个问题。访问数据解算器的相关进展。例如,情节或执行文件操作。

    • “完成”- - - - - -intlinprog完成解决问题。关闭任何文件,完成注释块等。

写例子的输出或情节功能,内置函数savemilp金宝搏官方网站solutions.moptimplotmilp.m

optimValues结构

optimValues 意义
阶段

阶段的算法。可能的值:

  • “rootlp”- - - - - -intlinprog解决了根LP问题。

  • “cutgen”- - - - - -intlinprog添加削减和提高了下界。

  • “启发式”- - - - - -intlinprog使用启发式发现新的可行点。

  • “分支”- - - - - -intlinprog是创建和探索和树中的节点。

fval

最好的目标函数在整数可行点发现到目前为止。当阶段=“rootlp”,fval目标函数值在根节点,这未必是一个整数可行点。

下界

全球目标函数值的下界。空的时候阶段=“rootlp”

relativegap

相对差距下界fval。比例相对间隙是一个从0到100,完全一样输出论点。空的时候阶段=“rootlp”numfeaspoints=0

numnodes

探索节点的数量。非零只有当阶段=“分支”

numfeaspoints

发现数量的整数可行的解决方案。金宝搏官方网站

时间

秒的时间花到目前为止,测量抽搐toc的时候状态=“init”