CPXXcallbackgetrelaxationstatusCPXcallbackgetrelaxationstatus

获取当前节点松弛的解状态。

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 标志值来更改默认行为。 如果指定了此标志,那么函数仅查询当前状态并返回。 在设置此标志时,搜索路径将不会更改。

警告:只有在CPX_CALLBACKCONTEXT_RELAXATIONCPX_CALLBACKCONTEXT_BRANCHING 上下文中调用回调时,对该函数的调用才有效。 在所有其他上下文中,它返回错误。

参数

上下文

传递到回调函数的回调上下文。

nodelpstat_p

如果不是 "NULL,函数将在该值中返回节点 LP 的状态(如CPXXgetstat 和 CPXgetstat所做的)。

标记

0 表示默认行为,CPX_RELAXATION_FLAG_NOSOLVE禁止额外解算。

返回

如果此例程成功,那么会返回 0,而如果发生错误,那么会返回非零。