跳至主内容
框架 无框架

组optim.cpoptimizer.extensions

C++ 中的 CP 优化器扩展 API。
类摘要
IlcConstraint用户自定义约束的句柄类。
IlcConstraintArray类 "IlcConstraint的数组类。
IlcConstraintI用户自定义约束的实现类。
IlcCumulElementVar用于表示约束累积元素函数的类。
IlcCumulElementVarArray类 "IlcCumulElementVar的数组类。
IlcCustomInferencer自定义推理器的句柄类。
IlcCustomInferencerI用于表示自定义推论器的类。
IlcDemon用于传播约束的句柄类。
IlcDemonI用于传播约束条件的实现类。
IlcFloatArray基本浮点类的数组类。
IlcFloatExp用于表示受约束浮点表达式的类。
IlcFloatVar用于表示受约束浮点变量的类。
IlcFloatVarArray类 "IlcFloatVar的数组类。
IlcGoal自定义搜索算法构件的句柄类。
IlcGoalI自定义搜索算法构件的实现类。
IlcIntArray基本整数类的数组类。
IlcIntExp用于表示整数表达式的类。
IlcIntExpIterator整数表达式域的迭代器类。
IlcIntPredicate整数谓词的句柄类。
IlcIntPredicateI整数谓词的实现类。
IlcIntSelect值选择器的句柄类。
IlcIntSelectEvalI值选择器的实现类。
IlcIntSelectI值选择器的实现类。
IlcIntSet整数集合的句柄类。
IlcIntSetArray类 "IlcIntSet的数组类。
IlcIntSetIterator整数集合的迭代器类。
IlcIntTupleSet表示整数元组集合的类。
IlcIntVar用于表示受约束整数变量的类。
IlcIntVarArray类 "IlcIntVar的数组类。
IlcIntVarDeltaIterator整数变量 delta 域的迭代器类。
IlcIntervalSequenceVar区间序列变量类。
IlcIntervalSequenceVarArray类 "IlcIntervalSequenceVar的数组类。
IlcIntervalSequenceVar::Iterator序列头尾图的迭代器类别。
IlcIntervalVar表示区间变量的类。
IlcIntervalVarArray类 "IlcIntervalVar的数组类。
IlcRevAnyIlcAny值的可逆类。
IlcRevBool布尔值的可逆类。
IlcRevFloat浮点数值的可逆类。
IlcRevInt整数值的可逆类。
IlcSearchLimit搜索限制的句柄类。
IlcSearchLimitI搜索限制的实现类。
IloBlackbox
IloCPConstraintI用于封装用户自定义约束的类。
IloGoal在模型中表示目标的句柄类。
IloGoalI在模型中表示目标的实现类。
IloPropagatorI用于创建自定义约束的类。
类型定义摘要
IlcAny对象值类型。
IlcChooseIntIndex指向接收 "IlcIntVarArray并返回整数的函数指针。
IlcEvalInt返回在值选择器中使用的函数。
IlcFloat浮点数值类型。
IlcInt整数值类型。
宏观摘要
IlcChooseIndex1宏,用于定义新的变量选择函数。
IlcChooseIndex2宏,用于定义新的变量选择函数。
ILCCTDEMON0创建新恶魔类的宏。
ILCGOAL0创建新目标类的宏。
IlcInfinity表示无穷大的常数。
IlcIntBottom表示最小整数的常数。
ILCINTPREDICATE0宏,用于定义整数谓词类。
IlcIntTop表示最大整数的常量。
ILOBLACKBOX0宏,用于定义新的黑盒表达式。
ILOCPCONSTRAINTWRAPPER0宏,用于封装新的约束类。
ILOCPGOALWRAPPER0宏,用于封装新的目标类。
枚举摘要
IlcFilterLevel控制传播量的值。
IlcIntervalSequenceVar::Filter筛选 "IlcIntervalSequenceVar实例的头尾图子集。
功能概要
IlcAbs返回绝对值表达式。
IlcAllDiff返回所有不同的约束条件。
IlcAllMinDistance创建并返回最小距离约束。
IlcAnd返回一个目标,该目标是多个目标的组合。
IlcBestGenerate为数组中的变量赋值的目标。
IlcBestInstantiate为变量赋值的目标。
IlcBestInstantiate为变量赋值的目标。
IlcBranchLimit返回限制搜索的目标。
IlcChooseFirstNonFixedInt变量选择器
IlcChooseMaxMaxInt变量选择器
IlcChooseMaxMinInt变量选择器
IlcChooseMaxRegretMax变量选择器
IlcChooseMaxRegretMin变量选择器
IlcChooseMaxSizeInt变量选择器
IlcChooseMinMaxInt变量选择器
IlcChooseMinMinInt变量选择器
IlcChooseMinRegretMax变量选择器
IlcChooseMinRegretMin变量选择器
IlcChooseMinSizeInt变量选择器
IlcCountDifferent返回 "不同计数 "表达式。
IlcCustomConstraint从传播者创建约束。
IlcDichotomize为变量赋值的目标。
IlcDistribute返回分布约束。
IlcElementEq返回元素约束的形式。
IlcElementEq返回元素约束的形式。
IlcElementNEq返回元素约束的不等式形式。
IlcElementNEq返回元素约束的不等式形式。
IlcEndAtEnd区间变量之间的结束优先。
IlcEndAtStart区间变量之间以起点为终点的优先级。
IlcEndBeforeEnd区间变量之间的先结束后结束优先。
IlcEndBeforeStart区间变量之间先结束后开始的优先级。
IlcExponent返回受约束的指数表达式。
IlcFailLimit返回限制搜索的目标。
IlcGenerate为数组中的变量赋值的目标。
IlcIfThen返回蕴涵约束。
IlcInstantiate为变量赋值的目标。
IlcInstantiate为变量赋值的目标。
IlcInverse返回逆关系约束。
IlcLeOffset返回小于或等于偏移量约束。
IlcLexicographic返回词典约束。
IlcLimitSearch返回限制搜索的目标。
IlcLog返回受约束的自然对数表达式。
IlcMax返回一个或多个参数的最大值。
IlcMember返回成员约束。
IlcMin返回一个或多个参数的最小值。
IlcMinDistance创建并返回最小距离约束。
IlcNotMember返回 "非成员 "约束。
IlcOr返回一个选择点目标。
IlcOrLimit返回限制搜索的目标。
IlcPack返回打包约束。
IlcPack返回打包约束。
IlcPiecewiseLinear返回一个片断线性函数。
在此处停止运行用于调试的函数。
IlcPower返回受约束的幂表达式。
IlcPresenceDifferent区间变量之间的排他析取存在。
IlcPresenceEqual区间变量之间的连接。
IlcPresenceImply区间变量之间的影响。
IlcPresenceImplyNot区间变量之间的排除。
IlcPresenceOr区间变量之间的析取。
IlcRemoveValue从变量域中删除一个值的搜索目标。
IlcScalProd返回参数的标量乘积表达式。
IlcScalProd返回受约束的标量积表达式。
IlcSequence创建并返回适用于序列的约束。
IlcSetMax返回设置变量最大值的目标值。
IlcSetMin返回设置变量最小值的目标。
IlcSetValue将变量固定为某一数值的搜索目标。
IlcSimpleCompletionGoal该函数创建一个目标,将所有决策变量实例化。
IlcSplit为变量数组赋值的目标。
IlcSquare返回参数平方的表达式。
IlcStartAtEnd区间变量之间的起始和结束优先级。
IlcStartAtStart区间变量之间的起始优先级。
IlcStartBeforeEnd区间变量之间先开始后结束的优先级。
IlcStartBeforeStart区间变量之间的 "先开始后开始 "优先级。
IlcStrictLexicographic返回严格的词典约束。
IlcSum返回参数之和的表达式。
IlcSum返回受约束的求和表达式。
IlcTableConstraint返回表格约束。
IlcTimeLimit返回限制搜索的目标。
IloCustomConstraint从传播者创建建模约束。
IloGenerate为数组中的变量赋值的建模目标。
IloGoalFail返回一个总是失败的目标。
IloGoalTrue返回一个总是成功的目标。
新操作符重载的 C++ 运算符。
操作员重载的 C++ 运算符。
运算符!=重载的 C++ 运算符。
运算符!=重载的 C++ 运算符。
操作符&&重载的 C++ 运算符。
操作符&&重载的 C++ 运算符。
操作符*重载的 C++ 运算符。
操作符*重载的 C++ 运算符。
操作员+重载的 C++ 运算符。
操作员+重载的 C++ 运算符。
操作员重载的 C++ 运算符。
操作员重载的 C++ 运算符。
操作员重载的 C++ 运算符。
操作员/重载的 C++ 运算符。
操作员/重载的 C++ 运算符。
操作符<重载的 C++ 运算符。
操作符<<重载的 C++ 运算符。
操作符<=重载的 C++ 运算符。
操作符===重载的 C++ 运算符。
操作符===重载的 C++ 运算符。
操作者重载的 C++ 运算符。
运算符>=重载的 C++ 运算符。
操作员重载的 C++ 运算符。
操作员重载的 C++ 运算符。
变量摘要
无内存管理器操作系统环境变量控制 CP Optimizer 内存管理器。
IlcBool布尔值类型。
IlcFloatMax常量,表示最高浮点数。
IlcFloatMin表示最低浮点数的常数。
IlcIntMax
IlcIntMin

