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

约束是 CP 优化器中的一个对象。 与其他 CP 优化实体一样,约束也是通过两个类来实现的:一个处理类和一个实现类。 换句话说,类 "IlcConstraint(句柄)的实例包含一个数据成员(句柄指针),该数据成员指向类IlcConstraintI(其实现对象)的实例。
作为布尔表达式的约束条件
您也可以将约束视为布尔表达式,其值为 "IlcFalse或 "IlcTrue"。 表达式的值取决于约束的可满足性:如果不能违反约束,则表达式固定为 "IlcTrue;如果不能满足约束,则表达式固定为 "IlcFalse。 我们有时将约束称为约束布尔表达式。 这些表达式本身可以受到约束,也可以与逻辑运算符(或、和、非)结合使用。
张贴限制
创建约束时,CP 优化器不会自动将其考虑在内。 您必须明确地将约束添加到模型中并提取模型。
该类中的大多数成员函数都包含 "assert语句。 有关宏 "NDEBUG(打开或关闭这些 "assert语句的方法)的解释,请参阅Assert 和 NDEBUG 概念。
| 方法概要 | |
|---|---|
public IlcBool | isFalse() const |
public IlcBool | isTrue() 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).
当该成员函数返回 "IlcTrue时,无论如何都必须满足调用约束。