跳至主内容
框架 无框架

IloCplex级

定义文件: ilcplex/ilocplexi.h
IloCplex的地图IloCplexIloCplexIloAlgorithm

IloCplex派生自IloAlgorithm类。 用它来解决数学编程模型,如

算法(即 "IloAlgorithm的实例)在环境中提取模型。 算法提取的模型被称为主动模型。

更确切地说,"IloCplex要解决的模型应该只包含以下列表中的 "IloExtractable对象:

由 "IloCplex处理的约束条件和目标函数中使用的表达式是由所列类型的变量构建的,可以是线性表达式,也可以是二次表达式。 此外,表达式还可以包含以下结构:

只计算 0(零)和 1(一)的表达式称为布尔表达式。 这种表达方式还支持

此外,布尔表达式不仅可以由变量构建,还可以由约束条件构建。

IloCplex会自动将所有这些结构转换为适合 "IloCplex的等效表示。 这种模型可以用以下方式表示:

     最小化(或最大化)c'x + x'Qx
     服从 L <= Ax <= U
                      a_i'x + x'Q_i x <= r_i,对于 i = 1,.....、 q
                              l <= x <= u.
  

事实上,这就是 "IloCplex内部使用的标准数学编程矩阵表示法。 A 是线性约束系数矩阵,L 和 U 是数组 x 中变量向量的下限和上限向量。 Q 矩阵必须是正半有限矩阵(或最大化情况下的负半有限矩阵),代表目标函数的二次项。 矩阵 Q_i 必须是正半有限矩阵,代表第 i 个二次方程约束的二次项。 a_i 是包含相应线性项的向量。 有关 Q_i 的详细信息,请参阅《CPLEX 用户手册》中有关二次约束程序 (QCP) 的章节。

特殊有序集合(SOS)不属于传统的 A 和 Q 矩阵表示法,而是单独存储。

如果模型包含整数变量、布尔变量或半连续变量,或者模型具有特殊有序集(SOS),则该模型被称为混合整数程序(MIP)。 您可以使用 "IloCplex::isMIP方法查询活动模型是否为 MIP。

如果目标中包含二次项,则称为混合整数二次型程序(MIQP),否则称为二次型程序(QP)。 您可以通过调用方法 "IloCplex::isQO来查询活动模型是否具有二次目标。

带有二次约束的模型,如果也是 MIP,则称为混合整数二次约束程序(MIQCP),否则称为二次约束程序(QCP)。 您可以通过调用 "IloCplex::isQC方法来查询活动模型是否受二次约束。 一个 QCP 可能有一个二次方目标,也可能没有;也就是说,一个给定的问题可能既是 QP 也是 QCP。 同样,MIQCP 可能有二次方目标,也可能没有;也就是说,某个问题可能既是 MIQP,也是 MIQCP。

如果目标中没有二次项,没有整数约束,问题没有二次约束,且所有变量都是连续的,则称为线性规划(LP)。

通过这些方法可以查询与模型矩阵表示相关的信息:

有关活动模型的其他信息可通过迭代器获取,迭代器定义在提取或活动模型中不同类型的建模对象上。

IloCplex实际上将所有模型都视为 MIQCP 模型。 也就是说,它允许最一般的情况,尽管求解算法有效地利用了特殊情况,例如利用公式中没有二次项的优势。 方法 "IloCplex::solve首先求解 MIQCP 模型的根松弛,其中所有的积分约束和 SOS 都被忽略。 如果模型没有积分约束或 SOS,那么一旦求解了根松弛,优化就完成了。 否则,"IloCplex将使用分支和切割程序重新引入积分约束或 SOS。 有关分支和切割的更多信息,请参阅《CPLEX 用户手册》

大多数用户只需调用 "solve即可解决模型问题。 不过,对于需要更多控制的用户来说,还可以使用几个参数。 这些参数记录在《CPLEX 参数参考手册》中。 也许最重要的参数是 "IloCplex::RootAlg,它决定了用于求解根松弛的算法。 根据类 "IloCplex::Algorithm的定义,可能的设置有

您还可以使用大量其他参数来控制优化器的算法。 更多信息,请参见 "IloCplex::Param层次结构。 使用 "setParam方法设置参数。

甚至可以通过目标(见 "IloCplex::Goal)或回调(见 "IloCplex::Callback及其扩展)实现更高级别的控制。

有关解决方案的信息

solve方法会返回一个 "IloBool值,说明(IloTrue)是否("IloFalse)找到了解决方案(不一定是最优方案)。 使用 "getStatus方法可以查询有关解决方案的更多信息。 返回代码类型为 "IloAlgorithm::Status,表示解是否可行、有界或最优,或者模型是否被证明为不可行或无界。

The method IloCplex::getCplexStatus provides more detailed information about the status of the optimizer after solve returns. 例如,它可以提供优化器过早终止的原因(时间限制、迭代限制或其他类似限制)。 方法 "IloCplex::isPrimalFeasible和 "IloCplex::isDualFeasible可以确定是否找到了主要可行解或对偶可行解,并可以进行查询。

IloCplex计算出的最重要的解信息通常是解向量和目标函数值。 方法 "IloCplex::getValue可查询解决方案向量。 IloCplex::getObjValue方法查询目标函数值。 大多数优化器还会计算额外的解决方案信息,如对偶值、降低的成本、单纯形基础等。 这些附加信息也可以通过 "IloCplex的各种方法进行查询。 如果尝试检索特定优化器中不存在的解决方案信息,"IloCplex将抛出异常。

如果您正在求解一个 LP 问题,并且已经有了一个基础,那么就可以通过进行敏感性分析来进一步分析该问题的解决方案。 这些信息会告诉你,解决方案对变量边界、约束边界或目标系数变化的敏感程度。 这些信息通过 "IloCplex::getBoundSA、"IloCplex::getRangeSA、"IloCplex::getRHSSA和 "IloCplex::getObjSA方法进行计算和访问。

获取解法信息时的一个重要考虑因素是解法的数字质量。 由于 "IloCplex使用有限精度执行算术运算,因此解法总会出现数字误差。 对于大多数问题,数值误差都在合理的公差范围内。 不过,对于数值计算困难的模型,建议您使用 "IloCplex::getQuality方法验证解法的质量,该方法提供了多种质量测量方法。

更多关于解决问题

默认情况下,当调用 "IloCplex::solve方法时,"IloCplex会首先对模型进行预分解,即把模型转换成一个更小但等价的模型。 该操作可通过以下参数进行控制:

预分解完成后,"IloCplex会求解第一个节点松弛,并(在真正的 MIP 情况下)进入分支-切割过程。 IloCplex提供了回调类,允许用户监控每个级别的解决方案进度。 在节点松弛(包括根节点)求解过程中,会定期调用 "IloCplex::ContinuousCallbackI或其派生类之一的回调,而在分支切割搜索过程中,会定期调用 "IloCplex::MIPCallbackI或其派生类之一的回调。 所有回调都提供终止当前优化的选项。

各处的优先事项和方向

当分支发生在分支-切割树的一个节点上时,通常会有一组分数值变量可供分支选择。 IloCplex有几条内置规则用于做出这样的选择,参数 "IloCplex::VarSel可以控制这些规则。 此外,"IloCplex::setPriority方法允许用户指定优先顺序。 IloCplex的一个实例先分支有优先级的变量,然后分支没有优先级的变量。 当变量的值为分数时,它还会先分支优先级较高的变量,再分支优先级较低的变量。

