跳至主内容
框架 无框架

IloConversion类

定义文件: ilconcert/iloexpression.h
IloConversion的地图IloConversionIloConversionIloExtractable
ILOG CPLEX:改变数值变量类型的方法。

该类的实例为您提供了更改数值变量类型的方法。 例如,在为算法(如类 "IloCplex"的实例)提取的模型("IloModel"的实例)中,您可能希望将给定的数值变量("IloNumVar"的实例)的类型从 "ILOFLOAT转换为 "ILOINT"或 "ILOBOOL(或从 "IloNumVar::Float转换为 "IloNumVar::Int"或 "IloNumVar::Bool")。 这种变化被称为转换。

创建转换后,必须将其明确添加到模型中,才能将其考虑在内。 为此,请使用成员函数 "IloModel::add或模板 "IloAdd。 Then extract the model for an algorithm (such as an instance of IloCplex) with the member function IloAlgorithm::extract.

同一变量的多种类型转换

您可以转换模型中数值变量的类型。 为此,请创建一个 "IloConversion实例并将其添加到模型中。 您也可以在为算法提取模型后转换数值变量的类型(如IBM ILOG CPLEX参考手册中记录的 "IloCplex实例)。

IloCplex实例不会接受同一变量的多个类型转换。 也就是说,您可以在 "IloCplex的一个实例中更改一次类型,但不能更改两次。 如果多次尝试转换同一变量的类型,则会出现IBM ILOG CPLEX参考手册中记录的异常 "IloCplex::MultipleConversionException

如果要多次更改数值变量的类型(例如,从布尔型到整数型再到浮点型),有以下几种可能:

 IloNumVarx(env,0,10,ILOBOOL);
 IloRangerng = (x <= 10);
 IloModel mdl1(env);
 mdl1.add(rng);
 mdl1.add(IloConversion(env, x, ILOINT));
 IloCplex cplex1(mdl1);
 IloModel mdl2(env);
 mdl2.add(rng);
 mdl2.add(IloConversion(env, x, ILOFLOAT));
 IloCplex cplex2(mdl2);
 

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

另请参阅 ILOG CPLEX参考手册》中的 "IloCplex类。

另请参阅:

方法概要
public IloConversionI *getImpl() const
public IloConversion()
public IloConversion(IloConversionI * impl)
public IloConversion(const IloEnv env, const IloNumVar var, IloNumVar::Type t, const char * name=0)
public IloConversion(const IloEnv env, const IloNumVarArray vars, IloNumVar::Type t, const char * name=0)
public IloConversion(const IloEnv env, const IloIntVarArray vars, IloNumVar::Type t, const char * name=0)
从 "IloExtractable继承的方法
asConstraint, asIntExpr, asModel, asNumExpr, asObjective, asVariable, end, getEnv, getId, getImpl, getName, getObject, IloExtractable, isConstraint, isIntExpr, isModel, isNumExpr, isObjective, isVariable, removeFromAll, setLocation, setName, setObject
方法详细信息

IloConversion

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

IloConversion

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

IloConversion

public 'IloConversion(const 'IloEnv'环境, const 'IloNumVar'变异, 'IloNumVar::Type't, const char * '名字=0)

该构造函数接受一个数值变量和一个类型;它创建了一个类型转换句柄,用于将变量 "var的类型转换为 "t指定的类型。 您可以使用参数 "name来命名类型转换,这样就可以用字符串标识符来引用它。


IloConversion

public 'IloConversion(const 'IloEnv'环境, const 'IloNumVarArray'变量, 'IloNumVar::Type't, const char * '名字=0)

该构造函数接受一个数字变量数组和一个类型;它创建了一个类型转换句柄,用于将数组 "vars中每个变量的类型更改为 "t指定的类型。 您可以使用参数 "name来命名类型转换,这样就可以用字符串标识符来引用它。


IloConversion

public 'IloConversion(const 'IloEnv'环境, const 'IloIntVarArray'变量, 'IloNumVar::Type't, const char * '名字=0)

该构造函数接受一个整数变量数组和一个类型;它创建了一个类型转换句柄,用于将数组 "vars中每个变量的类型更改为 "t指定的类型。 您可以使用参数 "name来命名类型转换,这样就可以用字符串标识符来引用它。


getImpl

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