跳至主内容
框架 无框架

类IloNumVar

定义文件: ilconcert/iloexpression.h
IloNumVar的地图IloNumVarIloSemiContVarIloNumVarIloNumExprArgIloExtractable
该类的一个实例代表模型中的一个数值变量。

该类的一个实例代表模型中的一个数值变量。 A numeric variable may be either an integer variable or a floating-point variable; that is, a numeric variable has a type, a value of the nested enumeration IloNumVar::Type. 默认情况下,其类型为 "Float。 它也有下限和上限。 数值变量的值不能小于其下限,也不能大于其上限。

如果你正在寻找一类只能取受约束整数值的变量,可以考虑使用 "IloIntVar类。 如果您正在寻找一类只能取值 0(零)或 1(一)的二元决策变量,那么可以考虑 "IloBoolVar类。

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

编程提示

For each enumerated value in the nested enumeration IloNumVar::Type, Concert Technology offers an equivalent predefined C++ #define to make programming easier. 例如,在您的应用程序中,您可以编写以下两种语句:

 IloNumVarx(env, 0, 17,IloNumVar::Int); // 使用枚举

 IloNumVarx(env, 0, 17, ILOINT); // 使用#define(定义)
 
如果在构造函数中或通过修改器("setUB、"setLB"、"setBounds)为整数变量("IloIntVar或 "IloNumVar和 "Type = Int的实例)赋予了数字边界,它们将被内舍入为整数值。 LB四舍五入,"UB四舍五入。

另请参阅:

方法概要
public IloNumVarI *getImpl() const
public IloNumgetLB() const
public voidgetPossibleValues(IloNumArray values) const
public IloNumVar::TypegetType() const
public IloNumgetUB() const
public IloNumVar()
public IloNumVar(IloNumVarI * impl)
public IloNumVar(const IloEnv env, IloNum lb=0, IloNum ub=IloInfinity, IloNumVar::Type type=Float, const char * name=0)
public IloNumVar(const IloEnv env, IloNum lowerBound, IloNum upperBound, const char * name)
public IloNumVar(const IloAddNumVar & var, IloNum lowerBound=0.0, IloNum upperBound=IloInfinity, IloNumVar::Type type=Float, const char * name=0)
public IloNumVar(const IloEnv env, const IloNumArray values, IloNumVar::Type type=Float, const char * name=0)
public IloNumVar(const IloAddNumVar & var, const IloNumArray values, IloNumVar::Type type=Float, const char * name=0)
public IloNumVar(const IloConstraint constraint)
public IloNumVar(const IloNumRange coll, const char * name=0)
public voidsetBounds(IloNum lb, IloNum ub) const
public voidsetLB(IloNum num) const
public voidsetPossibleValues(const IloNumArray values) const
public voidsetUB(IloNum num) const
从 "IloNumExprArg继承的方法
getImpl, IloNumExprArg, IloNumExprArg
从 "IloExtractable继承的方法
asConstraint, asIntExpr, asModel, asNumExpr, asObjective, asVariable, end, getEnv, getId, getImpl, getName, getObject, IloExtractable, isConstraint, isIntExpr, isModel, isNumExpr, isObjective, isVariable, removeFromAll, setLocation, setName, setObject
内部枚举
IloNumVar::TypeIloNumVar 类的枚举。
方法详细信息

IloNumVar

publicIloNumVar()
该构造函数创建一个空句柄。 使用前必须初始化。

IloNumVar

publicIloNumVar(IloNumVarI *impl)
该构造函数通过指向实现对象的指针创建一个句柄对象。

IloNumVar

public 'IloNumVar(const 'IloEnv'环境, 'IloNum'=0, 'IloNum'ub=IloInfinity, 'IloNumVar::Type'类型= '浮动, const char * '名字= '0)

该构造函数创建了一个受限数值变量,并使其成为环境 "env的一部分。 默认情况下,数值变量的范围从0.0(零)到符号常量 "IloInfinity,但也可以自行指定其他上下限。 默认情况下,数值变量采用浮点数值。 不过,您可以通过设置 "type = Int,将其限制为整数。 默认情况下,其名称为空字符串,但您也可以指定一个自己喜欢的 "name


IloNumVar

public 'IloNumVar(const 'IloEnv'环境, 'IloNum'下限, 'IloNum'上限, const char * '名字)

该构造函数创建了一个受限数值变量,并使其成为环境 "env的一部分。 变量的边界由 "lowerBound和 "upperBound设定。 默认情况下,其名称为空字符串,但您也可以指定一个自己喜欢的 "name


