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

该类的实例定义了可以调用 CPLEX 通用回调的上下文。
| 方法概要 | |
|---|---|
public void | abort() const |
public IloRange | addUserCut(IloRange cut, IloCplex::CutManagement cutmanagement, IloBool local) const |
public void | exitCutLoop() const |
public IloNum | getCandidateObjective() const |
public IloNum | getCandidatePoint(IloIntVar const & var) const |
public IloNum | getCandidatePoint(IloNumVar const & var) const |
public void | getCandidatePoint(IloIntVarArray const & vars, IloNumArray & vals) const |
public void | getCandidatePoint(IloNumVarArray const & vars, IloNumArray & vals) const |
public IloNum | getCandidateValue(IloExprArg const & expr) const |
public IloNum | getDoubleInfo(Info::Infos what) const |
public IloEnv | getEnv() const |
public IloNum | getGlobalLB(IloIntVar const & var) const |
public IloNum | getGlobalLB(IloNumVar const & var) const |
public void | getGlobalLB(IloIntVarArray const & vars, IloNumArray & vals) const |
public void | getGlobalLB(IloNumVarArray const & vars, IloNumArray & vals) const |
public IloNum | getGlobalUB(IloIntVar const & var) const |
public IloNum | getGlobalUB(IloNumVar const & var) const |
public void | getGlobalUB(IloIntVarArray const & vars, IloNumArray & vals) const |
public void | getGlobalUB(IloNumVarArray const & vars, IloNumArray & vals) const |
public CPXLONG | getId() const |
public IloNum | getIncumbent(IloIntVar const & var) const |
public IloNum | getIncumbent(IloNumVar const & var) const |
public void | getIncumbent(IloIntVarArray const & vars, IloNumArray & vals) const |
public void | getIncumbent(IloNumVarArray const & vars, IloNumArray & vals) const |
public IloNum | getIncumbentObjective() const |
public IloNum | getIncumbentValue(IloExprArg const & expr) const |
public CPXINT | getIntInfo(Info::Infos what) const |
public IloNum | getLocalLB(IloIntVar const & var) const |
public IloNum | getLocalLB(IloNumVar const & var) const |
public void | getLocalLB(IloIntVarArray const & vars, IloNumArray & vals) const |
public void | getLocalLB(IloNumVarArray const & vars, IloNumArray & vals) const |
public IloNum | getLocalUB(IloIntVar const & var) const |
public IloNum | getLocalUB(IloNumVar const & var) const |
public void | getLocalUB(IloIntVarArray const & vars, IloNumArray & vals) const |
public void | getLocalUB(IloNumVarArray const & vars, IloNumArray & vals) const |
public CPXLONG | getLongInfo(Info::Infos what) const |
public IloNum | getRelaxationObjective() const |
public IloNum | getRelaxationPoint(IloIntVar const & var) const |
public IloNum | getRelaxationPoint(IloNumVar const & var) const |
public void | getRelaxationPoint(IloIntVarArray const & vars, IloNumArray & vals) const |
public void | getRelaxationPoint(IloNumVarArray const & vars, IloNumArray & vals) const |
public IloCplex::CplexStatus | getRelaxationStatus(CPXLONG flags) const |
public IloNum | getRelaxationValue(IloExprArg const & expr) const |
public IloBool | inBranching() const |
public IloBool | inCandidate() const |
public IloBool | inGlobalProgress() const |
public IloBool | inLocalProgress() const |
public IloBool | inRelaxation() const |
public IloBool | inThreadDown() const |
public IloBool | inThreadUp() const |
public IloBool | isCandidatePoint() const |
public IloBool | isCandidateRay() const |
public CPXLONG | makeBranch(IloRangeArray const & constraints, IloNum estimate) const |
public CPXLONG | makeBranch(IloIntVar const & branchVar, IloNum bound, IloCplex::BranchDirection dir, IloNum estimate) const |
public CPXLONG | makeBranch(IloNumVar const & branchVar, IloNum bound, IloCplex::BranchDirection dir, IloNum estimate) const |
public CPXLONG | makeBranch(IloIntVarArray const & vars, IloNumArray const & bounds, IloCplex::BranchDirectionArray const & dirs, IloNum estimate) const |
public CPXLONG | makeBranch(IloNumVarArray const & vars, IloNumArray const & bounds, IloCplex::BranchDirectionArray const & dirs, IloNum estimate) const |
public CPXLONG | makeBranch(IloIntVarArray const & vars, IloNumArray const & bounds, IloCplex::BranchDirectionArray const & dirs, IloRangeArray const & constraints, IloNum estimate) const |
public CPXLONG | makeBranch(IloNumVarArray const & vars, IloNumArray const & bounds, IloCplex::BranchDirectionArray const & dirs, IloRangeArray const & constraints, IloNum estimate) const |
public void | postHeuristicSolution(IloIntVarArray const & vars, IloNumArray const & vals, double obj, SolutionStrategy::Types strat) const |
public void | postHeuristicSolution(IloNumVarArray const & vars, IloNumArray const & vals, double obj, SolutionStrategy::Types strat) const |
public void | pruneCurrentNode() const |
public IloRange | rejectCandidate(IloRange violated=0) const |
public void | rejectCandidate(IloRangeArray const & violated) const |
public IloRange | rejectCandidateLocal(IloRange violated) const |
public void | rejectCandidateLocal(IloRangeArray const & violated) const |
| 内部结构 |
|---|
| Context::Id |
| Context::Info |
| Context::SolutionStrategy |
| 方法详细信息 |
|---|
这种方法会停止优化。 调用此方法可指示 CPLEX 在回调返回后尽快停止优化。
此方法可添加用户定义的剪切。 该方法会创建传给它的所有 "IloRange实例的深度副本,因此在该方法返回后,你可以在范围上调用 "end方法。
| 剪切 | 剪切添加。 |
| 切割管理 | 来自 " IloCplex::CutManagement的值,用于指定 CPLEX 应如何管理剪切。 |
| 本地 | 布尔值,指定此剪切是局部有效还是全局有效。 |
cut。此方法要求 CPLEX 在当前节点停止切割平面分离。
.该方法只能在上下文 "IloCplex::Callback::Context::Id::Relaxation中调用;在其他上下文中调用时会出现异常。
这种方法可以获取当前候选方案的目标。 该方法只能在上下文 "IloCplex::Callback::Context::Id::Candidate中调用;在其他上下文中调用时会出现异常。
该方法是 "IloCplex::Callback::getCandidatePoint(IloIntVarArray const&, IloNumArray &)方法的方便封装。 (详见该方法的文档) 此方法可获取单个变量的候选解值。
| 变异 | 要查询值的变量。 |
var的值。该方法是 "IloCplex::Callback::getCandidatePoint(IloNumVarArray const&, IloNumArray & />方法的方便封装。 (详见该方法的文档) 此方法可获取单个变量的候选解值。
| 变异 | 要查询值的变量。 |
var的值。该方法可获取候选解决方案。 它检索当前候选信息中 "vars[start], ... ., 'vars[start+length-1]的值,并返回它们。 该方法只能在上下文 "IloCplex::Callback::Context::Id::Candidate中调用,且 "IloCplex::Callback::Context:isCandidatePoint()必须返回 true。
| 变量 | 要查询值的变量。 |
| 瓶盖 | vars"中变量值的存储位置。 |
vals中的第 i 个值将指定 "vars中第 i 个变量的值。 请注意,该方法会适当调整 "vals的大小。该方法可访问候选解决方案。 它检索当前候选信息中 "vars[start], ... ., 'vars[start+length-1]的值,并返回它们。 该方法只能在上下文 "IloCplex::Callback::Context::Id::Candidate中调用,且 "IloCplex::Callback::Context::isCandidatePoint()必须返回 true。
| 变量 | 要查询值的变量。 |
| 瓶盖 | vars"中变量值的存储位置。 |
vals中的第 i 个值将指定 "vars中第 i 个变量的值。 请注意,该方法会适当调整 "vals的大小。该方法会根据当前候选方案对 "expr进行评估。 该方法只能在上下文 "IloCplex::Callback::Context::Id::Candidate和 "IloCplex::Callback::Context::isCandidatePoint()返回 true 的情况下调用。
| expr | 要评估的表达式。 |
expr相对于当前候选方案的值。该方法可访问双精度有值信息。 有关可查询信息的详细信息,请参阅 "Info结构的文档。
| 什么 | 要查询的信息。 |
该方法访问 "IloEnv的实例,该实例在回调时有效。 使用此方法返回的环境对象(而不是 "IloEnv的全局实例)来执行应用程序在回调中的所有操作。
该方法是 "IloCplex::Callback::Context::getGlobalLB(IloIntVarArray const&, IloIntArray &)方法的方便封装。 (详见该方法的文档) 此方法可获取单个变量的全局下限。
| 变异 | 查询本地绑定的变量。 |
var 的本地边界 .该方法是 "IloCplex::Callback::Context::getGlobalLB(IloNumVarArray const&, IloNumArray &)方法的方便封装。 (详见该方法的文档) 此方法可获取单个变量的全局下限。
| 变异 | 查询本地绑定的变量。 |
var 的本地边界 .该方法可访问变量的全局下限。 这种方法可以查询已知的最有效的全局界限。
此方法不能从上下文 "IloCplex::Callback::Context::Id::ThreadUp或 "IloCplex::Callback::Context::Id::ThreadDown中调用。
| 变量 | 需要查询下限的变量。 |
| 瓶盖 | 在哪里存储 " vars中变量的本地边界。 |
vals中的第 i 个值将指定 "vars中第 i 个变量的全局边界。 请注意,该方法会适当调整 "vals的大小。该方法可访问变量的全局下限。 这种方法可以查询已知的最有效的全局界限。
此方法不能从上下文 "IloCplex::Callback::Context::Id::ThreadUp或 "IloCplex::Callback::Context::Id::ThreadDown中调用。
| 变量 | 需要查询下限的变量。 |
| 瓶盖 | 在哪里存储 " vars中变量的本地边界。 |
vals中的第 i 个值将指定 "vars中第 i 个变量的全局边界。 请注意,该方法会适当调整 "vals的大小。该方法是 "IloCplex::Callback::Context::getGlobalUB(IloIntVarArray const&, IloNumArray &)方法的方便封装。 (详见该方法的文档) 此方法可获取单个变量的全局上限。
| 变异 | 查询本地绑定的变量。 |
var 的本地边界 .该方法是 "IloCplex::Callback::Context::getGlobalUB(IloNumVarArray const&, IloNumArray &)' />方法的方便封装。 (详见该方法的文档) 此方法可获取单个变量的全局上限。
| 变异 | 查询本地绑定的变量。 |
var 的本地边界 .该方法可访问变量的全局上限。 这种方法可以查询到已知的最佳全局有效边界。
此方法不能从上下文 "IloCplex::Callback::Context::Id::ThreadUp或 "IloCplex::Callback::Context::Id::ThreadDown中调用。
| 变量 | 需要查询上限的变量。 |
| 瓶盖 | 在哪里存储 " vars中变量的本地边界。 |
vals中的第 i 个值将指定 "vars中第 i 个变量的全局边界。 请注意,该方法会适当调整 "vals的大小。该方法可访问变量的全局上限。 这种方法可以查询到已知的最佳全局有效边界。
此方法不能从上下文 "IloCplex::Callback::Context::Id::ThreadUp或 "IloCplex::Callback::Context::Id::ThreadDown中调用。
| 变量 | 需要查询上限的变量。 |
| 瓶盖 | 在哪里存储 " vars中变量的本地边界。 |
vals中的第 i 个值将指定 "vars中第 i 个变量的全局边界。 请注意,该方法会适当调整 "vals的大小。该方法可访问调用相应回调的上下文。
IloCplex::Callback::Context::Id的值,用于指定调用该实例的上下文。该方法是 "IloCplex::Callback::getIncumbent(IloIntVarArray const&, IloNumArray &)方法的方便封装。 (详见该方法的文档) 此方法可获取单个变量的现存解值。
| 变异 | 要查询值的变量。 |
var的值。该方法是 "IloCplex::Callback::getIncumbent(IloNumVarArray const&, IloNumArray &)方法的方便封装。 (详见该方法的文档) 此方法可获取单个变量的现存解值。
| 变异 | 要查询值的变量。 |
var的值。该方法可访问当前的现有解决方案。 It retrieves the values for vars[start], . . . , vars[start+length-1] in the current incumbent solution and returns them. 如果没有现任解决方案,该方法会引发异常。 Use the method IloCplex::Callback::getIntInfo with the value Info::Feasible to check whether an incumbent is available.
| 变量 | 要查询现任值的变量。 |
| 瓶盖 | vars"中变量值的存储位置。 |
vals中的第 i 个值将指定 "vars中第 i 个变量的值。 请注意,该方法会适当调整 "vals的大小。该方法可访问当前的现有解决方案。 It retrieves the values for vars[start], . . . , vars[start+length-1] in the current incumbent solution and returns them. 如果没有现任解决方案,该方法会引发异常。 Use the method IloCplex::Callback::getIntInfo with the value Info::Feasible to check whether an incumbent is available.
| 变量 | 要查询现任值的变量。 |
| 瓶盖 | vars"中变量值的存储位置。 |
vals中的第 i 个值将指定 "vars中第 i 个变量的值。 请注意,该方法会适当调整 "vals的大小。这种方法可以获取当前任职者的目标值。
该方法将 "expr与当前的现有解决方案进行比较。
| expr | 要评估的表达式。 |
expr相对于现有解决方案的值。该方法可访问 32 位有符号整数值信息。 有关可查询信息的详细信息,请参阅 "Info结构的文档。
| 什么 | 要查询的信息。 |
该方法是 "IloCplex::Callback::Context::getLocalLB(IloIntVarArray const&, IloIntArray &)方法的方便封装。 (详见该方法的文档) 此方法可获取单个变量的局部下界。
| 变异 | 查询本地绑定的变量。 |
var 的本地边界 .该方法是 "IloCplex::Callback::Context::getLocalLB(IloNumVarArray const&, IloNumArray &)方法的方便封装。 (详见该方法的文档) 此方法可获取单个变量的局部下界。
| 变异 | 查询本地绑定的变量。 |
var 的本地边界 .该方法可访问变量的本地下限。 此方法可查询当前松弛计算时的局部边界。 由于预分解、分支和其他活动,这些界限可能比全局界限更严格。
该方法只能在上下文 "IloCplex::Callback::Context::Id::Relaxation中调用;在其他上下文中调用时会出现异常。
| 变量 | 需要查询下限的变量。 |
| 瓶盖 | 在哪里存储 " vars中变量的本地边界。 |
vals中的第 i 个值将指定 "vars中第 i 个变量的本地边界。 请注意,该方法会适当调整 "vals的大小。该方法可访问变量的本地下限。 此方法可查询当前松弛计算时的局部边界。 由于预分解、分支和其他活动,这些界限可能比全局界限更严格。
该方法只能在上下文 "IloCplex::Callback::Context::Id::Relaxation中调用;在其他上下文中调用时会出现异常。
| 变量 | 需要查询下限的变量。 |
| 瓶盖 | 在哪里存储 " vars中变量的本地边界。 |
vals中的第 i 个值将指定 "vars中第 i 个变量的本地边界。 请注意,该方法会适当调整 "vals的大小。该方法是 "IloCplex::Callback::Context::getLocalUB(IloIntVarArray const&, IloNumArray &)方法的方便封装。 (详见该方法的文档) 此方法可获取单个变量的局部上界。
| 变异 | 查询本地绑定的变量。 |
var 的本地边界 .该方法是 "IloCplex::Callback::Context::getLocalUB(IloNumVarArray const&, IloNumArray &)' />方法的方便封装。 (详见该方法的文档) 此方法可获取单个变量的局部上界。
| 变异 | 查询本地绑定的变量。 |
var 的本地边界 .该方法可访问变量的本地上限。 此方法可查询当前松弛计算时的局部边界。 由于预分解、分支和其他活动,这些界限可能比全局界限更严格。
该方法只能在上下文 "IloCplex::Callback::Context::Id::Relaxation中调用;在其他上下文中调用时会出现异常。
| 变量 | 需要查询上限的变量。 |
| 瓶盖 | 在哪里存储 " vars中变量的本地边界。 |
vals中的第 i 个值将指定 "vars中第 i 个变量的本地边界。 请注意,该方法会适当调整 "vals的大小。该方法可访问变量的本地上限。 此方法可查询当前松弛计算时的局部边界。 由于预分解、分支和其他活动,这些界限可能比全局界限更严格。
该方法只能在上下文 "IloCplex::Callback::Context::Id::Relaxation中调用;在其他上下文中调用时会出现异常。
| 变量 | 需要查询上限的变量。 |
| 瓶盖 | 在哪里存储 " vars中变量的本地边界。 |
vals中的第 i 个值将指定 "vars中第 i 个变量的本地边界。 请注意,该方法会适当调整 "vals的大小。该方法可访问 64 位有符号整数值信息。 有关可查询信息的详细信息,请参阅 "Info结构的文档。
| 什么 | 要查询的信息。 |
该方法可以访问当前松弛的目标。
该方法只能在 "IloCplex::Callback::Context::Id::Relaxation或 "IloCplex::Callback::Context::Id::Branching上下文中调用;在其他上下文中调用时会出现异常。
该方法是 "IloCplex::Callback::getRelaxationPoint(IloIntVarArray const&, IloNumArray &)方法的方便封装。 (详见该方法的文档) 此方法可获取单一变量的松弛解值。
| 变异 | 要查询值的变量。 |
var的值。该方法是 "IloCplex::Callback::getRelaxationPoint(IloNumVarArray const&, IloNumArray &)方法的方便封装。 (详见该方法的文档) 此方法可获取单一变量的松弛解值。
| 变异 | 要查询值的变量。 |
var的值。该方法可访问当前松弛。 It retrieves the values for vars[start], . . . , vars[start+length-1] in the current relaxation and returns them. 该方法只能在 "IloCplex::Callback::Context::Id::Relaxation或 "IloCplex::Callback::Context::Id::Branching上下文中调用;在其他上下文中调用时会出现异常。
| 变量 | 要查询松弛值的变量。 |
| 瓶盖 | vars"中变量值的存储位置。 |
vals中的第 i 个值将指定 "vars中第 i 个变量的值。 请注意,该方法会适当调整 "vals的大小。该方法可访问当前松弛。 It retrieves the values for vars[start], . . . , vars[start+length-1] in the current relaxation and returns them. 该方法只能在 "IloCplex::Callback::Context::Id::Relaxation或 "IloCplex::Callback::Context::Id::Branching上下文中调用;在其他上下文中调用时会出现异常。
| 变量 | 要查询松弛值的变量。 |
| 瓶盖 | vars"中变量值的存储位置。 |
vals中的第 i 个值将指定 "vars中第 i 个变量的值。 请注意,该方法会适当调整 "vals的大小。该方法可访问当前连续解的解状态。 更多详情,请参阅可调用库参考手册中有关 "CPXXcallbackgetrelaxationstatus的文档。
该方法只能在 "IloCplex::Callback::Context::Id::Relaxation或 "IloCplex::Callback::Context::Id::Branching上下文中调用;在其他上下文中调用时会出现异常。
CPXXcallbackgetrelaxationstatus,以获取可在此处传递的值。| flags | 有关可在此处传递的值,请参阅 " CPXXcallbackgetrelaxationstatus的文档。 |
该方法对 "expr进行与当前松弛相关的评估。 该方法只能在 "IloCplex::Callback::Context::Id::Relaxation或 "IloCplex::Callback::Context::Id::Branching上下文中调用。
| expr | 要评估的表达式。 |
expr相对于当前松弛的值。该方法测试回调是否在上下文 "IloCplex::Callback::Context::Id::Branching中被调用。
它是 "getId() == IloCplex::Callback::Context::Id::Branching的快捷方式
IloCplex::Callback::Context::Id::Branching上下文中调用的,则为 "true,否则为 "false。该方法测试回调是否在上下文 "IloCplex::Callback::Context::Id::Candidate中被调用。
它是 "getId() == IloCplex::Callback::Context::Id::Candidate的快捷方式
IloCplex::Callback::Context::Id::Candidate上下文中调用的,则为 "true,否则为 "false。该方法测试回调是否在上下文 "IloCplex::Callback::Context::Id::GlobalProgress中被调用。
它是 "getId() == IloCplex::Callback::Context::Id::GlobalProgress的快捷方式
IloCplex::Callback::Context::Id::GlobalProgress上下文中调用的,则为 "true,否则为 "false。该方法测试回调是否在上下文 "IloCplex::Callback::Context::Id::LocalProgres中被调用。
它是 "getId() == IloCplex::Callback::Context::Id::LocalProgress的快捷方式
IloCplex::Callback::Context::Id::LocalProgress上下文中调用的,则为 "true,否则为 "false。该方法测试回调是否在上下文 "IloCplex::Callback::Context::Id::Relaxation中被调用。
它是 "getId() == IloCplex::Callback::Context::Id::Relaxation的快捷方式
IloCplex::Callback::Context::Id::Relaxation上下文中调用的,则为 "true,否则为 "false。该方法测试回调是否在上下文 "IloCplex::Callback::Context::Id::ThreadDown中被调用。
它是 "getId() == IloCplex::Callback::Context::Id::ThreadDown的快捷方式
IloCplex::Callback::Context::Id::ThreadDown上下文中调用的,则为 "true,否则为 "false。该方法测试回调是否在上下文 "IloCplex::Callback::Context::Id::ThreadUp中被调用。
它是 "getId() == IloCplex::Callback::Context::Id::ThreadUp的快捷方式
IloCplex::Callback::Context::Id::ThreadUp上下文中调用的,则为 "true,否则为 "false。该方法测试回调是否在上下文 "IloCplex::Callback::Context::Id::Candidate中被调用,是否有候选可行点。
如果函数返回 true,则可以调用 "IloCplex::Callback::Context::getCandidatePoint()、"IloCplex::Callback::Context::getCandidateValue()和 "IloCplex::Callback::Context::getCandidateObjective()来查询潜在可行点。
该方法测试是否在上下文 "IloCplex::Callback::Context::Id::Candidate中调用了未限定射线的回调。
如果函数返回 true,则可以调用 "IloCplex::Callback::Context::getCandidateRay()来查询无界射线。
makeBranch(IloIntVarArray const &, IloNumArray const &, IloCplex::BranchDirectionArray const &, IloRangeArray const &, IloNum)的便利包装器。
该函数创建了一个仅由一组约束条件定义的分支。
makeBranch(IloIntVarArray const &, IloNumArray const &, IloCplex::BranchDirectionArray const &, IloRangeArray const &, IloNum)的便利包装器。
该函数创建的分支只针对一个变量。
makeBranch(IloNumVarArray const &, IloNumArray const &, IloCplex::BranchDirectionArray const &, IloRangeArray const &, IloNum)的便利包装器。
该函数创建的分支只针对一个变量。
makeBranch(IloIntVarArray const &, IloNumArray const &, IloCplex::BranchDirectionArray const &, IloRangeArray const &, IloNum)的便利包装器。
该函数创建了一个仅由绑定更改定义的分支。
makeBranch(IloNumVarArray const &, IloNumArray const &, IloCplex::BranchDirectionArray const &, IloRangeArray const &, IloNum)的便利包装器。
该函数创建了一个仅由绑定更改定义的分支。
该方法会在当前节点创建一个自定义分支。
该方法创建参数指定的分支。 可以只对变量("constraints可以为空)或约束条件("vars、"bounds"、"dirs"可以为空)进行分支。
该方法只能在上下文 "IloCplex::Callback::Context::Id::Branching中调用;在其他上下文中调用时会出现异常。
一个节点上最多可以创建两个分支。
vars。该数组中的元素必须与 "vars"中的元素1-to-1-correspondence。 该数组中的元素必须与 "vars中的元素1-to-1-correspondence。 如果方向为 "IloCplex::BranchUp,则 "bounds中的相应元素指定 "vars中相应变量的下限,否则指定上限。 的新生儿。 通常合理的选择是当前节点放松的目标值。| 变量 | 要分支的变量。 |
| 界线 | vars中变量的分支边界。 该数组中的元素必须与 "vars中的元素1-to-1-correspondence。 |
| 目录 | 变量的分支方向。 该数组中的元素必须与 " vars中的元素1-to-1-correspondence。 如果方向为 "IloCplex::BranchUp,则 "bounds中的相应元素指定 "vars中相应变量的下限,否则指定上限。 |
| 约束 | 分支的限制条件。 |
| 估价 | 对新子目标值的估计。 通常合理的选择是当前节点放松的目标值。 |
IloCplex::Callback::Context::Info:NodeUID返回的值。该方法会在当前节点创建一个自定义分支。
该方法创建参数指定的分支。 可以只对变量("constraints可以为空)或约束条件("vars、"bounds"、"dirs"可以为空)进行分支。
该方法只能在上下文 "IloCplex::Callback::Context::Id::Branching中调用;在其他上下文中调用时会出现异常。
一个节点上最多可以创建两个分支。
vars。该数组中的元素必须与 "vars"中的元素1-to-1-correspondence。 该数组中的元素必须与 "vars中的元素1-to-1-correspondence。 如果方向为 "IloCplex::BranchUp,则 "bounds中的相应元素指定 "vars中相应变量的下限,否则指定上限。 的新生儿。 通常合理的选择是当前节点放松的目标值。| 变量 | 要分支的变量。 |
| 界线 | vars中变量的分支边界。 该数组中的元素必须与 "vars中的元素1-to-1-correspondence。 |
| 目录 | 变量的分支方向。 该数组中的元素必须与 " vars中的元素1-to-1-correspondence。 如果方向为 "IloCplex::BranchUp,则 "bounds中的相应元素指定 "vars中相应变量的下限,否则指定上限。 |
| 约束 | 分支的限制条件。 |
| 估价 | 对新子目标值的估计。 通常合理的选择是当前节点放松的目标值。 |
IloCplex::Callback::Context::Info:NodeUID返回的值。该方法向 CPLEX 发布(启发式)解决方案。 具体来说,该方法会向 CPLEX 发送一个解向量。 矢量在内部排队。 在 CPLEX 调用启发式之前,CPLEX 会查看队列,并尝试从每个向量中创建一个可行的解决方案。 这项活动可以产生新的现有解决方案。
| 变量 | 构成要发布的解决方案的变量。 |
| 瓶盖 | vars中变量的值 . |
| 对象 | (新方案的目标值(估计值)。 |
| 层 | 完成部分解答的策略。 |
该方法向 CPLEX 发布(启发式)解决方案。 具体来说,该方法会向 CPLEX 发送一个解向量。 矢量在内部排队。 在 CPLEX 调用启发式之前,CPLEX 会查看队列,并尝试从每个向量中创建一个可行的解决方案。 这项活动可以产生新的现有解决方案。
| 变量 | 构成要发布的解决方案的变量。 |
| 瓶盖 | vars中变量的值 . |
| 对象 | (新方案的目标值(估计值)。 |
| 层 | 完成部分解答的策略。 |
该方法会剪切当前搜索树节点。
调用回调的节点将被剪枝,不会再创建子节点。 随后对该节点 "makeBranch的调用将被忽略。
该方法只能在 "IloCplex::Callback::Context::Id::Relaxation或 "IloCplex::Callback::Context::Id::Branching上下文中调用;在其他上下文中调用时会出现异常。
这种方法会剔除当前的候选方案。 该方法是 "IloCplex::Callback::rejectCandidate(IloRangeArray)方法的方便封装。 (详见该方法的文档)
该方法会创建一个传给它的 "IloRange实例的深度副本,因此您可以在该方法返回后调用 "end方法。
null。| 违反 | 一个约束条件,用于切断候选方案。 该参数可以是 " null。 |
violated。这种方法会剔除当前的候选方案。 该方法只能在上下文 "IloCplex::Callback::Context::Id::Candidate中调用;在其他上下文中调用时会出现异常。
函数会创建传给它的所有 "IloRange实例的深度副本,因此在函数返回后,可以在这些范围上调用方法 "end。
null。 如果不是 "null也不是空,那么 CPLEX 可能会使用这些约束条件来删除找到的其他候选解。 (但并不能保证一定会这样做) 这些约束基本上是懒惰约束。 该数组中的任何元素都不允许是空句柄(使用空数组可以无限制地拒绝)、| 违反 | 一组可能为空的约束条件,用于切断候选方案。 该参数也可以是 " null。 如果不是 "null也不是空,那么 CPLEX 可能会使用这些约束条件来删除找到的其他候选解。 (但并不能保证一定会这样做) 这些约束基本上是懒惰约束。 该数组中的任何元素都不允许是空句柄(使用空数组可以无限制地拒绝)、 |
这种方法会剔除当前的候选方案。 该方法是 "IloCplex::Callback::rejectCandidateLocal(IloRangeArray)方法的方便封装。 (详见该方法的文档)
该方法会创建一个传给它的 "IloRange实例的深度副本,因此您可以在该方法返回后调用 "end方法。
| 违反 | 一种约束条件,用于在局部截断候选解。 |
violated。这种方法会剔除当前的候选方案。 该方法只能在上下文 "IloCplex::Callback::Context::Id::Candidate中调用,且只能在回调是针对一个整体节点(见 "CandidateSource)时调用;在其他上下文中调用时会出现异常。
函数会创建传给它的所有 "IloRange实例的深度副本,因此在函数返回后,可以在这些范围上调用方法 "end。
传递的约束条件不要求全局有效。 CPLEX 只假定它们在调用回调的子树中有效。
参数 "violated是一组可能为空的约束条件,用于切断候选解。 该参数也可以是 "null。 如果不是 "null也不是空,那么 CPLEX 可能会使用这些约束条件来删除找到的其他候选解。 (但并不能保证一定会这样做) 这些约束基本上是懒惰约束。 该数组中的任何元素都不允许是空句柄(使用空数组可以无限制地拒绝)。 约束条件不要求全局有效。 CPLEX 只假定它们在调用回调的子树中有效。
| 内部结构细节 |
|---|
该 "struct指定了可以调用 CPLEX 通用回调的位置。 这里定义的值指定 CPLEX 在哪些情况下可以调用回调。 它们有两种不同的使用方式:
IloCplex::Callback::Function::invoke的参数,以指定回调在哪种上下文中被调用。IloCplex::use(Callback::Function, long),以指定 CPLEX 应在哪些位置调用已注册的回调。有关各种上下文值的详细信息,请参阅可调用库(C API)参考手册。
关于 "ThreadDown上下文的重要说明:
ThreadUp上下文中调用的回调抛出异常,那么 "ThreadDown将不会在此线程上调用。ThreadDown中调用回调函数,则不允许抛出异常。 在这种情况下抛出的任何异常都将被忽略。将 "ThreadUp和 "ThreadDown看作是 "构造函数 "和 "析构函数":只有在对象完全构造完成且不允许抛出异常的情况下,才会调用析构函数。
| 属性摘要 | |
|---|---|
static CPXLONG const | Branching |
static CPXLONG const | Candidate |
static CPXLONG const | GlobalProgress |
static CPXLONG const | LocalProgress |
static CPXLONG const | Relaxation |
static CPXLONG const | ThreadDown |
static CPXLONG const | ThreadUp |
| 属性详情 |
|---|
请参阅可调用库(C API)参考手册中有关 "CPX_CALLBACKCONTEXT_BRANCHING的文档。
请参阅可调用库(C API)参考手册中有关 "CPX_CALLBACKCONTEXT_CANDIDATE的文档。
请参阅可调用库(C API)参考手册中有关 "CPX_CALLBACKCONTEXT_GLOBAL_PROGRESS的文档。
请参阅可调用库(C API)参考手册中有关 "CPX_CALLBACKCONTEXT_LOCAL_PROGRESS的文档。
请参阅可调用库(C API)参考手册中有关 "CPX_CALLBACKCONTEXT_RELAXATION的文档。
请参阅可调用库(C API)参考手册中有关 "CPX_CALLBACKCONTEXT_THREAD_DOWN的文档。
请参阅可调用库(C API)参考手册中有关 "CPX_CALLBACKCONTEXT_THREAD_UP的文档。
This struct provides an enum of identifiers for the kinds of information that you can retrieve from a generic callback by invoking one (or more) of the generic callback informational methods.
| 内部枚举 |
|---|
| 信息::信息 |
| 内部枚举详细信息 |
|---|
enum用于确定应用程序可通过 "IloCple::Callback::getIntInfo(Info)、"IloCplex::Callback::getLongInfo(Info)或 "IloCplex::Callback::getDoubleInfo(Info)方法从通用回调中获取的信息类型。 有关这些值的更多详情,请参阅可调用库(C API)参考手册中的枚举 "CPXCALLBACKINFO文档。
| 字段 |
|---|
ThreadId = CPXCALLBACKINFO_THREADID | 参见可调用库参考手册中的 " CPXCALLBACKINFO_THREADID。 |
NodeCount = CPXCALLBACKINFO_NODECOUNT | 参见可调用库参考手册中的 " CPXCALLBACKINFO_NODECOUNT。 |
IterationCount = CPXCALLBACKINFO_ITCOUNT | 参见可调用库参考手册中的 " CPXCALLBACKINFO_ITCOUNT。 |
BestSolution = CPXCALLBACKINFO_BEST_SOL | 参见可调用库参考手册中的 " CPXCALLBACKINFO_BEST_SOL。 |
BestBound = CPXCALLBACKINFO_BEST_BND | 参见可调用库参考手册中的 " CPXCALLBACKINFO_BEST_BND。 |
Threads = CPXCALLBACKINFO_THREADS | 参见可调用库参考手册中的 " CPXCALLBACKINFO_THREADS。 |
Feasible = CPXCALLBACKINFO_FEASIBLE | 参见可调用库参考手册中的 " CPXCALLBACKINFO_FEASIBLE。 |
Time = CPXCALLBACKINFO_TIME | 参见可调用库参考手册中的 " CPXCALLBACKINFO_TIME。 |
DeterministicTime = CPXCALLBACKINFO_DETTIME | 参见可调用库参考手册中的 " CPXCALLBACKINFO_DETTIME。 |
NodeUID = CPXCALLBACKINFO_NODEUID | 参见可调用库参考手册中的 " CPXCALLBACKINFO_NODEUID。 |
NodeDepth = CPXCALLBACKINFO_NODEDEPTH | 参见可调用库参考手册中的 " CPXCALLBACKINFO_NODEDEPTH。 |
CandidateSource = CPXCALLBACKINFO_CANDIDATE_SOURCE | 参见可调用库参考手册中的 " CPXCALLBACKINFO_CANDIDATE_SOURCE。 |
Restarts = CPXCALLBACKINFO_RESTARTS AfterCutLoop = CPXCALLBACKINFO_AFTERCUTLOOP | 参见可调用库参考手册中的 " CPXCALLBACKINFO_RESTARTS。 |
NodesLeft = CPXCALLBACKINFO_NODESLEFT | 参见可调用库参考手册中的 " CPXCALLBACKINFO_NODESLEFT。 |
这个 "struct定义了一个 "enum,为各种完成策略提供标识符,这些标识符可以传递给方法 "IloCplex::Callback::Context::postHeuristicSolution。
有关详细信息,请参阅 CPLEX 的可调用库(C API)参考手册中有关枚举 "CPXCALLBACKSOLUTIONSTRATEGY的文档。
| 内部枚举 |
|---|
| SolutionStrategy::Types |
| 内部枚举详细信息 |
|---|
enum"为 CPLEX 确定了与 "IloCplex::Callback::Context::postHeuristicSolution方法一起使用的完成策略。
如果您向该方法传递一个完整的解决方案,即该解决方案指定了模型中每个变量的值,那么 CPLEX 就可以检查该完整解决方案的可行性。
您传递给该方法的参数可能只指定了部分解决方案。 在这种情况下,CPLEX 可以尝试通过边界传播来完成部分求解。
有关这些补全策略的更多详情,请参阅 CPLEX 的可调用库(C API)参考手册中有关枚举 "CPXCALLBACKSOLUTIONSTRATEGY的文档。
| 字段 |
|---|
NoCheck = CPXCALLBACKSOLUTION_NOCHECK | 参见可调用库参考手册中的 " CPXCALLBACKSOLUTION_NOCHECK。 |
CheckFeasible = CPXCALLBACKSOLUTION_CHECKFEAS | 参见可调用库参考手册中的 " CPXCALLBACKSOLUTION_CHECKFEAS。 |
Propagate = CPXCALLBACKSOLUTION_PROPAGATE | 参见可调用库参考手册中的 " CPXCALLBACKSOLUTION_PROPAGATE。 |
Solve = CPXCALLBACKSOLUTION_SOLVE | 参见可调用库参考手册中的 " CPXCALLBACKSOLUTION_SOLVE。 |