跳至主内容
框架 无框架

类IlcConstraint

定义文件: ilcp/cpext.h
包含文件: <ilcp/cpextilcp/cpext.h
地图IlcConstraintIlcConstraint
用户自定义约束的句柄类。

约束是 CP 优化器中的一个对象。 与其他 CP 优化实体一样,约束也是通过两个类来实现的:一个处理类和一个实现类。 换句话说,类 "IlcConstraint(句柄)的实例包含一个数据成员(句柄指针),该数据成员指向类IlcConstraintI(其实现对象)的实例。

作为布尔表达式的约束条件

您也可以将约束视为布尔表达式,其值为 "IlcFalse或 "IlcTrue"。 表达式的值取决于约束的可满足性:如果不能违反约束,则表达式固定为 "IlcTrue;如果不能满足约束,则表达式固定为 "IlcFalse。 我们有时将约束称为约束布尔表达式。 这些表达式本身可以受到约束,也可以与逻辑运算符(非)结合使用。

张贴限制

创建约束时,CP 优化器不会自动将其考虑在内。 您必须明确地将约束添加到模型中并提取模型。

该类中的大多数成员函数都包含 "assert语句。 有关宏 "NDEBUG(打开或关闭这些 "assert语句的方法)的解释,请参阅Assert 和 NDEBUG 概念。

方法概要
public IlcBoolisFalse() const
public IlcBoolisTrue() const
方法详细信息

isFalse

publicIlcBool isFalse() const

当该成员函数返回 "IlcTrue时,无论如何都无法满足调用约束。

例如,考虑约束 "x <= y。 如果 "x的域是 "[0, 10],"y的域是 "[10, 20],则必然满足该约束条件。 In contrast, if the domain of x is [11, 20] and the domain of y is [0, 10], then the constraint is necessarily violated (that is, it cannot be satisfied).


isTrue

publicIlcBool isTrue() const

当该成员函数返回 "IlcTrue时,无论如何都必须满足调用约束。