通常情况下,当创建了两个新节点后(由参数 "IloCplex::BtTol控制),两个节点中的一个会被下一步处理。 这种活动被称为潜水。 分支方向决定了潜水时使用的是上分支还是下分支。 默认情况下,"IloCplex会自动选择分支方向。 用户可以通过 "IloCplex::setDirection方法控制分支方向。

如前所述,通过目标(见 "IloCplex::Goal)或回调(见 "IloCplex::BranchCallbackI")可以在分支-切割搜索过程中最大限度地灵活控制分支。 有了这些概念,你就可以在搜索过程中根据运行时信息来控制分支决策,而不是通过分支优先级和方向来进行静态控制,但默认策略在很多问题上都能很好地发挥作用。

割平面

IloCplex实例还可以生成某些切分,以加强松弛,即使松弛更接近原始 MIP。 剪切是添加到模型中的约束条件,用来限制(剪切掉)非整数解,否则这些解就会成为松弛的解。 添加割平面通常会减少求解 MIP 所需的分支数。

在求解 MIP 时,"IloCplex会在求解一个节点后,尝试生成违规切分,并将其添加到问题中。 在 "IloCplex添加切分后,子问题将重新优化。 然后,IloCplex会重复在节点上添加切点并重新优化的过程,直到找不到更多有效的切点为止。

IloCplex实例生成切分的方式使其对所有子问题都有效,即使是在分析特定节点时发现的切分。 在问题中加入一个切点后,该切点将一直保留到优化结束。 不过,剪切仅在内部添加;也就是说,它们不会成为优化后提取到 "IloCplex对象中的模型的一部分。 剪切最常见于根节点,但也可能根据情况在其他节点上通过 "IloCplex实例添加剪切。

IloCplex可查找各种切割,这些切割可由以下参数控制:

在搜索过程中,您可以通过回调(参见 "IloCplex::MIPCallbackI及其子类)来查询这些剪切的相关信息。 对于可能需要很长时间才能生成的切割类型,可提供回调来监控生成进度,并在可能的情况下中止切割生成进度。 具体来说,这些回调类是 "IloCplex::FractionalCutCallbackI和 "IloCplex::DisjunctiveCutCallbackI。 通过回调类 "IloCplex::UserCutCallbackI和 "IloCplex::LazyConstraintCallbackI,您可以在搜索过程中添加针对特定问题的剪切。 通过该回调,还可以生成和添加本地切分,即只在子树内有效的切分。

在优化过程中,您可以使用目标来添加自己的剪切,而不是使用回调。

启发式算法

在处理完一个节点(即 LP 已求解且不再生成切分)后,"IloCplex可能会尝试从该节点的 LP 解中构建一个整数可行解。 参数 "IloCplex::HeurFreq和其他参数提供了对该活动的一些控制。 此外,通过目标或回调类 "IloCplex::HeuristicCallbackI,还可以调用用户编写的启发式方法来找到整数可行解。

同样,你也可以使用目标,将自己启发式构建的解决方案注入到正在运行的优化中,而不是使用回调。

节点选择

如果 "IloCplex没有下潜,而是从树上选取了一个未探索的节点,那么就会有几个选项,可以用参数 "IloCplex::NodeSel来控制。 同样,"IloCplex提供了一个回调类 "IloCplex::NodeCallbackI,让用户完全控制这一选择。 有了目标,"IloCplex::NodeEvaluatorI类型的对象就可以用来定义自己的选择策略。

另请参见C++ API 的 CPLEX 参考手册中的 "IloAlgorithm

另请参阅本手册 "概念 "中的 "目标"。 另请参阅《CPLEX 用户手册》中的目标。

另请参阅:

属性摘要
public static const char *constBendersAnnotation
public static const intIncumbentId
方法概要
public IloConstraintaddCut(IloConstraint con)
public const IloConstraintArrayaddCuts(const IloConstraintArray con)
public IloCplex::FilterIndexaddDiversityFilter(IloNum lower_cutoff, IloNum upper_cutoff, const IloIntVarArray vars, const IloNumArray weights, const IloNumArray refval, const char * fname=0)
public IloCplex::FilterIndexaddDiversityFilter(IloNum lower_cutoff, IloNum upper_cutoff, const IloNumVarArray vars, const IloNumArray weights, const IloNumArray refval, const char * fname=0)
public IloConstraintaddLazyConstraint(IloConstraint con)
public const IloConstraintArrayaddLazyConstraints(const IloConstraintArray con)
public IloIntaddMIPStart(IloNumVarArray vars=0, IloNumArray values=0, IloCplex::MIPStartEffort effort=MIPStartAuto, const char * name=0)
public IloCplex::FilterIndexaddRangeFilter(IloNum, IloNum, const IloIntVarArray, const IloNumArray, const char *=0)
public IloCplex::FilterIndexaddRangeFilter(IloNum, IloNum, const IloNumVarArray, const IloNumArray, const char *=0)
public IloConstraintaddUserCut(IloConstraint con)
public const IloConstraintArrayaddUserCuts(const IloConstraintArray con)
public static IloCplex::GoalApply(IloCplex cplex, IloCplex::Goal goal, IloCplex::NodeEvaluator eval)
public voidbasicPresolve(const IloIntVarArray vars, IloNumArray redlb=0, IloNumArray redub=0, const IloRangeArray rngs=0, IloBoolArray redundant=0) const
public voidbasicPresolve(const IloNumVarArray vars, IloNumArray redlb=0, IloNumArray redub=0, const IloRangeArray rngs=0, IloBoolArray redundant=0) const
public voidchangeMIPStart(IloInt mipstartindex, IloNumVarArray vars, IloNumArray values, IloCplex::MIPStartEffort effortlevel)
public voidchangeMIPStart(IloInt mipstartindex, IloNumVarArray vars, IloNumArray values)
public voidclearCuts()
public voidclearLazyConstraints()
public voidclearModel()
public voidclearUserCuts()
public voidcopyVMConfig(T xmlstring)
public voiddelAnnotation(IloCplex::NumAnnotation anno)
public voiddelAnnotation(IloCplex::LongAnnotation anno)
public voiddelDirection(IloIntVar var)
public voiddelDirection(IloNumVar var)
public voiddelDirections(const IloIntVarArray var)
public voiddelDirections(const IloNumVarArray var)
public voiddeleteMIPStarts(IloInt first, IloInt num=1)
public voiddeleteNames()
public voiddelFilter(IloCplex::FilterIndex filter)
public voiddelPriorities(const IloIntVarArray var)
public voiddelPriorities(const IloNumVarArray var)
public voiddelPriority(IloIntVar var)
public voiddelPriority(IloNumVar var)
public voiddelSolnPoolSoln(IloInt which)
public voiddelSolnPoolSolns(IloInt begin, IloInt end)
public voiddelVMConfig()
public IloNumdualFarkas(IloConstraintArray rng, IloNumArray y)
public voidexportModel(const char * filename) const
public IloCplex::FeasOptHandlefeasOpt(const IloConstraintArray cts, const IloNumArray prefs, bool async)
public IloCplex::FeasOptHandlefeasOpt(const IloRangeArray rngs, const IloNumArray rnglb, const IloNumArray rngub, bool async)
public IloCplex::FeasOptHandlefeasOpt(const IloIntVarArray vars, const IloNumArray varlb, const IloNumArray varub, bool async)
public IloCplex::FeasOptHandlefeasOpt(const IloNumVarArray vars, const IloNumArray varlb, const IloNumArray varub, bool async)
public IloCplex::FeasOptHandlefeasOpt(const IloRangeArray rngs, const IloNumArray rnglb, const IloNumArray rngub, const IloIntVarArray vars, const IloNumArray varlb, const IloNumArray varub, bool async)
public IloCplex::FeasOptHandlefeasOpt(const IloRangeArray rngs, const IloNumArray rnglb, const IloNumArray rngub, const IloNumVarArray vars, const IloNumArray varlb, const IloNumArray varub, bool async)
public IloBoolfeasOpt(const IloConstraintArray cts, const IloNumArray prefs)
public IloBoolfeasOpt(const IloRangeArray rngs, const IloNumArray rnglb, const IloNumArray rngub)
public IloBoolfeasOpt(const IloIntVarArray vars, const IloNumArray varlb, const IloNumArray varub)
public IloBoolfeasOpt(const IloNumVarArray vars, const IloNumArray varlb, const IloNumArray varub)
public IloBoolfeasOpt(const IloRangeArray rngs, const IloNumArray rnglb, const IloNumArray rngub, const IloIntVarArray vars, const IloNumArray varlb, const IloNumArray varub)
public IloBoolfeasOpt(const IloRangeArray rngs, const IloNumArray rnglb, const IloNumArray rngub, const IloNumVarArray vars, const IloNumArray varlb, const IloNumArray varub)
public IloCplex::LongAnnotationfindLongAnnotation(IloInt num) const
public IloCplex::LongAnnotationfindLongAnnotation(const char * name) const
public IloCplex::NumAnnotationfindNumAnnotation(IloInt num) const
public IloCplex::NumAnnotationfindNumAnnotation(const char * name) const
public voidfreePresolve()
public IloCplex::AbortergetAborter()
public IloCplex::AlgorithmgetAlgorithm() const
public voidgetAnnotation(const IloCplex::NumAnnotation annotation, const IloConstraintArray ctr, IloNumArray & value) const
public voidgetAnnotation(const IloCplex::NumAnnotation annotation, const IloIntVarArray var, IloNumArray & value) const
public voidgetAnnotation(const IloCplex::NumAnnotation annotation, const IloNumVarArray var, IloNumArray & value) const
public IloNumgetAnnotation(const IloCplex::NumAnnotation annotation, const IloConstraint ctr) const
public IloNumgetAnnotation(const IloCplex::NumAnnotation annotation, const IloObjective obj) const
public IloNumgetAnnotation(const IloCplex::NumAnnotation annotation, const IloIntVar var) const
public IloNumgetAnnotation(const IloCplex::NumAnnotation annotation, const IloNumVar var) const
public voidgetAnnotation(const IloCplex::LongAnnotation annotation, const IloConstraintArray ctr, IloArray< IloInt64 > & value) const
public voidgetAnnotation(const IloCplex::LongAnnotation annotation, const IloIntVarArray var, IloArray< IloInt64 > & value) const
public voidgetAnnotation(const IloCplex::LongAnnotation annotation, const IloNumVarArray var, IloArray< IloInt64 > & value) const
public IloInt64getAnnotation(const IloCplex::LongAnnotation annotation, const IloConstraint ctr) const
public IloInt64getAnnotation(const IloCplex::LongAnnotation annotation, const IloObjective obj) const
public IloInt64getAnnotation(const IloCplex::LongAnnotation annotation, const IloIntVar var) const
public IloInt64getAnnotation(const IloCplex::LongAnnotation annotation, const IloNumVar var) const
public voidgetAX(IloNumArray val, const IloRangeArray con) const
public IloNumgetAX(const IloRange range) const
public IloCplex::BasisStatusgetBasisStatus(const IloConstraint con) const
public IloCplex::BasisStatusgetBasisStatus(const IloIntVar var) const
public IloCplex::BasisStatusgetBasisStatus(const IloNumVar var) const
public voidgetBasisStatuses(IloCplex::BasisStatusArray cstat, const IloIntVarArray var, IloCplex::BasisStatusArray rstat, const IloConstraintArray con) const
public voidgetBasisStatuses(IloCplex::BasisStatusArray cstat, const IloNumVarArray var, IloCplex::BasisStatusArray rstat, const IloConstraintArray con) const
public voidgetBasisStatuses(IloCplex::BasisStatusArray stat, const IloConstraintArray con) const
public voidgetBasisStatuses(IloCplex::BasisStatusArray stat, const IloIntVarArray var) const
public voidgetBasisStatuses(IloCplex::BasisStatusArray stat, const IloNumVarArray var) const
public IloNumgetBestObjValue() const
public voidgetBoundSA(IloNumArray lblower, IloNumArray lbupper, IloNumArray ublower, IloNumArray ubupper, const IloIntVarArray vars) const
public voidgetBoundSA(IloNumArray lblower, IloNumArray lbupper, IloNumArray ublower, IloNumArray ubupper, const IloNumVarArray vars) const
public IloCplex::ConflictStatusgetConflict(IloConstraint con) const
public IloCplex::ConflictStatusArraygetConflict(IloConstraintArray cons) const
public IloCplex::CplexStatusgetCplexStatus() const
public IloCplex::CplexStatusgetCplexSubStatus() const
public IloNumgetCplexTime() const
public IloNumgetCutoff() const
public const char *getDefault(IloCplex::StringParam parameter) const
public IloNumgetDefault(IloCplex::NumParam parameter) const
public CPXLONGgetDefault(IloCplex::LongParam parameter) const
public CPXINTgetDefault(IloCplex::IntParam parameter) const
public IloBoolgetDefault(IloCplex::BoolParam parameter) const
public IloNumgetDefaultValue(const IloCplex::NumAnnotation annotation) const
public IloInt64getDefaultValue(const IloCplex::LongAnnotation annotation) const
public IloCplex::DeleteModegetDeleteMode() const
public IloNumgetDetTime() const
public IloCplex::BranchDirectiongetDirection(IloIntVar var) const
public IloCplex::BranchDirectiongetDirection(IloNumVar var) const
public voidgetDirections(IloCplex::BranchDirectionArray dir, const IloIntVarArray var) const
public voidgetDirections(IloCplex::BranchDirectionArray dir, const IloNumVarArray var) const
public IloExtractablegetDiverging() const
public IloNumgetDiversityFilterLowerCutoff(IloCplex::FilterIndex filter) const
public voidgetDiversityFilterRefVals(IloCplex::FilterIndex filter, IloNumArray) const
public IloNumgetDiversityFilterUpperCutoff(IloCplex::FilterIndex filter) const
public voidgetDiversityFilterWeights(IloCplex::FilterIndex filter, IloNumArray) const
public IloNumgetDual(const IloRange range) const
public voidgetDuals(IloNumArray val, const IloRangeArray con) const
public IloCplex::FilterIndexgetFilterIndex(const char * lname_str) const
public IloCplex::FilterTypegetFilterType(IloCplex::FilterIndex filter) const
public voidgetFilterVars(IloCplex::FilterIndex filter, IloNumVarArray) const
public IloIntgetIncumbentNode() const
public IloInt64getIncumbentNode64() const
public IloNumgetInfeasibilities(IloNumArray infeas, const IloIntVarArray var) const
public IloNumgetInfeasibilities(IloNumArray infeas, const IloNumVarArray var) const
public IloNumgetInfeasibilities(IloNumArray infeas, const IloConstraintArray con) const
public IloNumgetInfeasibility(const IloIntVar var) const
public IloNumgetInfeasibility(const IloNumVar var) const
public IloNumgetInfeasibility(const IloConstraint con) const
public IloNumgetMax(IloCplex::NumParam parameter) const
public CPXLONGgetMax(IloCplex::LongParam parameter) const
public CPXINTgetMax(IloCplex::IntParam parameter) const
public IloNumgetMin(IloCplex::NumParam parameter) const
public CPXLONGgetMin(IloCplex::LongParam parameter) const
public CPXINTgetMin(IloCplex::IntParam parameter) const
public IloNumgetMIPRelativeGap() const
public IloCplex::MIPStartEffortgetMIPStart(IloInt mipstartindex, const IloNumVarArray vars, IloNumArray vals, IloBoolArray isset)
public IloIntgetMIPStartIndex(const char * lname_str) const
public const char *getMIPStartName(IloInt mipstartindex)
public IloNumgetMultiObjInfo(IloCplex::MultiObjNumInfo what, IloInt subprob) const
public IloInt64getMultiObjInfo(IloCplex::MultiObjInt64Info what, IloInt subprob) const
public IloIntgetMultiObjInfo(IloCplex::MultiObjIntInfo what, IloInt subprob) const
public IloIntgetMultiObjNsolves() const
public const char *getName(const IloCplex::NumAnnotation annotation) const
public const char *getName(const IloCplex::LongAnnotation annotation) const
public IloIntgetNbarrierIterations() const
public IloInt64getNbarrierIterations64() const
public IloIntgetNbinVars() const
public IloIntgetNcols() const
public IloIntgetNcrossDExch() const
public IloInt64getNcrossDExch64() const
public IloIntgetNcrossDPush() const
public IloInt64getNcrossDPush64() const
public IloIntgetNcrossPExch() const
public IloInt64getNcrossPExch64() const
public IloIntgetNcrossPPush() const
public IloInt64getNcrossPPush64() const
public IloIntgetNcuts(IloCplex::CutType which) const
public IloIntgetNdualSuperbasics() const
public IloIntgetNfilters() const
public IloIntgetNindicators() const
public IloIntgetNintVars() const
public IloIntgetNiterations() const
public IloInt64getNiterations64() const
public IloIntgetNLCs() const
public intgetNMIPStarts() const
public IloIntgetNnodes() const
public IloInt64getNnodes64() const
public IloIntgetNnodesLeft() const
public IloInt64getNnodesLeft64() const
public IloIntgetNNZs() const
public IloInt64getNNZs64() const
public IloIntgetNphaseOneIterations() const
public IloInt64getNphaseOneIterations64() const
public IloIntgetNprimalSuperbasics() const
public IloIntgetNQCs() const
public IloIntgetNrows() const
public IloIntgetNsemiContVars() const
public IloIntgetNsemiIntVars() const
public IloIntgetNsiftingIterations() const
public IloInt64getNsiftingIterations64() const
public IloIntgetNsiftingPhaseOneIterations() const
public IloInt64getNsiftingPhaseOneIterations64() const
public IloIntgetNSOSs() const
public IloIntgetNUCs() const
public intgetNumCores() const
public IloObjectivegetObjective() const
public voidgetObjSA(IloNumArray lower, IloNumArray upper, const IloIntVarArray cols) const
public voidgetObjSA(IloNumArray lower, IloNumArray upper, const IloNumVarArray vars) const
public IloNumgetObjValue(IloInt soln) const
public const char *getParam(IloCplex::StringParam parameter) const
public IloNumgetParam(IloCplex::NumParam parameter) const
public IloBoolgetParam(IloCplex::BoolParam parameter) const
public CPXLONGgetParam(IloCplex::LongParam parameter) const
public CPXINTgetParam(IloCplex::IntParam parameter) const
public IloCplex::ParameterSetgetParameterSet()
public voidgetPriorities(IloNumArray pri, const IloIntVarArray var) const
public voidgetPriorities(IloNumArray pri, const IloNumVarArray var) const
public IloNumgetPriority(IloIntVar var) const
public IloNumgetPriority(IloNumVar var) const
public voidgetQCDSlack(const IloRange range, IloNumArray & vals, IloNumVarArray & vars) const
public IloNumgetQuality(IloCplex::Quality q, IloInt soln, IloNumVar * var=0, IloConstraint * rng=0) const
public IloNumgetQuality(IloCplex::Quality q, IloInt soln, IloConstraint * rng, IloNumVar * var=0) const
public IloNumgetQuality(IloCplex::Quality q, IloConstraint * rng, IloNumVar * var=0) const
public IloNumgetQuality(IloCplex::Quality q, IloNumVar * var=0, IloConstraint * rng=0) const
public voidgetRangeFilterCoefs(IloCplex::FilterIndex filter, IloNumArray) const
public IloNumgetRangeFilterLowerBound(IloCplex::FilterIndex filter) const
public IloNumgetRangeFilterUpperBound(IloCplex::FilterIndex filter) const
public voidgetRangeSA(IloNumArray lblower, IloNumArray lbupper, IloNumArray ublower, IloNumArray ubupper, const IloRangeArray con) const
public voidgetRay(IloNumArray vals, IloNumVarArray vars) const
public IloNumgetReducedCost(const IloIntVar var) const
public IloNumgetReducedCost(const IloNumVar var) const
public voidgetReducedCosts(IloNumArray val, const IloIntVarArray var) const
public voidgetReducedCosts(IloNumArray val, const IloNumVarArray var) const
public IloCplex::RemoteInfoHandler *getRemoteInfoHandler() const
public voidgetRHSSA(IloNumArray lower, IloNumArray upper, const IloRangeArray cons) const
public IloNumgetSlack(const IloRange range, IloInt soln=IncumbentId) const
public voidgetSlacks(IloNumArray val, const IloRangeArray con, IloInt soln=IncumbentId) const
public IloNumgetSolnPoolMeanObjValue() const
public IloIntgetSolnPoolNreplaced() const
public IloIntgetSolnPoolNsolns() const
public IloAlgorithm::StatusgetStatus() const
public IloCplex::AlgorithmgetSubAlgorithm() const
public IloNumgetValue(const IloObjective ob, IloInt soln) const
public IloNumgetValue(const IloNumExprArg expr, IloInt soln) const
public IloNumgetValue(const IloIntVar var, IloInt soln) const
public IloNumgetValue(const IloNumVar var, IloInt soln) const
public voidgetValues(const IloIntVarArray var, IloNumArray val, IloInt soln) const
public voidgetValues(IloNumArray val, const IloIntVarArray var, IloInt soln) const
public voidgetValues(const IloNumVarArray var, IloNumArray val, IloInt soln) const
public voidgetValues(IloNumArray val, const IloNumVarArray var, IloInt soln) const
public voidgetValues(const IloIntVarArray var, IloNumArray val) const
public voidgetValues(IloNumArray val, const IloIntVarArray var) const
public voidgetValues(const IloNumVarArray var, IloNumArray val) const
public voidgetValues(IloNumArray val, const IloNumVarArray var) const
public const char *getVersion() const
public intgetVersionNumber() const
public IloBoolhasLongAnnotation(const char * name) const
public IloBoolhasNumAnnotation(const char * name) const
public boolhasVMConfig() const
public IloCplex(IloEnv env)
public IloCplex(const IloModel model)
public IloCplex(IloEnv env, char const * transport, I argc, char const *const * argv)
public IloCplex(IloModel model, char const * transport, I argc, char const *const * argv)
public voidimportModel(IloModel & m, const char * filename) const
public voidimportModel(IloModel & m, const char * filename, IloObjective & obj, IloNumVarArray vars, IloRangeArray rngs, IloRangeArray lazy=0, IloRangeArray cuts=0) const
public voidimportModel(IloModel & model, const char * filename, IloObjective & obj, IloNumVarArray vars, IloRangeArray rngs, IloSOS1Array sos1, IloSOS2Array sos2, IloRangeArray lazy=0, IloRangeArray cuts=0) const
public voidimportModel(IloModel & model, const char * filename, IloObjective & obj, IloNumVarArray vars, IloRangeArray rngs, IloSOS1Array sos1, IloSOS2Array sos2, IloConstraintArray cons, IloRangeArray lazy, IloRangeArray cuts) const
public IloBoolisDualFeasible() const
public IloBoolisMIP() const
public IloBoolisPrimalFeasible() const
public IloBoolisQC() const
public IloBoolisQO() const
public static IloCplex::GoalLimitSearch(IloCplex cplex, IloCplex::Goal goal, IloCplex::SearchLimit limit)
public IloCplex::LongAnnotationnewLongAnnotation(const char * name, IloInt64 defval=-1)
public IloCplex::NumAnnotationnewNumAnnotation(const char * name, IloNum defval=0.0)
public IloIntnumLongAnnotations() const
public IloIntnumNumAnnotations() const
public IloCplex::PopulateHandlepopulate(bool async)
public IloBoolpopulate()
public IloCplex::PresolveHandlepresolve(IloCplex::Algorithm alg, bool async)
public voidpresolve(IloCplex::Algorithm alg)
public voidprotectVariables(const IloIntVarArray var)
public voidprotectVariables(const IloNumVarArray var)
public voidqpIndefCertificate(IloIntVarArray var, IloNumArray x)
public voidqpIndefCertificate(IloNumVarArray var, IloNumArray x)
public voidreadAnnotations(const char * name)
public voidreadBasis(const char * name) const
public IloCplex::FilterIndexArrayreadFilters(const char * name)
public voidreadMIPStarts(const char * name) const
public voidreadOrder(const char * filename) const
public voidreadParam(const char * name) const
public voidreadSolution(const char * name) const
public voidreadStartInfo(const char * name) const
public voidreadVMConfig(T file)
public IloCplex::RefineConflictHandlerefineConflict(IloConstraintArray cons, IloNumArray prefs, bool async)
public IloBoolrefineConflict(IloConstraintArray cons, IloNumArray prefs)
public IloCplex::RefineMIPStartConflictHandlerefineMIPStartConflict(IloInt mipstartindex, IloConstraintArray cons, IloNumArray prefs, bool async)
public IloBoolrefineMIPStartConflict(IloInt mipstartindex, IloConstraintArray cons, IloNumArray prefs)
public voidremove(IloCplex::Callback cb)
public voidremove(IloCplex::Aborter abort)
public IloCplex::RemoteInfoHandler *removeRemoteInfoHandler()
public voidsetAnnotation(const IloCplex::NumAnnotation annotation, const IloConstraintArray ctr, const IloNumArray value)
public voidsetAnnotation(const IloCplex::NumAnnotation annotation, const IloIntVarArray var, const IloNumArray value)
public voidsetAnnotation(const IloCplex::NumAnnotation annotation, const IloNumVarArray var, const IloNumArray value)
public voidsetAnnotation(const IloCplex::NumAnnotation annotation, const IloConstraint ctr, IloNum value)
public voidsetAnnotation(const IloCplex::NumAnnotation annotation, const IloObjective obj, IloNum value)
public voidsetAnnotation(const IloCplex::NumAnnotation annotation, const IloIntVar var, IloNum value)
public voidsetAnnotation(const IloCplex::NumAnnotation annotation, const IloNumVar var, IloNum value)
public voidsetAnnotation(const IloCplex::LongAnnotation annotation, const IloConstraintArray ctr, const IloArray< IloInt64 > value)
public voidsetAnnotation(const IloCplex::LongAnnotation annotation, const IloIntVarArray var, const IloArray< IloInt64 > value)
public voidsetAnnotation(const IloCplex::LongAnnotation annotation, const IloNumVarArray var, const IloArray< IloInt64 > value)
public voidsetAnnotation(const IloCplex::LongAnnotation annotation, const IloConstraint ctr, IloInt64 value)
public voidsetAnnotation(const IloCplex::LongAnnotation annotation, const IloObjective obj, IloInt64 value)
public voidsetAnnotation(const IloCplex::LongAnnotation annotation, const IloIntVar var, IloInt64 value)
public voidsetAnnotation(const IloCplex::LongAnnotation annotation, const IloNumVar var, IloInt64 value)
public voidsetBasisStatuses(const IloCplex::BasisStatusArray cstat, const IloIntVarArray var, const IloCplex::BasisStatusArray rstat, const IloConstraintArray con)
public voidsetBasisStatuses(const IloCplex::BasisStatusArray cstat, const IloNumVarArray var, const IloCplex::BasisStatusArray rstat, const IloConstraintArray con)
public voidsetDefaults()
public voidsetDeleteMode(IloCplex::DeleteMode mode)
public voidsetDirection(IloIntVar var, IloCplex::BranchDirection dir)
public voidsetDirection(IloNumVar var, IloCplex::BranchDirection dir)
public voidsetDirections(const IloIntVarArray var, const IloCplex::BranchDirectionArray dir)
public voidsetDirections(const IloNumVarArray var, const IloCplex::BranchDirectionArray dir)
public voidsetParam(IloCplex::StringParam parameter, const char * value)
public voidsetParam(IloCplex::NumParam parameter, IloNum value)
public voidsetParam(IloCplex::BoolParam parameter, IloBool value)
public voidsetParam(IloCplex::LongParam parameter, CPXLONG value)
public voidsetParam(IloCplex::IntParam parameter, CPXINT value)
public voidsetParameterSet(IloCplex::ParameterSet set)
public voidsetPriorities(const IloIntVarArray var, const IloNumArray pri)
public voidsetPriorities(const IloNumVarArray var, const IloNumArray pri)
public voidsetPriority(IloIntVar var, IloNum pri)
public voidsetPriority(IloNumVar var, IloNum pri)
public IloCplex::RemoteInfoHandler *setRemoteInfoHandler(IloCplex::RemoteInfoHandler * handler)
public voidsetStart(const IloNumArray x, const IloNumArray dj, const IloIntVarArray var, const IloNumArray slack, const IloNumArray pi, const IloRangeArray rng)
public voidsetStart(const IloNumArray x, const IloNumArray dj, const IloNumVarArray var, const IloNumArray slack, const IloNumArray pi, const IloRangeArray rng)
public IloBoolsolve(IloCplex::Goal goal)
public IloCplex::SolveHandlesolve(bool async)
public IloBoolsolve(const IloArray< IloCplex::ParameterSet > paramsets)
public IloBoolsolve()
public IloCplex::SolveFixedHandlesolveFixed(IloInt soln, bool async)
public IloBoolsolveFixed(IloInt soln=IloCplex::IncumbentId)
public voidtransportctrl(int ctrl, double & data) const
public voidtransportctrl(int ctrl, CPXLONG & data) const
public voidtransportctrl(int ctrl, CPXINT & data) const
public IloInttuneParam(IloArray< const char * > filename)
public IloCplex::TuneParamHandletuneParam(IloCplex::ParameterSet fixedset, bool async)
public IloCplex::TuneParamHandletuneParam(bool async)
public IloInttuneParam(IloCplex::ParameterSet fixedset)
public IloInttuneParam()
public IloInttuneParam(IloArray< const char * > filename, IloCplex::ParameterSet fixedset)
public voiduse(IloModelingAssistance::Callback * callback)
public voiduse(Callback::Function * callback, CPXLONG contextMask)
public IloCplex::Callbackuse(IloCplex::Callback cb)
public IloCplex::Aborteruse(IloCplex::Aborter abort)
public intuserfunction(int id, CPXLONG inlen, void const * in, CPXLONG outcap, CPXLONG * outlen_p, void * out)
public voidwriteAnnotations(const char * name) const
public voidwriteBasis(const char * name) const
public voidwriteBendersAnnotation(const char * name) const
public voidwriteConflict(const char * filename) const
public voidwriteFilters(const char * name)
public voidwriteMIPStarts(const char * name, IloInt first=0, IloInt num=IloIntMax) const
public voidwriteOrder(const char * filename) const
public voidwriteParam(const char * name) const
public voidwriteSolution(const char * name, IloInt soln=IncumbentId) const
public voidwriteSolutions(const char * name) const
从 "IloAlgorithm继承的方法
clear, end, error, extract, getEnv, getIntValue, getIntValues, getModel, getObjValue, getStatus, getTime, getValue, getValue, getValue, getValue, getValues, getValues, IloAlgorithm, isExtracted, out, printTime, resetTime, setError, setOut, setWarning, solve, warning
内部枚举
IloCplex::Algorithm
IloCplex::BasisStatus
IloCplex::BoolParam
IloCplex::BranchDirection
IloCplex::CalcQCPDuals
IloCplex::ConflictAlgorithm
IloCplex::ConflictStatus
IloCplex::CplexStatus
IloCplex::CutManagement
IloCplex::CutType
IloCplex::DataCheckType
IloCplex::DeleteMode
IloCplex::DistMIPRampupDuration
IloCplex::DualPricing
IloCplex::IntParam
IloCplex::LongParam
IloCplex::MIPEmphasisType
IloCplex::MIPsearch
IloCplex::MIPStartEffort
IloCplex::MultiObjInt64Info
IloCplex::MultiObjIntInfo
IloCplex::MultiObjNumInfo
IloCplex::NodeSelect
IloCplex::NumParam
IloCplex::OptimalityTargetType
IloCplex::Parallel_Mode
IloCplex::PrimalPricing
IloCplex::Quality
IloCplex::Relaxation
IloCplex::SolutionType
IloCplex::StringParam
IloCplex::TuningStatus
IloCplex::VariableSelect
IloCplex::WriteLevelType
内部类型定义
IloCplex::BasisStatusArray
IloCplex::BranchDirectionArray
IloCplex::ConflictStatusArray
IloCplex::StatusAn enumeration for the class IloAlgorithm.
内部班级
IloCplex::Aborter
IloCplex::AsyncHandle
IloCplex::BarrierCallbackI
IloCplex::BranchCallbackI
IloCplex::Callback
IloCplex::CallbackI
IloCplex::ContinuousCallbackI
IloCplex::ControlCallbackI
IloCplex::CrossoverCallbackI
IloCplex::Deserializer
IloCplex::DisjunctiveCutCallbackI
IloCplex::DisjunctiveCutInfoCallbackI
IloCplex::Exception
IloCplex::ExtractedConstraintException
IloCplex::FeasOptHandle
IloCplex::FlowMIRCutCallbackI
IloCplex::FlowMIRCutInfoCallbackI
IloCplex::FractionalCutCallbackI
IloCplex::FractionalCutInfoCallbackI
IloCplex::Goal
IloCplex::GoalI
IloCplex::HeuristicCallbackI
IloCplex::IncumbentCallbackI
IloCplex::InvalidCutException
IloCplex::LazyConstraintCallbackI
IloCplex::LongAnnotation
IloCplex::MIPCallbackI
IloCplex::MIPInfoCallbackI
IloCplex::MultipleConversionException
IloCplex::MultipleObjException
IloCplex::NetworkCallbackI
IloCplex::NodeCallbackI
IloCplex::NodeEvaluator
IloCplex::NodeEvaluatorI
IloCplex::NumAnnotation
IloCplex::OptimizationCallbackI
IloCplex::Parameter
IloCplex::ParameterSet
IloCplex::PopulateHandle
IloCplex::PresolveHandle
IloCplex::ProbingCallbackI
IloCplex::ProbingInfoCallbackI
IloCplex::RefineConflictHandle
IloCplex::RefineMIPStartConflictHandle
IloCplex::RemoteInfoHandler
IloCplex::SearchLimit
IloCplex::SearchLimitI
IloCplex::Serializer
IloCplex::SimplexCallbackI
IloCplex::SolveCallbackI
IloCplex::SolveFixedHandle
IloCplex::SolveHandle
IloCplex::TuneParamHandle
IloCplex::TuningCallbackI
IloCplex::UnknownExtractableException
IloCplex::UserCutCallbackI
属性详情

BendersAnnotation

公共静态常量字符 *constBendersAnnotation

这个常量定义了一个注解的名称,该注解指定了一个本德斯分解。


IncumbentId

public static const intIncumbentId

在需要求解指数的方法中,该常数可确定 MIP 的现存解。


方法详细信息

IloCplex

publicIloCplex(IloEnv env)

该构造函数创建一个 CPLEX 算法。 新的 "IloCplex实例没有加载(或提取)"IloModel


IloCplex

publicIloCplex(constIloModel model)

该构造函数创建一个 CPLEX 算法,并提取该算法的 "model

当您创建一个算法(例如 "IloCplex的实例)并为其提取一个模型时,您可以写这一行:

 IloCplex cplex(model);
 

或这两行:

 IloCplex cplex(env);
 cplex.extract(model);
 

IloCplex

publicIloCplex(IloEnv env, char const *transport, Iargc, char const *const *argv)

该构造函数在给定环境中为用户编写的分布式应用程序创建远程CPLEX 对象。

该构造函数只能通过 CPLEX 的 C++ 应用程序接口 (API) 使用。 换句话说,IBM ILOG CPLEX Optimization Studio 的其他组件无法提供该功能。

参数 "transport指定 CPLEX 使用的通信协议。 有关可接受的值,请参阅用户手册。

该构造函数被定义为一个模板,其模板参数 "I指定了参数 "argc的类型(通常为 "int)。 作为一个模板,构造函数的技术优势在于,除非你使用它,否则它不会创建任何代码。 因此,除非实际使用该构造函数,否则它不会生成对远程对象库的任何引用。

参数:

环境

进入 CPLEX 环境的入口。

运输

传输协议类型。

参数

传输协议特有的参数计数。

参数

传输协议特有的参数向量。


IloCplex

publicIloCplex(IloModel model, char const *transport, Iargc, char const *const *argv)

该构造函数为用户编写的分布式应用程序中的给定模型创建远程CPLEX 对象。

该构造函数只能通过 CPLEX 的 C++ 应用程序接口 (API) 使用。 换句话说,IBM ILOG CPLEX Optimization Studio 的其他组件无法提供该功能。

参数 "transport指定 CPLEX 使用的通信协议。 参数 "transport的可接受值是这些类型之一:

该构造函数被定义为一个模板,其模板参数 "I指定了参数 "argc的类型(通常为 "int)。 作为一个模板,构造函数的技术优势在于,除非你使用它,否则它不会创建任何代码。 因此,除非实际使用该构造函数,否则它不会生成对远程对象库的任何引用。

参数:

模型

指向模型的句柄。

运输

传输协议类型。

参数

传输协议特有的参数计数。

参数

传输协议特有的参数向量。


addCut

publicIloConstraint addCut(IloConstraint con)

首选 "IloCplex::addLazyConstraint方法,而不是此方法。

该方法将 "con作为剪切对象添加到调用的 "IloCplex对象中。 剪切不会像模型中的常规约束一样被提取出来,而只会在调用 "addCut方法时才会复制剪切。 因此,"con可能会在调用 "addCut后被删除或修改,但调用 "IloCplex的对象不会收到有关更改的通知。

当从提取的模型中删除列时,所有切分也会被删除,如果需要考虑这些切分,则需要重新提取。 削减不是根本问题的一部分,而是根据需要加以考虑。 用 "IloCplex计算出的解保证满足用这种方法添加的所有切分。


addCuts

publicIloConstraintArray addCuts(IloConstraintArray con)

首选 "IloCplex::addLazyConstraints方法,而不是此方法。

该方法将 "con中的约束条件作为切分添加到调用的 "IloCplex对象中。 关于 "IloCplex::addCut的意见同样适用于数组 "con中给出的每个切分。


addDiversityFilter

public 'IloCplex::FilterIndex'添加多样性过滤器( 'IloNum'lower_cutoff, 'IloNum'upper_cutoff, const 'IloIntVarArray'变量, const 'IloNumArray'重量, const 'IloNumArray'重估价, const char * 'fname=0)

为指定的整数变量创建并安装已命名的多样性筛选器,并指定下限值、上限值、参考值和权重。

差异性过滤器驱动在多个解法中搜索满足过滤器中指定的差异性度量的新解法。

此差异性度量仅适用于二进制变量。

可能的新解法与参考集比较。 必须指定要比较的变量。 参数 "vars指定了多样性测量中要包含的变量指数。

参考集是由参数 "refval指定的值集。

您可以选择在差异性度量中指定权重(即,用于构成有关变量的线性表达式的系数);如果未指定权重,那么将以值 1.0(一)对参考集和可能的新解法之间的差值加权。 CPLEX 通过对参考值的成对加权绝对差值求和计算差异性度量,如下所示:

 differences(x) = sum '{weight[i] times |x[vars[i]] - refval[i]|}.
 

差异性过滤器可确保解法满足约束:

 lower bound <= differences(x) <= upper bound
 

可指定差异性下限和上限。

为了说 "在这组指定的变量中,给出与此接近的解决方案",请指定一个0.0(零)的 "lower_bound和一个有限的 "upper_bound"。 然后,CPLEX 会在指定的变量集中寻找与参考值最多相差 "upper_bound值的解。

为了说 "给我与此不同的解决方案",请在多样性上指定一个有限的 "lower_bound和一个无限的(即非常大的)"upper_bound。 然后,CPLEX 在指定的变量集中寻找与参考值相差至少 "lower_bound值的解。

参数:

变量

多样性度量中的整数变量数组。

重量

一个权重数组,与多样性度量中使用的变量相对应。 可以为空,在这种情况下,CPLEX 使用权重1.0(1)。

重估价

多样性筛选器中变量的参考值数组,用于在 CPLEX 计算多样性度量时与解决方案进行比较。

fname

过滤器的名称。 可为 NULL。

返回:

该方法返回已添加过滤器的索引。


addDiversityFilter

public 'IloCplex::FilterIndex'添加多样性过滤器( 'IloNum'lower_cutoff, 'IloNum'upper_cutoff, const 'IloNumVarArray'变量, const 'IloNumArray'重量, const 'IloNumArray'重估价, const char * 'fname=0)

此方法为指定的数值变量创建并安装一个已命名的多样性筛选器,该筛选器具有指定的上下限、参考值和权重。

差异性过滤器驱动在多个解法中搜索满足过滤器中指定的差异性度量的新解法。

此差异性度量仅适用于二进制变量。

可能的新解法与参考集比较。 必须指定要比较的变量。 参数 "vars指定了多样性测量中要包含的变量指数。

参考集是由参数 "refval指定的值集。

您可以选择在差异性度量中指定权重(即,用于构成有关变量的线性表达式的系数);如果未指定权重,那么将以值 1.0(一)对参考集和可能的新解法之间的差值加权。 CPLEX 通过对参考值的成对加权绝对差值求和计算差异性度量,如下所示:

 differences(x) = sum '{weight[i] times |x[vars[i]] - refval[i]|}.
 

差异性过滤器可确保解法满足约束:

 lower bound <= differences(x) <= upper bound
 

可指定差异性下限和上限。

为了说 "在这组指定的变量中,给出与此接近的解决方案",请指定一个0.0(零)的 "lower_bound和一个有限的 "upper_bound"。 然后,CPLEX 会在指定的变量集中寻找与参考值最多相差 "upper_bound值的解。

为了说 "给我与此不同的解决方案",请在多样性上指定一个有限的 "lower_bound和一个无限的(即非常大的)"upper_bound。 然后,CPLEX 在指定的变量集中寻找与参考值相差至少 "lower_bound值的解。

参数:

变量

多样性测量中的数字变量数组。

重量

一个权重数组,与多样性度量中使用的变量相对应。 可以为空,在这种情况下,CPLEX 使用权重1.0(1)。

重估价

多样性筛选器中变量的参考值数组,用于在 CPLEX 计算多样性度量时与解决方案进行比较。

fname

过滤器的名称。 可为 NULL。

返回:

该方法返回已添加过滤器的索引。


addLazyConstraint

公共 'IloConstraint'addLazyConstraint( 'IloConstraint'忽悠' )

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

此方法将 "con作为一个懒约束添加到调用的 "IloCplex对象中。 CPLEX 会将约束 "con复制到懒约束池中;原始约束 "con本身并不在池中,因此在 "con复制到懒约束池后,对它的更改不会影响懒约束池。

提示为获得最佳性能,请在一次调用中添加所有懒约束,而不是逐个添加。

只有尚未作为模型一部分提取的约束条件才能作为懒约束条件添加。 如果尝试添加已提取为模型一部分的懒约束,则会出现异常 "IloCplex::ExtractedConstraintException

用 "addLazyConstraint添加的 "懒约束 "通常是模型中的约束条件,这些约束条件在不添加时不会被违反。 这样做的目的是,当不包含这些约束条件时,在求解 MIP 时所求解的 LP 可以保持较小的规模。 但是,一旦IloCplex违反了懒惰约束,它就会将该约束纳入 LP 中。 换句话说,"IloCplex计算出的解决方案确保满足所有已添加的懒惰约束条件。

与此相反,如果约束条件不改变提取模型的可行区域,而只是加强了表述,则称为用户切分。 While user cuts can be added to IloCplex with addLazyConstraint, it is generally preferable to do so with addUserCuts. 但是,使用 "addUserCuts方法添加懒惰约束是错误的。

从提取模型中删除列时,所有懒约束也会被删除,需要重新复制到懒约束池中。 用这种方法代替 "addCuts,可以进一步减少预化量


addLazyConstraints

public constIloConstraintArray addLazyConstraints(constIloConstraintArray con)

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

该方法为调用的 "IloCplex对象添加一组懒惰约束。 对 "IloCplex::addLazyConstraint的观察结果适用于数组 "con中的每个懒惰约束。

提示为获得最佳性能,请在一次调用中添加所有懒约束,而不是逐个添加。

只有尚未作为模型一部分提取的约束条件才能作为懒约束条件添加。 如果试图将任何已提取到模型中的约束添加为懒约束,则会出现异常 "IloCplex::ExtractedConstraintException


addMIPStart

public 'IloInt'addMIPStart( 'IloNumVarArray'变量=0, 'IloNumArray'价值观=0, 'IloCplex::MIPStartEffort'费力= 'MIPStartAuto, const char * '名字= '0)

在当前问题中添加一个已命名的 MIP 开始,其努力程度由指定变量及其相应值定义。

与 "setStart方法不同,"addMIPStart方法不是递增的。 换句话说,每次调用 "addMIPStart都会创建一个新的 MIP 起点。

目前还没有从多维变量数组创建 MIP 起点的方法。 要从多维变量数组创建 MIP 开始,首先必须将所有变量复制到平面数组中。 下面的示例假设矩阵的维数为 m 乘 n,"x[i][j]的起始值为 "start[i][j]

     IloNumVarArray startVar(env);
     IloNumArray startVal(env);
     for (int i = 0; i < m; ++i)
         for (int j = 0; j < n; ++j) {
             startVar.add(x[i][j]);
             startVal.add(start[i][j]);
         }
     cplex.addMIPStart(startVar, startVal);
     startVal.end();
     startVar.end();
 

返回:

返回新增 MIP 起点(在此问题现有 MIP 起点中)的索引。

addRangeFilter

publicIloCplex::FilterIndex addRangeFilter(IloNum,IloNum, constIloIntVarArray, constIloNumArray, const char*=0)

使用指定的下限、上限、整数变量和权重创建一个命名范围过滤器,将过滤器添加到调用模型的解池中,并返回过滤器的索引。

范围筛选器会将多个解决方案的搜索导向满足筛选器中范围线性表达式指定标准的新解决方案。 范围筛选器为由数组 "vars中指定的变量和参数 "weights中指定的系数值组成的线性表达式设置下限和上限,就像这样:

 下限 <= sum{weights{weights[i] times vars[i]}<= 上限
 

范围筛选器适用于任何类型的变量,即二进制变量、一般整数变量和连续变量。

返回:

该方法返回已添加过滤器的索引。


addRangeFilter

publicIloCplex::FilterIndex addRangeFilter(IloNum,IloNum, constIloNumVarArray, constIloNumArray, const char*=0)

此方法使用指定的下截点、上截点、数字变量和权重创建一个命名范围过滤器,将过滤器添加到调用模型的解池中,并返回其索引。

范围筛选器会将多个解决方案的搜索导向满足筛选器中范围线性表达式指定标准的新解决方案。 范围筛选器为由数组 "vars中指定的变量和参数 "weights中指定的系数值组成的线性表达式设置下限和上限,就像这样:

 下限 <= sum{weights{weights[i] times vars[i]}<= 上限
 

范围筛选器适用于任何类型的变量,即二进制变量、一般整数变量和连续变量。

返回:

该方法返回已添加过滤器的索引。


addUserCut

publicIloConstraint addUserCut(IloConstraint con)

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

该方法将 "con作为用户切入添加到调用的 "IloCplex对象中。 CPLEX 将 "con约束的副本放入用户剪切库中。 但是,约束条件 "con本身并不属于池的一部分,因此在将 "con复制到用户剪切池后,对其所做的更改不会影响用户剪切池。

提示为获得最佳性能,请在一次调用中添加所有剪切,而不是逐个添加。

只有尚未作为模型一部分提取的约束条件才能作为用户切分添加。 如果尝试添加已提取为模型一部分的约束条件,会出现异常 "IloCplex::ExtractedConstraintException

使用 "addUserCut添加的切分必须是真正的切分,因为 MIP 的解并不取决于是否添加切分。 相反,它们的存在只是为了加强配方。

从提取模型中删除列时,所有用户剪切也会被删除,需要重新复制到用户剪切池中。

Do not use addUserCut for lazy constraints, that is, constraints whose absence may potentially change the solution of the problem. 添加此类约束时,请使用 "IloCplex::addLazyConstraint


addUserCuts

public constIloConstraintArray addUserCuts(constIloConstraintArray con)

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

This method adds a set of user cuts to the invoking IloCplex object. IloCplex::addUserCut中的观察结果适用于数组 "con中的每个用户切口。

提示为获得最佳性能,请在一次调用中添加所有剪切,而不是逐个添加。

只有尚未作为模型一部分提取的约束条件才能作为用户切分添加。 如果尝试添加已提取为模型一部分的约束条件,会出现异常 "IloCplex::ExtractedConstraintException


应用

public staticIloCplex::Goal ApplyIloCplex IloCplex cplex,IloCplex::Goal goal,IloCplex::NodeEvaluator eval)

该方法用于创建并返回一个目标,将 "eval定义的节点选择策略应用到 "goal定义的搜索策略中。 生成的目标将使用 "eval"定义的节点策略来处理 "goal生成的子树。


basicPresolve

public void '基本解决(const 'IloNumVarArray'变量, 'IloNumArray'redlb=0, 'IloNumArray'重新配音=0, const 'IloRangeArray'rngs=0, 'IloBoolArray'冗员=0) const
public void '基本解决(const 'IloIntVarArray'变量, 'IloNumArray'redlb=0, 'IloNumArray'重新配音=0, const 'IloRangeArray'rngs=0, 'IloBoolArray'冗员=0) const

该方法可用于为模型变量计算更严格的边界,并检测提取到调用 "IloCplex对象的模型中的多余约束。 对于参数 "vars指定的每个变量,该方法将返回数组 "redlb和 "redub中相应元素的可能收紧的边界。 同样,对于参数 "rngs指定的每个约束条件,该方法将返回一个布尔值,报告该约束条件在数组 "redundant的相应元素中的模型中是否多余。

对于半连续或半整数变量,此方法生成的是变量的下界,而不是半连续或半整数下界。 如果该方法得出的下限小于或等于零,那么变量将作为半连续或半整数变量存在。 相反,如果这种方法得出的下界严格大于零,那么基本预演的结论就是可以从变量域中消除零。 因此,可以将变量的类型从半连续改为连续,或从半整数改为整数。 之后,就可以在不影响模型可行区域的情况下使用收紧后的约束条件了。


changeMIPStart

public voidchangeMIPStart(IloInt mipstartindex,IloNumVarArray vars,IloNumArray values,IloCplex::MIPStartEffort effortlevel)

通过为指定变量分配相应的值和指定的努力程度,改变由索引指定的 MIP 起点。


changeMIPStart

public void 'changeMIPStart( 'IloInt' 'mipstartindex, 'IloNumVarArray'变量, 'IloNumArray'价值观)

为指定变量分配相应的值,从而更改由其索引指定的 MIP 起点。


clearCuts

公共 voidclearCuts()

This method deletes all cuts that have previously been added to the invoking IloCplex object with the methods addCut and addCuts.


clearLazyConstraints

public voidclearLazyConstraints()

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

该方法将删除所有通过方法 "IloCplex::addLazyConstraint和 "IloCplex::addLazyConstraints添加到调用对象 "IloCplex中的懒约束。

该方法等同于 "IloCplex::clearCuts


clearModel

公共 voidclearModel()

该方法可用于取消当前提取到调用 "IloCplex对象的模型。


clearUserCuts

公共 voidclearUserCuts()

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

This method deletes all user cuts that have previously been added to the invoking IloCplex object with the methods IloCplex::addUserCut and IloCplex::addUserCuts.


copyVMConfig

public voidcopyVMConfig(Txmlstring)

从字符串中读取虚拟机配置。

xmlstring的值必须是符合 VMC 文件格式的字符串。 必须使用以单个 "NUL字节结束字符串的编码方式给出。 如果能成功解析 "xmlstring,则会将相应配置安装到 "IloCplex实例中。 如果出错,先前安装的虚拟机配置将保持不变。

如果在 "IloCplex实例中安装了虚拟机配置,且提取的模型是 MIP,那么该实例的 "solve方法就会使用并行分布式 MIP 优化来解决问题。

该函数以模板形式实现,因此除非实际使用该函数,否则不会创建对 CPLEX 分布式并行 MIP API 的引用。 其参数类型必须可转换为 "char const *

另请参阅:

参数:

xmlstring
包含虚拟机配置的字符串。

delAnnotation

public voiddelAnnotation(IloCplex::NumAnnotation anno)
删除指定的数字注释。

delAnnotation

public voiddelAnnotation(IloCplex::LongAnnotation anno)
删除分隔的注释。

delDirection

public voiddelDirection(IloNumVar var)
public voiddelDirection(IloIntVar var)

此方法将删除变量 "var中已有的分支方向赋值。


delDirections

public voiddelDirections(constIloNumVarArray var)
public voiddelDirections(constIloIntVarArray var)

该方法会删除数组 "var中所有变量的分支方向赋值。


deleteMIPStarts

public void '删除MIPStarts( 'IloInt'第一次, 'IloInt'=1)

从索引指定的 MIP 起始点开始,删除指定数量的 MIP 起始点。


deleteNames

公共 voiddeleteNames()

删除提取模型中的所有名称。

执行此方法只会影响 "IloCplex模型提取副本中存储的名称,而不会影响原始 Concert 模型。 Concert 模型中的名称不受此方法影响。 随后,"IloExtractable类提取实例的名称更改将继续在提取的 "IloCplex模型中进行跟踪。 这一约定意味着,在首次更改此类名称时,"IloCplex会为 "IloCplex对象(但不包括 Concert 模型)中的所有其他可提取内容创建默认名称。


delFilter

public voiddelFilter(IloCplex::FilterIndexfilter)

从解决方案池中删除指定的过滤器。


delPriorities

public voiddelPriorities(constIloNumVarArray var)
public voiddelPriorities(constIloIntVarArray var)

该方法会删除数组 "var中所有变量的现有优先级赋值。


delPriority

public voiddelPriority(IloNumVar var)
public voiddelPriority(IloIntVar var)

此方法将删除变量 "var中任何现有的优先级赋值。


delSolnPoolSoln

public voiddelSolnPoolSoln(IloInt which)

从解决方案池中删除指定的解决方案,并重新编号池中剩余解决方案的索引。


delSolnPoolSolns

public voiddelSolnPoolSolns(IloInt begin,IloInt end)

从解决方案池中删除一系列解决方案,并重新编号池中剩余解决方案的索引。


delVMConfig

public voiddelVMConfig()

删除此实例中安装的任何虚拟机配置 (VMC)。


dualFarkas

publicIloNum dualFarkas(IloConstraintArray rng,IloNumArray y)

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

在二元单纯形优化器证明活动 LP 模型不可行后,该方法会返回 Farkas 不可行证明。 For every constraint i of the active LP this method computes a value y[i] such that y'A >= y'b, where A denotes the constraint matrix. 有关法卡斯不可行性证明的更多详细信息,请参阅可调用库参考手册中记录的 C 例程 "CPXXdualfarkas

参数:

rng

输出阵列。 函数将自动调整数组 "rng的大小至长度为 "getNrows(),并将返回 y 值的约束条件存储在数组 "rng中。 约束条件'rng[i]的 y 值在'y[i]中返回。

y

输出阵列。 函数将自动调整数组 "y的大小至长度为 "getNrows(),并将 "rng中的约束条件的 y 值存储到数组 "y中。 约束条件'rng[i]的 y 值在'y[i]中返回。

返回:

矢量 "z的 "y'b - y'A z值定义为:对于所有变量 "j,如果 "y'A[j] > 0为 "z[j] = ub[j],如果 "y'A[j] < 0为 "z[j] = lb[j]"。


exportModel

public voidexportModel(const char *filename) const

该方法将活动模型(即调用算法提取的模型)写入文件 "filename。 文件格式由文件名的扩展名决定。 可识别以下扩展名:

如果没有为变量或范围指定名称(即 "IloExtractable::getName方法为该变量或范围返回空值),"IloCplex在将模型写入文件(或优化日志)时将使用默认名称。 默认名称为IloXj变量)和IloCi,i 和 j 是 "IloCplex的内部索引)。

更多详情请参见参考手册 "CPLEX 文件格式,有关文件格式的其他信息请参见 "CPLEX 用户手册


feasOpt

publicIloCplex::FeasOptHandle feasOpt(constIloConstraintArray cts, constIloNumArray prefs, boolasync)

该方法是 "IloCplex::feasOpt的异步版本。 换句话说,该方法执行与 "IloCplex::feasOpt相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::FeasOptHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "FeasOptHandle::joinFeasOpt方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。

另请参阅:

参数:

cts

请参阅 IloCplex::feasOpt

预置

请参阅 IloCplex::feasOpt

异步
指示操作是同步还是异步的标志。

返回:

行动刚刚开始。

feasOpt

publicIloCplex::FeasOptHandle feasOpt(constIloRangeArray rngs, constIloNumArray rnglb, constIloNumArray rngub, boolasync)

该方法是 "IloCplex::feasOpt的异步版本。 换句话说,该方法执行与 "IloCplex::feasOpt相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::FeasOptHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async为 "false,则操作同步执行。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "FeasOptHandle::joinFeasOpt方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。

另请参阅:

参数:

rngs

请参阅 IloCplex::feasOpt

rnglb

请参阅 IloCplex::feasOpt

rngub

请参阅 IloCplex::feasOpt

异步

指示操作是同步还是异步的标志。

返回:

行动刚刚开始。

feasOpt

publicIloCplex::FeasOptHandle feasOpt(constIloIntVarArray vars, constIloNumArray varlb, constIloNumArray varub, boolasync)

该方法是 "IloCplex::feasOpt的异步版本。 换句话说,该方法执行与 "IloCplex::feasOpt相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::FeasOptHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "FeasOptHandle::joinFeasOpt方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。

另请参阅:

参数:

变量

请参阅 IloCplex::feasOpt

varlb

请参阅 IloCplex::feasOpt

varub

请参阅 IloCplex::feasOpt

异步

指示操作是同步还是异步的标志。

返回:

行动刚刚开始。

feasOpt

public 'IloCplex::FeasOptHandle'feasOpt(const 'IloNumVarArray'变量, const 'IloNumArray'varlb, const 'IloNumArray'varub, bool '异步)

该方法是 "IloCplex::feasOpt的异步版本。 换句话说,该方法执行与 "IloCplex::feasOpt相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::FeasOptHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用此方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "FeasOptHandle::joinFeasOpt方法加入返回句柄。 同样,您必须通过连接才能查询返回值。

另请参阅:

参数:

变量

请参阅 IloCplex::feasOpt

varlb

请参阅 IloCplex::feasOpt

varub

请参阅 IloCplex::feasOpt

异步

指示操作是同步还是异步的标志。

返回:

行动刚刚开始。

feasOpt

public 'IloCplex::FeasOptHandle'feasOpt(const 'IloRangeArray'rngs, const 'IloNumArray'rnglb, const 'IloNumArray'rngub, const 'IloIntVarArray'变量, const 'IloNumArray'varlb, const 'IloNumArray'varub, bool '异步' )

该方法是 "IloCplex::feasOpt的异步版本。 换句话说,该方法执行与 "IloCplex::feasOpt相同的操作,但可以与远程对象异步运行。 该方法返回一个 "IloCplex::FeasOptHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "FeasOptHandle::joinFeasOpt方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。

另请参阅:

参数:

rngs

请参阅 IloCplex::feasOpt

rnglb

请参阅 IloCplex::feasOpt

rngub

请参阅 IloCplex::feasOpt

变量

请参阅 IloCplex::feasOpt

varlb

请参阅 IloCplex::feasOpt

varub

请参阅 IloCplex::feasOpt

异步

指示操作是同步还是异步的标志。

返回:

行动刚刚开始。

feasOpt

public 'IloCplex::FeasOptHandle'feasOpt(const 'IloRangeArray'rngs, const 'IloNumArray'rnglb, const 'IloNumArray'rngub, const 'IloNumVarArray'变量, const 'IloNumArray'varlb, const 'IloNumArray'varub, bool '异步' )

该方法是 "IloCplex::feasOpt的异步版本。 换句话说,该方法执行与 "IloCplex::feasOpt相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::FeasOptHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,您仍然必须通过 "FeasOptHandle::joinFeasOpt方法连接返回的句柄,以清理资源并防止内存泄漏。 同样,您仍然必须通过连接才能查询返回值。

另请参阅:

参数:

rngs

请参阅 IloCplex::feasOpt

rnglb

请参阅 IloCplex::feasOpt

rngub

请参阅 IloCplex::feasOpt

变量

请参阅 IloCplex::feasOpt

varlb

请参阅 IloCplex::feasOpt

varub

请参阅 IloCplex::feasOpt

异步

标志,用于指示操作是同步执行还是异步执行。

返回:

行动刚刚开始。

feasOpt

publicIloBool feasOpt(constIloConstraintArray cts, constIloNumArray prefs)

feasOpt方法计算活动模型中的最小松弛约束,以使模型可行。 成功完成后,该方法会安装一个最小成本松弛法可行的解决方案向量。 可以使用查询方法,如 "IloCplex::getValues或 "IloCplex::getInfeasibility,对该解决方案进行查询。

feasOpt方法提供了几种不同的指标来确定什么是最小松弛。 该指标由参数 "FeasOptMode指定。 feasOpt"方法还可以选择执行第二优化阶段,在此阶段对原始目标进行优化,但相关松弛度量不得超过第一阶段计算的松弛值。

用户可指定数值(称为偏好),以表达对放松约束的相对偏好。 偏好越大,就越愿意放松相应的限制。 在内部,"feasOpt使用偏好的倒数来加权第一阶段成本函数中相关界限的放宽。 如果偏好值为负或 0(零),则表示不得放松相应的约束条件。 如果为范围约束指定了偏好值,则该偏好值将同时用于其上限和下限。 The preference for relaxing constraint cts[i] should be provided in prefs[i].

cts数组不必包含模型中的所有约束条件。 只能指定直接添加到模型中的约束条件。 如果约束条件不存在,则不会放宽。

IloAnd可用于将约束分组,作为一个约束处理。 因此,根据不同的 "Inf松弛惩罚指标,一组中的所有约束条件都可以松弛,惩罚为一个单位。 同样,根据不同的 "Quad度量标准,放宽组的惩罚值是各成员放宽值之和的平方,而不是各成员放宽值之和的平方。

如果允许放宽的变量或约束条件足够多,函数将返回 "IloTrue;否则,返回 "IloFalse

这种方法不会改变活动模型。 如果 "feasOpt找到了一个可行的解决方案,它就会返回该解决方案以及相应的原始模型目标。

参数 "CutUp、"CutLo、"ObjULim、"ObjLLim不会影响此方法。 如果您想研究这些参数带来的不可行性,可以考虑在调用此方法之前,在模型中添加一个目标函数约束,以加强这些参数的作用。

另请参阅:


feasOpt

publicIloBool feasOpt(constIloRangeArray rngs, constIloNumArray rnglb, constIloNumArray rngub)

通过放宽 "rngs中指定的约束条件的边界,尝试找到活动模型的最小可行放宽。 首选项在输入的 "rnglb和 "rngub中指定。

参数 "CutUp、"CutLo、"ObjULim、"ObjLLim不会影响此方法。 如果您想研究这些参数带来的不可行性,可以考虑在调用此方法之前,在模型中添加一个目标函数约束,以加强这些参数的作用。

如果该方法找到了可行的松弛,则返回 "IloTrue


feasOpt

publicIloBool feasOpt(constIloNumVarArray vars, constIloNumArray varlb, constIloNumArray varub)
publicIloBool feasOpt(constIloIntVarArray vars, constIloNumArray varlb, constIloNumArray varub)

通过放宽 "vars中指定的变量的边界(如 "varlb和 "varub"中指定的变量),尝试找到活动模型的最小可行放宽。

参数 "CutUp、"CutLo、"ObjULim、"ObjLLim不会影响此方法。 如果您想研究这些参数带来的不可行性,可以考虑在调用此方法之前,在模型中添加一个目标函数约束,以加强这些参数的作用。

如果该方法找到了可行的松弛,则返回 "IloTrue


feasOpt

public 'IloBool'feasOpt(const 'IloRangeArray'rngs, const 'IloNumArray'rnglb, const 'IloNumArray'rngub, const 'IloNumVarArray'变量, const 'IloNumArray'varlb, const 'IloNumArray'varub)
public 'IloBool'feasOpt(const 'IloRangeArray'rngs, const 'IloNumArray'rnglb, const 'IloNumArray'rngub, const 'IloIntVarArray'变量, const 'IloNumArray'varlb, const 'IloNumArray'varub)

feasOpt方法计算活动模型范围和变量边界的最小松弛,以使模型可行。 成功完成后,该方法会安装一个最小成本松弛法可行的解决方案向量。 可以使用查询方法,如 "IloCplex::getValues或 "IloCplex::getInfeasibility,对该解决方案进行查询。

feasOpt方法提供了几种不同的指标来确定什么是最小松弛。 该指标由参数 "FeasOptMode指定。 feasOpt"方法还可以选择执行第二优化阶段,在此阶段对原始目标进行优化,但相关松弛度量不得超过第一阶段计算的松弛值。

用户可以指定数值(称为偏好值)来表达对放宽边界的相对偏好。 偏好越大,就越愿意放宽相应的限制。 在内部,"feasOpt使用偏好的倒数来加权第一阶段成本函数中相关界限的放宽。 作为首选项的负值或 0(零)表示不得放宽相应的约束。 应在 "rnglb[i]中提供放宽 "rngs[i]约束下限的偏好;同样,在 "rngub[i]中提供放宽 "rngs[i]"约束上限的偏好。 Similarly, the preference for relaxing the lower bound of variable vars[i] should be provided in varlb[i], and the preference for relaxing its upper bound in varub[i].

数组 "rngs和 "vars不必包含模型中的所有范围和变量。 如果不存在范围或变量,则不会放宽其边界。 只能指定直接添加到模型中的约束条件。

如果允许放宽的变量或约束条件足够多,函数将返回 "IloTrue;否则,返回 "IloFalse

这种方法不会改变活动模型。 如果 "feasOpt找到了一个可行的解决方案,它就会返回该解决方案以及相应的原始模型目标。

参数 "CutUp、"CutLo、"ObjULim、"ObjLLim不会影响此方法。 如果您想研究这些参数带来的不可行性,可以考虑在调用此方法之前,在模型中添加一个目标函数约束,以加强这些参数的作用。

另请参阅:


findLongAnnotation

publicIloCplex::LongAnnotation findLongAnnotation(IloInt num) const
Returns the annotation object for a long-valued annotation with number specified by num. 如果没有这样的注释,该方法会返回一个注释,方法 "isValid会返回 false。 在注释被删除时,注释的标识号将重新编号。

findLongAnnotation

publicIloCplex::LongAnnotation findLongAnnotation(const char *name) const
返回指定名称的 "long值注释的注释对象。 如果没有这样的注释,该方法会返回一个注释,方法 "isValid会返回 false。

findNumAnnotation

publicIloCplex::NumAnnotation findNumAnnotation(IloInt num) const
Returns the annotation object for an IloNum-valued annotation with number specified by num. 如果没有这样的注释,该方法会返回一个注释,方法 "isValid会返回 false。 在注释被删除时,注释的标识号将重新编号。

findNumAnnotation

publicIloCplex::NumAnnotation findNumAnnotation(const char *name) const
返回指定名称的 "IloNum值注释的注释对象。 如果没有这样的注释,该方法会返回一个注释,方法 "isValid会返回 false。

freePresolve

public voidfreePresolve()

这种方法释放了预先解决的问题。 在参数 "Reduce的默认设置下,当找到最优解时,预解问题将被释放;但是,如果 "Reduce设置为 1(主要还原)或 2(对偶还原),则不会释放预解问题。 在这种情况下,必要时可使用函数 "freePresolve手动释放。


getAborter

publicIloCplex::Aborter getAborter()

返回调用 "IloCplex对象正在使用的中止程序的句柄。

要让 CPLEX 使用中止器,您的应用程序必须明确创建一个 "IloCplex::Aborter类实例,并使用 "IloCplex::use(IloCplex::Aborter)方法设置该实例。 否则,当没有使用中止程序时,方法 "getAborter会返回一个空句柄。 下面的示例展示了如何测试当前是否正在使用中止器,即如何测试是否存在空句柄。

 
 ifcplex.getAborter().getImpl(
    std::cout << "There is an aborter installed." << std::endl;
 else
    std::cout << "未安装中止程序。" << std::endl;
 

另请参阅:


getAlgorithm

公共IloCplex::Algorithm getAlgorithm() 常量

此方法返回用于求解最新模型的算法类型(如果该模型不是 MIP)。


getAnnotation

public voidgetAnnotation(constIloCplex::NumAnnotation annotation, constIloConstraintArray ctr,IloNumArray&value) const
查询通过指定的数字注释分配给约束条件数组的数值。 value[i]是分配给约束条件 "ctr[i]的值。

getAnnotation

public voidgetAnnotation(constIloCplex::NumAnnotation annotation, constIloIntVarArray var,IloNumArray&value) const
查询通过指定的数字注释分配给整数变量数组的数值。 value[i]是分配给变量 "var[i]的值。

getAnnotation

public voidgetAnnotation(constIloCplex::NumAnnotation annotation, constIloNumVarArray var,IloNumArray&value) const
查询指定注释分配给数值变量数组的值。 value[i]是分配给变量 "var[i]的值。

getAnnotation

publicIloNum getAnnotation(constIloCplex::NumAnnotation annotation, constIloConstraint ctr) const
查询通过指定数字注释分配给约束 "ctr的注释值。

getAnnotation

publicIloNum getAnnotation(constIloCplex::NumAnnotation annotation, constIloObjective obj) const
查询通过指定数字注释分配给目标 "obj的注释值。

getAnnotation

publicIloNum getAnnotation(constIloCplex::NumAnnotation annotation, constIloIntVar var) const
查询指定数字注释分配给变量 "var的注释值。

getAnnotation

publicIloNum getAnnotation(constIloCplex::NumAnnotation annotation, constIloNumVar var) const
查询指定数字注释分配给变量 "var的注释值。

getAnnotation

public voidgetAnnotation(constIloCplex::LongAnnotation annotation, constIloConstraintArray ctr,IloArray< IloInt64> &value) const
查询通过指定注释分配给约束条件数组 "ctr的值。 value[i]是分配给约束条件 "ctr[i]的值。

getAnnotation

public voidgetAnnotation(constIloCplex::LongAnnotation annotation, constIloIntVarArray var,IloArray< IloInt64> &value) const
查询指定注解分配给变量数组的值。 value[i]是分配给变量 "var[i]的值。

getAnnotation

public voidgetAnnotation(constIloCplex::LongAnnotation annotation, constIloNumVarArray var,IloArray< IloInt64> &value) const
查询指定注解分配给变量数组的值。 value[i]是分配给变量 "var[i]的值。

getAnnotation

publicIloInt64 getAnnotation(constIloCplex::LongAnnotation annotation, constIloConstraint ctr) const
查询通过指定注释分配给约束 "ctr的注释值。

getAnnotation

publicIloInt64 getAnnotation(constIloCplex::LongAnnotation annotation, constIloObjective obj) const
查询通过指定注释分配给目标 "obj的注释值。

getAnnotation

publicIloInt64 getAnnotation(constIloCplex::LongAnnotation annotation, constIloIntVar var) const
查询指定注释分配给变量 "var的注释值。

getAnnotation

publicIloInt64 getAnnotation(constIloCplex::LongAnnotation annotation, constIloNumVar var) const
查询指定注释分配给变量 "var的注释值。

getAX

public voidgetAX(IloNumArray val, constIloRangeArray con) const

计算 A 乘以 X,其中 A 是相应的 LP 约束矩阵。

对于 "con中的约束条件,该方法会将表达式的值,或者说,将调用 "IloCplex对象的当前解的约束条件的活动水平放入数组 "val中。 数组 "val的大小与数组 "con相同,而 "val[i]将包含约束条件 "con[i]的松弛值。 con中的所有范围必须是提取模型的一部分。


getAX

publicIloNum getAX(constIloRange range) const

计算 A 乘以 X,其中 A 是相应的 LP 约束矩阵。

This method returns the value of the expression of the constraint range, or, equivalently, its activity level, for the current solution of the invoking IloCplex object. range必须是提取模型的一部分。


getBasisStatus

publicIloCplex::BasisStatus getBasisStatus(constIloConstraint con) const

此方法返回为约束条件 "con创建的隐式松弛变量或人工变量的基础状态。


getBasisStatus

publicIloCplex::BasisStatus getBasisStatus(constIloIntVar var) const

本方法返回变量 "var的基础状态。


getBasisStatus

publicIloCplex::BasisStatus getBasisStatus(constIloNumVar var) const

本方法返回变量 "var的基础状态。


getBasisStatuses

public voidgetBasisStatuses(IloCplex::BasisStatusArray cstat, constIloNumVarArray var,IloCplex::BasisStatusArray rstat, constIloConstraintArray con) const
public voidgetBasisStatuses(IloCplex::BasisStatusArray cstat, constIloIntVarArray var,IloCplex::BasisStatusArray rstat, constIloConstraintArray con) const

该方法将 "var中每个变量的基础状态放入数组 "cstat的相应元素中,并将 "con(范围或约束数组)中每行的状态放入数组 "rstat的相应元素中。 相应调整数组 "rstat和 "cstat的大小。


getBasisStatuses

public voidgetBasisStatuses(IloCplex::BasisStatusArray stat, constIloConstraintArray con) const

该方法将 "con中每个约束的基础状态放入数组 "stat的相应元素中。 相应调整数组 "stat的大小。


getBasisStatuses

public voidgetBasisStatuses(IloCplex::BasisStatusArray stat, constIloNumVarArray var) const
public voidgetBasisStatuses(IloCplex::BasisStatusArray stat, constIloIntVarArray var) const

该方法将 "var中每个变量的基础状态放入数组 "stat的相应元素中。 相应调整数组 "stat的大小。


getBestObjValue

publicIloNum getBestObjValue() const

这种方法可以获取分支切割树中所有剩余开放节点的当前已知最佳边界。

将为最小化问题将其计算为所有剩余未探索节点的最小目标函数值。 类似地,将为最大化问题将其计算为所有剩余未探索节点的最大目标函数值。

对于常规的 MIP 优化,该值也是 MIP 问题最优解值的已知最佳约束。 事实上,当一个问题已经得到最优解时,这个值就会与最优解值相匹配。

不过,对于 "populate方法,如果 CPLEX 已将模型求解至最优,但仍在继续搜索其他解,则该值也可能超过最优解值。


getBoundSA

public void 'getBoundSA( 'IloNumArray' '吹风机, 'IloNumArray'蹩脚, 'IloNumArray'紫茎花' , 'IloNumArray'上部, const 'IloNumVarArray'变量' ) const
public void 'getBoundSA( 'IloNumArray' '吹风机, 'IloNumArray'蹩脚, 'IloNumArray'紫茎花' , 'IloNumArray'上部, const 'IloIntVarArray'变量' ) const

对于给定的变量集 "vars,计算约束敏感度信息。 方法返回时,元素 "lblower[j]和 "lbupper[j]将包含变量 "vars[j]的下界在不影响最优解的情况下可以承担的最低和最高值。 同样,"ublower[j]和 "ubupper[j]将包含变量 "vars[j]在不影响最优解的情况下,其上限所能达到的最低和最高值。 The arrays lblower, lbupper, ublower, and ubupper will be resized to the size of array vars. 如果不需要这些信息,可以为任何返回数组传递 0(零)值。


getConflict

publicIloCplex::ConflictStatus getConflict(IloConstraint con) const

返回约束 "con的冲突状态。

可能的返回值是

IloCplex::ConflictMember已证明约束参与了冲突。

IloCplex::ConflictPossibleMember约束尚未证明参与冲突;换句话说,它可能参与,也可能不参与。

con约束必须是先前已传递给 "refineConflict和 "IloAnd约束的约束。


getConflict

publicIloCplex::ConflictStatusArray getConflict(IloConstraintArray cons) const

返回 "cons中指定的每个约束的冲突状态。

元素 "i是约束 "cons[i]的冲突状态,可以有以下值:

IloCplex::ConflictMember已证明约束参与了冲突。

IloCplex::ConflictPossibleMember约束尚未证明参与冲突;换句话说,它可能参与,也可能不参与。

cons中传递的约束条件必须与之前传递给 "refineConflict的约束条件相同,包括 "IloAnd约束条件。


getCplexStatus

publicIloCplex::CplexStatus getCplexStatus() const

此方法返回调用算法的 CPLEX 状态。 有关 CPLEX 的可能值,请参见枚举类型 "IloCplex::CplexStatus

另请参阅《CPLEX 用户手册》中的 "解读解质量"主题,了解与不可行或无约束相关状态的更多信息。


getCplexSubStatus

publicIloCplex::CplexStatus getCplexSubStatus() const

该方法用于访问上一次调用 "IloCplex::solve时出现错误终止时已解决的最后一个节点问题的解决状态。 如果正常终止,方法 "IloCplex::getCplexSubStatus会返回 "0。 如果调用的 "IloCplex对象是连续的,则相当于方法 "IloCplex::getCplexStatus返回的状态。


getCplexTime

公共IloNum getCplexTime() 常量

该方法返回一个时间戳。

要测量操作的起点和终点之间的经过时间(以秒为单位),可取起点的时间戳;取终点的时间戳;用终点的时间戳减去起点的时间戳。

根据参数 "ClockType的不同,该计算可测量挂钟时间(也称为实时时间)或 CPU 时间。

时间戳记的绝对值不具有意义。


getCutoff

公共IloNum getCutoff() 常量

该方法返回 MIP 优化过程中使用的 MIP 截止值。 在最小化问题中,如果连续松弛的最优解值大于当前截止值,那么所有节点都会被剪除。 截止日期随现任者更新。 如果调用的 "IloCplex对象是 LP 或 QP,则此方法会根据优化意义返回 "+IloInfinity或 "-IloInfinity


getDefault

publicIloBool getDefault(IloCplex::BoolParam parameter) const
public const char *getDefault(IloCplex::StringParam parameter) const
publicIloNum getDefault(IloCplex::NumParam parameter) const
public CPXLONGgetDefault(IloCplex::LongParam parameter) const
public CPXINTgetDefault(IloCplex::IntParam parameter) const

此方法返回指定 "parameter的默认设置。


getDefaultValue

publicIloNum getDefaultValue(constIloCplex::NumAnnotation annotation) const
查询指定注释的默认值。

getDefaultValue

publicIloInt64 getDefaultValue(constIloCplex::LongAnnotation annotation) const
查询指定注解的默认值。

getDeleteMode

publicIloCplex::DeleteMode getDeleteMode() const

本方法返回调用 "IloCplex对象的当前删除模式。


getDetTime

publicIloNum getDetTime() const

该方法以 ticks 为单位返回一个确定的时间戳。

要测量操作起点和终点之间以 ticks 为单位的确定性时间,可使用起点的确定性时间戳;使用终点的确定性时间戳;用终点的确定性时间戳减去起点的确定性时间戳。

确定性时间戳的绝对值没有意义。


getDirection

publicIloCplex::BranchDirection getDirection(IloNumVar var) const
publicIloCplex::BranchDirection getDirection(IloIntVar var) const

该方法返回之前用 "IloCplex::setDirection或 "IloCplex::setDirections方法分配给变量 "var的分支方向。 如果没有指定方向,将返回 "IloCplex::BranchGlobal


getDirections

public voidgetDirections(IloCplex::BranchDirectionArray dir, constIloNumVarArray var) const
public voidgetDirections(IloCplex::BranchDirectionArray dir, constIloIntVarArray var) const

该方法返回之前用 "setDirection或 "setDirections方法分配给 "var所列变量的分支方向。 函数返回时,"dir[i]将包含为变量 "var[i]指定的分支方向。 如果没有为 "var[i]指定分支方向,"dir[i]将设置为 "IloCplex::BranchGlobal


getDiverging

publicIloExtractable getDiverging() const

在初等单纯形算法确定问题不可行的情况下,该方法返回发散变量或约束条件。 返回的可提取对象是 "IloNumVar或 "IloConstraint对象,提取给调用 "IloCplex的优化器;如果分歧列对应的是变量,则是 "IloNumVar类型;如果分歧列对应的是约束条件的松弛变量,则是 "IloConstraint类型。


getDiversityFilterLowerCutoff

publicIloNum getDiversityFilterLowerCutoff(IloCplex::FilterIndexfilter) const

给定与解决方案池相关的多样性过滤器的索引,该方法返回该过滤器的下限值。


getDiversityFilterRefVals

public voidgetDiversityFilterRefVals(IloCplex::FilterIndexfilter,IloNumArray) const

访问多样性筛选器中声明的参考值,该筛选器由其在解决方案池中的索引指定。


getDiversityFilterUpperCutoff

publicIloNum getDiversityFilterUpperCutoff(IloCplex::FilterIndexfilter) const

给定与解决方案池相关的多样性过滤器的索引,该方法返回该过滤器的下限值。


getDiversityFilterWeights

public voidgetDiversityFilterWeights(IloCplex::FilterIndexfilter,IloNumArray) const

访问多样性筛选器中声明的权重,该权重由其在解决方案池中的索引指定。


getDual

publicIloNum getDual(constIloRange range) const

此方法返回调用算法的当前解中与约束条件 "range相关的对偶值。

这种方法返回的值不仅对线性程序(LP)有意义,对二阶锥形程序(SOCP)也有意义。 请参阅 "CPLEX 用户手册中的主题 "在 SOCP 中获取双重价值并降低成本,了解如何将此方法返回的值用于二阶锥形程序(SOCP)。


getDuals

public voidgetDuals(IloNumArray val, constIloRangeArray con) const

该方法将与数组 "con中的范围相关联的双重值放入数组 "val中。 数组 "val的大小与数组 "con相同,而 "val[i]将包含约束条件 "con[i]的双重值。

该方法返回的值不仅对线性程序有意义,对二阶锥形程序(SOCP)也有意义。 请参阅《CPLEX 用户手册》中的主题 "访问 SOCP 中的双重值和降低的成本",了解如何在二阶圆锥程序中使用此方法返回的值。


getFilterIndex

publicIloCplex::FilterIndex getFilterIndex(const char *lname_str) const

访问过滤器名称指定的过滤器索引。


getFilterType

publicIloCplex::FilterType getFilterType(IloCplex::FilterIndexfilter) const

给定与解决方案池关联的过滤器的索引,该方法返回该过滤器的类型。


getFilterVars

public voidgetFilterVars(IloCplex::FilterIndexfilter,IloNumVarArray) const

访问由索引指定的多样性筛选器的变量。


getIncumbentNode

publicIloInt getIncumbentNode() const

该方法返回找到当前任职者的节点编号。 如果调用的 "IloCplex对象是 LP 或 QP,则此方法返回 0(零)。


getIncumbentNode64

publicIloInt64 getIncumbentNode64() const

该方法返回找到当前任职者的节点编号。 如果调用的 "IloCplex对象是 LP 或 QP,则此方法返回 0(零)。


getInfeasibilities

publicIloNum getInfeasibilities(IloNumArray infeas, constIloIntVarArray var) const

该方法将数组 "var中当前解的整数变量的不可行性值放入数组 "infeas中。 如果变量边界满足要求,则不可行性值为 0(零)。 如果不可行值为负数,则表示必须改变变量下限的数量;如果不可行值为正数,则表示 必须改变变量上限的数量。 此方法不检查整数不可行性。 数组 "infeas会自动调整为与数组 "var相同的长度,"infeas[i]将包含变量 "var[i]的不可行性值。 该方法返回 "var中所有整数变量的最大绝对不可行值。


getInfeasibilities

publicIloNum getInfeasibilities(IloNumArray infeas, constIloNumVarArray var) const

该方法将数组 "var中数值变量的不可行性值放入数组 "infeas中。 如果变量边界满足要求,则不可行性值为 0(零)。 如果不可行值为负数,则表示必须改变变量下限的数量;如果不可行值为正数,则表示 必须改变变量上限的数量。 数组 "infeas会自动调整为与数组 "var相同的长度,"infeas[i]将包含变量 "var[i]的不可行性值。 该方法返回 "var中所有数值变量的最大绝对不可行值。


getInfeasibilities

publicIloNum getInfeasibilities(IloNumArray infeas, constIloConstraintArray con) const

该方法将当前解决方案中 "con数组指定的约束条件的不可行性值放入 "infeas数组中。 如果约束条件得到满足,则不可行性值为 0(零)。 更具体地说,对于一个具有有限下限和上限的范围,如果不可行值为负,则表示必须改变范围下限的数量;如果不可行值为正,则表示必须改变范围上限的数量。 对于 "IloOr、"IloAnd、"IloSOS1或 "IloSOS2等更一般的约束,返回的不可行性值是通过提取查询约束创建的所有范围约束和变量的最大绝对不可行性值。 数组 "infeas的大小与数组 "range相同,"infeas[i]将包含约束条件 "range[i]的不可行性值。 该方法返回 "con中所有约束条件的最大绝对不可行值。


getInfeasibility

publicIloNum getInfeasibility(constIloIntVar var) const

本方法返回当前解决方案中整数变量 "var的不可行性。 如果变量边界满足要求,则返回的不可行性值为 0(零)。 如果不可行值为负数,则表示必须改变变量下限的数量;如果不可行值为正数,则表示 必须改变变量上限的数量。 此方法不检查整数不可行性。


getInfeasibility

publicIloNum getInfeasibility(constIloNumVar var) const

本方法返回当前解决方案中数值变量 "var的不可行性。 如果变量边界满足要求,则返回的不可行性值为 0(零)。 如果不可行值为负数,则表示必须改变变量下限的数量;如果不可行值为正数,则表示 必须改变变量上限的数量。


getInfeasibility

publicIloNum getInfeasibility(constIloConstraint con) const

此方法返回约束条件 "code的当前解决方案的不可行性。 如果约束条件得到满足,则不可行性值为 0(零)。 更具体地说,对于一个具有有限下限和上限的范围,如果不可行值为负,则表示必须改变范围下限的数量;如果不可行值为正,则表示必须改变范围上限的数量。 对于 "IloOr、"IloAnd、"IloSOS1或 "IloSOS2等更一般的约束,返回的不可行性值是通过提取查询约束创建的所有范围约束和变量的最大绝对不可行性值。


getMax

public CPXINTgetMax(IloCplex::IntParam parameter) const
publicIloNum getMax(IloCplex::NumParam parameter) const
public CPXLONGgetMax(IloCplex::LongParam parameter) const

该方法返回参数 "parameter的最大允许值。


getMin

public CPXINTgetMin(IloCplex::IntParam parameter) const
publicIloNum getMin(IloCplex::NumParam parameter) const
public CPXLONGgetMin(IloCplex::LongParam parameter) const

该方法返回参数 "parameter的最小允许值。


getMIPRelativeGap

publicIloNum getMIPRelativeGap() const

这种方法可以获取 MIP 优化的相对目标差距。

对于最小化问题,该值的计算公式为

 (bestinteger - bestobjective) /1e-10+ |bestinteger|)
 

where bestinteger is the value returned by IloCplex::getObjValue and bestobjective is the value returned by IloCplex::getBestObjValue. 对于最大化问题,计算值的方法是

 (bestobjective - bestinteger) /1e-10+ |bestinteger|) 
 

getMIPStart

publicIloCplex::MIPStartEffort getMIPStart(IloInt mipstartindex, constIloNumVarArray vars,IloNumArray vals,IloBoolArray isset)

返回与 "mipstartindex标识的 MIP 开始相关的努力程度。 此外,如果 "vals是一个非空句柄,则会返回 "vars中所列变量的 MIPStart 值,如果变量在指定的 MIPstart 中没有相关的 MIPStart 值,则返回0.0。 如果 "isset是一个非零句柄,"isset[i]返回一个布尔值,表示是否在指定的 MIPstart 中为变量 "vars[i]提供了 MIPstart 值。


getMIPStartIndex

publicIloInt getMIPStartIndex(const char *lname_str) const

返回其名称指定的 MIP 起点的索引。


getMIPStartName

public const char *getMIPStartName(IloInt mipstartindex)

返回由索引标识的 MIP 起点名称。


getMultiObjInfo

publicIloNum getMultiObjInfo(IloCplex::MultiObjNumInfo what,IloInt subprob) const

该方法返回多目标优化子问题的浮点数值解信息。


getMultiObjInfo

publicIloInt64 getMultiObjInfo(IloCplex::MultiObjInt64Info what,IloInt subprob) const

此方法返回所请求的多目标优化子问题的 64 位整数值解决方案信息。


getMultiObjInfo

public 'IloInt'getMultiObjInfo( 'IloCplex::MultiObjIntInfo'什么, 'IloInt'子项) const

该方法返回多目标优化子问题的整数值求解信息。


getMultiObjNsolves

公共IloInt getMultiObjNsolves() 常量

该方法返回多目标问题最后一次优化过程中成功解决的子问题数量。


getName

public const char *getName(constIloCplex::NumAnnotation annotation) const
查询指定数字注释的名称。

getName

public const char *getName(constIloCplex::LongAnnotation annotation) const
查询指定注解的名称。

getNbarrierIterations

publicIloInt getNbarrierIterations() const

该方法返回从上次求解开始的障碍迭代次数。


getNbarrierIterations64

公共IloInt64 getNbarrierIterations64() 常量

该方法返回从上次求解开始的障碍迭代次数。


getNbinVars

publicIloInt getNbinVars() const

此方法返回调用对象 "IloCplex中活动模型的矩阵表示中二进制变量的个数。


getNcols

publicIloInt getNcols() const

该方法返回为调用算法提取的列数。 该函数返回的数量与提取的模型中 "IloNumVar类型及其子类对象的数量可能存在差异。 这是因为非线性约束和表达式的自动转换可能会引入新的变量。


getNcrossDExch

publicIloInt getNcrossDExch() const

如果在求解 LP 或 QP 时使用了带交叉的障碍,本方法返回最后一次调用方法 "solve或 "solveFixed时交叉中的双重交换操作数。


getNcrossDExch64

publicIloInt64 getNcrossDExch64() const

如果在求解 LP 或 QP 时使用了带交叉的障碍,本方法返回最后一次调用方法 "solve或 "solveFixed时交叉中的双重交换操作数。


getNcrossDPush

公共IloInt getNcrossDPush() 常量

此方法返回上次调用 "IloCplex::solve或 "IloCplex::solveFixed时,如果在求解 LP 或 QP 时使用了带交叉的屏障,则交叉中的双推操作次数。


getNcrossDPush64

公共IloInt64 getNcrossDPush64() 常量

此方法返回上次调用 "IloCplex::solve或 "IloCplex::solveFixed时,如果在求解 LP 或 QP 时使用了带交叉的屏障,则交叉中的双推操作次数。


getNcrossPExch

公共IloInt getNcrossPExch() 常量

如果在求解 QP 的 LP 时使用了带有交叉的障碍,则此方法返回上次调用方法 "IloCplex::solve或 "IloCplex::solveFixed的交叉中的基元交换操作数。


getNcrossPExch64

公共IloInt64 getNcrossPExch64() 常量

如果在求解 QP 的 LP 时使用了带有交叉的障碍,则此方法返回上次调用方法 "IloCplex::solve或 "IloCplex::solveFixed的交叉中的基元交换操作数。


getNcrossPPush

公共IloInt getNcrossPPush() 常量

如果在求解 LP 或 QP 时使用了带交叉的障碍,则此方法返回上次调用方法 "IloCplex::solve或 "IloCplex::solveFixed的交叉中的主推操作次数。


getNcrossPPush64

publicIloInt64 getNcrossPPush64() const

如果在求解 LP 或 QP 时使用了带交叉的障碍,则此方法返回上次调用方法 "IloCplex::solve或 "IloCplex::solveFixed的交叉中的主推操作次数。


getNcuts

publicIloInt getNcuts(IloCplex::CutType which) const

此方法返回上一次混合整数优化结束时使用的指定类型切分的数量。 如果调用的 "IloCplex对象不是 MIP,则返回 0。


getNdualSuperbasics

公共IloInt getNdualSuperbasics() 常量

本方法返回调用 "IloCplex对象的当前解中对偶超基本变量的个数。


getNfilters

publicIloInt getNfilters() const

返回当前与解决方案池关联的过滤器数量。


getNindicators

publicIloInt getNindicators() const

该方法返回为调用算法从活动模型中提取的指标约束的数量。


getNintVars

publicIloInt getNintVars() const

此方法返回调用 "IloCplex对象中活动模型的矩阵表示中整数变量的个数。


getNiterations

publicIloInt getNiterations() const

此方法返回调用算法中最后一次调用方法 "IloCplex::solve时的迭代次数。


getNiterations64

publicIloInt64 getNiterations64() const

此方法返回调用算法中最后一次调用方法 "IloCplex::solve时的迭代次数。


getNLCs

公共IloInt getNLCs() 常量

该方法返回使用方法 "IloCplex::addLazyConstraint和 "IloCplex::addLazyConstraints向调用对象 "IloCplex添加的懒约束的数量。


getNMIPStarts

公共 intgetNMIPStarts() 常量

返回与当前问题相关的 MIP 开始次数。


getNnodes

publicIloInt getNnodes() const

此方法返回当前解决方案中已处理的分支切割节点数。 如果调用的 "IloCplex对象不是 MIP,则返回 0。


getNnodes64

publicIloInt64 getNnodes64() const

此方法返回当前解决方案中已处理的分支切割节点数。 如果调用的 "IloCplex对象不是 MIP,则返回 0。


getNnodesLeft

publicIloInt getNnodesLeft() const

此方法返回当前解决方案中仍待处理的分支切割节点数。 如果调用的 "IloCplex对象不是 MIP,则返回 0。


getNnodesLeft64

publicIloInt64 getNnodesLeft64() const

此方法返回当前解决方案中仍待处理的分支切割节点数。 如果调用的 "IloCplex对象不是 MIP,则返回 0。


getNNZs

publicIloInt getNNZs() const

此方法返回从调用算法的约束矩阵 A 中提取的非零点数。


getNNZs64

publicIloInt64 getNNZs64() const

此方法返回从调用算法的约束矩阵 A 中提取的非零点数。


getNphaseOneIterations

publicIloInt getNphaseOneIterations() const

如果使用单纯形法求解连续模型,该方法将返回最后一次调用 "IloCplex::solve或 "IloCplex::solveFixed时第一阶段的迭代次数。


getNphaseOneIterations64

publicIloInt64 getNphaseOneIterations64() const

如果使用单纯形法求解连续模型,该方法将返回最后一次调用 "IloCplex::solve或 "IloCplex::solveFixed时第一阶段的迭代次数。


getNprimalSuperbasics

公共IloInt getNprimalSuperbasics() 常量

此方法返回调用 "IloCplex对象的当前解中原始超基本变量的个数。


getNQCs

公共IloInt getNQCs() 常量

该方法返回为调用算法从活动模型中提取的二次约束的数量。 这个数字可能与活动模型中的约束条件总数不同,因为线性约束条件不在此函数中考虑。

另请参阅:


getNrows

公共IloInt getNrows() 常量

该方法返回为调用算法提取的行数。 该函数返回的数量与提取的模型中 "IloRange"和 "IloConstraint"的数量可能存在差异。 这是因为 "getNrows方法没有考虑二次约束,而非线性约束和表达式的自动转换可能会引入新的约束。

另请参阅:


getNsemiContVars

公共IloInt getNsemiContVars() 常量

本方法返回调用对象 "IloCplex中活动模型矩阵表示中的半连续变量数。


getNsemiIntVars

publicIloInt getNsemiIntVars() const

此方法返回调用 "IloCplex对象中活动模型的矩阵表示中半整数变量的个数。


getNsiftingIterations

公共IloInt getNsiftingIterations() 常量

此方法返回用算法类型 "IloCplex::Sifting求解最后一个 LP 所执行的筛选迭代次数,或者,等价地,返回为其求解的工作 LP 的数量。


getNsiftingIterations64

公共IloInt64 getNsiftingIterations64() 常量

此方法返回用算法类型 "IloCplex::Sifting求解最后一个 LP 所执行的筛选迭代次数,或者,等价地,返回为其求解的工作 LP 的数量。


getNsiftingPhaseOneIterations

publicIloInt getNsiftingPhaseOneIterations() const

该方法返回用算法类型 "IloCplex::Sifting求解最后一个 LP 时,为实现基元可行性而进行的筛选迭代次数。


getNsiftingPhaseOneIterations64

publicIloInt64 getNsiftingPhaseOneIterations64() const

该方法返回用算法类型 "IloCplex::Sifting求解最后一个 LP 时,为实现基元可行性而进行的筛选迭代次数。


getNSOSs

公共IloInt getNSOSs() 常量

该方法返回为调用算法提取的 SOS 数量。 There may be differences in the number returned by this function and the number of numeric variables (that is, instances of the class IloNumVar, and so forth) in the model that is extracted because piecewise linear functions are extracted as a set of SOSs.


getNUCs

publicIloInt getNUCs() const

This method returns the number of user cuts added to the invoking IloCplex object with the methods IloCplex::addUserCut and IloCplex::addUserCuts.


getNumCores

公共 intgetNumCores() const

该方法返回当前运行 CPLEX 的平台上的逻辑内核数量。


getObjective

publicIloObjective getObjective() const

该方法返回已提取到调用实例 "IloCplex IloObjective实例。 如果没有提取目标,该方法将返回一个空句柄。

如果只需要目标值的当前值,例如在回调中使用,可以考虑使用这些方法之一:


getObjSA

public voidgetObjSA(IloNumArray lower,IloNumArray upper, constIloNumVarArray vars) const
public voidgetObjSA(IloNumArray lower,IloNumArray upper, constIloIntVarArray cols) const

该方法对数组 "vars中指定的变量进行客观灵敏度分析。 当该方法返回 "lower[i]和 "upper[i]时,将包含变量 "vars[i]的目标函数系数在不影响最优解的情况下所能达到的最小值和最大值。 lower和 "upper数组的大小将调整为 "vars数组的大小。 如果不需要任何信息,则可以为相应的数组参数传递 0(零)。


getObjValue

publicIloNum getObjValue(IloInt soln) const

该成员函数返回以 "soln为索引的解池成员的目标函数数值。 soln参数可以省略或赋值为-1,以便访问当前解决方案。


getParam

publicIloBool getParam(IloCplex::BoolParam parameter) const
public const char *getParam(IloCplex::StringParam parameter) const
publicIloNum getParam(IloCplex::NumParam parameter) const
public CPXLONGgetParam(IloCplex::LongParam parameter) const
public CPXINTgetParam(IloCplex::IntParam parameter) const

本方法返回调用算法中 "parameter的当前设置。

有关这些参数的更多信息,请参阅《CPLEX 参数参考手册》和《CPLEX 用户手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。


getParameterSet

publicIloCplex::ParameterSet ParameterSet getParameterSet()

返回一个参数集,显示已更改默认值的参数。

如果方法失败,就会抛出 "IloException或其派生类的异常。

返回:

参数集。

getPriorities

public void '获取优先级( 'IloNumArray' ', const 'IloNumVarArray'变异) const
public void '获取优先级( 'IloNumArray' ', const 'IloIntVarArray'变异) const

该方法返回先前用 "setPriority或 "setPriorities方法分配给 "var所列变量的查询分支优先级。 函数返回时,"pri[i]将包含为变量 "var[i]分配的优先级值。 如果没有为 "var[i]指定优先级,"pri[i]将包含 0(零)。


getPriority

publicIloNum getPriority(IloNumVar var) const
publicIloNum getPriority(IloIntVar var) const

该方法返回之前用 "setPriority或 "setPriorities方法分配给变量 "var的优先级。 如果没有分配优先级,则返回 0(零)。


getQCDSlack

public voidgetQCDSlack(constIloRange range,IloNumArray&vals,IloNumVarArray&vars) const

对于二次约束程序 (QCP),该方法以稀疏向量形式返回二次约束 "range的对偶松弛向量。

对偶松弛向量在 "vals和 "vars"中作为稀疏向量返回。 该方法将根据稀疏向量中非零元素的个数调整两个数组的大小。 方法返回时,"vals只保留非零值,"vals[i]是变量 "vars[i]在 "range的对偶松弛向量中的系数。

.

只有当求解的问题是二次约束程序 (QCP) 时,该方法返回的值才有效。

参数:

范围

要查询对偶松弛向量的二次约束条件。

瓶盖
存储对偶松弛向量非零系数的数组。
变量

存储与 "vals对应的变量的数组。


getQuality

public 'IloNum'获取质量( 'IloCplex::Quality'q, 'IloInt'解答, 'IloConstraint* 'rng, 'IloNumVar* '变异=0' ) const
public 'IloNum'获取质量( 'IloCplex::Quality'q, 'IloInt'解答, 'IloNumVar* '变异=0, 'IloConstraint* 'rng= '0) const

这些方法会返回所请求的解决方案池成员的质量度量值。 使用值为-1的 "soln参数,返回当前解决方案的质量度量值。

有些质量衡量标准与变量或制约因素有关。 例如,"IloCplex::MaxPrimalInfeas与出现最大不可行性(违反约束)的变量或约束相关。 如果还需要这些信息,可以将指向 "IloNumVar或 "IloConstraint实例的指针作为可选参数传递,指定相关变量或范围的写入位置。 但是,如果约束条件是隐式创建的(例如,由于自动线性化),这些参数将返回一个空句柄。


getQuality

public 'IloNum'获取质量( 'IloCplex::Quality'q, 'IloNumVar* '变异=0, 'IloConstraint* 'rng= '0) const
public 'IloNum'获取质量( 'IloCplex::Quality'q, 'IloConstraint* 'rng, 'IloNumVar* '变异=0) const

这些方法会返回所请求的质量测量值。

对于除 kappa 统计量之外的任何质量度量,CPLEX 问题对象中都必须有一个解决方案,尽管不一定是可行的或最优的解决方案。 您可以在没有解决方案的情况下查询 kappa 统计量,但必须满足以下条件:

否则(即如果这些条件不成立),CPLEX 会抛出异常,返回错误 "CPXERR_NO_KAPPASTATS,说明没有可用的 kappa 统计量。

有些质量衡量标准与变量或制约因素有关。 例如,"IloCplex::MaxPrimalInfeas与出现最大不可行性(违反约束)的变量或约束相关。 如果还需要这些信息,可以将指向 "IloNumVar或 "IloConstraint实例的指针作为可选参数传递,指定相关变量或范围的写入位置。 但是,如果约束条件是隐式创建的(例如,由于自动线性化),这些参数将返回一个空句柄。


getRangeFilterCoefs

public voidgetRangeFilterCoefs(IloCplex::FilterIndexfilter,IloNumArray) const

访问由索引指定的范围筛选器中声明的系数(即权重)。


getRangeFilterLowerBound

publicIloNum getRangeFilterLowerBound(IloCplex::FilterIndexfilter) const

给定与解决方案池关联的范围筛选器的索引,该方法返回该筛选器的下限。


getRangeFilterUpperBound

publicIloNum getRangeFilterUpperBound(IloCplex::FilterIndexfilter) const

给定与解决方案池关联的范围筛选器的索引,该方法返回该筛选器的上限。


getRangeSA

public void 'getRangeSA( 'IloNumArray' '吹风机, 'IloNumArray'蹩脚, 'IloNumArray'紫茎花' , 'IloNumArray'上部, const 'IloRangeArray'忽悠' ) const

该方法对数组 "con中传递的范围约束条件的上下限进行敏感性分析。 该方法返回时,"lblower[i]和 "lbupper[i]将分别包含约束条件 "con[i]的下限在不影响最优解的情况下所能达到的最低值和最高值。 同样,"ublower[i]和 "ubupper[i]将分别包含约束条件 "con[i]的上限在不影响最优解的情况下所能达到的最低值和最高值。 The arrays lblower, lbupper, ublower, and ubupper will be resized to the size of array con. 如果没有请求任何信息,则可通过 "0作为相应的数组参数。


getRay

public voidgetRay(IloNumArray vals,IloNumVarArray vars) const

此方法会返回一个无约束方向(也称为射线),该方向与已确定为无约束问题的 LP 的当前基础相对应。 CPLEX 将无约束方向的非零值放入数组 "vals,并将提取模型的相应变量放入数组 "vars

CPLEX 会修改这些数组,必要时还会调整它们的大小。 其中以前的任何值都将被覆盖。


getReducedCost

publicIloNum getReducedCost(constIloIntVar var) const

此方法返回调用算法中与 "var相关的已降低成本。

此方法返回的值被定义为指定变量上约束条件的对偶乘数。


getReducedCost

publicIloNum getReducedCost(constIloNumVar var) const

此方法返回调用算法中与 "var相关的已降低成本。

此方法返回的值被定义为指定变量上约束条件的对偶乘数。


getReducedCosts

public voidgetReducedCosts(IloNumArray val, constIloIntVarArray var) const

该方法将与数组 "var中的数字变量相关的减少的费用放入数组 "val中。 数组 "val会自动调整为与数组 "var相同的长度,"val[i]将包含变量 "var[i]的降低成本。

此方法返回的值定义为指定变量的界限约束的对偶乘数。


getReducedCosts

public voidgetReducedCosts(IloNumArray val, constIloNumVarArray var) const

该方法将与数组 "var中变量相关的减少的费用放入数组 "val中。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的降低成本。

此方法返回的值定义为指定变量的界限约束的对偶乘数。


getRemoteInfoHandler

publicIloCplex::RemoteInfoHandler*getRemoteInfoHandler() const

该方法访问处理远程 Worker 信息消息的对象。

另请参阅:

返回:

远程工作人员信息消息的处理程序,如果没有安装此类处理程序,则为 0(零)。

getRHSSA

public voidgetRHSSA(IloNumArray lower,IloNumArray upper, constIloRangeArray cons) const

该方法对数组 "cons中指定的约束条件进行右侧敏感性分析。 约束条件的形式必须是 "cons[i]":"expr[i] rel rhs[i]"。 When this method returns lower[i] and upper[i] will contain the lowest and highest value rhs[i] can assume without affecting the optimality of the solution. lower和 "upper数组的大小将调整为 "cons数组的大小。 如果不需要任何信息,则可以为相应的数组参数传递 0(零)。


getSlack

public 'IloNum'getSlack(const 'IloRange'范围, 'IloInt'解答=任职者编号) const

此方法返回调用算法的解决方案中与约束条件 "range相关的松弛值。 对于具有有限下限和上限的范围,松弛值包括范围表达式与其下限之间的差值。 如果省略了参数 "soln或参数值为-1,则使用当前解决方案;否则,将使用以 "soln为索引的解决方案池成员。


getSlacks

public void 'getSlacks( 'IloNumArray'缬氨酸, const 'IloRangeArray'忽悠, 'IloInt'解答=任职者编号) const

该方法将与数组 "con指定的约束相关的松弛值放入数组 "val中。

对于具有有限下限和上限的范围约束,松弛值由范围内表达式与其下限之间的差值构成。 如果省略了参数 "soln或参数值为-1,则使用当前解决方案;否则,将使用以 "soln为索引的解决方案池成员。 数组 "val的大小与数组 "con相同,而 "val[i]将包含约束条件 "con[i]的松弛值。


getSolnPoolMeanObjValue

publicIloNum getSolnPoolMeanObjValue() const

计算当前解决方案池中解决方案目标值的平均值。


getSolnPoolNreplaced

publicIloInt getSolnPoolNreplaced() const

访问根据解决方案池替换策略已被替换的解决方案的数量。


getSolnPoolNsolns

publicIloInt getSolnPoolNsolns() const

访问当前解决方案池中解决方案的数量。


getStatus

公共IloAlgorithm::Status getStatus() 常量

此方法返回调用算法的状态。

有关其 CPLEX 状态,请参见方法 "IloCplex::getCplexStatus

另请参阅《CPLEX 用户手册》中的 "解读解质量"主题,了解与不可行或无约束相关状态的更多信息。


getSubAlgorithm

公共IloCplex::Algorithm getSubAlgorithm() 常量

如果在混合整数优化过程中出现错误而终止,该方法会返回用于求解 MIP 最近节点的算法类型。


getValue

publicIloNum getValue(constIloObjective ob,IloInt soln) const

该方法使用以 "soln为索引的解池成员返回目标值。 soln参数可以省略或赋值为-1,以便访问当前解决方案。


getValue

publicIloNum getValue(constIloNumExprArg expr,IloInt soln) const

该方法使用以 "soln为索引的解决方案池成员返回表达式的值。 soln参数可以省略或赋值为-1,以便访问当前解决方案。


getValue

publicIloNum getValue(constIloIntVar var,IloInt soln) const

该方法从 "soln索引的解决方案池成员中返回 "var指定的整数变量的值。 soln参数可以省略或赋值为-1,以便访问当前解决方案。

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


getValue

publicIloNum getValue(constIloNumVar var,IloInt soln) const

该方法从 "soln索引的解决方案池成员中返回 "var指定的数值变量的值。 soln参数可以省略或赋值为-1,以便访问当前解决方案。


getValues

public voidgetValues(constIloIntVarArray var,IloNumArray val,IloInt soln) const

该方法将数组 "var指定的整数变量的值从以 "soln为索引的解决方案池成员中放入数组 "val中。 soln参数可以省略或赋值为-1(负 1),以便获取当前解法。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。

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


getValues

public voidgetValues(IloNumArray val, constIloIntVarArray var,IloInt soln) const

该方法将数组 "var指定的数值变量的 "soln索引的解决方案池成员值放入数组 "val中。 soln参数可以省略或赋值为-1,以便访问当前解决方案。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。


getValues

public voidgetValues(constIloNumVarArray var,IloNumArray val,IloInt soln) const

该方法将数组 "var指定的整数变量的值从以 "soln为索引的解决方案池成员中放入数组 "val中。 soln参数可以省略或赋值为-1,以便访问当前解决方案。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。


getValues

public voidgetValues(IloNumArray val, constIloNumVarArray var,IloInt soln) const

该方法将数组 "var指定的数值变量的 "soln索引的解决方案池成员值放入数组 "val中。 soln参数可以省略或赋值为-1,以便访问当前解决方案。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。


getValues

public voidgetValues(constIloIntVarArray var,IloNumArray val) const

该方法将数组 "var中指定的整数变量的解值放入数组 "val中。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。

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


getValues

public voidgetValues(IloNumArray val, constIloIntVarArray var) const

该方法将数组 "var中指定的整数变量的解值放入数组 "val中。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。

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


getValues

public voidgetValues(constIloNumVarArray var,IloNumArray val) const

该方法将数组 "var中指定的数值变量的解值放入数组 "val中。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。


getValues

public voidgetValues(IloNumArray val, constIloNumVarArray var) const

该方法将数组 "var中指定的数值变量的解值放入数组 "val中。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。


getVersion

public const char *getVersion() const

该方法返回一个字符串,指明 "IloCplex的版本。


getVersionNumber

public intgetVersionNumber() const

此方法以 vvrrmmff 格式返回 "IloCplex的整数版本,其中 vv 是版本号,rr 是发布时间,mm 是修改时间,ff 是固定包号。 例如,对于 CPLEX12.5.0.1 版,返回值为 12050001


hasLongAnnotation

publicIloBool hasLongAnnotation(const char *name) const
查询 "IloCplex对象中是否有指定名称的 "long值注解。

hasNumAnnotation

publicIloBool hasNumAnnotation(const char *name) const
查询 "IloCplex对象中是否有指定名称的 "IloNum值注解。

hasVMConfig

public boolhasVMConfig() const

测试此实例是否已加载虚拟机配置 (VMC)。

返回:

如果该实例已加载虚拟机配置,则为true,否则为 "false


importModel

public voidimportModel(IloModel&m, const char *filename) const

该方法从 "filename指定的文件中读取一个模型到 "model中。 通常情况下,进入此方法时,"model是一个未提取的空模型。 调用此方法时,调用的 "IloCplex对象不会受到影响,除非 "model是其提取的模型;在调用此方法后,再调用 "IloCplex::extract,以便将导入的模型提取到调用的 "IloCplex对象中。

该方法读取文件时,会根据输入文件的要求创建新的建模对象,并将其添加到作为参数传递的 "model中已有的建模对象中。 请注意,"model中之前的建模对象不会被移除;如果需要移除,请在调用 "importModel之前明确调用 "IloModel::remove

新创建的建模对象属于模型的环境,不属于模型本身。 因此,模型结束时,它们也不会结束。 相反,它们会留在环境中。


importModel

public void '导入模型( 'IloModel& 'm, const char * '文件名, 'IloObjective& '对象, 'IloNumVarArray'变量, 'IloRangeArray'rngs' , 'IloRangeArray'偷懒=0, 'IloRangeArray'切割= '0) const

该方法是对 "importModel方法的简化。 该方法不提供返回特殊有序集合 (SOS) 的数组。 在已经知道不会出现 SOS 的连续模型中,可以使用这种更简单的方法。


importModel

public void '导入模型( 'IloModel' & '模型, const char * '文件名, 'IloObjective& '对象, 'IloNumVarArray'变量, 'IloRangeArray'rngs' , 'IloSOS1Array'sos1, 'IloSOS2Array'sos2, 'IloRangeArray'偷懒=0, 'IloRangeArray'切割' = '0) const

该方法是对 "importModel方法的简化。 它不为一般约束条件(如 "IloIfThen约束条件)提供数组。 只有在知道不存在此类限制的模型中才使用这种方法。 如果存在蕴涵指示约束(在 LP 文件格式中以符号 "->表示),CPLEX 会创建一个没有 "IloIfThen约束的数学等价问题。


importModel

public voidimportModel(IloModel&model, const char *filename,IloObjective&obj,IloNumVarArray vars,IloRangeArray rngs,IloSOS1Array sos1,IloSOS2Array sos2,IloConstraintArray cons,IloRangeArray lazy,IloRangeArray cuts) const

该方法从 "filename指定的文件中读取一个模型到 "model中。 通常情况下,进入此方法时 "model是一个未提取的空模型。 调用此方法时,调用的 "IloCplex对象不会受到影响,除非 "model是其提取的模型;在调用此方法后,再调用 "IloCplex::extract,以便将导入的模型提取到调用的 "IloCplex对象中。

该方法读取文件时,会根据输入文件的要求创建新的建模对象,并将其添加到作为参数传递的 "model中已有的建模对象中。 请注意,"model中之前的建模对象不会被移除;如果需要移除,请在调用 "importModel之前明确调用 "IloModel::remove

新创建的建模对象属于模型的环境,不属于模型本身。 因此,模型结束时,它们也不会结束。 相反,它们会留在环境中。

该方法从文件中读取模型时,将读取到的目标放在 "obj中,读取到的变量放在数组 "vars中,读取到的范围放在数组 "rngs中,读取到的特殊有序集合(SOS)放在数组 "sos1和 "sos2中,读取到的其他一般约束条件放在数组 "cons中。 这些 "一般约束 "是 "IloIfThen约束,是为模型文件中的蕴涵指示约束(在 LP 文件格式中用符号 "->表示)创建的。

CPLEX 会为您调整这些数组的大小,以容纳返回的对象。

本说明仅供高级用户使用。 两个数组 "lazy和 "cuts中填充的是 "filename文件中可能已添加到模型中的懒约束和用户剪切。

文件格式由文件名的扩展名决定。 可识别以下扩展名:


isDualFeasible

publicIloBool isDualFeasible() const

如果调用的 "IloCplex对象中记录了二元可行解,并且可以查询,则此方法返回 "IloTrue


isMIP

publicIloBool isMIP() const

如果调用算法提取的模型是 MIP(混合整数编程问题),则此方法返回 "IloTrue,否则返回 "IloFalse。 只有在模型不是 MIP 的情况下,用于访问对偶和降低成本基础的成员函数才起作用。


isPrimalFeasible

publicIloBool isPrimalFeasible() const

如果调用的 "IloCplex对象中记录了原始可行解,并且可以查询,则此方法返回 "IloTrue


isQC

publicIloBool isQC() const

如果调用算法提取了二次约束模型,则此方法返回 "IloTrue。 否则,返回 "IloFalse。 有关二次约束的解释,请参阅《CPLEX 用户手册》中的 QCP 主题。


isQO

publicIloBool isQO() const

如果调用算法提取的模型具有二次目标函数项,则此方法返回 "IloTrue。 否则,返回 "IloFalse


LimitSearch

public staticIloCplex::Goal LimitSearch(IloCplex cplex, IloCplexIloCplex::Goal goal, IloCplexIloCplex::SearchLimit limit)

该方法创建并返回一个目标,将 "goal指定的搜索置于 "limit定义的限制之下。 只有受 "goal控制的子树才会受到 "limit的限制。


newLongAnnotation

public 'IloCplex::LongAnnotation'新长注释(const char * '名字, 'IloInt64'失效=-1)
Creates a new annotation of type long for the specified name and assigns the specified default value defval to all modeling objects in the current IloCplex object.

newNumAnnotation

public 'IloCplex::NumAnnotation'新编号注释(const char * '名字, 'IloNum'失效=0.0)
为指定名称创建 "IloNum类型的新注解,并为当前 "IloCplex对象中的所有建模对象指定默认值。

numLongAnnotations

publicIloInt numLongAnnotations() const
查询 "long类型注释的数量

numNumAnnotations

publicIloInt numNumAnnotations() const
查询 "IloNum类型注释的数量。

填充

publicIloCplex::PopulateHandle populate(boolasync)

该方法是 "IloCplex::populate的异步版本。 换句话说,该方法执行与 "IloCplex::populate相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::PopulateHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用此方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "PopulateHandle::joinPopulate方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。

另请参阅:

参数:

异步
指示操作是同步还是异步的标志。

返回:

行动刚刚开始。

填充

publicIloBool populate()

populate方法可生成混合整数编程(MIP)模型的多个解决方案。 换句话说,它会填充调用 "IloCplex对象当前提取的模型的解决方案池。 与 "solve方法一样,如果找到一个解(不一定是最优解),该方法会返回 "IloTrue

填充解决方案池的算法分为两个阶段:

在第一阶段,它将模型求解到最优(或用户设定的某个停止标准),同时为第二阶段建立分支和切割树。

在第二个阶段中,通过使用第一个阶段中计算和存储的信息并继续探索树生成多个解法。

第一阶段的制备量和第二阶段的探索强度由溶液池强度参数 "SolnPoolIntensity控制。

最优性并不是 "populate方法的终止标准。 即使最优性差距为零,该方法仍会尝试寻找其他解决方案。 populate终止标准如下:

对 "populate的连续调用会创建存储在解决方案池中的解决方案。 不过,每次调用 "populate只适用于当前调用中创建的解决方案子集;调用不会影响池中已有的解决方案。 换言之,池中解法不持久存储。

用户可以在对模型进行任何 MIP 优化时单独调用该例程。 在这种情况下,它将自行执行第一和第二阶段的工作。

用户也可以在标准 MIP 优化后调用 "populate。 在一般情况下,用户读取模型,调用 MIP 优化,然后调用 "populate。 MIP 优化活动是 populate 算法的第一阶段;然后,"populate重新使用 MIP 优化计算和存储的信息,因此只执行第二阶段。

populate方法不会尝试为无约束 MIP 模型生成多个解。 一旦获得无界性证明,"populate就会停止。


预求解

publicIloCplex::PresolveHandle presolveIloCplex::Algorithm alg, boolasync)

该方法是 "IloCplex::presolve的异步版本。 换句话说,该方法执行与 "IloCplex::presolve相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::PresolveHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "PresolveHandle::joinPresolve方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。

另请参阅:

参数:

算法

请参阅 IloCplex::presolve

异步
指示操作是同步还是异步的标志。

返回:

行动刚刚开始。

预求解

public voidpresolveIloCplex::Algorithm alg alg)

该方法对模型执行预分解。 枚举 "alg告诉 Presolve 在简化模型中使用哪种算法;"NoAlg应指定用于 MIP 模型。


protectVariables

public voidprotectVariables(constIloIntVarArray var)

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

该方法指定了一组不应被替换出问题的整数变量。 如果预求解可将某个变量修订为值,那么将除去该变量,即使在受保护列表中指定了该变量也是如此。


protectVariables

public voidprotectVariables(constIloNumVarArray var)

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

该方法指定了一组不应被替换出问题的数字变量。 如果预求解可将某个变量修订为值,那么将除去该变量,即使在受保护列表中指定了该变量也是如此。


qpIndefCertificate

public voidqpIndefCertificate(IloNumVarArray var,IloNumArray x)
public voidqpIndefCertificate(IloIntVarArray var,IloNumArray x)

QP 模型中的二次目标项必须组成一个正半有限 Q 矩阵(最大化时为负半有限)。 如果 IloCplex发现情况并非如此,就会停止优化。 In such cases, the qpIndefCertificate method can be used to compute assignments (returned in array x) to all variables (returned in array var) such that the quadratic term of the objective function evaluates to a negative value (x'Q x < 0 in matrix terms) to prove the indefiniteness.

CPLEX 会为您调整这些阵列的大小。

readAnnotations

public voidreadAnnotations(const char *name)
从指定名称的文件中读取注释,并将其安装到 "IloCplex对象中。 注释应用程序接口的 INLINE 实现

readBasis

public voidreadBasis(const char *name) const

从 "name指定的 BAS 文件中读取一个单纯形基础,并将该基础复制到调用的 "IloCplex对象中。 必须将参数 "AdvInd设置为非零值(例如默认值),才能使用单纯形基础开始后续的单纯形算法优化。

按照惯例,文件扩展名为 ".bas。 BAS 文件格式在CPLEX 文件格式参考手册中有详细说明。


readFilters

publicIloCplex::FilterIndexArray readFilters(const char *name)

从 FLT 格式文件中读取解决方案池筛选器,并将筛选器复制到 "IloCplex实例中。 该格式已在CPLEX 文件格式参考手册中记录。


readMIPStarts

public voidreadMIPStarts(const char *name) const

该方法读取 "name表示的 MST 文件,并将 MIP 开始信息复制到调用的 "IloCplex对象中。 必须打开参数 "AdvInd(默认值:1(一)),才能将 MIP 起始信息用于后续 MIP 优化。

按照惯例,文件扩展名为 ".mst。 MST 文件格式在CPLEX 文件格式参考手册以及产品 "include目录下的样式表 "solution.xsl和模式 "solution.xsd中均有说明。 产品随附的示例和CPLEX 用户手册中都有使用示例。


readOrder

public voidreadOrder(const char *filename) const

该方法将优先级顺序从 ORD 格式文件读入调用的 "IloCplex对象。 ORD 文件中的名称必须与活动模型中的名称一致。 优先顺序将与模型相关联。 The parameter MipOrdInd must be nonzero for the next invocation of the method IloCplex::solve to take the order into account.

按照惯例,文件扩展名为 ".ord。 ORD 文件格式在CPLEX 文件格式参考手册中有详细说明。


readParam

public voidreadParam(const char *name) const

从 "name指定的文件中读取参数及其设置,并将其应用于调用的 "IloCplex对象。 参数文件中未列出的参数将重置为默认设置。

按照惯例,文件扩展名为 ".prm。 PRM 文件格式在参考手册 "CPLEX 文件格式中有详细说明。


readSolution

public voidreadSolution(const char *name) const

不推荐使用。 使用 "readStartInfo代替。

从 "name表示的 SOL 文件中读取解决方案,并将该信息复制到 CPLEX 问题对象中,作为起始信息。

这些信息可用于障碍优化中的交叉、使用高级基础重启单纯形法或为 MIP 启动指定变量值。

CPLEX 参数 "AdvInd必须设置为非零值(如默认设置:1(一)),以便下一次调用方法 "solve时使用从解决方案文件读取的信息。

按照惯例,文件扩展名为 ".sol。 SOL 文件格式在CPLEX 文件格式参考手册以及产品 "include目录下的样式表 "solution.xsl和模式 "solution.xsd中均有说明。 产品随附的示例和CPLEX 用户手册中都有使用示例。


readStartInfo

public voidreadStartInfo(const char *name) const

从 "name表示的 SOL 文件中读取起始信息,并将这些信息复制到 CPLEX 问题对象中。

这些信息可用于障碍优化中的交叉、使用高级基础重启单纯形法或为 MIP 启动指定变量值。

CPLEX 参数 "AdvInd必须设置为非零值(如默认设置:1(一)),以便下一次调用方法 "solve时使用从解决方案文件读取的信息。

按照惯例,文件扩展名为 ".sol。 SOL 文件格式在CPLEX 文件格式参考手册以及产品 "include目录下的样式表 "solution.xsl和模式 "solution.xsd中均有说明。 产品随附的示例和CPLEX 用户手册中都有使用示例。


readVMConfig

public voidreadVMConfig(Tfile)

从文件中读取虚拟机配置。

该函数读取 "file中的虚拟机配置(必须是 VMC 文件格式)。 如果 "file能被成功解析,那么配置就会被安装到 "IloCplex实例中。 如果出错,先前安装的虚拟机配置将保持不变。

如果虚拟机配置已安装到 "IloCplex实例中,且提取的模型是 MIP,那么该实例的 "solve方法就会使用并行分布式 MIP 来解决问题。

该函数以模板形式实现,因此除非实际使用该函数,否则不会创建对 CPLEX 分布式并行 MIP API 的引用。 其参数类型必须可转换为 "char const *

另请参阅:

参数:

文件
包含虚拟机配置的文件名。

refineConflict

publicIloCplex::RefineConflictHandle refineConflict(IloConstraintArray cons,IloNumArray prefs, boolasync)

该方法是 "IloCplex::refineConflict的异步版本。 换句话说,该方法执行与 "IloCplex::refineConflict相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::RefineConflictHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "RefineConflictHandle::joinRefineConflict方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。

另请参阅:

参数:

坏处
预置
异步
指示操作是同步还是异步的标志。

返回:

行动刚刚开始。

refineConflict

publicIloBool refineConflict(IloConstraintArray cons,IloNumArray prefs)

refineConflict方法可确定当前模型不可行性或当前模型约束条件子集的最小冲突。 由于冲突很小,因此消除其中任何一个限制条件都会消除造成不可行性的特定原因。 模型中可能还有其他冲突;因此,修复某个冲突并不能保证其余模型的可行性。

本方法通过参数 "cons传递要查找冲突的约束条件。 只能指定直接添加到模型中的约束条件。

约束条件也可以按 "IloAnd分组。 如果一个小组中的任何制约因素参与了冲突,那么整个小组都会被认定参与了冲突。 不会返回该组内限制条件的更多细节。

可优先考虑组别或制约因素。 偏好较高的群体或制约因素更有可能被纳入冲突。 但是,在返回最小冲突时,并不能保证不存在其他包含具有更高优先级的组或约束条件的冲突。

要检查变量的边界是否会导致冲突,请使用类 "IloBound的实例来指定相关变量的上下限。 在您传递给 "refineConflict的参数中使用这些约束条件。

当该方法返回时,可以使用 "getConflict方法查询冲突。 方法 "writeConflict可以写入包含冲突的 LP 格式文件。

参数 "CutUp、"CutLo、"ObjULim、"ObjLLim不会影响此方法。 如果您想研究这些参数带来的不可行性,可以考虑在调用此方法之前,在模型中添加一个目标函数约束,以加强这些参数的作用。

参数:

坏处

用于查找冲突的约束条件数组。 约束条件可以是活动模型中的任何约束条件,也可以是由 "IloAnd组织的一组约束条件。 如果该数组中没有限制条件,则该限制条件的优先级为 0(零)。 因此,这些制约因素未经任何分析就被纳入冲突之中。 只能指定直接添加到模型中的约束条件。

预置

一个数组,包含组或约束条件的首选项。 prefs[i]表示优先选择组或约束条件 "cons[i]。 负值表示在计算冲突时不考虑相应的组或约束条件。 换句话说,这些群体不被视为模型的一部分。 偏好值为 0(零)的群体总是被视为冲突的一部分。 对这些组不进行进一步检查。

返回:

报告是否发现冲突的布尔值。

refineMIPStartConflict

publicIloCplex::RefineMIPStartConflictHandle refineMIPStartConflict(IloInt mipstartindex,IloConstraintArray cons,IloNumArray prefs, boolasync)

该方法是 "IloCplex::refineMIPStartConflict的异步版本。 换句话说,该方法执行与 "IloCplex::refineMIPStartConflict相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::RefineMIPStartConflictHandle实例,表示已开始的操作。

要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "IloCplex::RefineMIPStartConflictHandle::joinRefineConflict方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。

另请参阅:

参数:

mipstartindex

在与该问题相关的 MIP 起点中,该 MIP 起点的索引。

坏处
预置
异步
指示操作是同步还是异步的标志。

返回:

行动刚刚开始。

refineMIPStartConflict

public 'IloBool'refineMIPStartConflict( 'IloInt'mipstartindex, 'IloConstraintArray'坏处, 'IloNumArray'预置)

该方法接受一个由索引指定的 MIP 起点,并为该 MIP 起点的不可行性或由该 MIP 起点推断出的模型中的约束子集确定最小冲突。

参数 "CutUp、"CutLo、"ObjULim、"ObjLLim不会影响此方法。 如果您想研究这些参数带来的不可行性,可以考虑在调用此方法之前,在模型中添加一个目标函数作为约束条件,以加强这些参数的影响。

当 MIP 起点被添加到当前模型时,可能会与之关联一个努力等级,以便向 CPLEX 说明将 MIP 起点转化为可行解所需的努力程度。 此方法尊重努力等级 "除开等级 1(一级):检查可行性。 它不检查可行性。 相反,CPLEX 将努力等级提高到 2,以求解固定模型。

当该方法返回时,您可以使用 "IloCplex::getConflict方法查询冲突,并使用 "IloCplex::writeConflict方法将冲突以 LP 格式写入文件。

参数:

mipstartindex

在与该问题相关的 MIP 起点中,该 MIP 起点的索引。

坏处

用于查找冲突的约束条件数组。 约束条件可以是 MIP 开始时的任何约束条件,也可以是由 "IloAnd组织的一组约束条件。 如果该数组中没有限制条件,则该限制条件的优先级为 0(零)。 因此,这些制约因素未经任何分析就被纳入冲突之中。 只能指定直接添加到模型中的约束条件。

预置

一个数组,包含组或约束条件的首选项。 prefs[i]表示优先选择组或约束条件 "cons[i]。 负值表示在计算冲突时不考虑相应的组或约束条件。 换句话说,这些群体不被视为模型的一部分。 偏好值为 0(零)的群体总是被视为冲突的一部分。 对这些组不进行进一步检查。


移除

public voidremoveIloCplex::Callback cb)

该方法指示调用 "IloCplex对象停止使用 "cb作为回调。


移除

public voidremoveIloCplex::Aborter abort)

This method removes the aborter object abort from the invoking IloCplex object.


removeRemoteInfoHandler

publicIloCplex::RemoteInfoHandler*removeRemoteInfoHandler()

此方法会删除任何远程 Worker 信息处理程序。

另请参阅:

返回:

调用本方法前安装的处理程序,如果没有安装处理程序,则为 0(零)。

setAnnotation

public voidsetAnnotation(constIloCplex::NumAnnotation annotation, constIloConstraintArray ctr, constIloNumArray value)
将 "value[i]指定为指定数字注释的约束条件 "ctr[i]的数字注释值。

setAnnotation

public voidsetAnnotation(constIloCplex::NumAnnotation annotation, constIloIntVarArray var, constIloNumArray value)
将 "value[i]指定为指定数字注释的整数变量 "var[i]的数字注释值。

setAnnotation

public voidsetAnnotation(constIloCplex::NumAnnotation annotation, constIloNumVarArray var, constIloNumArray value)
将 "value[i]指定为指定数字注释的数字变量 "var[i]的数字注释值。

setAnnotation

public voidsetAnnotation(constIloCplex::NumAnnotation annotation, constIloConstraint ctr,IloNum value)
将 "value指定为指定数字注释的约束条件 "ctr的数字注释值。

setAnnotation

public voidsetAnnotation(constIloCplex::NumAnnotation annotation, constIloObjective obj,IloNum value)
Assigns value as the value of the numeric annotation of the objective obj for the specified numeric annotation.

setAnnotation

public voidsetAnnotation(constIloCplex::NumAnnotation annotation, constIloIntVar var,IloNum value)
将 "value指定为指定数字注释的整数变量 "var的数字注释值。

setAnnotation

public voidsetAnnotation(constIloCplex::NumAnnotation annotation, constIloNumVar var,IloNum value)
将 "value指定为指定数字注释的数字变量 "var的数字注释值。

setAnnotation

public voidsetAnnotation(constIloCplex::LongAnnotation annotation, constIloConstraintArray ctr, constIloArray< IloInt64>value)
将数组 "value中的值指定为数组 "ctr中指定注释的相应约束的注释值。

setAnnotation

public voidsetAnnotation(constIloCplex::LongAnnotation annotation, constIloIntVarArray var, constIloArray< IloInt64>value)
将数组 "value中的值指定为数组 "var中指定注释的相应变量的注释值。

setAnnotation

public voidsetAnnotation(constIloCplex::LongAnnotation annotation, constIloNumVarArray var, constIloArray< IloInt64>value)
将数组 "value中的值指定为数组 "var中指定注释的相应变量的注释值。

setAnnotation

public voidsetAnnotation(constIloCplex::LongAnnotation annotation, constIloConstraint ctr,IloInt64 value)
将 "value指定为指定注释的约束 "ctr的注释值。

setAnnotation

public voidsetAnnotation(constIloCplex::LongAnnotation annotation, constIloObjective obj,IloInt64 value)
将 "value指定为指定注释的目标 "obj的注释值。

setAnnotation

public voidsetAnnotation(constIloCplex::LongAnnotation annotation, constIloIntVar var,IloInt64 value)
将 "value指定为指定注释的变量 "var的注释值。

setAnnotation

public voidsetAnnotation(constIloCplex::LongAnnotation annotation, constIloNumVar var,IloInt64 value)
将 "value指定为指定注释的变量 "var的注释值。

setBasisStatuses

public voidsetBasisStatuses(constIloCplex::BasisStatusArray cstat, constIloNumVarArray var, constIloCplex::BasisStatusArray rstat, constIloConstraintArray con)
public voidsetBasisStatuses(constIloCplex::BasisStatusArray cstat, constIloIntVarArray var, constIloCplex::BasisStatusArray rstat, constIloConstraintArray con)

该方法使用数组 "cstats设置数组 "var中变量的基础状态;使用数组 "rstats设置数组 "con中范围的基础状态。


setDefaults

public voidsetDefaults()

此方法可将所有 CPLEX 参数重置为默认值。


setDeleteMode

public voidsetDeleteMode(IloCplex::DeleteMode mode)

该方法将调用 "IloCplex对象的删除模式设置为 "mode


setDirection

public voidsetDirection(IloNumVar var,IloCplex::BranchDirection dir)
public voidsetDirection(IloIntVar var,IloCplex::BranchDirection dir)

此方法将变量 "var的首选分支方向设置为 "dir。 This setting will cause CPLEX first to explore the branch specified by dir after branching on variable var.


setDirections

public voidsetDirections(constIloNumVarArray var, constIloCplex::BranchDirectionArray dir)
public voidsetDirections(constIloIntVarArray var, constIloCplex::BranchDirectionArray dir)

该方法将数组 "var中每个变量的首选分支方向设置为数组 "dir中的相应值。 This will cause CPLEX first to explore the branch specified by dir[i] after branching on variable var[i].


setParam

public voidsetParam(IloCplex::BoolParam parameter,IloBool value)
public voidsetParam(IloCplex::StringParam parameter, const char *value)
public voidsetParam(IloCplex::NumParam parameter,IloNum value)
public voidsetParam(IloCplex::LongParam parameter, CPXLONGvalue)
public voidsetParam(IloCplex::IntParam parameter, CPXINTvalue)

该方法将调用算法中的 "parameter设置为 "value。 有关参数的详细信息及其使用示例,请参阅《CPLEX 用户手册》。


setParameterSet

public voidsetParameterSet(IloCplex::ParameterSet set)

使用参数集设置参数状态。

如果方法失败,就会抛出 "IloException或其派生类的异常。

参数:

设置
参数集。

setPriorities

public void '设置优先级(const 'IloNumVarArray'变异, const 'IloNumArray')
public void '设置优先级(const 'IloIntVarArray'变异, const 'IloNumArray')

该方法将数组 "var中所有变量的优先级顺序设置为数组 "pri中的相应值。 分支期间,优先级较高的整数变量优先于优先级较低的整数变量。 此外,有优先权的变量优先于没有优先权的变量。 优先级必须是非负整数。 默认情况下,没有用户指定优先级的变量的优先级为 0(零)。 默认情况下,参数 "MIPOrdInd表示应考虑用户指定的优先顺序。 当 "MIPOrdInd重置为非默认值 0(零)时,CPLEX 会忽略用户指定的优先级。 要从变量中删除用户指定的优先级,请参见方法 "IloCplex::delPriorities。 有关如何应用优先级的更多详情,请参阅《CPLEX 用户手册》中的 "发布优先级命令"主题。


setPriority

public void '设置优先级( 'IloNumVar'变异, 'IloNum')
public void '设置优先级( 'IloIntVar'变异, 'IloNum')

该方法将变量 "var的优先级顺序设为 "pri。 分支期间,优先级较高的整数变量优先于优先级较低的整数变量。 此外,有优先权的变量优先于没有优先权的变量。 优先级必须是非负整数。 默认情况下,没有用户指定优先级的变量的优先级为 0(零)。 默认情况下,参数 "MIPOrdInd表示应考虑用户指定的优先顺序。 当 "MIPOrdInd重置为非默认值 0(零)时,CPLEX 会忽略用户指定的优先级。 要从变量中删除用户指定的优先级,请参见方法 "IloCplex::delPriority。 有关如何应用优先级的更多详情,请参阅《CPLEX 用户手册》中的 "发布优先级命令"主题。


setRemoteInfoHandler

publicIloCplex::RemoteInfoHandler*setRemoteInfoHandler(IloCplex::RemoteInfoHandler*handler)

本方法为远程 Worker 信息消息注册一个处理程序。 之前安装的处理程序将被覆盖。

另请参阅:

参数:

商人
要安装的处理程序。

返回:

上一个处理程序,如果没有安装处理程序,则为 0(零)。

setStart

public void '设置开始(const 'IloNumArray'x, const 'IloNumArray'dj, const 'IloNumVarArray'变异, const 'IloNumArray'松弛的, const 'IloNumArray'pi, const 'IloRangeArray'rng)
public void '设置开始(const 'IloNumArray'x, const 'IloNumArray'dj, const 'IloIntVarArray'变异, const 'IloNumArray'松弛的, const 'IloNumArray'pi, const 'IloRangeArray'rng)

该方法允许用户为下面调用方法 "IloCplex::solve指定一个起点。

对于 "var中的所有变量,"x[i]指定变量 "var[i]的起始值。 同样,"dj[i]指定了变量 "var[i]的起始降低成本。 对于所有在 "rng中指定的范围约束,"slack[i]指定了 "rng[i]的起始松弛值。 同样,"pi[i]指定了 "rng[i]的起始对数值。

任何单个参数都可以为零。 但是,数组 "x和 "var的长度必须相同。 同样,"pi和 "rng的长度必须相同。

您必须为主要变量 "x和对偶变量 "pi提供起始值。 如果为 "dj提供值,则必须为 "x提供相应的值。 如果为 "slack提供值,则必须为 "pi提供相应的值。

CPLEX uses this information at the next call to IloCplex::solve to construct a starting point for the algorithm, provided that the AdvInd parameter is set to a value greater than or equal to 1 (one). 特别是,如果提取的模型是 LP,而根算法是对偶或原始算法,CPLEX 会使用这些信息为原始模型的单纯形方法构建起始基础(如果 "AdvInd设置为 1(一))。 如果 "AdvInd设置为 2,信息将用于构建预解模型的起始基础。

CPLEX 在求解 MIP 时不会使用这些信息。 使用 "addMIPStart定义一个或多个候选起始解。


解算

publicIloBool solveIloCplex::Goal goal)

该方法在开始分支切割搜索之前,先用 "goal初始化根节点的目标堆栈。 搜索树将由 "goal的执行方法及其子目标定义。 更多信息,请参阅概念目标和嵌套类 "IloCplex::GoalI


解算

publicIloCplex::SolveHandle solve(boolasync)

该方法可以异步解算当前提取到调用 "IloCplex对象的模型。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "join方法连接返回的句柄。 同样,为了清理资源和防止内存泄漏,你也必须加入这一操作。 此外,要查询返回值,还必须进行连接。

如果该方法找到一个解(不一定是最优解),则返回 "IloTrue


解算

public 'IloBool'(const 'IloArray< 'IloCplex::ParameterSet> '参数集)
校阅

该方法使用多目标优化器解决当前提取到调用 "IloCplex对象的模型,并使用提供的 "IloCplex::ParameterSets 解决子模型。 如果该方法找到一个解(不一定是最优解),则返回 "IloTrue


解算

publicIloBool solve()

该方法将解算当前提取到调用 "IloCplex对象的模型。 如果该方法找到一个解(不一定是最优解),则返回 "IloTrue


solveFixed

publicIloCplex::SolveFixedHandle solveFixed(IloInt soln, boolasync)

该方法是 "IloCplex::solveFixed的异步版本。 换句话说,该方法执行与 "IloCplex::solveFixed相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::SolveFixedHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 但是,为了清理资源和防止内存泄漏,您仍然必须通过 "SolveFixedHandle::joinSolveFixed方法连接返回的句柄。 此外,要查询返回值,还必须进行连接。

另请参阅:

参数:

解答
异步
标志,用于指示操作是同步执行还是异步执行。

返回:

行动刚刚开始。

solveFixed

publicIloBool solveFixed(IloInt soln=IloCplex::IncumbentId)

在调用算法将提取的 MIP 模型求解为可行(但不一定是最优)的 MIP 解之后,该成员函数将提取的 MIP 的所有整数变量固定为解的值,从而求解模型的松弛。 如果省略了参数 "soln或参数值为-1,则使用当前解决方案;否则,将使用以 "soln为索引的解决方案池成员。

调用此方法会使 CPLEX 将提取的 MIP 模型视为连续模型,这样您就可以获得连续解通常可用但 MIP 模型通常不可用的信息。 CPLEX 会继续将模型视为连续模型,直到调用其他方法将模型恢复为 MIP。 例如,调用 "IloCplex::solve可将模型恢复为 MIP,并立即求解模型,前提是高级启动参数未被禁用。


运输

public voidtransportctrl(intctrl, double &data) const

对远程对象工作者执行低级传输控制操作。 如果 "IloCplex实例与远程对象工作者相关联,那么该函数就会在连接到该远程对象工作者的传输上执行 "ctrl指定的底层控制操作。

有关 "ctrl、"data以及这些参数允许值的详细信息,请参阅《可调用库(C API)参考手册》中有关 "CPXXtransportctrlint的参考文档。

另请参阅:

参数:

按住
确定要执行的控制操作。
数据
ctrl标识的操作的输入/输出。

运输

public voidtransportctrl(intctrl, CPXLONG &data) const

对远程对象工作者执行低级传输控制操作。 如果 "IloCplex实例与远程对象工作者相关联,那么该函数就会在连接到该远程对象工作者的传输上执行 "ctrl指定的底层控制操作。

有关 "ctrl、"data以及这些参数允许值的详细信息,请参阅《可调用库(C API)参考手册》中有关 "CPXXtransportctrlint的参考文档。

另请参阅:

参数:

按住
确定要执行的控制操作。
数据
ctrl标识的操作的输入/输出。

运输

public voidtransportctrl(intctrl, CPXINT &data) const

对远程对象工作者执行低级传输控制操作。 如果 "IloCplex实例与远程对象工作者相关联,那么该函数就会在连接到该远程对象工作者的传输上执行 "ctrl指定的底层控制操作。

有关 "ctrl、"data以及这些参数允许值的详细信息,请参阅《可调用库(C API)参考手册》中有关 "CPXXtransportctrlint的参考文档。

另请参阅:

参数:

按住
确定要执行的控制操作。
数据
ctrl标识的操作的输入/输出。

tuneParam

publicIloCplex::TuneParamHandle tuneParam(IloCplex::ParameterSet fixedset, boolasync)

该方法是 "IloCplex::tuneParam的异步版本。 换句话说,该方法执行与 "IloCplex::tuneParam相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::TuneParamHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,其参数为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "TuneParamHandle::joinTuneParam方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。

另请参阅:

参数:

固定集

请参阅 IloCplex::tuneParam

异步
标志,用于指示操作是同步运行还是异步运行。

返回:

行动刚刚开始。

tuneParam

publicIloCplex::TuneParamHandle tuneParam(boolasync)

该方法是 "IloCplex::tuneParam的异步版本。 换句话说,该方法执行与 "IloCplex::tuneParam相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::TuneParamHandle实例,表示已开始的操作。 要以异步方式启动操作,请使用参数 "async=true调用该方法。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "TuneParamHandle::joinTuneParam方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。

另请参阅:

参数:

异步
标志,用于指示操作是同步运行还是异步运行。

返回:

行动刚刚开始。

tuneParam

publicIloInt tuneParam(IloArray< const char * >filename,IloCplex::ParameterSet fixedset)
publicIloInt tuneParam(IloArray< const char * >filename)
publicIloInt tuneParam(IloCplex::ParameterSet fixedset)
publicIloInt tuneParam()

tuneParam方法会调整 "IloCplex实例的参数,以提高优化器在当前模型上的性能;如果使用 "filename参数,则会调整一组模型的参数。 通过 CPLEX 以各种参数设置进行多次试运行来进行调整。 参数集 "fixedset中指定了调整过程中不应更改的参数和相关值。

tuneParam"完成后,"IloCplex参数将被设置为可查询或写入文件的调整和固定设置。 目前的模式不会有解决办法。

参数 "TuningRepeat指定 CPLEX 在调整当前模型时要尝试多少个问题变体。 在对单一模型进行调整时,使用多种变体可以获得更稳健的结果。

请注意,只有当 "TuningRepeat大于 1 或正在对一组模型进行调整时,调整评估指标才有意义。

一些参数设置可控制调谐过程。 其他参数设置将被忽略。

参数使用
TiLim限制调节所花费的总时间
DetTiLim限制调节所花费的总确定性时间
TuningTiLim限制每次试运行的时间
TuningDetTiLim限制每次试运行的确定性时间
TuningMeasure控制调节评估测量
TuningRepeat设置重复问题变体的数量
TuningDisplay控制调节显示级别

将忽略调节回调以外的所有回调。 调试将监控方法 "abort,并在发出终止指令时终止。

返回:

IloInt值指定调整的完成状态。 返回的值来自枚举 "TuningStatus


使用

public voiduseIloModelingAssistance::Callback*callback)
注册或清除建模协助回拨。

在优化过程中,CPLEX 会调用回调,提供有关特定建模辅助警告的信息。 使用 "callback = null调用该命令,清除当前回调。 要注册回调,请为该方法提供一个非空的 "callback

只有当 CPLEX 参数 "IloCplex::Param::Read::DataCheck设置为 "IloCplex::Assist时,才会调用回调函数。 此外,参数 "IloCplex::Param::Read::WarningLimit还可以控制每种类型的建模辅助警告的报告次数(其余警告将被忽略)。 请参阅《CPLEX 参数参考手册》中的 "CPX_PARAM_DATACHECK和 "CPX_PARAM_WARNLIM

即使设置新的回调失败,该函数会清除任何当前回调。 因此,一个 "IloCplex实例最多只能注册一个回调。

回调。

另请参阅:

参数:

回调
要设置的新回调,或 "null用于清除回调。

使用

public voiduse(Callback::Function*callback, CPXLONGcontextMask)
注册或清除 CPLEX 在优化过程中调用的回调。 使用 "callback = null或 "contextMask = 0调用此功能可清除当前回调。 要注册回调,请调用此方法,并输入不同于 "null的 "callback参数和不同于 0(零)的 "contextMask参数。 contextMask的值可以是Callback.Context.Id 中值的 bitwise OR。 注意:即使设置新的回调失败,该函数会清除任何当前回调。 因此,一个 "IloCplex实例最多只能注册一个回调。 回调。 或 "0(零)来清除回调。

参数:

回调
要设置的新回调,或 "null用于清除回调。
contextMask
比特掩码,用于指定在哪些情况下调用回调,或者使用 "0(0)清除回调。

使用

publicIloCplex::Callback useIloCplex::Callback cb)

该方法指示调用 "IloCplex对象使用 "cb作为回调。 If a callback of the same type as cb is already being used by the invoking IloCplex object, the previously used callback will be overridden. 如果回调对象 "cb已被另一个 "IloCplex对象使用,则将使用 "cb的副本。 返回调用 "IloCplex对象中安装的回调句柄。 有关如何实现回调的讨论,请参见 "IloCplex::CallbackI


使用

publicIloCplex::Aborter useIloCplex::Aborter abort)

该方法指示调用的 "IloCplex对象使用终止器对象 "abort来控制其求解和调整方法的终止。 如果调用的 "IloCplex对象已经使用了终止符,则先前使用的终止符将被覆盖。 该方法返回一个句柄,指向安装在调用对象 "IloCplex中的中止器。

另请参阅:


用户函数

public intuserfunction(intid, CPXLONGinlen, void const *in, CPXLONGoutcap, CPXLONG *outlen_p, void *out)

在远程对象 Worker 上调用用户函数。 如果该 "IloCplex实例与远程对象 Worker 相关联,则会调用该 Worker 上的用户函数。 否则,该方法会抛出异常。 所有参数都会逐字传递给远程对象上的用户函数。 更多详情,请参阅《CPLEX 用户手册》,特别是有关用户函数和远程对象的主题。 您可能希望使用 "Serializer和 "Deserializer类来处理传入该函数和从该函数返回的数据,就像这样:

  // 调用一个接收两个 int 参数并返回 double 的用户函数
  double wrapperIloCplexcplex, intin1, intin2) {
    序列化器 s;
    s.add(in1);
    s.add(in2);
    char buffer[8];
    CPXLONG outlen = 0;
    int status =cplex.userfunction(0,s.getRawLength(),s.getRawData()、
                                     sizeof (buffer), &outlen、
                                     static_cast<void *>buffer));
    如果 ( status != 0 )
       抛掷状态;
    反序列化器 d(static_cast<void *>buffer), outlen);
    双重结果;
    d.get(&result, 1);
    return result;
  }
 

另请参阅:


writeAnnotations

public voidwriteAnnotations(const char *name) const
将 "IloCplex对象的所有注释写入指定名称的文件。

writeBasis

public voidwriteBasis(const char *name) const

将当前单倍基值写入 "name指定的文件。

按照惯例,文件扩展名为 ".bas。 BAS 文件格式在CPLEX 文件格式参考手册中有详细说明。


writeBendersAnnotation

public voidwriteBendersAnnotation(const char *name) const
将 CPLEX 自动生成的本德尔分解注释写入指定名称的文件。

writeConflict

public voidwriteConflict(const char *filename) const

写入名为 "filename的冲突文件。


writeFilters

public voidwriteFilters(const char *name)

将调用模型中的筛选器以 FLT 格式写入文件。 该格式已在CPLEX 文件格式参考手册中记录。


writeMIPStarts

public void 'writeMIPStarts(const char * '名字, 'IloInt'第一次=0, 'IloInt'=IloIntMax) const

将 MIP 启动信息写入 "name表示的文件。 指定的 MIP 从索引 "first指定的成员开始,一直到指定的成员数 "num。 如果省略 "first和 "num参数,则将写入所有 MIP 启动项。 All MIP starts starting with first will be written if the num argument is omitted.

按照惯例,文件扩展名为 ".mst。 MST 文件格式在CPLEX 文件格式参考手册以及产品 "include目录下的样式表 "solution.xsl和模式 "solution.xsd中均有说明。

