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

该类的一个实例代表模型中的一个数值变量。 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四舍五入。另请参阅:
IloBoolVar,IloIntVar,IloModel,IloNumVarArray,IloNumVar::Type
| 方法概要 | |
|---|---|
public IloNumVarI * | getImpl() const |
public IloNum | getLB() const |
public void | getPossibleValues(IloNumArray values) const |
public IloNumVar::Type | getType() const |
public IloNum | getUB() 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 void | setBounds(IloNum lb, IloNum ub) const |
public void | setLB(IloNum num) const |
public void | setPossibleValues(const IloNumArray values) const |
public void | setUB(IloNum num) const |
从 "IloNumExprArg继承的方法 |
|---|
getImpl, IloNumExprArg, IloNumExprArg |
| 内部枚举 | |
|---|---|
| IloNumVar::Type | IloNumVar 类的枚举。 |
| 方法详细信息 |
|---|
该构造函数创建了一个受限数值变量,并使其成为环境 "env的一部分。 默认情况下,数值变量的范围从0.0(零)到符号常量 "IloInfinity,但也可以自行指定其他上下限。 默认情况下,数值变量采用浮点数值。 不过,您可以通过设置 "type = Int,将其限制为整数。 默认情况下,其名称为空字符串,但您也可以指定一个自己喜欢的 "name。
该构造函数创建了一个受限数值变量,并使其成为环境 "env的一部分。 变量的边界由 "lowerBound和 "upperBound设定。 默认情况下,其名称为空字符串,但您也可以指定一个自己喜欢的 "name。
该构造函数以列格式创建一个受限数值变量。 有关在模型中添加列的更多信息,请参阅列式建模概念。
该构造函数创建了一个受限离散数值变量,并使其成为环境 "env的一部分。 新的离散变量将仅限于数组 "values中指定的值。 默认情况下,其名称为空字符串,但您也可以指定一个自己喜欢的名称。 使用约束编程优化器时,可以将成员函数 "IloNumVar::setPossibleValues用于此构造函数创建的实例。
This constructor creates a constrained 分立 numeric variable from var by limiting its domain to the values specified in the array values. 使用约束编程优化器时,可以将成员函数 "IloNumVar::setPossibleValues用于此构造函数创建的实例。
该构造函数创建了一个受限数值变量,它等于 "constraint的真值。 constraint的真值为 0 表示 "IloFalse,为 1 表示 "IloTrue。 您可以使用此构造函数将约束条件转换为受约束的数值变量。 然后,就可以像使用其他受限数值变量一样使用该受限数值变量。 因此,我们可以表达各种约束条件的总和,例如 下面一行表达了三个变量不可能相等的意思:
model.add((x != y) + (y != z) + (z != x) >= 2);
该构造函数从给定的集合中创建一个受限离散数值变量
该构造函数从给定的集合中创建一个受限离散数值变量
该成员函数返回调用数值变量的下限。
该成员函数访问调用数值变量的可能值,并将其放入数组 "values中。
该成员函数返回调用数值变量的类型,指定是整型(Int)还是浮点型(Float)。
该成员函数返回调用数值变量的上界。
该成员函数将 "lb设置为调用数值变量的下限,将 "ub设置为调用数值变量的上限。
setBounds会通知 Concert Technology 算法该数值变量的边界发生变化。该成员函数将 "num设置为调用数值变量的下限。
setLB会通知 Concert Technology 算法有关该数值变量绑定的变化。该成员函数将 "values设置为调用离散数值变量的域。 该成员函数只能在使用两个离散构造函数之一创建的 "IloNumVar实例上调用;也就是说,"IloNumVar实例是由明确的离散值数组定义的。 换句话说,该成员函数仅适用于 CP Optimizer 等约束编程优化器。
setPossibleValues会通知 Concert Technology 算法该离散数值变量的域变化。该成员函数将 "num设置为调用数值变量的上限。
setUB会通知 Concert Technology 算法有关该数值变量绑定的变化。| 内部枚举详细信息 |
|---|
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 |