CPXXcallbackgetrelaxationstatus 和 CPXcallbackgetrelaxationstatus
获取当前节点松弛的解状态。
int CPXXcallbackgetrelaxationstatus( CPXCALLBACKCONTEXTptr 背景, int *nodelpstat_p, CPXLONG 国旗 )
int CPXcallbackgetrelaxationstatus( CPXCALLBACKCONTEXTptr 背景, int *nodelpstat_p, CPXLONG 国旗 )
描述
查询当前节点松弛的解状态。
此函数包含当前节点的连续松弛的解状态。 这与CPXXcallbackgetrelaxationpoint 和 CPXcallbackgetrelaxationpoint有关,后者返回该松弛的实际解值。
该函数主要用于CPX_CALLBACKCONTEXT_BRANCHING上下文。 在此上下文中调用回调时,由于各种原因(例如,迭代限制或不可行状态等), 连续松弛可能无法求解为最优解。 函数为用户提供机会来捕获此最有解,并且可执行与松弛求解为最优解时 将采取的操作不同的操作。
需要注意的是,如果回调是在CPX_CALLBACKCONTEXT_RELAXATION 上下文中调用的,则不会发生上述情况,因此在这种情况下,通常不必为此费心。
缺省情况下 (flags=0),如果状态当前非最优,
那么函数将(再次)尝将松弛求解为最优解。 这可能更改搜索路径。 可以通过指定CPX_RELAXATION_FLAG_NOSOLVE 标志值来更改默认行为。 如果指定了此标志,那么函数仅查询当前状态并返回。 在设置此标志时,搜索路径将不会更改。
参数
- 上下文
传递到回调函数的回调上下文。
- nodelpstat_p
如果不是 "
NULL,函数将在该值中返回节点 LP 的状态(如CPXXgetstat 和 CPXgetstat所做的)。- 标记
0 表示默认行为,CPX_RELAXATION_FLAG_NOSOLVE禁止额外解算。
返回
如果此例程成功,那么会返回 0,而如果发生错误,那么会返回非零。