参数 "WriteLevel告诉 CPLEX 要写入文件的详细程度。 枚举 "IloCplex::WriteLevelType列出了可使用的值。


writeOrder

public voidwriteOrder(const char *filename) const

将优先级顺序写入文件 "filename

如果 CPLEX 问题对象关联了优先顺序,或者参数 "MipOrdType非零,则此方法会将优先顺序写入指定文件。

按照惯例,文件扩展名为 ".ord。 ORD 文件格式在CPLEX 文件格式参考手册中有详细说明。


writeParam

public voidwriteParam(const char *name) const

为所有当前未设置为默认值的 CPLEX 参数,将参数名称及其当前设置写入 "name指定的文件。

按照惯例,文件扩展名为 ".prm。 PRM 文件格式在参考手册 "CPLEX 文件格式中有详细说明。


writeSolution

public void '写入解决方案(const char * '名字, 'IloInt'解答=任职者编号) const

该方法会将当前问题的解决方案写入 "name指定的文件中。 如果省略参数 "soln,写入的解决方案就是当前解决方案;否则,就是以 "soln为索引的解决方案池成员。

按照惯例,文件扩展名为 ".sol。 SOL 文件格式在CPLEX 文件格式参考手册以及产品 include 目录中的样式表 "solution.xsl和模式 "solution.xsd中均有说明。

