跳至主内容
框架 无框架

类IlcIntervalVar

定义文件: ilcp/cpext.h
包含文件: <ilcp/cpextilcp/cpext.h
IlcIntervalVar的地图IlcIntervalVarIlcIntervalVar
表示区间变量的类。

该类的实例是 CP 优化引擎中的一个受限区间变量。 通过使用成员函数 "IlcIntervalVar IloCPEngine::getInterval(const IloIntervalVar) const,可以从 Concert Technology 的 "IloIntervalVar实例中获取 "IlcIntervalVar实例。

该类的成员函数允许访问优化引擎区间变量的域。 区间变量的域由开始、结束、长度和大小的域以及存在的布尔范围组成。 成员函数允许访问 delta 域和事件,以实现约束传播。 这些成员功能只能在优化引擎搜索过程中使用。

有关区间变量和用于调度的搜索 API 的更多信息,请参阅CP Optimizer 中用于调度的搜索 API 概念。

另请参阅:

方法概要
public IlcCPEnginegetCPEngine() const
public IlcIntgetEndMax() const
public IlcIntgetEndMin() const
public IlcIntgetLengthMax() const
public IlcIntgetLengthMin() const
public IlcIntgetOldEndMax() const
public IlcIntgetOldEndMin() const
public IlcIntgetOldLengthMax() const
public IlcIntgetOldLengthMin() const
public IlcIntgetOldSizeMax() const
public IlcIntgetOldSizeMin() const
public IlcIntgetOldStartMax() const
public IlcIntgetOldStartMin() const
public IlcIntgetSizeMax() const
public IlcIntgetSizeMin() const
public IlcIntgetStartMax() const
public IlcIntgetStartMin() const
public IlcBoolhasDeltaInterval() const
public IlcBoolhasDeltaPresence() const
public IlcBoolhasDeltaSize() const
public IlcBoolisAbsent() const
public IlcBoolisFixed() const
public IlcBoolisOldAbsent() const
public IlcBoolisOldPresent() const
public IlcBoolisPresenceFixed() const
public IlcBoolisPresent() const
public IlcBoolisSizeFixed() const
public voidsetAbsent() const
public voidsetEnd(IlcInt value) const
public voidsetEndMax(IlcInt max) const
public voidsetEndMin(IlcInt min) const
public voidsetLength(IlcInt value) const
public voidsetLengthMax(IlcInt max) const
public voidsetLengthMin(IlcInt min) const
public voidsetPresent() const
public voidsetSize(IlcInt value) const
public voidsetSizeMax(IlcInt max) const
public voidsetSizeMin(IlcInt min) const
public voidsetStart(IlcInt value) const
public voidsetStartMax(IlcInt max) const
public voidsetStartMin(IlcInt min) const
public voidwhenIntervalDomain(const IlcDemon d) const
public voidwhenPresence(const IlcDemon d) const
public voidwhenSize(const IlcDemon d) const
方法详细信息

getCPEngine

publicIlcCPEngine getCPEngine() const

This member function returns the instance of IlcCPEngine associated with the invoking instance of IlcIntervalVar.


getEndMax

publicIlcInt getEndMax() const

此成员函数返回调用实例 "IlcIntervalVar的域末尾的当前最大值。 如果没有区间,该成员函数返回的值就没有意义。


getEndMin

publicIlcInt getEndMin() const

此成员函数返回调用实例 "IlcIntervalVar末尾域的当前最小值。 如果没有区间,该成员函数返回的值就没有意义。


getLengthMax

publicIlcInt getLengthMax() const

该成员函数返回调用实例 "IlcIntervalVar长度域的当前最大值。 如果没有区间,该成员函数返回的值就没有意义。


getLengthMin

publicIlcInt getLengthMin() const

该成员函数返回调用实例 "IlcIntervalVar的长度域的当前最小值。 如果没有区间,该成员函数返回的值就没有意义。


getOldEndMax

publicIlcInt getOldEndMax() const

该成员函数返回优化引擎传播算法最后一次处理该区间时,调用实例 "IlcIntervalVar末端域的最大值。 如果当时没有区间,则该成员函数返回的值没有意义。