CP 优化器扩展

参考手册中的这些类和函数构成了 CP 优化器的 "扩展 "API。 此 API 是访问 CP Optimizer 某些高级方面的低级 API,这些方面无法通过IBM®ILOG® Concert Technology 或类 "IloCP获得。 扩展应用程序接口可用于以下用途:

  1. 精确编程 CP 优化器的解搜索和分支决策(见 "IlcGoal、"IlcGoalI"、"IlcAnd"和 "IlcOr)。
  2. 编写*自定义约束*,以提高特定问题结构的效率,或支持没有 Concert 技术等效约束(见 "IlcConstraintI, "IlcConstraint, "ILOCPCONSTRAINTWRAPPER0)
  3. 在搜索过程中创建模型的变量(见 "IlcIntVar)和约束条件(见 "IlcConstraint")。 为此,您还必须完全控制搜索过程,如上文1所述。

推荐的开发路径是使用IBMILOG Concert 技术建模,并配合 CP Optimizer 搜索引擎(通过参数或搜索阶段进行调整)。 这样,您就能从 CP 优化大师传播和搜索引擎的所有未来改进中获益。

不过,对于某些具有挑战性的优化问题,如果对问题的结构有很好的理解,或者有众所周知的很好的解决方案构建方法,精确控制搜索可能是必要的。 在这种情况下,CP 优化器扩展就显得非常重要。 不过,您应该记住,决定使用 CP 优化器扩展是您在应用程序设计中的一个关键选择,它将降低应用程序从新产品版本的性能改进中获益的能力。 建议您尽可能先尝试在不使用 CP 优化程序扩展的情况下解决问题。