IloNumVar

public 'IloNumVar(const 'IloAddNumVar& '变异, 'IloNum'下限=0.0, 'IloNum'上限=IloInfinity, 'IloNumVar::Type'类型= '浮动, const char * '名字= '0)

该构造函数以列格式创建一个受限数值变量。 有关在模型中添加列的更多信息,请参阅列式建模概念。


IloNumVar

public 'IloNumVar(const 'IloEnv'环境, const 'IloNumArray'价值观, 'IloNumVar::Type'类型=浮动, const char * '名字= '0)

该构造函数创建了一个受限离散数值变量,并使其成为环境 "env的一部分。 新的离散变量将仅限于数组 "values中指定的值。 默认情况下,其名称为空字符串,但您也可以指定一个自己喜欢的名称。 使用约束编程优化器时,可以将成员函数 "IloNumVar::setPossibleValues用于此构造函数创建的实例。


IloNumVar

public 'IloNumVar(const 'IloAddNumVar& '变异, const 'IloNumArray'价值观, 'IloNumVar::Type'类型=浮动, const char * '名字= '0)

This constructor creates a constrained 分立 numeric variable from var by limiting its domain to the values specified in the array values. 使用约束编程优化器时,可以将成员函数 "IloNumVar::setPossibleValues用于此构造函数创建的实例。


IloNumVar

publicIloNumVar(IloConstraint 约束)

该构造函数创建了一个受限数值变量,它等于 "constraint的真值。 constraint的真值为 0 表示 "IloFalse,为 1 表示 "IloTrue。 您可以使用此构造函数将约束条件转换为受约束的数值变量。 然后,就可以像使用其他受限数值变量一样使用该受限数值变量。 因此,我们可以表达各种约束条件的总和,例如 下面一行表达了三个变量不可能相等的意思:

 model.add((x != y) + (y != z) + (z != x) >= 2);
 

IloNumVar

public 'IloNumVar(const 'IloNumRange'相撞, const char * '名字=0)

该构造函数从给定的集合中创建一个受限离散数值变量

该构造函数从给定的集合中创建一个受限离散数值变量


getImpl

公共IloNumVarI*getImpl() 常量
该成员函数返回一个指向调用句柄的实现对象的指针。

getLB

publicIloNum getLB() const

该成员函数返回调用数值变量的下限。


getPossibleValues

public voidgetPossibleValues(IloNumArray values) const

该成员函数访问调用数值变量的可能值,并将其放入数组 "values中。


getType

publicIloNumVar::Type getType() const

该成员函数返回调用数值变量的类型,指定是整型(Int)还是浮点型(Float)。


getUB

publicIloNum getUB() const

该成员函数返回调用数值变量的上界。


setBounds

public voidsetBounds(IloNum lb,IloNum ub) const

该成员函数将 "lb设置为调用数值变量的下限,将 "ub设置为调用数值变量的上限。

成员函数 "setBounds会通知 Concert Technology 算法该数值变量的边界发生变化。

setLB

public voidsetLB(IloNum num) const

该成员函数将 "num设置为调用数值变量的下限。

成员函数 "setLB会通知 Concert Technology 算法有关该数值变量绑定的变化。

setPossibleValues

public voidsetPossibleValues(constIloNumArray values) const

该成员函数将 "values设置为调用离散数值变量的域。 该成员函数只能在使用两个离散构造函数之一创建的 "IloNumVar实例上调用;也就是说,"IloNumVar实例是由明确的离散值数组定义的。 换句话说,该成员函数仅适用于 CP Optimizer 等约束编程优化器。

成员函数 "setPossibleValues会通知 Concert Technology 算法该离散数值变量的域变化。

setUB

public voidsetUB(IloNum num) const

该成员函数将 "num设置为调用数值变量的上限。

成员函数 "setUB会通知 Concert Technology 算法有关该数值变量绑定的变化。

内部枚举详细信息

枚举类型

定义文件: ilconcert/iloexpression.h
IloNumVar 类的枚举。

This nested enumeration enables you to specify whether an instance of IloNumVar is of type integer (Int), Boolean (Bool), or floating-point (Float).

编程提示

对于 "IloNumVar::Type中的每个枚举值,Concert Technology 包含文件中都有一个预定义的等效 C++"#define,以方便编程。 For example, instead of writing IloNumVar::Int in your application, you can write ILOINT. 同样,"ILOFLOAT是为 "IloNumVar::Float定义的,"ILOBOOL是为 "IloNumVar::Bool定义的。

另请参阅:

字段

Int = 1 
Float = 2 
Bool = 3