该函数只能在传播函数中使用:即在执行 demon("IlcDemonI实例)或约束的虚拟成员 "propagate("IlcConstraintI实例)时使用。


getOldEndMin

publicIlcInt getOldEndMin() const

该成员函数返回优化引擎的传播算法最后一次处理区间时,调用实例 "IlcIntervalVar末端域的最小值。 如果当时没有区间,则该成员函数返回的值没有意义。

该函数只能在传播函数中使用:即在执行 demon("IlcDemonI实例)或约束的虚拟成员 "propagate("IlcConstraintI实例)时使用。


getOldLengthMax

公共IlcInt getOldLengthMax() 常量

该成员函数返回优化引擎的传播算法最后一次处理该时间间隔时,"IlcIntervalVar调用实例长度域的最大值。 如果当时没有区间,则该成员函数返回的值没有意义。

该函数只能在传播函数中使用:即在执行 demon("IlcDemonI实例)或约束的虚拟成员 "propagate("IlcConstraintI实例)时使用。


getOldLengthMin

公共IlcInt getOldLengthMin() 常量

该成员函数返回优化引擎的传播算法最后一次处理时间间隔时,"IlcIntervalVar调用实例长度域的最小值。 如果当时没有区间,则该成员函数返回的值没有意义。

该函数只能在传播函数中使用:即在执行 demon("IlcDemonI实例)或约束的虚拟成员 "propagate("IlcConstraintI实例)时使用。


getOldSizeMax

公共IlcInt getOldSizeMax() 常量

该成员函数返回优化引擎的传播算法最后一次处理该时间间隔时,"IlcIntervalVar调用实例的大小域的最大值。 如果当时没有区间,则该成员函数返回的值没有意义。

该函数只能在传播函数中使用:即在执行 demon("IlcDemonI实例)或约束的虚拟成员 "propagate("IlcConstraintI实例)时使用。


getOldSizeMin

公共IlcInt getOldSizeMin() 常量

该成员函数返回优化引擎的传播算法最后一次处理该时间间隔时,"IlcIntervalVar调用实例的大小域的最小值。 如果当时没有区间,则该成员函数返回的值没有意义。

该函数只能在传播函数中使用:即在执行 demon("IlcDemonI的实例)或约束("IlcConstraintI的实例)的虚拟成员 "propagate时使用。


getOldStartMax

公共IlcInt getOldStartMax() 常量

该成员函数返回优化引擎的传播算法最后一次处理时间间隔时,"IlcIntervalVar调用实例的起始域的最大值。 如果当时没有区间,则该成员函数返回的值没有意义。

该函数只能在传播函数中使用:即在执行 demon("IlcDemonI实例)或约束的虚拟成员 "propagate("IlcConstraintI实例)时使用。


getOldStartMin

公共IlcInt getOldStartMin() 常量

该成员函数返回优化引擎的传播算法最后一次处理区间时,调用实例 "IlcIntervalVar的起始域的最小值。 如果当时没有区间,则该成员函数返回的值没有意义。

该函数只能在传播函数中使用:即在执行 demon("IlcDemonI的实例)或约束("IlcConstraintI的实例)的虚拟成员 "propagate时使用。


getSizeMax

publicIlcInt getSizeMax() const

该成员函数返回调用的 "IlcIntervalVar实例大小域的当前最大值。 如果没有区间,该成员函数返回的值就没有意义。


getSizeMin

publicIlcInt getSizeMin() const

该成员函数返回调用实例 "IlcIntervalVar的大小域的当前最小值。 如果没有区间,该成员函数返回的值就没有意义。


getStartMax

公共IlcInt getStartMax() 常量

该成员函数返回调用实例 "IlcIntervalVar的起始域的当前最大值。 如果没有区间,该成员函数返回的值就没有意义。


getStartMin

publicIlcInt getStartMin() const

该成员函数返回调用实例 "IlcIntervalVar的起始域的当前最小值。 如果没有区间,该成员函数返回的值就没有意义。


hasDeltaInterval

publicIlcBool hasDeltaInterval() const

如果 "IlcIntervalVar调用实例的开始、结束或长度的整数范围自上次优化引擎的传播算法处理该区间以来发生了变化,则该成员函数返回 "IlcTrue。 否则,返回 "IlcFalse

该函数只能在传播函数中使用:即在执行 demon("IlcDemonI实例)或约束的虚拟成员 "propagate("IlcConstraintI实例)时使用。

调用 "IlcIntervalVar的实例可以不存在,但仍有一个 delta 间隔。

hasDeltaPresence

publicIlcBool hasDeltaPresence() const

如果调用 "IlcIntervalVar实例的存在值自上次优化引擎的传播算法处理时间间隔以来发生了变化,则该成员函数返回 "IlcTrue。 否则,返回 "IlcFalse

该函数只能在传播函数中使用:即在执行 demon("IlcDemonI实例)或约束的虚拟成员 "propagate("IlcConstraintI实例)时使用。

如果函数返回 "IlcTrue,则调用实例 "IlcIntervalVar的存在是固定的。

hasDeltaSize

publicIlcBool hasDeltaSize() const

This member function returns IlcTrue if the integer range of the size of the invoking instance of IlcIntervalVar has changed since the last time the interval was processed by the propagation algorithm of the optimizer engine. 否则,返回 "IlcFalse

该函数只能在传播函数中使用:即在执行 demon("IlcDemonI实例)或约束的虚拟成员 "propagate("IlcConstraintI实例)时使用。

调用 "IlcIntervalVar的实例可以不存在,但仍有 delta 大小。

isAbsent

publicIlcBool isAbsent() const

如果调用的 "IlcIntervalVar实例不存在,则该成员函数返回 "IlcTrue。 否则,返回 "IlcFalse。 请注意,缺席间隔是固定的。


isFixed

publicIlcBool isFixed() const

This member function returns IlcTrue if the invoking instance of IlcIntervalVar is fixed, that is, if the interval is absent or present and the start and end (and implicitly the length and size) integer ranges of the invoking instance of IlcIntervalVar are fixed. 否则,返回 "IlcFalse


isOldAbsent

公共IlcBool isOldAbsent() 常量

如果 "IlcIntervalVar的调用实例在优化引擎的传播算法最后一次处理该区间时不存在,则该成员函数返回 "IlcTrue

该函数只能在传播函数中使用:即在执行 demon("IlcDemonI实例)或约束的虚拟成员 "propagate("IlcConstraintI实例)时使用。


isOldPresent

公共IlcBool isOldPresent() 常量

如果 "IlcIntervalVar的调用实例在优化引擎的传播算法最后一次处理时间间隔时存在,则该成员函数返回 "IlcTrue

该函数只能在传播函数中使用:即在执行 demon("IlcDemonI实例)或约束的虚拟成员 "propagate("IlcConstraintI实例)时使用。


isPresenceFixed

publicIlcBool isPresenceFixed() const

如果调用实例 "IlcIntervalVar的存在是固定的,即区间存在或不存在,则该成员函数返回 "IlcTrue。 否则,返回 "IlcFalse


isPresent

publicIlcBool isPresent() const

如果调用的 "IlcIntervalVar实例存在,则该成员函数返回 "IlcTrue。 否则,返回 "IlcFalse


isSizeFixed

publicIlcBool isSizeFixed() const

如果调用 "IlcIntervalVar实例的大小的整数范围固定或为空(空表示不存在区间),则该成员函数返回 "IlcTrue。 否则,返回 "IlcFalse


setAbsent

public voidsetAbsent() const

如果调用的 "IlcIntervalVar实例尚未缺席,该成员函数会将其设置为缺席。 如果 "存在 "布尔范围变为空,例如区间存在,优化引擎就会提示失败。 否则,将创建一个存在域事件。 该成员函数的效果是可逆的。


setEnd

public voidsetEnd(IlcInt value) const

此成员函数将调用实例 "IlcIntervalVar的末端范围值设置为整数参数 "value。 如果没有间隔,则不会发生变化(由于 CP 优化引擎的单调性)。 如果末端范围为空,区间将被设置为不存在。 否则,将创建一个区间域事件。 该成员函数的效果是可逆的。


setEndMax

public voidsetEndMax(IlcInt max) const

该成员函数将调用实例 "IlcIntervalVar的末端范围最大值设置为整数参数 "max。 如果 "max大于终端范围的当前最大值,或者没有区间,则不会发生变化(这是优化引擎的单调性所致)。 如果末端范围为空,区间将被设置为不存在。 否则,将创建一个区间域事件。 该成员函数的效果是可逆的。


setEndMin

public voidsetEndMin(IlcInt min) const

该成员函数将调用实例 "IlcIntervalVar的末端范围最小值设置为整数参数 "min。 如果 "min小于终端范围的当前最小值,或者没有区间,则不会发生变化(由于优化引擎的单调性)。 如果末端范围为空,区间将被设置为不存在。 否则,将创建一个区间域事件。 该成员函数的效果是可逆的。


setLength

public voidsetLength(IlcInt value) const

该成员函数将调用实例 "IlcIntervalVar的长度范围值设置为整数参数 "value。 如果没有间隔,则不会发生变化(由于优化引擎的单调性)。 如果长度范围为空,区间将被设置为不存在。 否则,将创建一个区间域事件。 该成员函数的效果是可逆的。


setLengthMax

public voidsetLengthMax(IlcInt max) const

该成员函数将调用实例 "IlcIntervalVar的最大长度范围设置为整数参数 "max。 如果 "max大于长度范围的当前最大值,或者没有区间,则不会发生任何变化(这是优化引擎的单调性决定的)。 如果长度范围为空,区间将被设置为不存在。 否则,将创建一个区间域事件。 该成员函数的效果是可逆的。


setLengthMin

public voidsetLengthMin(IlcInt min) const

该成员函数将调用实例 "IlcIntervalVar长度范围的最小值设置为整数参数 "min。 如果 "min小于长度范围的当前最小值,或者没有区间,则不会发生变化(由于优化引擎的单调性)。 如果长度范围为空,区间将被设置为不存在。 否则,将创建一个区间域事件。 该成员函数的效果是可逆的。


setPresent

public voidsetPresent() const

如果调用的 "IlcIntervalVar实例尚未存在,该成员函数会将其设置为存在。 如果 "存在 "布尔值范围为空,例如区间不存在,优化引擎就会提示失败。 否则,将创建一个存在域事件。 该成员函数的效果是可逆的。


setSize

public voidsetSize(IlcInt value) const

此成员函数将调用实例 "IlcIntervalVar的大小范围值设置为整数参数 "value。 如果没有间隔,则不会发生变化(由于优化引擎的单调性)。 如果大小范围为空,间隔将被设置为不存在。 否则,将创建大小域事件(如果长度和大小相等,则创建间隔域事件)。 该成员函数的效果是可逆的。


setSizeMax

public voidsetSizeMax(IlcInt max) const

该成员函数将调用实例 "IlcIntervalVar的最大尺寸范围设置为整数参数 "max。 如果 "max大于大小范围的当前最大值,或者没有区间,则不会发生变化(这是优化引擎的单调性决定的)。 如果大小范围为空,间隔将被设置为不存在。 否则,将创建大小域事件(如果长度和大小相等,则创建间隔域事件)。 该成员函数的效果是可逆的。


setSizeMin

public voidsetSizeMin(IlcInt min) const

该成员函数将调用实例 "IlcIntervalVar的大小范围最小值设置为整数参数 "min。 如果 "min小于大小范围的当前最小值,或者没有区间,则不会发生变化(这是优化引擎的单调性决定的)。 如果大小范围为空,间隔将被设置为不存在。 否则,将创建大小域事件(如果长度和大小相等,则创建间隔域事件)。 该成员函数的效果是可逆的。


setStart

public voidsetStart(IlcInt value) const

此成员函数将调用实例 "IlcIntervalVar的起始范围值设置为整数参数 "value。 如果没有间隔,则不会发生变化(由于优化引擎的单调性)。 如果起始范围为空,间隔将被设置为无。 否则,将创建一个区间域事件。 该成员函数的效果是可逆的。


setStartMax

public voidsetStartMax(IlcInt max) const

该成员函数将调用实例 "IlcIntervalVar的起始范围最大值设置为整数参数 "max。 如果 "max大于起始区间的当前最大值,或者没有区间,则不会发生变化(由于优化引擎的单调性)。 如果起始范围为空,间隔将被设置为无。 否则,将创建一个区间域事件。 该成员函数的效果是可逆的。


setStartMin

public voidsetStartMin(IlcInt min) const

该成员函数将调用实例 "IlcIntervalVar的起始范围的最小值设置为整数参数 "min。 如果 "min小于起始区间的当前最小值,或者没有区间,则不会发生变化(这是优化引擎的单调性决定的)。 如果起始范围为空,间隔将被设置为无。 否则,将创建一个区间域事件。 该成员函数的效果是可逆的。


whenIntervalDomain

public voidwhenIntervalDomain(constIlcDemon d) const

该成员函数将恶魔 "d与调用实例 "IlcIntervalVar上的区间域事件关联起来。 只要调用区间的起始、结束或长度整数范围缩小,恶魔就会被执行。

由于约束也是恶魔,因此约束也可以作为参数传递给该成员函数。 每当调用区间的开始、结束或长度整数范围缩小时,该约束就会传播。

该成员函数只能在张贴约束时使用。


whenPresence

public voidwhenPresence(constIlcDemon d) const

该成员函数将恶魔 "d与调用实例 "IlcIntervalVar的存在域事件(当区间出现或不存在时)关联起来。 只要调用区间变量的存在被固定,恶魔就会被执行。

由于约束也是恶魔,因此约束也可以作为参数传递给该成员函数。 只要调用区间固定存在,约束就会传播。

该成员函数只能在张贴约束时使用。


whenSize

public voidwhenSize(constIlcDemon d) const

该成员函数将恶魔 "d与调用实例 "IlcIntervalVar上的大小域事件关联起来。 每当调用区间变量的大小整数范围缩小时,恶魔就会被执行。

由于约束也是恶魔,因此约束也可以作为参数传递给该成员函数。 每当调用区间的大小整数范围缩小时,该约束就会传播。

该成员函数只能在张贴约束时使用。