主要内容

intlinprog.输出功能和绘图函数语法

什么是输出函数和绘图函数?

intlinprog.在算法中发生某些事件后,可以调用输出函数或绘图函数。这些事件包括完成算法的一个阶段,例如解决根部LP问题,添加剪切,成功完成启发式,在分支和绑定期间找到新的整数可行解决方案,明确地提高相对差距,或探索许多节点在分支和绑定的树中。

警告

intlinprog.输出功能和绘图功能与其他求解器中的输出功能不同。对于其他优化工具箱™载体中的输出功能或绘图功能,请参阅输出功能和绘图函数语法绘制功能

  • 有一个内置输出功能:SaveMilp万博 尤文图斯solules。此功能收集算法在事件时间内找到的整数可行点。它将可行点放在名为的矩阵中新索尔在您的基础工作空间中,每个列是一个整数可行点。它可以节省名为的向量中的目标函数值Fintsol.,每个条目是相应列的目标函数新索尔

  • 有一个内置绘图功能:Optimplotmilp.。此函数在最佳目标函数值上绘制内部计算的界限。有关其使用的示例,请参阅工厂,仓库,销售分配模型:基于求解器

通过传递输出函数或绘图函数outputfcn.或者Plotfcn.名称 - 值对,包括输出功能或绘图功能的句柄。例如,

选项= Optimoptions(@Intlinprog,'outputfcn',@ savemil万博 尤文图斯psolutions,'plotfcn',@ Optimplotmilp);x = intlinprog(f,intcon,a,b,aeq,beq,lb,Ub,选项);

如果您有多个输出函数或绘图函数,请将其作为单元格数组传递。

选项= Optimoptions(@Intlinprog,'outputfcn',{@ savemil万博 尤文图斯psolutions,@ customfcn});

自定义函数语法

使用此语法编写自己的输出函数或绘图功能:

功能stop = customfcn(x,优化值,状态)

intlinprog.通过数据X优化价值, 和状态到你的功能。

  • 停止- 调成真的停止intlinprog.。调成错误的允许intlinprog.接着说。

  • X- 要么是空矩阵[]或者N-经过-1矢量是一个可行的点。X只有在争夺才能intlinprog.找到一个新的整数可行解决方案。X可以是不是空的何时阶段'启发式'或者'分枝'

  • 优化价值- 一种细节所在的结构优化价值结构

  • 状态- 其中一个值:

    • '在里面'-intlinprog.正在开始。使用此状态设置您需要的任何绘图或数据结构。

    • 'iter'-intlinprog.解决问题。访问与求解器的进度相关的数据。例如,绘图或执行文件操作。

    • '完毕'-intlinprog.完成了解决问题。关闭任何文件,完成注释图等

有关写入输出或绘图功能的示例,请参阅内置函数Savemilp万博 尤文图斯solutions.m.或者Optimplotmilp.m.

优化价值结构

优化价值场地 意义
阶段

算法的阶段。可能的值:

  • 'rootlp'-intlinprog.解决了根部LP问题。

  • 'vutgen'-intlinprog.添加切割并改善下限。

  • '启发式'-intlinprog.发现了使用启发式的新可行点。

  • '分枝'-intlinprog.正在在分支和绑定树中创建和探索节点。

fval.

到目前为止发现最佳客观函数在整数可行点。什么时候阶段='rootlp'fval.是根节点处的目标函数值,这不一定是整数可行点。

下面

目标函数值的全局下限。空的时间阶段='rootlp'

相对凝视

相对差距下面fval.。相对差距是从0到100的百分比,完全如输出争论。空的时间阶段='rootlp'或者numfeaspoints.=0.

numnodes.

探索节点的数量。非零只有阶段='分枝'

numfeaspoints.

发现的整数可行解决方案的数量。万博 尤文图斯

时间

到目前为止花了几秒钟的时间,用Tic.TOC.从时间开始状态='在里面'