参数 "WriteLevel告诉 CPLEX 要写入文件的详细程度。 枚举 "IloCplex::WriteLevelType列出了可使用的值。


writeSolutions

public voidwriteSolutions(const char *name) const

将包含当前问题解池所有成员的格式化文件写入 "name指定的文件,并采用 SOL 格式。

按照惯例,文件扩展名为 ".sol。 SOL 文件格式在CPLEX 文件格式参考手册以及产品 include 目录中的样式表 "solution.xsl和模式 "solution.xsd中均有说明。

参数 "WriteLevel告诉 CPLEX 要写入文件的详细程度。 枚举 "IloCplex::WriteLevelType列出了可使用的值。


内部枚举详细信息

枚举算法

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::Algorithm lists the algorithms available in CPLEX to solve continuous models as controlled by the parameters IloCplex::RootAlg and IloCplex::NodeAlg.

这些值也会由 "IloCplex::getAlgorithm返回,用于指定生成当前解的算法。 FeasOpt"和 "MIP"的值由 "IloCplex::getAlgorithm返回,但不应与 "IloCplex::RootAlg或 "IloCplex::NodeAlg"一起使用。

另请参阅:

字段

NoAlg = CPX_ALG_NONE 
AutoAlg = CPX_ALG_AUTOMATIC 
Primal = CPX_ALG_PRIMAL 
Dual = CPX_ALG_DUAL 
Barrier = CPX_ALG_BARRIER 
Sifting = CPX_ALG_SIFTING 
Concurrent = CPX_ALG_CONCURRENT 
Network = CPX_ALG_NET 
FeasOpt = CPX_ALG_FEASOPT 
MIP = CPX_ALG_MIP 

