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

IloCplex派生自IloAlgorithm类。 用它来解决数学编程模型,如
算法(即 "IloAlgorithm的实例)在环境中提取模型。 算法提取的模型被称为主动模型。
更确切地说,"IloCplex要解决的模型应该只包含以下列表中的 "IloExtractable对象:
IloNumVar及其扩展名 "IloIntVar和 "IloSemiContVarIloRange类型的对象 IloConstraint,形式为 "expr1关系为 "expr2,其中关系为 "=="、">="、"<="或 "!=之一 IloObjective类型的对象 IloConversion类型的对象 IloSOS1或 "IloSOS2类型的对象 由 "IloCplex处理的约束条件和目标函数中使用的表达式是由所列类型的变量构建的,可以是线性表达式,也可以是二次表达式。 此外,表达式还可以包含以下结构:
IloMinIloMaxIloAbsIloPiecewiseLinear只计算 0(零)和 1(一)的表达式称为布尔表达式。 这种表达方式还支持
operator !operator &&或 "IloAndoperator ||或等价的 "IloOr此外,布尔表达式不仅可以由变量构建,还可以由约束条件构建。
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::getNcols,用于查询 A 的列数、IloCplex::getNrows用于查询 A 的行数,即线性约束的数目、IloCplex::getNQCs,用于查询二次约束条件的数量、IloCplex::getNNZs用于查询 A 中非零元素的个数,以及IloCplex::getNSOSs,用于查询特殊有序集合(SOS)的数量。有关活动模型的其他信息可通过迭代器获取,迭代器定义在提取或活动模型中不同类型的建模对象上。
IloCplex实际上将所有模型都视为 MIQCP 模型。 也就是说,它允许最一般的情况,尽管求解算法有效地利用了特殊情况,例如利用公式中没有二次项的优势。 方法 "IloCplex::solve首先求解 MIQCP 模型的根松弛,其中所有的积分约束和 SOS 都被忽略。 如果模型没有积分约束或 SOS,那么一旦求解了根松弛,优化就完成了。 否则,"IloCplex将使用分支和切割程序重新引入积分约束或 SOS。 有关分支和切割的更多信息,请参阅《CPLEX 用户手册》。
大多数用户只需调用 "solve即可解决模型问题。 不过,对于需要更多控制的用户来说,还可以使用几个参数。 这些参数记录在《CPLEX 参数参考手册》中。 也许最重要的参数是 "IloCplex::RootAlg,它决定了用于求解根松弛的算法。 根据类 "IloCplex::Algorithm的定义,可能的设置有
IloCplex会自动选择一种算法。 这是缺省设置。IloCplex默认为 "IloCplex::Auto设置。IloCplex默认为 "IloCplex::Auto设置。您还可以使用大量其他参数来控制优化器的算法。 更多信息,请参见 "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::PreInd,IloCplex::PreDual,IloCplex::AggInd和IloCplex::AggFill.预分解完成后,"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::Cliques,IloCplex::Covers,IloCplex::FlowCovers,IloCplex::GUBCovers,IloCplex::FracCuts,IloCplex::MIRCuts,IloCplex::FlowPaths,IloCplex::ImplBd和IloCplex::DisjCuts.在搜索过程中,您可以通过回调(参见 "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 用户手册》中的目标。
另请参阅:
IloCplex::Algorithm,IloCplex::BasisStatus,IloCplex::BasisStatusArray,IloCplex::BranchDirection,IloCplex::BranchDirectionArray,IloCplex::CallbackI,IloCplex::DeleteMode, IloCplex::DualPricing :DualPricing,IloCplex::Exception,IloCplex::MIPEmphasisType,IloCplex::NodeSelect,IloCplex::PrimalPricing,IloCplex::Quality,IloCplex::CplexStatus,IloCplex::VariableSelect,IloCplex::GoalI
| 属性摘要 | |
|---|---|
public static const char *const | BendersAnnotation |
public static const int | IncumbentId |
从 "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::BasisStatusArray | |
| IloCplex::BranchDirectionArray | |
| IloCplex::ConflictStatusArray | |
| IloCplex::Status | An enumeration for the class IloAlgorithm. |
| 属性详情 |
|---|
这个常量定义了一个注解的名称,该注解指定了一个本德斯分解。
在需要求解指数的方法中,该常数可确定 MIP 的现存解。
| 方法详细信息 |
|---|
该构造函数创建一个 CPLEX 算法。 新的 "IloCplex实例没有加载(或提取)"IloModel。
该构造函数创建一个 CPLEX 算法,并提取该算法的 "model。
当您创建一个算法(例如 "IloCplex的实例)并为其提取一个模型时,您可以写这一行:
IloCplex cplex(model);
或这两行:
IloCplex cplex(env); cplex.extract(model);
该构造函数在给定环境中为用户编写的分布式应用程序创建远程CPLEX 对象。
该构造函数只能通过 CPLEX 的 C++ 应用程序接口 (API) 使用。 换句话说,IBM ILOG CPLEX Optimization Studio 的其他组件无法提供该功能。
参数 "transport指定 CPLEX 使用的通信协议。 有关可接受的值,请参阅用户手册。
该构造函数被定义为一个模板,其模板参数 "I指定了参数 "argc的类型(通常为 "int)。 作为一个模板,构造函数的技术优势在于,除非你使用它,否则它不会创建任何代码。 因此,除非实际使用该构造函数,否则它不会生成对远程对象库的任何引用。
| 环境 | 进入 CPLEX 环境的入口。 |
| 运输 | 传输协议类型。 |
| 参数 | 传输协议特有的参数计数。 |
| 参数 | 传输协议特有的参数向量。 |
该构造函数为用户编写的分布式应用程序中的给定模型创建远程CPLEX 对象。
该构造函数只能通过 CPLEX 的 C++ 应用程序接口 (API) 使用。 换句话说,IBM ILOG CPLEX Optimization Studio 的其他组件无法提供该功能。
参数 "transport指定 CPLEX 使用的通信协议。 参数 "transport的可接受值是这些类型之一:
localCPLEX 会忽略参数 "argc和 "argv,并返回 CPLEX 可调用库本地实例的句柄。
processCPLEX 创建一个新进程,并将 CPLEX 可调用库实例化。 CPLEX 通过管道或套接字与新创建的进程通信。 管道可以命名,也可以不命名。
mpiCPLEX 假定您的应用程序正在运行消息传递接口 (MPI),并使用 MPI 在进程间通信。
该构造函数被定义为一个模板,其模板参数 "I指定了参数 "argc的类型(通常为 "int)。 作为一个模板,构造函数的技术优势在于,除非你使用它,否则它不会创建任何代码。 因此,除非实际使用该构造函数,否则它不会生成对远程对象库的任何引用。
| 模型 | 指向模型的句柄。 |
| 运输 | 传输协议类型。 |
| 参数 | 传输协议特有的参数计数。 |
| 参数 | 传输协议特有的参数向量。 |
首选 "IloCplex::addLazyConstraint方法,而不是此方法。
该方法将 "con作为剪切对象添加到调用的 "IloCplex对象中。 剪切不会像模型中的常规约束一样被提取出来,而只会在调用 "addCut方法时才会复制剪切。 因此,"con可能会在调用 "addCut后被删除或修改,但调用 "IloCplex的对象不会收到有关更改的通知。
当从提取的模型中删除列时,所有切分也会被删除,如果需要考虑这些切分,则需要重新提取。 削减不是根本问题的一部分,而是根据需要加以考虑。 用 "IloCplex计算出的解保证满足用这种方法添加的所有切分。
首选 "IloCplex::addLazyConstraints方法,而不是此方法。
该方法将 "con中的约束条件作为切分添加到调用的 "IloCplex对象中。 关于 "IloCplex::addCut的意见同样适用于数组 "con中给出的每个切分。
为指定的整数变量创建并安装已命名的多样性筛选器,并指定下限值、上限值、参考值和权重。
差异性过滤器驱动在多个解法中搜索满足过滤器中指定的差异性度量的新解法。
此差异性度量仅适用于二进制变量。
可能的新解法与参考集比较。 必须指定要比较的变量。 参数 "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。 |
该方法返回已添加过滤器的索引。
此方法为指定的数值变量创建并安装一个已命名的多样性筛选器,该筛选器具有指定的上下限、参考值和权重。
差异性过滤器驱动在多个解法中搜索满足过滤器中指定的差异性度量的新解法。
此差异性度量仅适用于二进制变量。
可能的新解法与参考集比较。 必须指定要比较的变量。 参数 "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。 |
该方法返回已添加过滤器的索引。
这是一种先进的方法。 高级方法通常要求对 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,可以进一步减少预化量
这是一种先进的方法。 高级方法通常要求对 CPLEX 使用的算法有深刻的理解。 因而它们会提高应用程序中错误行为的风险,而这种行为可能难以调试。 因此,团队鼓励您仔细考虑是否可以用其他方法来完成同样的任务。
该方法为调用的 "IloCplex对象添加一组懒惰约束。 对 "IloCplex::addLazyConstraint的观察结果适用于数组 "con中的每个懒惰约束。
提示为获得最佳性能,请在一次调用中添加所有懒约束,而不是逐个添加。
只有尚未作为模型一部分提取的约束条件才能作为懒约束条件添加。 如果试图将任何已提取到模型中的约束添加为懒约束,则会出现异常 "IloCplex::ExtractedConstraintException。
在当前问题中添加一个已命名的 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();
使用指定的下限、上限、整数变量和权重创建一个命名范围过滤器,将过滤器添加到调用模型的解池中,并返回过滤器的索引。
范围筛选器会将多个解决方案的搜索导向满足筛选器中范围线性表达式指定标准的新解决方案。 范围筛选器为由数组 "vars中指定的变量和参数 "weights中指定的系数值组成的线性表达式设置下限和上限,就像这样:
下限 <= sum{weights{weights[i] times vars[i]}<= 上限
范围筛选器适用于任何类型的变量,即二进制变量、一般整数变量和连续变量。
该方法返回已添加过滤器的索引。
此方法使用指定的下截点、上截点、数字变量和权重创建一个命名范围过滤器,将过滤器添加到调用模型的解池中,并返回其索引。
范围筛选器会将多个解决方案的搜索导向满足筛选器中范围线性表达式指定标准的新解决方案。 范围筛选器为由数组 "vars中指定的变量和参数 "weights中指定的系数值组成的线性表达式设置下限和上限,就像这样:
下限 <= sum{weights{weights[i] times vars[i]}<= 上限
范围筛选器适用于任何类型的变量,即二进制变量、一般整数变量和连续变量。
该方法返回已添加过滤器的索引。
这是一种先进的方法。 高级方法通常要求对 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。
这是一种先进的方法。 高级方法通常要求对 CPLEX 使用的算法有深刻的理解。 因而它们会提高应用程序中错误行为的风险,而这种行为可能难以调试。 因此,团队鼓励您仔细考虑是否可以用其他方法来完成同样的任务。
This method adds a set of user cuts to the invoking IloCplex object. IloCplex::addUserCut中的观察结果适用于数组 "con中的每个用户切口。
提示为获得最佳性能,请在一次调用中添加所有剪切,而不是逐个添加。
只有尚未作为模型一部分提取的约束条件才能作为用户切分添加。 如果尝试添加已提取为模型一部分的约束条件,会出现异常 "IloCplex::ExtractedConstraintException。
该方法用于创建并返回一个目标,将 "eval定义的节点选择策略应用到 "goal定义的搜索策略中。 生成的目标将使用 "eval"定义的节点策略来处理 "goal生成的子树。
该方法可用于为模型变量计算更严格的边界,并检测提取到调用 "IloCplex对象的模型中的多余约束。 对于参数 "vars指定的每个变量,该方法将返回数组 "redlb和 "redub中相应元素的可能收紧的边界。 同样,对于参数 "rngs指定的每个约束条件,该方法将返回一个布尔值,报告该约束条件在数组 "redundant的相应元素中的模型中是否多余。
对于半连续或半整数变量,此方法生成的是变量的下界,而不是半连续或半整数下界。 如果该方法得出的下限小于或等于零,那么变量将作为半连续或半整数变量存在。 相反,如果这种方法得出的下界严格大于零,那么基本预演的结论就是可以从变量域中消除零。 因此,可以将变量的类型从半连续改为连续,或从半整数改为整数。 之后,就可以在不影响模型可行区域的情况下使用收紧后的约束条件了。
通过为指定变量分配相应的值和指定的努力程度,改变由索引指定的 MIP 起点。
为指定变量分配相应的值,从而更改由其索引指定的 MIP 起点。
This method deletes all cuts that have previously been added to the invoking IloCplex object with the methods addCut and addCuts.
这是一种先进的方法。 高级方法通常要求对 CPLEX 使用的算法有深刻的理解。 因而它们会提高应用程序中错误行为的风险,而这种行为可能难以调试。 因此,团队鼓励您仔细考虑是否可以用其他方法来完成同样的任务。
该方法将删除所有通过方法 "IloCplex::addLazyConstraint和 "IloCplex::addLazyConstraints添加到调用对象 "IloCplex中的懒约束。
该方法等同于 "IloCplex::clearCuts。
该方法可用于取消当前提取到调用 "IloCplex对象的模型。
这是一种先进的方法。 高级方法通常要求对 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.
从字符串中读取虚拟机配置。
xmlstring的值必须是符合 VMC 文件格式的字符串。 必须使用以单个 "NUL字节结束字符串的编码方式给出。 如果能成功解析 "xmlstring,则会将相应配置安装到 "IloCplex实例中。 如果出错,先前安装的虚拟机配置将保持不变。
如果在 "IloCplex实例中安装了虚拟机配置,且提取的模型是 MIP,那么该实例的 "solve方法就会使用并行分布式 MIP 优化来解决问题。
该函数以模板形式实现,因此除非实际使用该函数,否则不会创建对 CPLEX 分布式并行 MIP API 的引用。 其参数类型必须可转换为 "char const *。
另请参阅:
| xmlstring | 包含虚拟机配置的字符串。 |
此方法将删除变量 "var中已有的分支方向赋值。
该方法会删除数组 "var中所有变量的分支方向赋值。
从索引指定的 MIP 起始点开始,删除指定数量的 MIP 起始点。
删除提取模型中的所有名称。
执行此方法只会影响 "IloCplex模型提取副本中存储的名称,而不会影响原始 Concert 模型。 Concert 模型中的名称不受此方法影响。 随后,"IloExtractable类提取实例的名称更改将继续在提取的 "IloCplex模型中进行跟踪。 这一约定意味着,在首次更改此类名称时,"IloCplex会为 "IloCplex对象(但不包括 Concert 模型)中的所有其他可提取内容创建默认名称。
从解决方案池中删除指定的过滤器。
该方法会删除数组 "var中所有变量的现有优先级赋值。
此方法将删除变量 "var中任何现有的优先级赋值。
从解决方案池中删除指定的解决方案,并重新编号池中剩余解决方案的索引。
从解决方案池中删除一系列解决方案,并重新编号池中剩余解决方案的索引。
删除此实例中安装的任何虚拟机配置 (VMC)。
这是一种先进的方法。 高级方法通常要求对 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 | 输出阵列。 函数将自动调整数组 " |
| y | 输出阵列。 函数将自动调整数组 " |
矢量 "z的 "y'b - y'A z值定义为:对于所有变量 "j,如果 "y'A[j] > 0为 "z[j] = ub[j],如果 "y'A[j] < 0为 "z[j] = lb[j]"。
该方法将活动模型(即调用算法提取的模型)写入文件 "filename。 文件格式由文件名的扩展名决定。 可识别以下扩展名:
.sav.mps.lp.sav.gz.mps.gz.lp.gz.bz2如果没有为变量或范围指定名称(即 "IloExtractable::getName方法为该变量或范围返回空值),"IloCplex在将模型写入文件(或优化日志)时将使用默认名称。 默认名称为IloXj变量)和IloCi,i 和 j 是 "IloCplex的内部索引)。
更多详情请参见参考手册 "CPLEX 文件格式,有关文件格式的其他信息请参见 "CPLEX 用户手册。
该方法是 "IloCplex::feasOpt的异步版本。 换句话说,该方法执行与 "IloCplex::feasOpt相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::FeasOptHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "FeasOptHandle::joinFeasOpt方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。
另请参阅:
| cts | 请参阅 |
| 预置 | 请参阅 |
| 异步 | 指示操作是同步还是异步的标志。 |
该方法是 "IloCplex::feasOpt的异步版本。 换句话说,该方法执行与 "IloCplex::feasOpt相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::FeasOptHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async为 "false,则操作同步执行。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "FeasOptHandle::joinFeasOpt方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。
另请参阅:
| rngs | 请参阅 |
| rnglb | 请参阅 |
| rngub | 请参阅 |
| 异步 | 指示操作是同步还是异步的标志。 |
该方法是 "IloCplex::feasOpt的异步版本。 换句话说,该方法执行与 "IloCplex::feasOpt相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::FeasOptHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "FeasOptHandle::joinFeasOpt方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。
另请参阅:
| 变量 | 请参阅 |
| varlb | 请参阅 |
| varub | 请参阅 |
| 异步 | 指示操作是同步还是异步的标志。 |
该方法是 "IloCplex::feasOpt的异步版本。 换句话说,该方法执行与 "IloCplex::feasOpt相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::FeasOptHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用此方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "FeasOptHandle::joinFeasOpt方法加入返回句柄。 同样,您必须通过连接才能查询返回值。
另请参阅:
| 变量 | 请参阅 |
| varlb | 请参阅 |
| varub | 请参阅 |
| 异步 | 指示操作是同步还是异步的标志。 |
该方法是 "IloCplex::feasOpt的异步版本。 换句话说,该方法执行与 "IloCplex::feasOpt相同的操作,但可以与远程对象异步运行。 该方法返回一个 "IloCplex::FeasOptHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "FeasOptHandle::joinFeasOpt方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。
另请参阅:
| rngs | 请参阅 |
| rnglb | 请参阅 |
| rngub | 请参阅 |
| 变量 | 请参阅 |
| varlb | 请参阅 |
| varub | 请参阅 |
| 异步 | 指示操作是同步还是异步的标志。 |
该方法是 "IloCplex::feasOpt的异步版本。 换句话说,该方法执行与 "IloCplex::feasOpt相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::FeasOptHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,您仍然必须通过 "FeasOptHandle::joinFeasOpt方法连接返回的句柄,以清理资源并防止内存泄漏。 同样,您仍然必须通过连接才能查询返回值。
另请参阅:
| rngs | 请参阅 |
| rnglb | 请参阅 |
| rngub | 请参阅 |
| 变量 | 请参阅 |
| varlb | 请参阅 |
| varub | 请参阅 |
| 异步 | 标志,用于指示操作是同步执行还是异步执行。 |
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不会影响此方法。 如果您想研究这些参数带来的不可行性,可以考虑在调用此方法之前,在模型中添加一个目标函数约束,以加强这些参数的作用。
另请参阅:
通过放宽 "rngs中指定的约束条件的边界,尝试找到活动模型的最小可行放宽。 首选项在输入的 "rnglb和 "rngub中指定。
参数 "CutUp、"CutLo、"ObjULim、"ObjLLim不会影响此方法。 如果您想研究这些参数带来的不可行性,可以考虑在调用此方法之前,在模型中添加一个目标函数约束,以加强这些参数的作用。
如果该方法找到了可行的松弛,则返回 "IloTrue。
通过放宽 "vars中指定的变量的边界(如 "varlb和 "varub"中指定的变量),尝试找到活动模型的最小可行放宽。
参数 "CutUp、"CutLo、"ObjULim、"ObjLLim不会影响此方法。 如果您想研究这些参数带来的不可行性,可以考虑在调用此方法之前,在模型中添加一个目标函数约束,以加强这些参数的作用。
如果该方法找到了可行的松弛,则返回 "IloTrue。
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不会影响此方法。 如果您想研究这些参数带来的不可行性,可以考虑在调用此方法之前,在模型中添加一个目标函数约束,以加强这些参数的作用。
另请参阅:
long-valued annotation with number specified by num. 如果没有这样的注释,该方法会返回一个注释,方法 "isValid会返回 false。 在注释被删除时,注释的标识号将重新编号。long值注释的注释对象。 如果没有这样的注释,该方法会返回一个注释,方法 "isValid会返回 false。IloNum-valued annotation with number specified by num. 如果没有这样的注释,该方法会返回一个注释,方法 "isValid会返回 false。 在注释被删除时,注释的标识号将重新编号。IloNum值注释的注释对象。 如果没有这样的注释,该方法会返回一个注释,方法 "isValid会返回 false。这种方法释放了预先解决的问题。 在参数 "Reduce的默认设置下,当找到最优解时,预解问题将被释放;但是,如果 "Reduce设置为 1(主要还原)或 2(对偶还原),则不会释放预解问题。 在这种情况下,必要时可使用函数 "freePresolve手动释放。
返回调用 "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;
另请参阅:
此方法返回用于求解最新模型的算法类型(如果该模型不是 MIP)。
value[i]是分配给约束条件 "ctr[i]的值。value[i]是分配给变量 "var[i]的值。value[i]是分配给变量 "var[i]的值。ctr的注释值。obj的注释值。var的注释值。var的注释值。ctr的值。 value[i]是分配给约束条件 "ctr[i]的值。value[i]是分配给变量 "var[i]的值。value[i]是分配给变量 "var[i]的值。ctr的注释值。obj的注释值。var的注释值。var的注释值。计算 A 乘以 X,其中 A 是相应的 LP 约束矩阵。
对于 "con中的约束条件,该方法会将表达式的值,或者说,将调用 "IloCplex对象的当前解的约束条件的活动水平放入数组 "val中。 数组 "val的大小与数组 "con相同,而 "val[i]将包含约束条件 "con[i]的松弛值。 con中的所有范围必须是提取模型的一部分。
计算 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必须是提取模型的一部分。
此方法返回为约束条件 "con创建的隐式松弛变量或人工变量的基础状态。
本方法返回变量 "var的基础状态。
本方法返回变量 "var的基础状态。
该方法将 "var中每个变量的基础状态放入数组 "cstat的相应元素中,并将 "con(范围或约束数组)中每行的状态放入数组 "rstat的相应元素中。 相应调整数组 "rstat和 "cstat的大小。
该方法将 "con中每个约束的基础状态放入数组 "stat的相应元素中。 相应调整数组 "stat的大小。
该方法将 "var中每个变量的基础状态放入数组 "stat的相应元素中。 相应调整数组 "stat的大小。
这种方法可以获取分支切割树中所有剩余开放节点的当前已知最佳边界。
将为最小化问题将其计算为所有剩余未探索节点的最小目标函数值。 类似地,将为最大化问题将其计算为所有剩余未探索节点的最大目标函数值。
对于常规的 MIP 优化,该值也是 MIP 问题最优解值的已知最佳约束。 事实上,当一个问题已经得到最优解时,这个值就会与最优解值相匹配。
不过,对于 "populate方法,如果 CPLEX 已将模型求解至最优,但仍在继续搜索其他解,则该值也可能超过最优解值。
对于给定的变量集 "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(零)值。
返回约束 "con的冲突状态。
可能的返回值是
IloCplex::ConflictMember已证明约束参与了冲突。
IloCplex::ConflictPossibleMember约束尚未证明不参与冲突;换句话说,它可能参与,也可能不参与。
con约束必须是先前已传递给 "refineConflict和 "IloAnd约束的约束。
返回 "cons中指定的每个约束的冲突状态。
元素 "i是约束 "cons[i]的冲突状态,可以有以下值:
IloCplex::ConflictMember已证明约束参与了冲突。
IloCplex::ConflictPossibleMember约束尚未证明不参与冲突;换句话说,它可能参与,也可能不参与。
cons中传递的约束条件必须与之前传递给 "refineConflict的约束条件相同,包括 "IloAnd约束条件。
此方法返回调用算法的 CPLEX 状态。 有关 CPLEX 的可能值,请参见枚举类型 "IloCplex::CplexStatus。
另请参阅《CPLEX 用户手册》中的 "解读解质量"主题,了解与不可行或无约束相关状态的更多信息。
该方法用于访问上一次调用 "IloCplex::solve时出现错误终止时已解决的最后一个节点问题的解决状态。 如果正常终止,方法 "IloCplex::getCplexSubStatus会返回 "0。 如果调用的 "IloCplex对象是连续的,则相当于方法 "IloCplex::getCplexStatus返回的状态。
该方法返回一个时间戳。
要测量操作的起点和终点之间的经过时间(以秒为单位),可取起点的时间戳;取终点的时间戳;用终点的时间戳减去起点的时间戳。
根据参数 "ClockType的不同,该计算可测量挂钟时间(也称为实时时间)或 CPU 时间。
时间戳记的绝对值不具有意义。
该方法返回 MIP 优化过程中使用的 MIP 截止值。 在最小化问题中,如果连续松弛的最优解值大于当前截止值,那么所有节点都会被剪除。 截止日期随现任者更新。 如果调用的 "IloCplex对象是 LP 或 QP,则此方法会根据优化意义返回 "+IloInfinity或 "-IloInfinity。
此方法返回指定 "parameter的默认设置。
本方法返回调用 "IloCplex对象的当前删除模式。
该方法以 ticks 为单位返回一个确定的时间戳。
要测量操作起点和终点之间以 ticks 为单位的确定性时间,可使用起点的确定性时间戳;使用终点的确定性时间戳;用终点的确定性时间戳减去起点的确定性时间戳。
确定性时间戳的绝对值没有意义。
该方法返回之前用 "IloCplex::setDirection或 "IloCplex::setDirections方法分配给变量 "var的分支方向。 如果没有指定方向,将返回 "IloCplex::BranchGlobal。
该方法返回之前用 "setDirection或 "setDirections方法分配给 "var所列变量的分支方向。 函数返回时,"dir[i]将包含为变量 "var[i]指定的分支方向。 如果没有为 "var[i]指定分支方向,"dir[i]将设置为 "IloCplex::BranchGlobal。
在初等单纯形算法确定问题不可行的情况下,该方法返回发散变量或约束条件。 返回的可提取对象是 "IloNumVar或 "IloConstraint对象,提取给调用 "IloCplex的优化器;如果分歧列对应的是变量,则是 "IloNumVar类型;如果分歧列对应的是约束条件的松弛变量,则是 "IloConstraint类型。
给定与解决方案池相关的多样性过滤器的索引,该方法返回该过滤器的下限值。
访问多样性筛选器中声明的参考值,该筛选器由其在解决方案池中的索引指定。
给定与解决方案池相关的多样性过滤器的索引,该方法返回该过滤器的下限值。
访问多样性筛选器中声明的权重,该权重由其在解决方案池中的索引指定。
此方法返回调用算法的当前解中与约束条件 "range相关的对偶值。
这种方法返回的值不仅对线性程序(LP)有意义,对二阶锥形程序(SOCP)也有意义。 请参阅 "CPLEX 用户手册中的主题 "在 SOCP 中获取双重价值并降低成本,了解如何将此方法返回的值用于二阶锥形程序(SOCP)。
该方法将与数组 "con中的范围相关联的双重值放入数组 "val中。 数组 "val的大小与数组 "con相同,而 "val[i]将包含约束条件 "con[i]的双重值。
该方法返回的值不仅对线性程序有意义,对二阶锥形程序(SOCP)也有意义。 请参阅《CPLEX 用户手册》中的主题 "访问 SOCP 中的双重值和降低的成本",了解如何在二阶圆锥程序中使用此方法返回的值。
访问过滤器名称指定的过滤器索引。
给定与解决方案池关联的过滤器的索引,该方法返回该过滤器的类型。
访问由索引指定的多样性筛选器的变量。
该方法返回找到当前任职者的节点编号。 如果调用的 "IloCplex对象是 LP 或 QP,则此方法返回 0(零)。
该方法返回找到当前任职者的节点编号。 如果调用的 "IloCplex对象是 LP 或 QP,则此方法返回 0(零)。
该方法将数组 "var中当前解的整数变量的不可行性值放入数组 "infeas中。 如果变量边界满足要求,则不可行性值为 0(零)。 如果不可行值为负数,则表示必须改变变量下限的数量;如果不可行值为正数,则表示 必须改变变量上限的数量。 此方法不检查整数不可行性。 数组 "infeas会自动调整为与数组 "var相同的长度,"infeas[i]将包含变量 "var[i]的不可行性值。 该方法返回 "var中所有整数变量的最大绝对不可行值。
该方法将数组 "var中数值变量的不可行性值放入数组 "infeas中。 如果变量边界满足要求,则不可行性值为 0(零)。 如果不可行值为负数,则表示必须改变变量下限的数量;如果不可行值为正数,则表示 必须改变变量上限的数量。 数组 "infeas会自动调整为与数组 "var相同的长度,"infeas[i]将包含变量 "var[i]的不可行性值。 该方法返回 "var中所有数值变量的最大绝对不可行值。
该方法将当前解决方案中 "con数组指定的约束条件的不可行性值放入 "infeas数组中。 如果约束条件得到满足,则不可行性值为 0(零)。 更具体地说,对于一个具有有限下限和上限的范围,如果不可行值为负,则表示必须改变范围下限的数量;如果不可行值为正,则表示必须改变范围上限的数量。 对于 "IloOr、"IloAnd、"IloSOS1或 "IloSOS2等更一般的约束,返回的不可行性值是通过提取查询约束创建的所有范围约束和变量的最大绝对不可行性值。 数组 "infeas的大小与数组 "range相同,"infeas[i]将包含约束条件 "range[i]的不可行性值。 该方法返回 "con中所有约束条件的最大绝对不可行值。
本方法返回当前解决方案中整数变量 "var的不可行性。 如果变量边界满足要求,则返回的不可行性值为 0(零)。 如果不可行值为负数,则表示必须改变变量下限的数量;如果不可行值为正数,则表示 必须改变变量上限的数量。 此方法不检查整数不可行性。
本方法返回当前解决方案中数值变量 "var的不可行性。 如果变量边界满足要求,则返回的不可行性值为 0(零)。 如果不可行值为负数,则表示必须改变变量下限的数量;如果不可行值为正数,则表示 必须改变变量上限的数量。
此方法返回约束条件 "code的当前解决方案的不可行性。 如果约束条件得到满足,则不可行性值为 0(零)。 更具体地说,对于一个具有有限下限和上限的范围,如果不可行值为负,则表示必须改变范围下限的数量;如果不可行值为正,则表示必须改变范围上限的数量。 对于 "IloOr、"IloAnd、"IloSOS1或 "IloSOS2等更一般的约束,返回的不可行性值是通过提取查询约束创建的所有范围约束和变量的最大绝对不可行性值。
该方法返回参数 "parameter的最大允许值。
该方法返回参数 "parameter的最小允许值。
这种方法可以获取 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|)
返回与 "mipstartindex标识的 MIP 开始相关的努力程度。 此外,如果 "vals是一个非空句柄,则会返回 "vars中所列变量的 MIPStart 值,如果变量在指定的 MIPstart 中没有相关的 MIPStart 值,则返回0.0。 如果 "isset是一个非零句柄,"isset[i]返回一个布尔值,表示是否在指定的 MIPstart 中为变量 "vars[i]提供了 MIPstart 值。
返回其名称指定的 MIP 起点的索引。
返回由索引标识的 MIP 起点名称。
该方法返回多目标优化子问题的浮点数值解信息。
此方法返回所请求的多目标优化子问题的 64 位整数值解决方案信息。
该方法返回多目标优化子问题的整数值求解信息。
该方法返回多目标问题最后一次优化过程中成功解决的子问题数量。
该方法返回从上次求解开始的障碍迭代次数。
该方法返回从上次求解开始的障碍迭代次数。
此方法返回调用对象 "IloCplex中活动模型的矩阵表示中二进制变量的个数。
该方法返回为调用算法提取的列数。 该函数返回的数量与提取的模型中 "IloNumVar类型及其子类对象的数量可能存在差异。 这是因为非线性约束和表达式的自动转换可能会引入新的变量。
如果在求解 LP 或 QP 时使用了带交叉的障碍,本方法返回最后一次调用方法 "solve或 "solveFixed时交叉中的双重交换操作数。
如果在求解 LP 或 QP 时使用了带交叉的障碍,本方法返回最后一次调用方法 "solve或 "solveFixed时交叉中的双重交换操作数。
此方法返回上次调用 "IloCplex::solve或 "IloCplex::solveFixed时,如果在求解 LP 或 QP 时使用了带交叉的屏障,则交叉中的双推操作次数。
此方法返回上次调用 "IloCplex::solve或 "IloCplex::solveFixed时,如果在求解 LP 或 QP 时使用了带交叉的屏障,则交叉中的双推操作次数。
如果在求解 QP 的 LP 时使用了带有交叉的障碍,则此方法返回上次调用方法 "IloCplex::solve或 "IloCplex::solveFixed的交叉中的基元交换操作数。
如果在求解 QP 的 LP 时使用了带有交叉的障碍,则此方法返回上次调用方法 "IloCplex::solve或 "IloCplex::solveFixed的交叉中的基元交换操作数。
如果在求解 LP 或 QP 时使用了带交叉的障碍,则此方法返回上次调用方法 "IloCplex::solve或 "IloCplex::solveFixed的交叉中的主推操作次数。
如果在求解 LP 或 QP 时使用了带交叉的障碍,则此方法返回上次调用方法 "IloCplex::solve或 "IloCplex::solveFixed的交叉中的主推操作次数。
此方法返回上一次混合整数优化结束时使用的指定类型切分的数量。 如果调用的 "IloCplex对象不是 MIP,则返回 0。
本方法返回调用 "IloCplex对象的当前解中对偶超基本变量的个数。
返回当前与解决方案池关联的过滤器数量。
该方法返回为调用算法从活动模型中提取的指标约束的数量。
此方法返回调用 "IloCplex对象中活动模型的矩阵表示中整数变量的个数。
此方法返回调用算法中最后一次调用方法 "IloCplex::solve时的迭代次数。
此方法返回调用算法中最后一次调用方法 "IloCplex::solve时的迭代次数。
该方法返回使用方法 "IloCplex::addLazyConstraint和 "IloCplex::addLazyConstraints向调用对象 "IloCplex添加的懒约束的数量。
返回与当前问题相关的 MIP 开始次数。
此方法返回当前解决方案中已处理的分支切割节点数。 如果调用的 "IloCplex对象不是 MIP,则返回 0。
此方法返回当前解决方案中已处理的分支切割节点数。 如果调用的 "IloCplex对象不是 MIP,则返回 0。
此方法返回当前解决方案中仍待处理的分支切割节点数。 如果调用的 "IloCplex对象不是 MIP,则返回 0。
此方法返回当前解决方案中仍待处理的分支切割节点数。 如果调用的 "IloCplex对象不是 MIP,则返回 0。
此方法返回从调用算法的约束矩阵 A 中提取的非零点数。
此方法返回从调用算法的约束矩阵 A 中提取的非零点数。
如果使用单纯形法求解连续模型,该方法将返回最后一次调用 "IloCplex::solve或 "IloCplex::solveFixed时第一阶段的迭代次数。
如果使用单纯形法求解连续模型,该方法将返回最后一次调用 "IloCplex::solve或 "IloCplex::solveFixed时第一阶段的迭代次数。
此方法返回调用 "IloCplex对象的当前解中原始超基本变量的个数。
该方法返回为调用算法从活动模型中提取的二次约束的数量。 这个数字可能与活动模型中的约束条件总数不同,因为线性约束条件不在此函数中考虑。
另请参阅:
该方法返回为调用算法提取的行数。 该函数返回的数量与提取的模型中 "IloRange"和 "IloConstraint"的数量可能存在差异。 这是因为 "getNrows方法没有考虑二次约束,而非线性约束和表达式的自动转换可能会引入新的约束。
另请参阅:
本方法返回调用对象 "IloCplex中活动模型矩阵表示中的半连续变量数。
此方法返回调用 "IloCplex对象中活动模型的矩阵表示中半整数变量的个数。
此方法返回用算法类型 "IloCplex::Sifting求解最后一个 LP 所执行的筛选迭代次数,或者,等价地,返回为其求解的工作 LP 的数量。
此方法返回用算法类型 "IloCplex::Sifting求解最后一个 LP 所执行的筛选迭代次数,或者,等价地,返回为其求解的工作 LP 的数量。
该方法返回用算法类型 "IloCplex::Sifting求解最后一个 LP 时,为实现基元可行性而进行的筛选迭代次数。
该方法返回用算法类型 "IloCplex::Sifting求解最后一个 LP 时,为实现基元可行性而进行的筛选迭代次数。
该方法返回为调用算法提取的 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.
This method returns the number of user cuts added to the invoking IloCplex object with the methods IloCplex::addUserCut and IloCplex::addUserCuts.
该方法返回当前运行 CPLEX 的平台上的逻辑内核数量。
该方法返回已提取到调用实例 "IloCplex IloObjective实例。 如果没有提取目标,该方法将返回一个空句柄。
如果只需要目标值的当前值,例如在回调中使用,可以考虑使用这些方法之一:
该方法对数组 "vars中指定的变量进行客观灵敏度分析。 当该方法返回 "lower[i]和 "upper[i]时,将包含变量 "vars[i]的目标函数系数在不影响最优解的情况下所能达到的最小值和最大值。 lower和 "upper数组的大小将调整为 "vars数组的大小。 如果不需要任何信息,则可以为相应的数组参数传递 0(零)。
该成员函数返回以 "soln为索引的解池成员的目标函数数值。 soln参数可以省略或赋值为-1,以便访问当前解决方案。
本方法返回调用算法中 "parameter的当前设置。
有关这些参数的更多信息,请参阅《CPLEX 参数参考手册》和《CPLEX 用户手册》。 另请参阅《CPLEX 用户手册》了解其使用示例。
返回一个参数集,显示已更改默认值的参数。
如果方法失败,就会抛出 "IloException或其派生类的异常。
该方法返回先前用 "setPriority或 "setPriorities方法分配给 "var所列变量的查询分支优先级。 函数返回时,"pri[i]将包含为变量 "var[i]分配的优先级值。 如果没有为 "var[i]指定优先级,"pri[i]将包含 0(零)。
该方法返回之前用 "setPriority或 "setPriorities方法分配给变量 "var的优先级。 如果没有分配优先级,则返回 0(零)。
对于二次约束程序 (QCP),该方法以稀疏向量形式返回二次约束 "range的对偶松弛向量。
对偶松弛向量在 "vals和 "vars"中作为稀疏向量返回。 该方法将根据稀疏向量中非零元素的个数调整两个数组的大小。 方法返回时,"vals只保留非零值,"vals[i]是变量 "vars[i]在 "range的对偶松弛向量中的系数。
只有当求解的问题是二次约束程序 (QCP) 时,该方法返回的值才有效。
| 范围 | 要查询对偶松弛向量的二次约束条件。 |
| 瓶盖 | 存储对偶松弛向量非零系数的数组。 |
| 变量 | 存储与 " |
这些方法会返回所请求的解决方案池成员的质量度量值。 使用值为-1的 "soln参数,返回当前解决方案的质量度量值。
有些质量衡量标准与变量或制约因素有关。 例如,"IloCplex::MaxPrimalInfeas与出现最大不可行性(违反约束)的变量或约束相关。 如果还需要这些信息,可以将指向 "IloNumVar或 "IloConstraint实例的指针作为可选参数传递,指定相关变量或范围的写入位置。 但是,如果约束条件是隐式创建的(例如,由于自动线性化),这些参数将返回一个空句柄。
这些方法会返回所请求的质量测量值。
对于除 kappa 统计量之外的任何质量度量,CPLEX 问题对象中都必须有一个解决方案,尽管不一定是可行的或最优的解决方案。 您可以在没有解决方案的情况下查询 kappa 统计量,但必须满足以下条件:
IloCplex::Param::MIP::Strategy::KappaStats。否则(即如果这些条件不成立),CPLEX 会抛出异常,返回错误 "CPXERR_NO_KAPPASTATS,说明没有可用的 kappa 统计量。
有些质量衡量标准与变量或制约因素有关。 例如,"IloCplex::MaxPrimalInfeas与出现最大不可行性(违反约束)的变量或约束相关。 如果还需要这些信息,可以将指向 "IloNumVar或 "IloConstraint实例的指针作为可选参数传递,指定相关变量或范围的写入位置。 但是,如果约束条件是隐式创建的(例如,由于自动线性化),这些参数将返回一个空句柄。
访问由索引指定的范围筛选器中声明的系数(即权重)。
给定与解决方案池关联的范围筛选器的索引,该方法返回该筛选器的下限。
给定与解决方案池关联的范围筛选器的索引,该方法返回该筛选器的上限。
该方法对数组 "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作为相应的数组参数。
此方法会返回一个无约束方向(也称为射线),该方向与已确定为无约束问题的 LP 的当前基础相对应。 CPLEX 将无约束方向的非零值放入数组 "vals,并将提取模型的相应变量放入数组 "vars。
CPLEX 会修改这些数组,必要时还会调整它们的大小。 其中以前的任何值都将被覆盖。
此方法返回调用算法中与 "var相关的已降低成本。
此方法返回的值被定义为指定变量上约束条件的对偶乘数。
此方法返回调用算法中与 "var相关的已降低成本。
此方法返回的值被定义为指定变量上约束条件的对偶乘数。
该方法将与数组 "var中的数字变量相关的减少的费用放入数组 "val中。 数组 "val会自动调整为与数组 "var相同的长度,"val[i]将包含变量 "var[i]的降低成本。
此方法返回的值定义为指定变量的界限约束的对偶乘数。
该方法将与数组 "var中变量相关的减少的费用放入数组 "val中。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的降低成本。
此方法返回的值定义为指定变量的界限约束的对偶乘数。
该方法访问处理远程 Worker 信息消息的对象。
另请参阅:
IloCplex::setRemoteInfoHandler,IloCplex::removeRemoteInfoHandler
该方法对数组 "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(零)。
此方法返回调用算法的解决方案中与约束条件 "range相关的松弛值。 对于具有有限下限和上限的范围,松弛值包括范围表达式与其下限之间的差值。 如果省略了参数 "soln或参数值为-1,则使用当前解决方案;否则,将使用以 "soln为索引的解决方案池成员。
该方法将与数组 "con指定的约束相关的松弛值放入数组 "val中。
对于具有有限下限和上限的范围约束,松弛值由范围内表达式与其下限之间的差值构成。 如果省略了参数 "soln或参数值为-1,则使用当前解决方案;否则,将使用以 "soln为索引的解决方案池成员。 数组 "val的大小与数组 "con相同,而 "val[i]将包含约束条件 "con[i]的松弛值。
计算当前解决方案池中解决方案目标值的平均值。
访问根据解决方案池替换策略已被替换的解决方案的数量。
访问当前解决方案池中解决方案的数量。
此方法返回调用算法的状态。
有关其 CPLEX 状态,请参见方法 "IloCplex::getCplexStatus。
另请参阅《CPLEX 用户手册》中的 "解读解质量"主题,了解与不可行或无约束相关状态的更多信息。
如果在混合整数优化过程中出现错误而终止,该方法会返回用于求解 MIP 最近节点的算法类型。
该方法使用以 "soln为索引的解池成员返回目标值。 soln参数可以省略或赋值为-1,以便访问当前解决方案。
该方法使用以 "soln为索引的解决方案池成员返回表达式的值。 soln参数可以省略或赋值为-1,以便访问当前解决方案。
该方法从 "soln索引的解决方案池成员中返回 "var指定的整数变量的值。 soln参数可以省略或赋值为-1,以便访问当前解决方案。
有关适用于该方法的整数、截断和舍入的特殊考虑因素,请参阅CPLEX 优化器中的整数值、整数公差和舍入概念。
该方法从 "soln索引的解决方案池成员中返回 "var指定的数值变量的值。 soln参数可以省略或赋值为-1,以便访问当前解决方案。
该方法将数组 "var指定的整数变量的值从以 "soln为索引的解决方案池成员中放入数组 "val中。 soln参数可以省略或赋值为-1(负 1),以便获取当前解法。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。
有关适用于该方法的整数、截断和舍入的特殊考虑因素,请参阅CPLEX 优化器中的整数值、整数公差和舍入概念。
该方法将数组 "var指定的数值变量的 "soln索引的解决方案池成员值放入数组 "val中。 soln参数可以省略或赋值为-1,以便访问当前解决方案。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。
该方法将数组 "var指定的整数变量的值从以 "soln为索引的解决方案池成员中放入数组 "val中。 soln参数可以省略或赋值为-1,以便访问当前解决方案。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。
该方法将数组 "var指定的数值变量的 "soln索引的解决方案池成员值放入数组 "val中。 soln参数可以省略或赋值为-1,以便访问当前解决方案。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。
该方法将数组 "var中指定的整数变量的解值放入数组 "val中。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。
有关适用于该方法的整数、截断和舍入的特殊考虑因素,请参阅CPLEX 优化器中的整数值、整数公差和舍入概念。
该方法将数组 "var中指定的整数变量的解值放入数组 "val中。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。
有关适用于该方法的整数、截断和舍入的特殊考虑因素,请参阅CPLEX 优化器中的整数值、整数公差和舍入概念。
该方法将数组 "var中指定的数值变量的解值放入数组 "val中。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。
该方法将数组 "var中指定的数值变量的解值放入数组 "val中。 数组 "val的大小与数组 "var相同,而 "val[i]将包含变量 "var[i]的解决方案值。
该方法返回一个字符串,指明 "IloCplex的版本。
此方法以 vvrrmmff 格式返回 "IloCplex的整数版本,其中 vv 是版本号,rr 是发布时间,mm 是修改时间,ff 是固定包号。 例如,对于 CPLEX12.5.0.1 版,返回值为 12050001
IloCplex对象中是否有指定名称的 "long值注解。IloCplex对象中是否有指定名称的 "IloNum值注解。测试此实例是否已加载虚拟机配置 (VMC)。
如果该实例已加载虚拟机配置,则为true,否则为 "false。
该方法从 "filename指定的文件中读取一个模型到 "model中。 通常情况下,进入此方法时,"model是一个未提取的空模型。 调用此方法时,调用的 "IloCplex对象不会受到影响,除非 "model是其提取的模型;在调用此方法后,再调用 "IloCplex::extract,以便将导入的模型提取到调用的 "IloCplex对象中。
该方法读取文件时,会根据输入文件的要求创建新的建模对象,并将其添加到作为参数传递的 "model中已有的建模对象中。 请注意,"model中之前的建模对象不会被移除;如果需要移除,请在调用 "importModel之前明确调用 "IloModel::remove。
新创建的建模对象属于模型的环境,不属于模型本身。 因此,模型结束时,它们也不会结束。 相反,它们会留在环境中。
该方法是对 "importModel方法的简化。 该方法不提供返回特殊有序集合 (SOS) 的数组。 在已经知道不会出现 SOS 的连续模型中,可以使用这种更简单的方法。
该方法是对 "importModel方法的简化。 它不为一般约束条件(如 "IloIfThen约束条件)提供数组。 只有在知道不存在此类限制的模型中才使用这种方法。 如果存在蕴涵指示约束(在 LP 文件格式中以符号 "->表示),CPLEX 会创建一个没有 "IloIfThen约束的数学等价问题。
该方法从 "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文件中可能已添加到模型中的懒约束和用户剪切。
文件格式由文件名的扩展名决定。 可识别以下扩展名:
.sav.mps.lp.sav.gz.mps.gz.lp.gz.bz2如果调用的 "IloCplex对象中记录了二元可行解,并且可以查询,则此方法返回 "IloTrue。
如果调用算法提取的模型是 MIP(混合整数编程问题),则此方法返回 "IloTrue,否则返回 "IloFalse。 只有在模型不是 MIP 的情况下,用于访问对偶和降低成本基础的成员函数才起作用。
如果调用的 "IloCplex对象中记录了原始可行解,并且可以查询,则此方法返回 "IloTrue。
如果调用算法提取了二次约束模型,则此方法返回 "IloTrue。 否则,返回 "IloFalse。 有关二次约束的解释,请参阅《CPLEX 用户手册》中的 QCP 主题。
如果调用算法提取的模型具有二次目标函数项,则此方法返回 "IloTrue。 否则,返回 "IloFalse。
该方法创建并返回一个目标,将 "goal指定的搜索置于 "limit定义的限制之下。 只有受 "goal控制的子树才会受到 "limit的限制。
long for the specified name and assigns the specified default value defval to all modeling objects in the current IloCplex object.IloNum类型的新注解,并为当前 "IloCplex对象中的所有建模对象指定默认值。long类型注释的数量 IloNum类型注释的数量。该方法是 "IloCplex::populate的异步版本。 换句话说,该方法执行与 "IloCplex::populate相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::PopulateHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用此方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "PopulateHandle::joinPopulate方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。
另请参阅:
| 异步 | 指示操作是同步还是异步的标志。 |
populate方法可生成混合整数编程(MIP)模型的多个解决方案。 换句话说,它会填充调用 "IloCplex对象当前提取的模型的解决方案池。 与 "solve方法一样,如果找到一个解(不一定是最优解),该方法会返回 "IloTrue。
填充解决方案池的算法分为两个阶段:
在第一阶段,它将模型求解到最优(或用户设定的某个停止标准),同时为第二阶段建立分支和切割树。
在第二个阶段中,通过使用第一个阶段中计算和存储的信息并继续探索树生成多个解法。
第一阶段的制备量和第二阶段的探索强度由溶液池强度参数 "SolnPoolIntensity控制。
最优性并不是 "populate方法的终止标准。 即使最优性差距为零,该方法仍会尝试寻找其他解决方案。 populate的终止标准如下:
PopulateLim限值 . 该参数控制在方法停止前生成多少个解决方案。 其缺省值为 20。TiLim,与标准 MIP 优化相同。DetTiLim,与标准 MIP 优化相同。NodeLim,与标准 MIP 优化相同。populate会在无法枚举出更多解决方案时停止。 特别是,如果用户使用相对或绝对解池间隙参数指定了目标容差,"populate就会在无法在指定目标容差内枚举出更多解的情况下停止运行。 可能存在满足指定目标容差的其他解决方案;根据解决方案池强度参数,"populate可能会也可能不会枚举所有解决方案;根据解决方案池强度参数的某些设置,"populate可能会在枚举完满足指定目标容差的其他解决方案子集后停止。对 "populate的连续调用会创建存储在解决方案池中的解决方案。 不过,每次调用 "populate只适用于当前调用中创建的解决方案子集;调用不会影响池中已有的解决方案。 换言之,池中解法不持久存储。
用户可以在对模型进行任何 MIP 优化时单独调用该例程。 在这种情况下,它将自行执行第一和第二阶段的工作。
用户也可以在标准 MIP 优化后调用 "populate。 在一般情况下,用户读取模型,调用 MIP 优化,然后调用 "populate。 MIP 优化活动是 populate 算法的第一阶段;然后,"populate重新使用 MIP 优化计算和存储的信息,因此只执行第二阶段。
populate方法不会尝试为无约束 MIP 模型生成多个解。 一旦获得无界性证明,"populate就会停止。
该方法是 "IloCplex::presolve的异步版本。 换句话说,该方法执行与 "IloCplex::presolve相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::PresolveHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "PresolveHandle::joinPresolve方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。
另请参阅:
| 算法 | 请参阅 |
| 异步 | 指示操作是同步还是异步的标志。 |
该方法对模型执行预分解。 枚举 "alg告诉 Presolve 在简化模型中使用哪种算法;"NoAlg应指定用于 MIP 模型。
这是一种先进的方法。 高级方法通常要求对 CPLEX 使用的算法有深刻的理解。 因而它们会提高应用程序中错误行为的风险,而这种行为可能难以调试。 因此,团队鼓励您仔细考虑是否可以用其他方法来完成同样的任务。
该方法指定了一组不应被替换出问题的整数变量。 如果预求解可将某个变量修订为值,那么将除去该变量,即使在受保护列表中指定了该变量也是如此。
这是一种先进的方法。 高级方法通常要求对 CPLEX 使用的算法有深刻的理解。 因而它们会提高应用程序中错误行为的风险,而这种行为可能难以调试。 因此,团队鼓励您仔细考虑是否可以用其他方法来完成同样的任务。
该方法指定了一组不应被替换出问题的数字变量。 如果预求解可将某个变量修订为值,那么将除去该变量,即使在受保护列表中指定了该变量也是如此。
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.
IloCplex对象中。 注释应用程序接口的 INLINE 实现从 "name指定的 BAS 文件中读取一个单纯形基础,并将该基础复制到调用的 "IloCplex对象中。 必须将参数 "AdvInd设置为非零值(例如默认值),才能使用单纯形基础开始后续的单纯形算法优化。
按照惯例,文件扩展名为 ".bas。 BAS 文件格式在CPLEX 文件格式参考手册中有详细说明。
从 FLT 格式文件中读取解决方案池筛选器,并将筛选器复制到 "IloCplex实例中。 该格式已在CPLEX 文件格式参考手册中记录。
该方法读取 "name表示的 MST 文件,并将 MIP 开始信息复制到调用的 "IloCplex对象中。 必须打开参数 "AdvInd(默认值:1(一)),才能将 MIP 起始信息用于后续 MIP 优化。
按照惯例,文件扩展名为 ".mst。 MST 文件格式在CPLEX 文件格式参考手册以及产品 "include目录下的样式表 "solution.xsl和模式 "solution.xsd中均有说明。 产品随附的示例和CPLEX 用户手册中都有使用示例。
该方法将优先级顺序从 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 文件格式参考手册中有详细说明。
从 "name指定的文件中读取参数及其设置,并将其应用于调用的 "IloCplex对象。 参数文件中未列出的参数将重置为默认设置。
按照惯例,文件扩展名为 ".prm。 PRM 文件格式在参考手册 "CPLEX 文件格式中有详细说明。
不推荐使用。 使用 "readStartInfo代替。
从 "name表示的 SOL 文件中读取解决方案,并将该信息复制到 CPLEX 问题对象中,作为起始信息。
这些信息可用于障碍优化中的交叉、使用高级基础重启单纯形法或为 MIP 启动指定变量值。
CPLEX 参数 "AdvInd必须设置为非零值(如默认设置:1(一)),以便下一次调用方法 "solve时使用从解决方案文件读取的信息。
按照惯例,文件扩展名为 ".sol。 SOL 文件格式在CPLEX 文件格式参考手册以及产品 "include目录下的样式表 "solution.xsl和模式 "solution.xsd中均有说明。 产品随附的示例和CPLEX 用户手册中都有使用示例。
从 "name表示的 SOL 文件中读取起始信息,并将这些信息复制到 CPLEX 问题对象中。
这些信息可用于障碍优化中的交叉、使用高级基础重启单纯形法或为 MIP 启动指定变量值。
CPLEX 参数 "AdvInd必须设置为非零值(如默认设置:1(一)),以便下一次调用方法 "solve时使用从解决方案文件读取的信息。
按照惯例,文件扩展名为 ".sol。 SOL 文件格式在CPLEX 文件格式参考手册以及产品 "include目录下的样式表 "solution.xsl和模式 "solution.xsd中均有说明。 产品随附的示例和CPLEX 用户手册中都有使用示例。
从文件中读取虚拟机配置。
该函数读取 "file中的虚拟机配置(必须是 VMC 文件格式)。 如果 "file能被成功解析,那么配置就会被安装到 "IloCplex实例中。 如果出错,先前安装的虚拟机配置将保持不变。
如果虚拟机配置已安装到 "IloCplex实例中,且提取的模型是 MIP,那么该实例的 "solve方法就会使用并行分布式 MIP 来解决问题。
该函数以模板形式实现,因此除非实际使用该函数,否则不会创建对 CPLEX 分布式并行 MIP API 的引用。 其参数类型必须可转换为 "char const *。
另请参阅:
| 文件 | 包含虚拟机配置的文件名。 |
该方法是 "IloCplex::refineConflict的异步版本。 换句话说,该方法执行与 "IloCplex::refineConflict相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::RefineConflictHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "RefineConflictHandle::joinRefineConflict方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。
另请参阅:
| 坏处 | |
| 预置 | |
| 异步 | 指示操作是同步还是异步的标志。 |
refineConflict方法可确定当前模型不可行性或当前模型约束条件子集的最小冲突。 由于冲突很小,因此消除其中任何一个限制条件都会消除造成不可行性的特定原因。 模型中可能还有其他冲突;因此,修复某个冲突并不能保证其余模型的可行性。
本方法通过参数 "cons传递要查找冲突的约束条件。 只能指定直接添加到模型中的约束条件。
约束条件也可以按 "IloAnd分组。 如果一个小组中的任何制约因素参与了冲突,那么整个小组都会被认定参与了冲突。 不会返回该组内限制条件的更多细节。
可优先考虑组别或制约因素。 偏好较高的群体或制约因素更有可能被纳入冲突。 但是,在返回最小冲突时,并不能保证不存在其他包含具有更高优先级的组或约束条件的冲突。
要检查变量的边界是否会导致冲突,请使用类 "IloBound的实例来指定相关变量的上下限。 在您传递给 "refineConflict的参数中使用这些约束条件。
当该方法返回时,可以使用 "getConflict方法查询冲突。 方法 "writeConflict可以写入包含冲突的 LP 格式文件。
参数 "CutUp、"CutLo、"ObjULim、"ObjLLim不会影响此方法。 如果您想研究这些参数带来的不可行性,可以考虑在调用此方法之前,在模型中添加一个目标函数约束,以加强这些参数的作用。
| 坏处 | 用于查找冲突的约束条件数组。 约束条件可以是活动模型中的任何约束条件,也可以是由 " |
| 预置 | 一个数组,包含组或约束条件的首选项。 |
该方法是 "IloCplex::refineMIPStartConflict的异步版本。 换句话说,该方法执行与 "IloCplex::refineMIPStartConflict相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::RefineMIPStartConflictHandle实例,表示已开始的操作。
要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "IloCplex::RefineMIPStartConflictHandle::joinRefineConflict方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。
另请参阅:
IloCplex::refineMIPStartConflict
| mipstartindex | 在与该问题相关的 MIP 起点中,该 MIP 起点的索引。 |
| 坏处 | |
| 预置 | |
| 异步 | 指示操作是同步还是异步的标志。 |
该方法接受一个由索引指定的 MIP 起点,并为该 MIP 起点的不可行性或由该 MIP 起点推断出的模型中的约束子集确定最小冲突。
参数 "CutUp、"CutLo、"ObjULim、"ObjLLim不会影响此方法。 如果您想研究这些参数带来的不可行性,可以考虑在调用此方法之前,在模型中添加一个目标函数作为约束条件,以加强这些参数的影响。
当 MIP 起点被添加到当前模型时,可能会与之关联一个努力等级,以便向 CPLEX 说明将 MIP 起点转化为可行解所需的努力程度。 此方法尊重努力等级 "除开等级 1(一级):检查可行性。 它不检查可行性。 相反,CPLEX 将努力等级提高到 2,以求解固定模型。
当该方法返回时,您可以使用 "IloCplex::getConflict方法查询冲突,并使用 "IloCplex::writeConflict方法将冲突以 LP 格式写入文件。
| mipstartindex | 在与该问题相关的 MIP 起点中,该 MIP 起点的索引。 |
| 坏处 | 用于查找冲突的约束条件数组。 约束条件可以是 MIP 开始时的任何约束条件,也可以是由 " |
| 预置 | 一个数组,包含组或约束条件的首选项。 |
该方法指示调用 "IloCplex对象停止使用 "cb作为回调。
This method removes the aborter object abort from the invoking IloCplex object.
此方法会删除任何远程 Worker 信息处理程序。
另请参阅:
IloCplex::setRemoteInfoHandler,IloCplex::getRemoteInfoHandler
value[i]指定为指定数字注释的约束条件 "ctr[i]的数字注释值。value[i]指定为指定数字注释的整数变量 "var[i]的数字注释值。value[i]指定为指定数字注释的数字变量 "var[i]的数字注释值。value指定为指定数字注释的约束条件 "ctr的数字注释值。value as the value of the numeric annotation of the objective obj for the specified numeric annotation.value指定为指定数字注释的整数变量 "var的数字注释值。value指定为指定数字注释的数字变量 "var的数字注释值。value中的值指定为数组 "ctr中指定注释的相应约束的注释值。value中的值指定为数组 "var中指定注释的相应变量的注释值。value中的值指定为数组 "var中指定注释的相应变量的注释值。value指定为指定注释的约束 "ctr的注释值。value指定为指定注释的目标 "obj的注释值。value指定为指定注释的变量 "var的注释值。value指定为指定注释的变量 "var的注释值。该方法使用数组 "cstats设置数组 "var中变量的基础状态;使用数组 "rstats设置数组 "con中范围的基础状态。
此方法可将所有 CPLEX 参数重置为默认值。
该方法将调用 "IloCplex对象的删除模式设置为 "mode。
此方法将变量 "var的首选分支方向设置为 "dir。 This setting will cause CPLEX first to explore the branch specified by dir after branching on variable var.
该方法将数组 "var中每个变量的首选分支方向设置为数组 "dir中的相应值。 This will cause CPLEX first to explore the branch specified by dir[i] after branching on variable var[i].
该方法将调用算法中的 "parameter设置为 "value。 有关参数的详细信息及其使用示例,请参阅《CPLEX 用户手册》。
使用参数集设置参数状态。
如果方法失败,就会抛出 "IloException或其派生类的异常。
| 设置 | 参数集。 |
该方法将数组 "var中所有变量的优先级顺序设置为数组 "pri中的相应值。 分支期间,优先级较高的整数变量优先于优先级较低的整数变量。 此外,有优先权的变量优先于没有优先权的变量。 优先级必须是非负整数。 默认情况下,没有用户指定优先级的变量的优先级为 0(零)。 默认情况下,参数 "MIPOrdInd表示应考虑用户指定的优先顺序。 当 "MIPOrdInd重置为非默认值 0(零)时,CPLEX 会忽略用户指定的优先级。 要从变量中删除用户指定的优先级,请参见方法 "IloCplex::delPriorities。 有关如何应用优先级的更多详情,请参阅《CPLEX 用户手册》中的 "发布优先级命令"主题。
该方法将变量 "var的优先级顺序设为 "pri。 分支期间,优先级较高的整数变量优先于优先级较低的整数变量。 此外,有优先权的变量优先于没有优先权的变量。 优先级必须是非负整数。 默认情况下,没有用户指定优先级的变量的优先级为 0(零)。 默认情况下,参数 "MIPOrdInd表示应考虑用户指定的优先顺序。 当 "MIPOrdInd重置为非默认值 0(零)时,CPLEX 会忽略用户指定的优先级。 要从变量中删除用户指定的优先级,请参见方法 "IloCplex::delPriority。 有关如何应用优先级的更多详情,请参阅《CPLEX 用户手册》中的 "发布优先级命令"主题。
本方法为远程 Worker 信息消息注册一个处理程序。 之前安装的处理程序将被覆盖。
另请参阅:
IloCplex::getRemoteInfoHandler,IloCplex::removeRemoteInfoHandler
| 商人 | 要安装的处理程序。 |
该方法允许用户为下面调用方法 "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定义一个或多个候选起始解。
该方法在开始分支切割搜索之前,先用 "goal初始化根节点的目标堆栈。 搜索树将由 "goal的执行方法及其子目标定义。 更多信息,请参阅概念目标和嵌套类 "IloCplex::GoalI。
该方法可以异步解算当前提取到调用 "IloCplex对象的模型。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "join方法连接返回的句柄。 同样,为了清理资源和防止内存泄漏,你也必须加入这一操作。 此外,要查询返回值,还必须进行连接。
如果该方法找到一个解(不一定是最优解),则返回 "IloTrue。
该方法使用多目标优化器解决当前提取到调用 "IloCplex对象的模型,并使用提供的 "IloCplex::ParameterSets 解决子模型。 如果该方法找到一个解(不一定是最优解),则返回 "IloTrue。
该方法将解算当前提取到调用 "IloCplex对象的模型。 如果该方法找到一个解(不一定是最优解),则返回 "IloTrue。
该方法是 "IloCplex::solveFixed的异步版本。 换句话说,该方法执行与 "IloCplex::solveFixed相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::SolveFixedHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,并将其参数设为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 但是,为了清理资源和防止内存泄漏,您仍然必须通过 "SolveFixedHandle::joinSolveFixed方法连接返回的句柄。 此外,要查询返回值,还必须进行连接。
另请参阅:
| 解答 | 请参阅 |
| 异步 | 标志,用于指示操作是同步执行还是异步执行。 |
在调用算法将提取的 MIP 模型求解为可行(但不一定是最优)的 MIP 解之后,该成员函数将提取的 MIP 的所有整数变量固定为解的值,从而求解模型的松弛。 如果省略了参数 "soln或参数值为-1,则使用当前解决方案;否则,将使用以 "soln为索引的解决方案池成员。
调用此方法会使 CPLEX 将提取的 MIP 模型视为连续模型,这样您就可以获得连续解通常可用但 MIP 模型通常不可用的信息。 CPLEX 会继续将模型视为连续模型,直到调用其他方法将模型恢复为 MIP。 例如,调用 "IloCplex::solve可将模型恢复为 MIP,并立即求解模型,前提是高级启动参数未被禁用。
对远程对象工作者执行低级传输控制操作。 如果 "IloCplex实例与远程对象工作者相关联,那么该函数就会在连接到该远程对象工作者的传输上执行 "ctrl指定的底层控制操作。
有关 "ctrl、"data以及这些参数允许值的详细信息,请参阅《可调用库(C API)参考手册》中有关 "CPXXtransportctrlint的参考文档。
另请参阅:
IloCplex::transportctrl,IloCplex::transportctrl
| 按住 | 确定要执行的控制操作。 |
| 数据 | ctrl标识的操作的输入/输出。 |
对远程对象工作者执行低级传输控制操作。 如果 "IloCplex实例与远程对象工作者相关联,那么该函数就会在连接到该远程对象工作者的传输上执行 "ctrl指定的底层控制操作。
有关 "ctrl、"data以及这些参数允许值的详细信息,请参阅《可调用库(C API)参考手册》中有关 "CPXXtransportctrlint的参考文档。
另请参阅:
IloCplex::transportctrl,IloCplex::transportctrl
| 按住 | 确定要执行的控制操作。 |
| 数据 | ctrl标识的操作的输入/输出。 |
对远程对象工作者执行低级传输控制操作。 如果 "IloCplex实例与远程对象工作者相关联,那么该函数就会在连接到该远程对象工作者的传输上执行 "ctrl指定的底层控制操作。
有关 "ctrl、"data以及这些参数允许值的详细信息,请参阅《可调用库(C API)参考手册》中有关 "CPXXtransportctrlint的参考文档。
另请参阅:
IloCplex::transportctrl,IloCplex::transportctrl
| 按住 | 确定要执行的控制操作。 |
| 数据 | ctrl标识的操作的输入/输出。 |
该方法是 "IloCplex::tuneParam的异步版本。 换句话说,该方法执行与 "IloCplex::tuneParam相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::TuneParamHandle实例,表示已开始的操作。 要以异步方式启动操作,请调用该方法,其参数为 "async=true。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "TuneParamHandle::joinTuneParam方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。
另请参阅:
| 固定集 | 请参阅 |
| 异步 | 标志,用于指示操作是同步运行还是异步运行。 |
该方法是 "IloCplex::tuneParam的异步版本。 换句话说,该方法执行与 "IloCplex::tuneParam相同的操作,但可以异步运行。 该方法返回一个 "IloCplex::TuneParamHandle实例,表示已开始的操作。 要以异步方式启动操作,请使用参数 "async=true调用该方法。 如果 "async是 "false,CPLEX 会同步执行操作。 不过,为了清理资源和防止内存泄漏,您仍必须通过 "TuneParamHandle::joinTuneParam方法连接返回的句柄。 同样,您必须通过连接才能查询返回值。
另请参阅:
| 异步 | 标志,用于指示操作是同步运行还是异步运行。 |
tuneParam方法会调整 "IloCplex实例的参数,以提高优化器在当前模型上的性能;如果使用 "filename参数,则会调整一组模型的参数。 通过 CPLEX 以各种参数设置进行多次试运行来进行调整。 参数集 "fixedset中指定了调整过程中不应更改的参数和相关值。
tuneParam"完成后,"IloCplex参数将被设置为可查询或写入文件的调整和固定设置。 目前的模式不会有解决办法。
参数 "TuningRepeat指定 CPLEX 在调整当前模型时要尝试多少个问题变体。 在对单一模型进行调整时,使用多种变体可以获得更稳健的结果。
请注意,只有当 "TuningRepeat大于 1 或正在对一组模型进行调整时,调整评估指标才有意义。
一些参数设置可控制调谐过程。 其他参数设置将被忽略。
| 参数 | 使用 |
TiLim | 限制调节所花费的总时间 |
DetTiLim | 限制调节所花费的总确定性时间 |
TuningTiLim | 限制每次试运行的时间 |
TuningDetTiLim | 限制每次试运行的确定性时间 |
TuningMeasure | 控制调节评估测量 |
TuningRepeat | 设置重复问题变体的数量 |
TuningDisplay | 控制调节显示级别 |
将忽略调节回调以外的所有回调。 调试将监控方法 "abort,并在发出终止指令时终止。
IloInt值指定调整的完成状态。 返回的值来自枚举 "TuningStatus。
在优化过程中,CPLEX 会调用回调,提供有关特定建模辅助警告的信息。 使用 "callback = null调用该命令,清除当前回调。 要注册回调,请为该方法提供一个非空的 "callback。
只有当 CPLEX 参数 "IloCplex::Param::Read::DataCheck设置为 "IloCplex::Assist时,才会调用回调函数。 此外,参数 "IloCplex::Param::Read::WarningLimit还可以控制每种类型的建模辅助警告的报告次数(其余警告将被忽略)。 请参阅《CPLEX 参数参考手册》中的 "CPX_PARAM_DATACHECK和 "CPX_PARAM_WARNLIM。
即使设置新的回调失败,该函数也会清除任何当前回调。 因此,一个 "IloCplex实例最多只能注册一个回调。
另请参阅:
IloModelingAssistance::Callback
| 回调 | 要设置的新回调,或 " null用于清除回调。 |
callback = null或 "contextMask = 0调用此功能可清除当前回调。 要注册回调,请调用此方法,并输入不同于 "null的 "callback参数和不同于 0(零)的 "contextMask参数。 contextMask的值可以是Callback.Context.Id 中值的 bitwise OR。 注意:即使设置新的回调失败,该函数也会清除任何当前回调。 因此,一个 "IloCplex实例最多只能注册一个回调。 回调。 或 "0(零)来清除回调。| 回调 | 要设置的新回调,或 " null用于清除回调。 |
| contextMask | 比特掩码,用于指定在哪些情况下调用回调,或者使用 " 0(0)清除回调。 |
该方法指示调用 "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。
该方法指示调用的 "IloCplex对象使用终止器对象 "abort来控制其求解和调整方法的终止。 如果调用的 "IloCplex对象已经使用了终止符,则先前使用的终止符将被覆盖。 该方法返回一个句柄,指向安装在调用对象 "IloCplex中的中止器。
另请参阅:
在远程对象 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;
}
另请参阅:
IloCplex::Serializer,IloCplex::Deserializer
IloCplex对象的所有注释写入指定名称的文件。将当前单倍基值写入 "name指定的文件。
按照惯例,文件扩展名为 ".bas。 BAS 文件格式在CPLEX 文件格式参考手册中有详细说明。
写入名为 "filename的冲突文件。
将调用模型中的筛选器以 FLT 格式写入文件。 该格式已在CPLEX 文件格式参考手册中记录。
将 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列出了可使用的值。
将优先级顺序写入文件 "filename。
如果 CPLEX 问题对象关联了优先顺序,或者参数 "MipOrdType非零,则此方法会将优先顺序写入指定文件。
按照惯例,文件扩展名为 ".ord。 ORD 文件格式在CPLEX 文件格式参考手册中有详细说明。
为所有当前未设置为默认值的 CPLEX 参数,将参数名称及其当前设置写入 "name指定的文件。
按照惯例,文件扩展名为 ".prm。 PRM 文件格式在参考手册 "CPLEX 文件格式中有详细说明。
该方法会将当前问题的解决方案写入 "name指定的文件中。 如果省略参数 "soln,写入的解决方案就是当前解决方案;否则,就是以 "soln为索引的解决方案池成员。
按照惯例,文件扩展名为 ".sol。 SOL 文件格式在CPLEX 文件格式参考手册以及产品 include 目录中的样式表 "solution.xsl和模式 "solution.xsd中均有说明。
参数 "WriteLevel告诉 CPLEX 要写入文件的详细程度。 枚举 "IloCplex::WriteLevelType列出了可使用的值。
将包含当前问题解池所有成员的格式化文件写入 "name指定的文件,并采用 SOL 格式。
按照惯例,文件扩展名为 ".sol。 SOL 文件格式在CPLEX 文件格式参考手册以及产品 include 目录中的样式表 "solution.xsl和模式 "solution.xsd中均有说明。
参数 "WriteLevel告诉 CPLEX 要写入文件的详细程度。 枚举 "IloCplex::WriteLevelType列出了可使用的值。
| 内部枚举详细信息 |
|---|
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"一起使用。
另请参阅:
IloCplex,IloCplex::getAlgorithm,IloCplex::getSubAlgorithm
| 字段 |
|---|
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 |
枚举 "IloCplex::BasisStatus列出了变量或范围约束条件的状态在基础中可能呈现的值。 NotABasicStatus不是变量的有效状态。 包含这种状态的依据不构成有效依据。 范围约束的基础状态与 "IloCplex为其管理的相应松弛变量或人工变量的基础状态相对应。 FreeOrSuperbasic表示变量是非基本变量,但不在边界上。
另请参阅:
IloCplex,IloCplex::BasisStatusArray
| 字段 |
|---|
NotABasicStatus = -1 | |
Basic = 1 | |
AtLower = 0 | |
AtUpper = 2 | |
FreeOrSuperbasic = 3 |
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起 |
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 用户手册》了解其使用示例。
另请参阅:
IloCplex,IloCplex::BranchDirectionArray
| 字段 |
|---|
BranchGlobal = CPX_BRANCH_GLOBAL | |
BranchDown = CPX_BRANCH_DOWN | |
BranchUp = CPX_BRANCH_UP |
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 |
枚举'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 |
该枚举列出了约束或绑定在冲突中的状态。
ConflictPossibleMemberConflictMemberConflictExcluded| 字段 |
|---|
ConflictExcluded = CPX_CONFLICT_EXCLUDED | |
ConflictPossibleMember = CPX_CONFLICT_POSSIBLE_MEMBER | |
ConflictMember = CPX_CONFLICT_MEMBER |
枚举 "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 |
该枚举的符号值指定 CPLEX 如何管理用户添加的切分。
UseCutForce:添加切口,永不删除。UseCutPurge:添加切分,但 CPLEX 可能会在稍后清除(消除)切分。UseCutFilter:切分与 CPLEX 添加的其他切分一样。 也就是说,CPLEX 对剪切应用了过滤过程。 例如,如果 CPLEX 认为其他切分更有效,或者切分过于密集,或者其他可能的筛选标准,CPLEX 可能会决定不将切分添加到松弛中)。| 字段 |
|---|
UseCutForce = CPX_USECUT_FORCE | |
UseCutPurge = CPX_USECUT_PURGE | |
UseCutFilter = CPX_USECUT_FILTER |
枚举 "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 |
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 |
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在默认设置 "IloCplex::LeaveBasis下,如果从加载的 LP 模型中删除变量或约束条件,现有基础将保持不变。 当 CPLEX 正在求解修改后的 LP,且高级指示器(参数 "IloCplex::AdvInd)设置为 "IloTrue时,这种选择通常会使基础无法重新启动。
IloCplex::FixBasis相反,当删除模式设置为 "IloCplex::FixBasis时,调用对象将进行基点透视,以便在删除变量或约束时保持有效的基点。 这种选择使得删除操作的计算量更大,但可能会为修改提取模型后的重新优化提供一个更好的起点。
如果调用对象中不存在基础,则删除模式的设置无效。
另请参阅:
| 字段 |
|---|
LeaveBasis | |
FixBasis |
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 |
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 |
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起 |
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起 |
枚举 "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 |
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 |
该枚举定义了 CPLEX 评估 MIP 启动时可能花费的精力。 将这些值与成员函数 "IloCplex::addMIPStart、"getMIPStart或 "changeMIPStart一起使用。
CPXPARAM_MIP_Limits_RepairTries(即 "IloCplex::Param::MIP::Limits::RepairTries)设置尝试修复不可行 MIP 起点的频率,尝试修复 MIP 起点。| 字段 |
|---|
MIPStartAuto = CPX_MIPSTART_AUTO | |
MIPStartCheckFeas = CPX_MIPSTART_CHECKFEAS | |
MIPStartSolveFixed = CPX_MIPSTART_SOLVEFIXED | |
MIPStartSolveMIP = CPX_MIPSTART_SOLVEMIP | |
MIPStartRepair = CPX_MIPSTART_REPAIR | |
MIPStartNoCheck = CPX_MIPSTART_NOCHECK |
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 |
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 |
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 |
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 |
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起 |
枚举 "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 |
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 |
枚举 "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 |
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 |
The enumeration Relaxation lists the values that can be taken by the parameter FeasOptMode. 该参数控制着方法 "feasOpt进行放松的几个方面。
feasOpt方法分两个阶段运行。 在第一阶段,它试图找到给定不可行模型的最小惩罚松弛。 如果您希望 "feasOpt在第一阶段结束后停止,请选择一个符号名称为 "Min的值。 如果您希望 "feasOpt在第一阶段后继续寻找与原始目标函数相关的最优解,并限制松弛的惩罚不能超过第一阶段的值,那么请选择一个符号名称为 "Opt的值。
在这两个阶段中,后缀 "Sum、"Inf和 "Quad都指定了松弛度量:
Sum要求 "feasOpt最小化所需的限制和约束条件的松弛加权和Inf要求 "feasOpt根据公式 penalty = sum (penalty_i times relaxation_indicator_i) 最大限度地减少被放宽的加权约束和限制的数量Quad要求 "feasOpt最大限度地减小所需的限制和约束条件松弛平方的加权和权重由您在方法 "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 |
枚举 "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 |
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起 |
This enumeration lists the values that are returned by tuneParam.
TuningCompleteTuningAbortTuningTimeLimTuningDetTimeLim| 字段 |
|---|
TuningComplete = 0 | |
TuningAbort = CPX_TUNE_ABORT | |
TuningTimeLim = CPX_TUNE_TILIM | |
TuningDetTimeLim = CPX_TUNE_DETTILIM |
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 |
该枚举的值指定 CPLEX 在将 MIP 起点和解写入格式化文件时包含多少细节。
| 字段 |
|---|
Auto = CPX_WRITELEVEL_AUTO | |
AllVars = CPX_WRITELEVEL_ALLVARS | |
DiscreteVars = CPX_WRITELEVEL_DISCRETEVARS | |
NonzeroVars = CPX_WRITELEVEL_NONZEROVARS | |
NonZeroDiscreteVars = CPX_WRITELEVEL_NONZERODISCRETEVARS |
| 内部类型定义细节 |
|---|
IloArray< BasisStatus > BasisStatusArray
该类型为 "IloCplex::BasisStatus定义了一个数组类型。 基础状态数组的完整限定名称是 "IloCplex::BasisStatusArray。
另请参阅:
IloCplex,IloCplex::BasisStatus
IloArray< BranchDirection > BranchDirectionArray
该类型为 "IloCplex::BranchDirection定义了一个数组类型。 分支方向数组的完整限定名称是 "IloCplex::BranchDirectionArray。
另请参阅:
IloCplex,IloCplex::BranchDirection
IloArray< ConflictStatus > ConflictStatusArray
该类型为 "IloCplex::ConflictStatus定义了一个数组类型。
另请参阅:
IloCplex,IloCplex::ConflictStatus
CplexStatus状态
An enumeration for the classIloAlgorithm.IloAlgorithm是 Concert Technology 算法的基类,"IloAlgorithm::Status"是一个枚举,其范围仅限于 "IloAlgorithm类。 成员函数 "IloAlgorithm::getStatus返回一个状态,显示当前模型和解决方案的相关信息。
Unknown 指定算法没有关于模型解决方案的信息。
Feasible表示算法找到了可行解(即变量赋值满足模型的约束条件,但不一定是最优解)。 成员函数 "IloAlgorithm::getValue可以访问这个可行的解决方案。
Optimal表示算法找到了最优解(即变量的赋值满足模型的所有约束条件,并被证明是模型目标的最优解)。 成员函数 "IloAlgorithm::getValue可以访问该最优解。
Infeasible表示算法证明模型不可行,即无法找到满足模型中所有约束条件的变量赋值。
Unbounded 指定算法已证明该模型无界限。 为了检查模型是否可行,可以删除目标,然后重新优化。
InfeasibleOrUnbounded 指定模型不可行或无界限。
Error表示发生了错误,在支持异常的平台上,表示抛出了异常。
另请参阅: