跳至主内容
框架 无框架

类IloCplex::IncumbentCallbackI

定义文件: ilcplex/ilocplexi.h
IloCplex::IncumbentCallbackI的地图IloCplex::IncumbentCallbackIIloCplex::IncumbentCallbackIIloCplex::MIPCallbackIIloCplex::MIPInfoCallbackIIloCplex::OptimizationCallbackIIloCplex::CallbackI

这是一个高级班。 高级课程通常要求对 CPLEX 使用的算法有深刻的理解。 因而它们会提高应用程序中错误行为的风险,而这种行为可能难以调试。 因此,团队鼓励您仔细考虑是否可以用其他类来完成同样的任务。

在分支-切割搜索过程中,每当发现新的潜在任职者时,就会调用该回调。 通过它,您可以分析提议的任职者,并选择拒绝。 在这种情况下,CPLEX 将继续进行分支切割搜索。 因此,该回调通常与分支回调相结合,后者指示 CPLEX 在找到潜在任职者并认为节点解整数可行后,如何在节点上进行分支。

使用该回调拒绝任职者时,还必须将控制主要和双重还原类型的参数 "IloCplex::Reduce设置为 1(1),以限制预化为主要还原,或设置为 0(0),以禁用所有预化为还原。 如果现任回调用于其他目的,则无需设置缩减参数。

在 MIP 启动处理过程中,可能会调用在位回调。 在这种情况下,"getSolutionSource将返回 "MIPStartSolution。 在这种情况下,需要考虑以下特殊因素:

  • MIP 启动处理在解法过程中很早发生。 此时,尚未设置搜索树,而且尚不存在搜索树节点。 因此,在此情况下,需要节点上下文的大量回调函数将失败。

另请参阅:

方法概要
public NodeData *getNodeData() const
public NodeIdgetNodeId() const
public IloNumgetObjValue() const
public IloNumgetSlack(const IloRange rng) const
public voidgetSlacks(IloNumArray val, const IloRangeArray con) const
public IncumbentCallbackI::SolutionSourcegetSolutionSource() const
protected Callback::TypegetType() const
public IloNumgetValue(const IloIntVar var) const
public IloNumgetValue(const IloNumVar var) const
public IloNumgetValue(const IloExprArg expr) const
public voidgetValues(IloNumArray val, const IloIntVarArray vars) const
public voidgetValues(IloNumArray val, const IloNumVarArray vars) const
public voidreject()
public NodeData *setNodeData(NodeData * data)
从 "MIPCallbackI继承的方法
getCurrentNodeDepth, getObjCoef, getObjCoef, getObjCoefs, getObjCoefs, getType, getUserThreads, MIPCallbackI
从 "MIPInfoCallbackI继承的方法
getBestObjValue, getCutoff, getDirection, getDirection, getIncumbentObjValue, getIncumbentSlack, getIncumbentSlacks, getIncumbentValue, getIncumbentValue, getIncumbentValue, getIncumbentValues, getIncumbentValues, getMIPRelativeGap, getMyThreadNum, getNcuts, getNiterations, getNiterations64, getNnodes, getNnodes64, getNremainingNodes, getNremainingNodes64, getPriority, getPriority, getQuality, getType, hasIncumbent, MIPInfoCallbackI
从 "OptimizationCallbackI继承的方法
getModel, getNcols, getNQCs, getNrows
从 "CallbackI继承的方法
abort, duplicateCallback, getCplexTime, getDetTime, getEndDetTime, getEndTime, getEnv, getStartDetTime, getStartTime, getType, main
内部枚举
IncumbentCallbackI::SolutionSource
方法详细信息

getNodeData

公共NodeData*getNodeData() 常量

This method retrieves the NodeData object that may have previously been assigned to the current node by the user with the method IloCplex::BranchCallbackI::makeBranch. 如果当前节点未分配任何数据对象,则将返回 0(零)。


getNodeId

publicNodeId getNodeId() const

该方法返回当前节点的 "NodeId

请参阅 MIPCallbackI::NodeId


getObjValue

publicIloNum getObjValue() const

该方法返回潜在任职者的查询目标值。

如果您需要代表目标本身的对象,请考虑使用 "IloCplex::getObjective方法。


getSlack

publicIloNum getSlack(constIloRange rng) const

此方法返回潜在任职者在 "rng指定范围内的松弛值。


getSlacks

public voidgetSlacks(IloNumArray val, constIloRangeArray con) const

该方法将范围数组 "con中每个范围的松弛值放入潜在任职者的数组 "val的相应元素中。 为此,CPLEX 调整了数组 "val的大小,使其与数组 "con的大小一致。


getSolutionSource

公共IncumbentCallbackI::SolutionSource getSolutionSource() 常量

此方法返回调用回调的解决方案的来源。


getValue

publicIloNum getValue(constIloIntVar var) const

该方法返回潜在现任解决方案中变量 "var的查询值。

有关适用于该方法的整数、截断和舍入的特殊考虑因素,请参阅CPLEX 优化器中的整数值、整数公差和舍入概念。


getValue

publicIloNum getValue(constIloNumVar var) const

该方法返回潜在现任解决方案中变量 "var的值。


getValue

publicIloNum getValue(constIloExprArg expr) const

该方法返回潜在现有解决方案的 "expr值。


getValues

public voidgetValues(IloNumArray val, constIloIntVarArray vars) const

该方法返回潜在现任解决方案中数组 "vars中变量的查询值,并将其复制到 "val中。 CPLEX 会自动调整数组 "val的大小,以匹配数组 "vars的大小。

有关适用于该方法的整数、截断和舍入的特殊考虑因素,请参阅CPLEX 优化器中的整数值、整数公差和舍入概念。


getValues

public voidgetValues(IloNumArray val, constIloNumVarArray vars) const

该方法返回潜在现任解决方案中数组 "vars中变量的查询值,并将其复制到 "val中。 CPLEX 会自动调整数组 "val的大小,以匹配数组 "vars的长度。


拒绝

公共 voidreject()

这种方法会拒绝提议的现任者。


setNodeData

publicNodeData*setNodeData(NodeData *data)

此方法设置分配给当前节点的 "NodeData对象。 如果已为当前节点设置了 "NodeData对象,则该方法将替换该对象并返回旧对象。 否则,该方法返回 0(零)。


getType

protectedCallback::Type getType() const

此方法返回调用回调对象的回调类型。


内部枚举详细信息

枚举SolutionSource

定义文件: ilcplex/ilocplexi.h

该枚举列出的值说明了现任回调或懒约束回调是针对哪种类型的解决方案调用的。

字段

NodeSolution = CPX_CALLBACK_MIP_INCUMBENT_NODESOLN 
HeuristicSolution = CPX_CALLBACK_MIP_INCUMBENT_HEURSOLN 
UserSolution = CPX_CALLBACK_MIP_INCUMBENT_USERSOLN 
MIPStartSolution = CPX_CALLBACK_MIP_INCUMBENT_MIPSTART