枚举BasisStatus

定义文件: ilcplex/ilocplexi.h

枚举 "IloCplex::BasisStatus列出了变量或范围约束条件的状态在基础中可能呈现的值。 NotABasicStatus不是变量的有效状态。 包含这种状态的依据不构成有效依据。 范围约束的基础状态与 "IloCplex为其管理的相应松弛变量或人工变量的基础状态相对应。 FreeOrSuperbasic表示变量是非基本变量,但不在边界上。

另请参阅:

字段

NotABasicStatus = -1 
Basic = 1 
AtLower = 0 
AtUpper = 2 
FreeOrSuperbasic = 3 

枚举BoolParam

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::BoolParam lists the parameters of CPLEX that require Boolean values. 布尔值在某些情况下也被称为二进制值或零一(0-1)值。 将这些值用于接受布尔参数的方法:"IloCplex::getParam和 "IloCplex::setParam

有关这些参数的更多信息,请参阅《CPLEX 参数参考手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

BoolParam_MIN = 0 
BoolParam_MAX = INT_MAX 
CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起


枚举BranchDirection

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::BranchDirection lists values that can be used for specifying branch directions either with the branch direction parameter IloCplex::BrDir or with the methods IloCplex::setDirection and IloCplex::setDirections. 分支方向指定了从一个变量分支后首先探索的方向。

