| 概述 | 组 | 树 | 图形 | 不推荐 | 索引 | 概念 |

类 "IloCplex::MIPInfoCallbackI的实例代表应用程序中用户编写的回调,该应用程序使用 "IloCplex的实例求解混合整数程序(MIP)。 IloCplex在分支-切割搜索过程中定期调用用户编写的回调。
用户编写的该类回调与 MIP 动态搜索兼容。
该类提供了从用户编写的回调中访问现存解决方案及其目标值的方法。 它还提供了访问优先级顺序和进度信息(如已解决的节点数)的方法。
该类的方法受保护,用于派生一个用户编写的回调类,并在该类中实现 "main方法。
如果在用户编写的回调中试图访问本类实例不可用的信息,则会引发异常。 例如,如果没有在职者,查询在职者的方法就会出现异常。
该类还为这些回调类提供了通用应用程序编程接口(API):
另请参阅:
IloCplex,IloCplex::Callback,IloCplex::CallbackI,IloCplex:: DisjunctiveCutInfoCallbackI, IloCplex::FlowMIRCutInfoCallbackI,IloCplex::FractionalCutInfoCallbackI,IloCplex::OptimizationCallbackI,IloCplex::ProbingInfoCallbackI,ILOMIPINFOCALLBACK0
从 "OptimizationCallbackI继承的方法 |
|---|
getModel, getNcols, getNQCs, getNrows |
从 "CallbackI继承的方法 |
|---|
abort, duplicateCallback, getCplexTime, getDetTime, getEndDetTime, getEndTime, getEnv, getStartDetTime, getStartTime, getType, main |
| 方法详细信息 |
|---|
该构造函数创建了一个回调函数,供使用 "IloCplex实例求解混合整数程序(MIP)的应用程序使用。
这种方法可以获取分支切割树中所有剩余开放节点的当前已知最佳边界。
将为最小化问题将其计算为所有剩余未探索节点的最小目标函数值。 类似地,将为最大化问题将其计算为所有剩余未探索节点的最大目标函数值。
对于常规的 MIP 优化,该值也是 MIP 问题最优解值的已知最佳约束。 事实上,当一个问题已经得到最优解时,这个值就会与最优解值相匹配。
不过,对于 "populate方法,如果 CPLEX 已将模型求解至最优,但仍在继续搜索其他解,则该值也可能超过最优解值。
IloCplex实例使用截止值(搜索树中某节点处子问题的目标函数值)来决定何时从搜索树中剪切节点(即何时剪切该节点并丢弃其后的节点)。 每当发现新的在职者时,就会更新截止值。
该方法返回之前用 "IloCplex::setDirection或 "IloCplex::setDirections方法分配给变量 "var的分支方向。 如果没有指定方向,将返回 "IloCplex::BranchGlobal。
该方法返回之前用 "IloCplex::setDirection或 "IloCplex::setDirections方法分配给变量 "var的分支方向。 如果没有指定方向,将返回 "IloCplex::BranchGlobal。
返回在求解 MIP 时,"IloCplex实例调用回调时,现存解决方案(即迄今为止找到的最佳整数解决方案)的目标函数值。 如果没有现任者,该方法会返回一个非常大的正数(最小化)或一个非常小的负数(最大化)。
此方法返回任职者在 "rng指定范围内的松弛值。 如果没有现任者,该方法将抛出异常。
该方法将范围数组 "cons中每个范围的松弛值放入现任者的数组 "vals的相应元素中。 CPLEX 调整数组 "vals的大小,使其与数组 "cons的大小一致。 如果没有现任者,该方法将抛出异常。
This method returns the value of the expression expr in the incumbent solution at the time the invoking callback is called by an instance of IloCplex while solving a MIP. 如果没有现任者,该方法将抛出异常。
在求解 MIP 时,当 "IloCplex实例调用回调时,返回 "var在现存解中的解值。 如果没有现任者,该方法将抛出异常。
在求解 MIP 时,当 "IloCplex实例调用回调时,返回 "var在现存解中的解值。 如果没有现任者,该方法将抛出异常。
返回数组 "vars中每个变量相对于现有解决方案的值,并将这些值放入相应的数组 "vals中。 如果没有现任者,该方法将抛出异常。
返回数组 "vars中每个变量相对于现有解决方案的值,并将这些值放入相应的数组 "vals中。 如果没有现任者,该方法将抛出异常。
该方法可访问当前的相对目标差距。
对于最小化问题,该值的计算公式为
(bestinteger - bestobjective) /1e-10+ |bestinteger|)
where bestinteger is the value returned by IloCplex::MIPInfoCallbackI::getIncumbentValue and bestobjective is the value returned by IloCplex::MIPInfoCallbackI::getBestObjValue. 对于最大化问题,计算值的方法是
(bestobjective - bestinteger) /1e-10+ |bestinteger|)
返回当前执行的并行线程的标识符。 这个数字介于 0(零)和方法 "getUserThreads()-1返回的值之间。
此方法仅为"IloCplex::MIPCallbackI类及其子类返回非零值。 换句话说,该方法仅对查询、诊断和控制回调有效。 它对信息回调无效。
返回 CPLEX 在当前优化过程中添加到模型中的 "which类型切分的总数。
返回当前优化过程中为解决节点松弛而执行的迭代总数。
返回当前优化过程中为解决节点松弛而执行的迭代总数。
返回当前优化中已处理的节点数。
返回当前优化中已处理的节点数。
返回当前优化中剩余的节点数。
返回当前优化中剩余的节点数。
返回变量 "var在当前优化中使用的分支优先级。
返回变量 "var在当前优化中使用的分支优先级。
返回请求的 kappa 统计质量度量。 这种方法仅适用于卡帕统计的质量测量。 有关 kappa 统计的更多信息,请参阅《CPLEX 参数参考手册》中的参数 "MIPKappaStats。
Returns IloTrue if an integer feasible solution has been found, or, equivalently, if an incumbent solution is available at the time the invoking callback is called by an instance of IloCplex while solving a MIP.
此方法返回调用回调对象的回调类型。