跳至主内容
框架 无框架

类IloExtractable

定义文件: ilconcert/iloextractable.h
IloExtractable的地图IloExtractableIloBlackboxIloConversionIloCumulFunctionExprIloIntervalSequenceVarIloIntervalVarIloModelIloNumExprArgIloObjectiveIloPiecewiseFunctionExprIloStateFunctionIloStateFunctionExprIloExtractable
所有可提取对象的基类。

该类是所有可提取对象(即 "IloConstraint、"IloNumVar等类的实例)的基类。 该类子类的实例代表 Concert Technology 可以从模型中提取的对象(如约束、约束变量、目标等),供您的应用程序在 Concert Technology 算法中使用。

并非每种算法都能提取模型中的每个可提取对象。 例如,一个模型可能包含多个目标,但您只能为 "IloCplex实例提取一个目标。

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

添加可提取对象

一般来说,要使 Concert Technology 中的某一算法考虑到可提取对象,必须使用成员函数 "IloModel::add将可提取对象添加到模型中,并使用成员函数 "IloAlgorithm::extract为该算法提取模型。

环境与可提取对象

模型中的每个可提取对象都必须属于 "IloEnv的一个实例。 可提取对象(即 "IloExtractable或其派生子类中的一个实例)在其整个生命周期中都与它的创建环境紧密相连。 它只能用于属于同一环境的可提取对象。 它只能针对同一环境中的算法提取。

通知

当您更改可提取对象时,例如将其从模型中删除,Concert Technology 会将更改通知已提取包含该可提取对象的模型的算法。 本文件指出了执行此类通知的成员职能。

另请参阅:

方法概要
public IloConstraintasConstraint() const
public IloIntExprArgasIntExpr() const
public IloModelasModel() const
public IloNumExprArgasNumExpr() const
public IloObjectiveasObjective() const
public IloNumVarasVariable() const
public voidend()
public IloEnvgetEnv() const
public IloIntgetId() const
public IloExtractableI *getImpl() const
public const char *getName() const
public IloAnygetObject() const
public IloExtractable(IloExtractableI * obj=0)
public IloBoolisConstraint() const
public IloBoolisIntExpr() const
public IloBoolisModel() const
public IloBoolisNumExpr() const
public IloBoolisObjective() const
public IloBoolisVariable() const
public voidremoveFromAll()
public voidsetLocation(const char * fileName, int lineNumber) const
public voidsetName(const char * name) const
public voidsetObject(IloAny obj) const
方法详细信息

IloExtractable

公共 'IloExtractable(IloExtractableI * '对象=0)

该构造函数为 "object的实现创建了一个句柄。


asConstraint

publicIloConstraint asConstraint() const

该方法以约束条件或空指针形式返回给定的可提取值

如果要内省表达式,请参阅IloExtractableVisitor

另请参阅:


asIntExpr

publicIloIntExprArg asIntExpr() const

该方法以整数表达式或空指针形式返回给定的可提取值

如果要内省表达式,请参阅IloExtractableVisitor

另请参阅:


asModel

publicIloModel asModel() const

该方法以模型或空指针形式返回给定的可提取值

如果要内省表达式,请参阅IloExtractableVisitor

另请参阅:


asNumExpr

publicIloNumExprArg asNumExpr() const

该方法以浮动表达式或空指针形式返回给定的可提取值

如果要内省表达式,请参阅IloExtractableVisitor

另请参阅:


asObjective

publicIloObjective asObjective() const

该方法以目标或空指针形式返回给定的可提取值

如果要内省表达式,请参阅IloExtractableVisitor

另请参阅:


asVariable

publicIloNumVar asVariable() const

该方法以变量或空指针形式返回给定的可提取值

如果要内省表达式,请参阅IloExtractableVisitor

另请参阅:


结束

public voidend()

该成员函数首先将调用的可提取对象从使用它的所有其他可提取对象(如模型、范围等)中移除 然后删除调用的可提取对象。 也就是说,它会释放调用对象使用的所有资源。 调用该成员函数后,就不能再使用调用的可提取对象。

成员函数 "end会通知 Concert Technology 算法销毁该调用对象。

getEnv

publicIloEnv getEnv() const

该成员函数返回调用的可提取对象所属的环境。 一个可提取对象只属于一个环境;不同的环境不能共享同一个可提取对象。


getId

publicIloInt getId() const

该成员函数返回调用的可提取对象的 ID。


getImpl

publicIloExtractableI*getImpl() const

该成员函数返回指向调用可提取对象的实现对象的指针。 当需要确保在多种情况下使用同一个调用提取对象副本时,该成员函数非常有用。


getName

公共 const char *getName() const

该成员函数返回一个字符串,指明调用对象的名称(如果有的话)。


getObject

公共IloAny getObject() 常量

该成员函数返回与调用对象相关联的对象(如果有的话)。 通常,关联对象包含与调用对象相关的用户数据。


isConstraint

publicIloBool isConstraint() const

该方法会告诉你给定的可提取值是否是一个约束条件

如果要内省表达式,请参阅IloExtractableVisitor

另请参阅:


isIntExpr

publicIloBool isIntExpr() const

该方法会告诉你给定的可提取值是否为整数表达式

如果要内省表达式,请参阅IloExtractableVisitor

另请参阅:


isModel

publicIloBool isModel() const

该方法会告诉你给定的可提取内容是否是模型

如果要内省表达式,请参阅IloExtractableVisitor

另请参阅:


isNumExpr

publicIloBool isNumExpr() const

该方法将告诉您给定的可提取值是否为浮动表达式

如果要内省表达式,请参阅IloExtractableVisitor

另请参阅:


isObjective

publicIloBool isObjective() const

这种方法可以告诉你给定的可提取物是否是目标物

如果要内省表达式,请参阅IloExtractableVisitor

另请参阅:


isVariable

publicIloBool isVariable() const

该方法会告诉你给定的可提取变量是否是变量

如果要内省表达式,请参阅IloExtractableVisitor

另请参阅:


removeFromAll

公共 voidremoveFromAll()

该成员函数将调用的可提取对象从使用它的所有其他可提取对象中删除。 不过,与成员函数 "end不同,成员函数 "removeFromAll不会销毁调用对象。 也就是说,调用的可提取对象仍可在模型中重复使用。


setLocation

public voidsetLocation(const char *fileName, intlineNumber) const

该成员函数将源代码位置(文件名和行号)存储在调用对象中。 建议使用宏 __FILE__ 和 __LINE__ 作为参数。提供的位置可用于调试。 特别是 CP 优化器可能会在错误信息和模型转储中包含该位置。

注意,fileName参数指向的字符串不会被复制。 因此,指针必须在对象的整个生命周期内有效。

与其直接使用该函数,不如使用宏 "ILOSETLOCATION和 "ILOADD


setName

public voidsetName(const char *name) const

该成员函数将 "name赋值给调用对象。

当调用已提取的可提取物时,将向引擎发送通知。 在可能的情况下,应在提取模型之前调用该方法。


setObject

public voidsetObject(IloAny obj) const

该成员函数将 "obj与调用对象关联。 之后,成员函数 "getObject将访问该关联对象。 通常,"obj包含与调用对象相关的用户数据。