有关这些参数的更多信息,请参阅《CPLEX 参数参考手册》和《CPLEX 用户手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

BranchGlobal = CPX_BRANCH_GLOBAL 
BranchDown = CPX_BRANCH_DOWN 
BranchUp = CPX_BRANCH_UP 

枚举CalcQCPDuals

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::CalcQCPDuals lists values that the QCP dual presolve parameter IloCplex:QCPDual can assume. 在设置 QCP 双预溶参数时,请将这些值与 "IloCplex::setParam(IloCplex::CalcQCPDuals, value)方法一起使用。

另请参阅:

字段

QCPDualsNo = CPX_QCPDUALS_NO 
QCPDualsIfPossible = CPX_QCPDUALS_IFPOSSIBLE 
QCPDualsForce = CPX_QCPDUALS_FORCE 

ConflictAlgorithm枚举

定义文件: ilcplex/ilocplexi.h

枚举'IloCplex::ConflictAlgorithm列出了冲突算法参数'IloCplex::Param::Conflict::Algorithm在'IloCplex中接受的值,供冲突细化器使用。 在设置冲突算法参数时,将这些值与IloCplex::setParam(IloCplex::Param::Conflict::Algorithm, value)方法一起使用。

有关该参数的更多信息,请参阅《CPLEX 参数参考手册》和《CPLEX 用户手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

ConflictAuto = CPX_CONFLICTALG_AUTO 
ConflictFast = CPX_CONFLICTALG_FAST 
ConflictPropagate = CPX_CONFLICTALG_PROPAGATE 
ConflictPresolve = CPX_CONFLICTALG_PRESOLVE 
ConflictIIS = CPX_CONFLICTALG_IIS 
ConflictLimitedSolve = CPX_CONFLICTALG_LIMITSOLVE 
ConflictSolve = CPX_CONFLICTALG_SOLVE 

ConflictStatus枚举

定义文件: ilcplex/ilocplexi.h

该枚举列出了约束或绑定在冲突中的状态。

字段

ConflictExcluded = CPX_CONFLICT_EXCLUDED 
ConflictPossibleMember = CPX_CONFLICT_POSSIBLE_MEMBER 
ConflictMember = CPX_CONFLICT_MEMBER 

枚举CplexStatus

定义文件: ilcplex/ilocplexi.h

枚举 "IloCplex::CplexStatus列出了 "IloCplex算法的状态可能具有的值。 方法 "IloCplex::getCplexStatus和 "IloCplex::getCplexSubStatus访问状态值,提供算法在最近一次调用方法 "solve或 "feasOpt时了解到的活动模型信息。 状态还可以说明算法终止的原因。

有关这些值的更多信息,请参阅《可调用库参考手册》中的optim.cplex.solutionstatus组(按字母顺序列出),或《API 概述》中的 "解读解决方案状态代码"主题(按数字顺序列出)。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅《C++ API参考手册》中的枚举 "IloAlgorithm::Status

另请参阅:

字段

Unknown = 0 
Optimal = CPX_STAT_OPTIMAL 
Unbounded = CPX_STAT_UNBOUNDED 
Infeasible = CPX_STAT_INFEASIBLE 
InfOrUnbd = CPX_STAT_INForUNBD 
OptimalInfeas = CPX_STAT_OPTIMAL_INFEAS 
NumBest = CPX_STAT_NUM_BEST 
FeasibleRelaxedSum = CPX_STAT_FEASIBLE_RELAXED_SUM 
OptimalRelaxedSum = CPX_STAT_OPTIMAL_RELAXED_SUM 
FeasibleRelaxedInf = CPX_STAT_FEASIBLE_RELAXED_INF 
OptimalRelaxedInf = CPX_STAT_OPTIMAL_RELAXED_INF 
FeasibleRelaxedQuad = CPX_STAT_FEASIBLE_RELAXED_QUAD 
OptimalRelaxedQuad = CPX_STAT_OPTIMAL_RELAXED_QUAD 
AbortRelaxed = CPXMIP_ABORT_RELAXED 
AbortObjLim = CPX_STAT_ABORT_OBJ_LIM 
AbortPrimObjLim = CPX_STAT_ABORT_PRIM_OBJ_LIM 
AbortDualObjLim = CPX_STAT_ABORT_DUAL_OBJ_LIM 
AbortItLim = CPX_STAT_ABORT_IT_LIM 
AbortTimeLim = CPX_STAT_ABORT_TIME_LIM 
AbortDetTimeLim = CPX_STAT_ABORT_DETTIME_LIM 
AbortUser = CPX_STAT_ABORT_USER 
OptimalFaceUnbounded = CPX_STAT_OPTIMAL_FACE_UNBOUNDED 
OptimalTol = CPXMIP_OPTIMAL_TOL 
SolLim = CPXMIP_SOL_LIM 
PopulateSolLim = CPXMIP_POPULATESOL_LIM 
NodeLimFeas = CPXMIP_NODE_LIM_FEAS 
NodeLimInfeas = CPXMIP_NODE_LIM_INFEAS 
FailFeas = CPXMIP_FAIL_FEAS 
FailInfeas = CPXMIP_FAIL_INFEAS 
MemLimFeas = CPXMIP_MEM_LIM_FEAS 
MemLimInfeas = CPXMIP_MEM_LIM_INFEAS 
FailFeasNoTree = CPXMIP_FAIL_FEAS_NO_TREE 
FailInfeasNoTree = CPXMIP_FAIL_INFEAS_NO_TREE 
ConflictFeasible = CPX_STAT_CONFLICT_FEASIBLE 
ConflictMinimal = CPX_STAT_CONFLICT_MINIMAL 
ConflictAbortContradiction = CPX_STAT_CONFLICT_ABORT_CONTRADICTION 
ConflictAbortTimeLim = CPX_STAT_CONFLICT_ABORT_TIME_LIM 
ConflictAbortDetTimeLim = CPX_STAT_CONFLICT_ABORT_DETTIME_LIM 
ConflictAbortItLim = CPX_STAT_CONFLICT_ABORT_IT_LIM 
ConflictAbortNodeLim = CPX_STAT_CONFLICT_ABORT_NODE_LIM 
ConflictAbortObjLim = CPX_STAT_CONFLICT_ABORT_OBJ_LIM 
ConflictAbortMemLim = CPX_STAT_CONFLICT_ABORT_MEM_LIM 
ConflictAbortUser = CPX_STAT_CONFLICT_ABORT_USER 
Feasible = CPX_STAT_FEASIBLE 
OptimalPopulated = CPXMIP_OPTIMAL_POPULATED 
OptimalPopulatedTol = CPXMIP_OPTIMAL_POPULATED_TOL 
RelaxationUnbounded = CPXMIP_ABORT_RELAXATION_UNBOUNDED 
FirstOrder = CPX_STAT_FIRSTORDER 
MultiObjOptimal = CPX_STAT_MULTIOBJ_OPTIMAL 
MultiObjNonOptimal = CPX_STAT_MULTIOBJ_NON_OPTIMAL 
MultiObjInfeasible = CPX_STAT_MULTIOBJ_INFEASIBLE 
MultiObjUnbounded = CPX_STAT_MULTIOBJ_UNBOUNDED 
MultiObjInfOrUnbd = CPX_STAT_MULTIOBJ_INForUNBD 
MultiObjStopped = CPX_STAT_MULTIOBJ_STOPPED 

枚举CutManagement

定义文件: ilcplex/ilocplexi.h

该枚举的符号值指定 CPLEX 如何管理用户添加的切分。

字段

UseCutForce = CPX_USECUT_FORCE 
UseCutPurge = CPX_USECUT_PURGE 
UseCutFilter = CPX_USECUT_FILTER 

枚举CutType

定义文件: ilcplex/ilocplexi.h

枚举 "IloCplex::CutType列出了在使用 "getNcuts()查询混合整数优化中使用的切分次数时可以使用的值。

字段

CutCover = CPX_CUT_COVER 
CutGubCover = CPX_CUT_GUBCOVER 
CutFlowCover = CPX_CUT_FLOWCOVER 
CutClique = CPX_CUT_CLIQUE 
CutFrac = CPX_CUT_FRAC 
CutMir = CPX_CUT_MIR 
CutFlowPath = CPX_CUT_FLOWPATH 
CutDisj = CPX_CUT_DISJ 
CutImplBd = CPX_CUT_IMPLBD 
CutZeroHalf = CPX_CUT_ZEROHALF 
CutMCF = CPX_CUT_MCF 
CutLiftProj = CPX_CUT_LANDP 
CutUser = CPX_CUT_USER 
CutTable = CPX_CUT_TABLE 
CutSolnPool = CPX_CUT_SOLNPOOL 
CutLocalImplBd = CPX_CUT_LOCALIMPLBD 
CutBQP = CPX_CUT_BQP 
CutRLT = CPX_CUT_RLT 
CutBenders = CPX_CUT_BENDERS 

枚举DataCheckType

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::DataCheckType lists values that the data consistency checking parameter IloCplex:DataCheck can assume in IloCplex. 将这些值与 "IloCplex::setParam(IloCplex::DataCheck, value)方法一起使用。

有关该参数的更多信息,请参阅《CPLEX 参数参考手册》和《CPLEX 用户手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

Off = CPX_DATACHECK_OFF
= cpx_datacheck_off
Warn = CPX_DATACHECK_WARN
= cpx_datacheck_warn
Assist = CPX_DATACHECK_ASSIST
= cpx_datacheck_assist

枚举DeleteMode

定义文件: ilcplex/ilocplexi.h

This enumeration lists the possible settings for the delete mode of IloCplex as controlled by the method IloCplex::setDeleteMode and queried by the method IloCplex::getDeleteMode.

在默认设置 "IloCplex::LeaveBasis下,如果从加载的 LP 模型中删除变量或约束条件,现有基础将保持不变。 当 CPLEX 正在求解修改后的 LP,且高级指示器(参数 "IloCplex::AdvInd)设置为 "IloTrue时,这种选择通常会使基础无法重新启动。

相反,当删除模式设置为 "IloCplex::FixBasis时,调用对象将进行基点透视,以便在删除变量或约束时保持有效的基点。 这种选择使得删除操作的计算量更大,但可能会为修改提取模型后的重新优化提供一个更好的起点。

如果调用对象中不存在基础,则删除模式的设置无效。

另请参阅:

字段

LeaveBasis 
FixBasis 

枚举DistMIPRampupDuration

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::DistMIPRampupDuration lists values that the distributed MIP rampup parameter IloCplex::Param::DistMIP::Rampup::Duration can assume in IloCplex for use with the distributed MIP optimizer. 在设置分布式 MIP 梯度上升持续时间时,将这些值与IloCplex::setParam(IloCplex::Param::DistMIP::Rampup::Duration, value)方法一起使用。

有关这些参数的更多信息,请参阅《CPLEX 参数参考手册》和《CPLEX 用户手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

RampupDisabled = CPX_RAMPUP_DISABLED 
RampupAuto = CPX_RAMPUP_AUTO 
RampupDynamic = CPX_RAMPUP_DYNAMIC 
RampupInfinite = CPX_RAMPUP_INFINITE 

枚举DualPricing

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::DualPricing lists values that the dual pricing parameter IloCplex:DPriInd can assume in IloCplex for use with the dual simplex algorithm. 在设置双重定价指标时,将这些值与 "IloCplex::setParam(IloCplex::DPriInd, value)方法一起使用。

有关这些参数的更多信息,请参阅《CPLEX 参数参考手册》和《CPLEX 用户手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

DPriIndAuto = CPX_DPRIIND_AUTO 
DPriIndFull = CPX_DPRIIND_FULL 
DPriIndSteep = CPX_DPRIIND_STEEP 
DPriIndFullSteep = CPX_DPRIIND_FULLSTEEP 
DPriIndSteepQStart = CPX_DPRIIND_STEEPQSTART 
DPriIndDevex = CPX_DPRIIND_DEVEX 

枚举IntParam

定义文件: ilcplex/ilocplexi.h

IloCplex是 CPLEX 算法的类。 枚举 "IloCplex::IntParam列出了 CPLEX 的参数,这些参数要求整数值始终适合 "32bit带符号整数。 将这些值与 "IloCplex::getParam和 "IloCplex::setParam方法一起使用。

有关这些参数的更多信息,请参阅《CPLEX 参数参考手册》和《CPLEX 用户手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

IntParam_MIN = 0 
IntParam_MAX = INT_MAX 
CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起


枚举LongParam

定义文件: ilcplex/ilocplexi.h

IloCplex是 CPLEX 算法的类。 枚举 "IloCplex::LongParam列出了 CPLEX 需要整数值的参数,这些整数值并不总是适合 "32bit带符号整数。 将这些值与 "IloCplex::getParam和 "IloCplex::setParam方法一起使用。

有关这些参数的更多信息,请参阅《CPLEX 参数参考手册》和《CPLEX 用户手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

LongParam_MIN = 0 
LongParam_MAX = INT_MAX 
CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起


枚举MIPEmphasisType

定义文件: ilcplex/ilocplexi.h

枚举 "IloCplex::MIPEmphasisType列出了 MIP 强调参数 "IloCplex::MIPEmphasis在 "IloCplex实例中的取值,以便在解决 MIP 问题时使用。 在设置 MIP 强调时,将这些值与 "IloCplex::setParam(IloCplex::MIPEmphasis, value)方法一起使用。

在默认设置为 "IloCplex::MIPEmphasisBalance的情况下,"IloCplex会尝试计算分支切割算法,以便快速找到已证明的最优解。 有关各种设置的讨论,请参阅《CPLEX 用户手册》。

请参阅《CPLEX 参数参考手册》和有关 MIP 强调参数的信息。 有关这些值的使用示例,请参阅《CPLEX 用户手册》。

另请参阅:

字段

MIPEmphasisBalanced = CPX_MIPEMPHASIS_BALANCED 
MIPEmphasisOptimality = CPX_MIPEMPHASIS_OPTIMALITY 
MIPEmphasisFeasibility = CPX_MIPEMPHASIS_FEASIBILITY 
MIPEmphasisBestBound = CPX_MIPEMPHASIS_BESTBOUND 
MIPEmphasisHiddenFeas = CPX_MIPEMPHASIS_HIDDENFEAS MIPEmphasisHeuristic = CPX_MIPEMPHASIS_HEURISTIC 

枚举 MIPsearch

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::MIPsearch lists values that the dynamic search parameter IloCplex::MIPSearch can assume in IloCplex. 通过IloCplex::setParam(IloCplex::MIPSearch, value) 方法使用这些值。

有关该参数的更多信息,请参阅《CPLEX 参数参考手册》和《CPLEX 用户手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

AutoSearch = CPX_MIPSEARCH_AUTO 
Traditional = CPX_MIPSEARCH_TRADITIONAL 
Dynamic = CPX_MIPSEARCH_DYNAMIC 

枚举MIPStartEffort

定义文件: ilcplex/ilocplexi.h

该枚举定义了 CPLEX 评估 MIP 启动时可能花费的精力。 将这些值与成员函数 "IloCplex::addMIPStart、"getMIPStart或 "changeMIPStart一起使用。

字段

MIPStartAuto = CPX_MIPSTART_AUTO 
MIPStartCheckFeas = CPX_MIPSTART_CHECKFEAS 
MIPStartSolveFixed = CPX_MIPSTART_SOLVEFIXED 
MIPStartSolveMIP = CPX_MIPSTART_SOLVEMIP 
MIPStartRepair = CPX_MIPSTART_REPAIR 
MIPStartNoCheck = CPX_MIPSTART_NOCHECK 

枚举MultiObjInt64Info

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::MultiObjInt64Info lists types of solution information of type IloInt64 that can be retrieved about the solution of a subproblem solved during multiobjective optimization. 可使用 "IloCplex::getMultiObjInfo方法查询每个优先级的信息。

有关这些值的更多信息,请参阅《可调用库参考手册》中的多目标信息文档。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

MultiObjNbarierIterations = CPX_MULTIOBJ_BARITCNT 
MultiObjNsiftingIterations = CPX_MULTIOBJ_SIFTITCNT 
MultiObjNsiftingPhase1Iterations = CPX_MULTIOBJ_SIFTPHASE1CNT 
MultiObjNdegenerateIterations = CPX_MULTIOBJ_DEGCNT 
MultiObjNiterations = CPX_MULTIOBJ_ITCNT 
MultiObjNphase1Iterations = CPX_MULTIOBJ_PHASE1CNT 
MultiObjNprimalPushes = CPX_MULTIOBJ_PPUSH 
MultiObjNprimalExchanges = CPX_MULTIOBJ_PEXCH 
MultiObjNdualPushes = CPX_MULTIOBJ_DPUSH 
MultiObjNdualExchanges = CPX_MULTIOBJ_DEXCH 
MultiObjNnodes = CPX_MULTIOBJ_NODECNT 
MultiObjNnodesLeft = CPX_MULTIOBJ_NODELEFTCNT 

枚举MultiObjIntInfo

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::MultiObjIntInfo lists types of solution information of type IloInt that can be retrieved about the solution of a subproblem solved during multiobjective optimization. 可使用 "IloCplex::getMultiObjInfo方法查询每个优先级的信息。

有关这些值的更多信息,请参阅《可调用库参考手册》中的多目标优化文档。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

MultiObjError = CPX_MULTIOBJ_ERROR 
MultiObjStatus = CPX_MULTIOBJ_STATUS 
MultiObjMethod = CPX_MULTIOBJ_METHOD 
MultiObjPriority = CPX_MULTIOBJ_PRIORITY 

枚举MultiObjNumInfo

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::MultiObjNumInfo lists types of solution information of type IloNum that can be retrieved about the solution of a subproblem solved during multiobjective optimization. 可使用 "IloCplex::getMultiObjInfo方法查询每个优先级的信息。

有关这些值的更多信息,请参阅《可调用库参考手册》中的多目标优化文档。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

MultiObjTime = CPX_MULTIOBJ_TIME 
MultiObjDetTime = CPX_MULTIOBJ_DETTIME 
MultiObjObjValue = CPX_MULTIOBJ_OBJVAL 
MultiObjBestObjValue = CPX_MULTIOBJ_BESTOBJVAL 

枚举NodeSelect

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::NodeSelect lists values that the parameter IloCplex::NodeSel can assume in IloCplex. 将这些值与 "IloCplex::setParam(IloCplex::NodeSel, value)方法一起使用。

有关这些参数的更多信息,请参阅《CPLEX 参数参考手册》和《CPLEX 用户手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

DFS = CPX_NODESEL_DFS 
BestBound = CPX_NODESEL_BESTBOUND 
BestEst = CPX_NODESEL_BESTEST 
BestEstAlt = CPX_NODESEL_BESTEST_ALT 

枚举NumParam

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::NumParam lists the parameters of CPLEX that require numeric values. 将这些值与成员函数一起使用: IloCplex::getParam和 "IloCplex::setParam

有关这些参数的更多信息,请参阅《CPLEX 参数参考手册》。 更多使用示例,请参阅《CPLEX 用户手册》。

另请参阅:

字段

NumParam_MIN = 0 
NumParam_MAX = INT_MAX 
CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起


枚举OptimalityTargetType

定义文件: ilcplex/ilocplexi.h

枚举 "IloCplex::OptimalityTargetType列出了解决方案目标参数 "IloCplex::OptimalityTarget在 "IloCplex实例中可以取的值。 在设置解决方案目标时,将这些值与 "IloCplex::setParam(IloCplex::OptimalityTarget, value)方法一起使用。

在默认设置为 "IloCplex::OptimalityTarget的情况下,"IloCplex会尝试计算凸问题的最优解。 有关各种设置的讨论,请参阅《CPLEX 用户手册》。

有关这些参数的信息,请参阅《CPLEX 参数参考手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

OptimalityAuto = CPX_OPTIMALITYTARGET_AUTO 
OptimalityOptimalConvex = CPX_OPTIMALITYTARGET_OPTIMALCONVEX 
OptimalityFirstOrder = CPX_OPTIMALITYTARGET_FIRSTORDER 
OptimalityOptimalGlobal = CPX_OPTIMALITYTARGET_OPTIMALGLOBAL 

并行模式枚举

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::ParallelMode lists values that the parallel mode parameter IloCplex::ParallelMode can assume in IloCplex for use on multiprocessor or multithread platforms. 通过IloCplex::setParam(IloCplex::ParallelMode, value) 方法使用这些值。

有关该参数的更多信息,请参阅《CPLEX 参数参考手册》和《CPLEX 用户手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

Opportunistic = CPX_PARALLEL_OPPORTUNISTIC 
AutoParallel = CPX_PARALLEL_AUTO 
Deterministic = CPX_PARALLEL_DETERMINISTIC 

枚举PrimalPricing

定义文件: ilcplex/ilocplexi.h

枚举 "IloCplex::PrimalPricing列出了基本定价参数 "IloCplex::PPriInd可以在 "IloCplex中使用的值,以便与基本单项式算法一起使用。 在设置基本定价指标时,将这些值与IloCplex::setParam(IloCplex::PPriInd, value)方法一起使用。

有关这些参数的更多信息,请参阅《CPLEX 参数参考手册》和《CPLEX 用户手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

PPriIndPartial = CPX_PPRIIND_PARTIAL 
PPriIndAuto = CPX_PPRIIND_AUTO 
PPriIndDevex = CPX_PPRIIND_DEVEX 
PPriIndSteep = CPX_PPRIIND_STEEP 
PPriIndSteepQStart = CPX_PPRIIND_STEEPQSTART 
PPriIndFull = CPX_PPRIIND_FULL 

枚举质量

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::Quality lists types of quality measures that can be queried for a solution with the method IloCplex::getQuality.

有关这些值的更多信息,请参阅《可调用库参考手册》中的解决方案质量文档。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

MaxPrimalInfeas = CPX_MAX_PRIMAL_INFEAS 
MaxScaledPrimalInfeas = CPX_MAX_SCALED_PRIMAL_INFEAS 
SumPrimalInfeas = CPX_SUM_PRIMAL_INFEAS 
SumScaledPrimalInfeas = CPX_SUM_SCALED_PRIMAL_INFEAS 
MaxDualInfeas = CPX_MAX_DUAL_INFEAS 
MaxScaledDualInfeas = CPX_MAX_SCALED_DUAL_INFEAS 
SumDualInfeas = CPX_SUM_DUAL_INFEAS 
SumScaledDualInfeas = CPX_SUM_SCALED_DUAL_INFEAS 
MaxIntInfeas = CPX_MAX_INT_INFEAS 
SumIntInfeas = CPX_SUM_INT_INFEAS 
MaxPrimalResidual = CPX_MAX_PRIMAL_RESIDUAL 
MaxScaledPrimalResidual = CPX_MAX_SCALED_PRIMAL_RESIDUAL 
SumPrimalResidual = CPX_SUM_PRIMAL_RESIDUAL 
SumScaledPrimalResidual = CPX_SUM_SCALED_PRIMAL_RESIDUAL 
MaxDualResidual = CPX_MAX_DUAL_RESIDUAL 
MaxScaledDualResidual = CPX_MAX_SCALED_DUAL_RESIDUAL 
SumDualResidual = CPX_SUM_DUAL_RESIDUAL 
SumScaledDualResidual = CPX_SUM_SCALED_DUAL_RESIDUAL 
MaxCompSlack = CPX_MAX_COMP_SLACK 
SumCompSlack = CPX_SUM_COMP_SLACK 
MaxX = CPX_MAX_X 
MaxScaledX = CPX_MAX_SCALED_X 
MaxPi = CPX_MAX_PI 
MaxScaledPi = CPX_MAX_SCALED_PI 
MaxSlack = CPX_MAX_SLACK 
MaxScaledSlack = CPX_MAX_SCALED_SLACK 
MaxRedCost = CPX_MAX_RED_COST 
MaxScaledRedCost = CPX_MAX_SCALED_RED_COST 
SumX = CPX_SUM_X 
SumScaledX = CPX_SUM_SCALED_X 
SumPi = CPX_SUM_PI 
SumScaledPi = CPX_SUM_SCALED_PI 
SumSlack = CPX_SUM_SLACK 
SumScaledSlack = CPX_SUM_SCALED_SLACK 
SumRedCost = CPX_SUM_RED_COST 
SumScaledRedCost = CPX_SUM_SCALED_RED_COST 
Kappa = CPX_KAPPA 
ObjGap = CPX_OBJ_GAP 
DualObj = CPX_DUAL_OBJ 
PrimalObj = CPX_PRIMAL_OBJ 
ExactKappa = CPX_EXACT_KAPPA 
KappaStable = CPX_KAPPA_STABLE 
KappaSuspicious = CPX_KAPPA_SUSPICIOUS 
KappaUnstable = CPX_KAPPA_UNSTABLE 
KappaIllposed = CPX_KAPPA_ILLPOSED 
KappaMax = CPX_KAPPA_MAX 
KappaAttention = CPX_KAPPA_ATTENTION 

枚举放松

定义文件: ilcplex/ilocplexi.h

The enumeration Relaxation lists the values that can be taken by the parameter FeasOptMode. 该参数控制着方法 "feasOpt进行放松的几个方面。

feasOpt方法分两个阶段运行。 在第一阶段,它试图找到给定不可行模型的最小惩罚松弛。 如果您希望 "feasOpt在第一阶段结束后停止,请选择一个符号名称为 "Min的值。 如果您希望 "feasOpt在第一阶段后继续寻找与原始目标函数相关的最优解,并限制松弛的惩罚不能超过第一阶段的值,那么请选择一个符号名称为 "Opt的值。

在这两个阶段中,后缀 "Sum、"Inf和 "Quad都指定了松弛度量:

权重由您在方法 "feasOpt中输入的偏好值决定。

当使用 "IloAnd将约束分组作为 "feasOpt的输入时,松弛惩罚是根据组来计算的,而不是根据单个约束来计算的。 例如,在各种 "Inf指标下,一组中的所有约束条件都可以放宽,总惩罚为一个单位。

字段

MinSum = CPX_FEASOPT_MIN_SUM 
OptSum = CPX_FEASOPT_OPT_SUM 
MinInf = CPX_FEASOPT_MIN_INF 
OptInf = CPX_FEASOPT_OPT_INF 
MinQuad = CPX_FEASOPT_MIN_QUAD 
OptQuad = CPX_FEASOPT_OPT_QUAD 

枚举SolutionType

定义文件: ilcplex/ilocplexi.h

枚举 "IloCplex::SolutionType列出了参数 "IloCplex::Param::SolutionType在 "IloCplex中的取值,用于解决线性规划问题(LP)。 在设置解决方案类型时,将这些值与方法 "IloCplex::setParam(IloCplex::Param::SolutionType, value)一起使用。

有关这些参数的更多信息,请参阅《CPLEX 参数参考手册》和《CPLEX 用户手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

AutoSolution = CPX_AUTO_SOLN 
BasicSolution = CPX_BASIC_SOLN 
NonBasicSolution = CPX_NONBASIC_SOLN 

枚举StringParam

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::StringParam lists the parameters of CPLEX that require a character string as a value. 将这些值与 "IloCplex::getParam和 "IloCplex::setParam方法一起使用。

有关这些参数的更多信息,请参阅《CPLEX 参数参考手册》和《CPLEX 用户手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

StringParam_MIN = 0 
StringParam_MAX = INT_MAX 
CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起

CPXDEPRECATEDENUMVAL = (12090000) = CPX_PARAM_EPMRK已废弃: 自V12.9.0起


枚举TuningStatus

定义文件: ilcplex/ilocplexi.h

This enumeration lists the values that are returned by tuneParam.

字段

TuningComplete = 0 
TuningAbort = CPX_TUNE_ABORT 
TuningTimeLim = CPX_TUNE_TILIM 
TuningDetTimeLim = CPX_TUNE_DETTILIM 

枚举VariableSelect

定义文件: ilcplex/ilocplexi.h

The enumeration IloCplex::VariableSelect lists values that the parameter IloCplex::VarSel can assume in IloCplex. 将这些值与 "IloCplex::setParam(IloCplex::VarSel, value)方法一起使用。

有关这些参数的更多信息,请参见 "CPLEX 参数参考手册和 "CPLEX 用户手册。 另请参阅《CPLEX 用户手册》了解其使用示例。

另请参阅:

字段

MinInfeas = CPX_VARSEL_MININFEAS 
DefaultVarSel = CPX_VARSEL_DEFAULT 
MaxInfeas = CPX_VARSEL_MAXINFEAS 
Pseudo = CPX_VARSEL_PSEUDO 
Strong = CPX_VARSEL_STRONG 
PseudoReduced = CPX_VARSEL_PSEUDOREDUCED 

枚举WriteLevelType

定义文件: ilcplex/ilocplexi.h

该枚举的值指定 CPLEX 在将 MIP 起点和解写入格式化文件时包含多少细节。

字段

Auto = CPX_WRITELEVEL_AUTO 
AllVars = CPX_WRITELEVEL_ALLVARS 
DiscreteVars = CPX_WRITELEVEL_DISCRETEVARS 
NonzeroVars = CPX_WRITELEVEL_NONZEROVARS 
NonZeroDiscreteVars = CPX_WRITELEVEL_NONZERODISCRETEVARS 

内部类型定义细节

TypedefBasisStatusArray

定义文件: ilcplex/ilocplexi.h

IloArray< BasisStatus > BasisStatusArray

该类型为 "IloCplex::BasisStatus定义了一个数组类型。 基础状态数组的完整限定名称是 "IloCplex::BasisStatusArray

另请参阅:

TypedefBranchDirectionArray

定义文件: ilcplex/ilocplexi.h

IloArray< BranchDirection > BranchDirectionArray

该类型为 "IloCplex::BranchDirection定义了一个数组类型。 分支方向数组的完整限定名称是 "IloCplex::BranchDirectionArray

另请参阅:

Typedef 'ConflictStatusArray

定义文件: ilcplex/ilocplexi.h

IloArray< ConflictStatus > ConflictStatusArray

该类型为 "IloCplex::ConflictStatus定义了一个数组类型。

另请参阅:

类型定义 状态

定义文件: ilcplex/ilocplexi.h

CplexStatus状态

An enumeration for the class IloAlgorithm.

IloAlgorithm是 Concert Technology 算法的基类,"IloAlgorithm::Status"是一个枚举,其范围仅限于 "IloAlgorithm类。 成员函数 "IloAlgorithm::getStatus返回一个状态,显示当前模型和解决方案的相关信息。

Unknown 指定算法没有关于模型解决方案的信息。

Feasible表示算法找到了可行解(即变量赋值满足模型的约束条件,但不一定是最优解)。 成员函数 "IloAlgorithm::getValue可以访问这个可行的解决方案。

Optimal表示算法找到了最优解(即变量的赋值满足模型的所有约束条件,并被证明是模型目标的最优解)。 成员函数 "IloAlgorithm::getValue可以访问该最优解。

Infeasible表示算法证明模型不可行,即无法找到满足模型中所有约束条件的变量赋值。

Unbounded 指定算法已证明该模型无界限。 为了检查模型是否可行,可以删除目标,然后重新优化。

InfeasibleOrUnbounded 指定模型不可行或无界限。

Error表示发生了错误,在支持异常的平台上,表示抛出了异常。

另请参阅: