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

IloAlgorithm实例代表 Concert 技术中的一种算法。
一般来说,您定义了一个模型,Concert Technology 会根据您的目标算法从中提取对象,然后求解。
该类中的大多数成员函数都包含 "assert语句。 有关宏 "NDEBUG(打开或关闭这些 "assert语句的方法)的解释,请参阅Assert 和 NDEBUG 概念。
状态
成员函数 "getStatus返回一个状态,显示当前提取模型和解决方案(如果有)的信息。 有关状态的解释,请参见嵌套枚举 "IloAlgorithm::Status。
异常
从类 "IloException派生出来的类 "IloAlgorithm::Exception是从 "IloAlgorithm派生出来的类所抛出的异常的基类。 有关 "IloAlgorithm实例抛出的异常的解释,请参见 "IloAlgorithm::Exception。
数据流和输出
IloAlgorithm类支持这些通信流:
ostream& IloAlgorithm::error() const;表示错误信息。ostream& IloAlgorithm::out() const;用于一般输出。ostream& IloAlgorithm::warning() const;,用于非致命情况的警告信息。儿童班:
IloCplex类IloCP类。IloSolver类。另请参阅:
IloEnv,IloModel,IloAlgorithm::Status,IloAlgorithm::Exception
| 方法概要 | |
|---|---|
public void | clear() const |
public void | end() |
public ostream & | error() const |
public void | extract(const IloModel) const |
public IloEnv | getEnv() const |
public IloInt | getIntValue(const IloIntVar var) const |
public void | getIntValues(const IloIntVarArray vars, IloIntArray vals) const |
public IloModel | getModel() const |
public IloNum | getObjValue() const |
public IloAlgorithm::Status | getStatus() const |
public IloNum | getTime() const |
public IloNum | getValue(const IloNumExprArg expr) const |
public IloNum | getValue(const IloObjective obj) const |
public IloNum | getValue(const IloIntVar var) const |
public IloNum | getValue(const IloNumVar var) const |
public void | getValues(const IloIntVarArray vars, IloNumArray vals) const |
public void | getValues(const IloNumVarArray var, IloNumArray vals) const |
public | IloAlgorithm(IloAlgorithmI * impl=0) |
public IloBool | isExtracted(const IloExtractable extr) const |
public ostream & | out() const |
public void | printTime() const |
public void | resetTime() const |
public void | setError(ostream &) |
public void | setOut(ostream &) |
public void | setWarning(ostream &) |
public IloBool | solve() const |
public ostream & | warning() const |
| 内部枚举 | |
|---|---|
| IloAlgorithm::Status | An enumeration for the class IloAlgorithm. |
| 内部班级 | |
|---|---|
| IloAlgorithm::CannotChangeException | 当模型中对象的值无法更改时抛出的异常类。 |
| IloAlgorithm::CannotExtractException | 当无法从模型中提取对象时抛出的异常类。 |
| IloAlgorithm::CannotRemoveException | 当对象无法从模型中移除时抛出的异常类。 |
| IloAlgorithm::Exception | 从IloAlgorithm 派生的类抛出的异常的基类。 |
| IloAlgorithm::NotExtractedException | 如果可提取对象在算法的当前解中没有值,则抛出的异常类。 |
| 方法详细信息 |
|---|
该构造函数从 Concert Technology 的实现对象中创建一个算法。 这是默认构造函数。
该成员函数从算法中清除当前模型。
该成员函数用于删除调用的算法。 也就是说,它释放了与调用算法相关的内存。
此成员函数返回一个引用,指向当前用于从调用算法中获取错误信息的数据流。 IloAlgorithm::error用 "IloEnv::error的值初始化。
如果有成员函数从模型中提取对象用于调用算法,则该成员函数会将可提取对象从模型中提取到调用算法中。 并非所有可提取对象都能被所有算法提取;请参阅所用算法类的文档,了解其支持的可提取类列表。
使用该成员函数从模型中提取可提取对象时,它将提取 Concert Technology 为其创建适合调用算法的可提取对象表示的该模型的所有元素。
提取尝试可能会失败。 如果出现这种故障,Concert Technology 会在启用异常时,在支持 C++ 异常的平台上抛出异常 "CannotExtractException。
例如,如果尝试为只接受一个目标的调用算法提取多个目标,就会发生故障,Concert Technology 将抛出异常 "MultipleObjException。
该成员函数返回调用算法的环境。
该成员函数返回调用算法的当前解中整数变量的整数值。 例如,要访问变量,请使用成员函数 "getIntValue(var),其中 "var是类 "IloIntVar的实例。
如果 "var没有返回值,该成员函数将引发错误。 This member function throws the exception NotExtractedException if there is no value to return (for example, if var was not extracted by the invoking algorithm).
该成员函数接受一个变量数组 "vars,并将相应的值放入数组 "vals;相应的值来自调用算法的当前解。 将数组 "vals传递给该成员函数时,它必须是一个干净的空数组。
如果没有要返回的 "vars值,该成员函数将引发错误。 在支持 C++ 异常的平台上,当启用异常时,该成员函数会在这种情况下抛出异常 "NotExtractedException。
该成员函数返回调用算法的模型。
该成员函数返回与调用算法相关的目标函数的数值。
该成员函数返回一个状态,显示有关当前模型和解决方案的信息。 有关状态的解释,请参见嵌套枚举 "IloAlgorithm::Status。
该成员函数返回自调用算法最近一次重置以来所经过的时间(以秒为单位)。 (成员函数 "IloAlgorithm::printTime将 "getTime的输出导向调用算法的输出通道)
另请参阅:
该成员函数返回调用算法当前解中表达式的值。 例如,要访问表达式,请使用成员函数 "getValue(expr),其中 "expr是类 "IloNumExprArg的实例。
如果 "expr没有返回值,该成员函数将引发错误。 This member function throws the exception NotExtractedException if there is no value to return (for example, if expr was not extracted by the invoking algorithm).
该成员函数返回调用算法当前解中的目标值。 例如,要访问目标,请使用成员函数 "getValue(obj),其中 "obj是类 "IloObjective的实例。
如果 "obj没有返回值,该成员函数将引发错误。 This member function throws the exception NotExtractedException if there is no value to return (for example, if obj was not extracted by the invoking algorithm).
该成员函数返回调用算法的当前解中整数变量的数值。 例如,要访问变量,请使用成员函数 "getValue(var),其中 "var是类 "IloIntVar的实例。
如果 "var没有返回值,该成员函数将引发错误。 This member function throws the exception NotExtractedException if there is no value to return (for example, if var was not extracted by the invoking algorithm).
有关适用于该方法的整数、截断和舍入的特殊考虑因素,请参阅CPLEX 优化器中的整数值、整数公差和舍入概念。
该成员函数返回调用算法的当前解中数值变量的数值。 例如,要访问变量的值,可使用成员函数 "getValue(var),其中 "var是类 "IloNumVar的实例。
如果 "var没有返回值,该成员函数将引发错误。 This member function throws the exception NotExtractedException if there is no value to return (for example, if var was not extracted by the invoking algorithm).
该成员函数接受一个变量数组 "vars,并将相应的值放入数组 "vals;相应的值来自调用算法的当前解。 将数组 "vals传递给该成员函数时,它必须是一个干净的空数组。
如果没有要返回的 "vars值,该成员函数将引发错误。 在支持 C++ 异常的平台上,当启用异常时,该成员函数会在这种情况下抛出异常 "NotExtractedException。
有关适用于该方法的整数、截断和舍入的特殊考虑因素,请参阅CPLEX 优化器中的整数值、整数公差和舍入概念。
该成员函数接受一个变量数组 "vars,并将相应的值放入数组 "vals;相应的值来自调用算法的当前解。 将数组 "vals传递给该成员函数时,它必须是一个干净的空数组。
如果没有要返回的 "vars值,该成员函数将引发错误。 在支持 C++ 异常的平台上,当启用异常时,该成员函数会在这种情况下抛出异常 "NotExtractedException。
如果为调用算法提取了 "extr,则该成员函数返回 "IloTrue;否则,返回 "IloFalse。
该成员函数返回当前用于日志记录的数据流的引用。 通过该成员函数可以访问调用算法的一般输出。 IloAlgorithm::out用 "IloEnv::out的值初始化。
该成员函数将成员函数 "IloAlgorithm::getTime的输出导向调用算法的输出通道。 (成员函数 "IloAlgorithm::getTime可访问自调用算法最近一次重置以来的时间(以秒为单位))
该成员函数重置调用算法的计时器。 计时器的类型取决于平台。 在 Windows 系统中,时间是墙上时钟的走时时间。 在 UNIX 系统上,时间就是 CPU 时间。
该成员函数用于设置调用算法产生的错误流。 默认情况下,流由 "IloEnv实例定义为 "cerr。
该成员函数将 "out()数据流重定向为作为参数给定的数据流。
该成员函数可与 "IloEnv::getNullStream一起使用,通过重定向到空流来抑制屏幕输出。
该成员函数用于设置来自调用算法的警告流。 默认情况下,流由 "IloEnv实例定义为 "cout。
该成员函数在调用算法中求解当前模型。 换句话说,"solve适用于从算法模型中提取的所有可提取对象。 如果找到一个解(不一定是最优解),成员函数会返回 "IloTrue。 下面是一个使用实例:
ifalgo.solve()) {
algo.out() << "Status is " <<algo.getStatus() << endl;
};如果模型的目标已被提取到调用算法中,则该成员函数将对模型进行优化求解。 如果当前没有目标,则该成员函数会搜索第一个可行的解决方案。 可行的解决方案不一定是最优的,尽管它能满足所有约束条件。
该成员函数返回调用算法当前用于警告的数据流的引用。 IloAlgorithm::warning用 "IloEnv::warning的值初始化。
| 内部枚举详细信息 |
|---|
IloAlgorithm.IloAlgorithm是 Concert Technology 算法的基类,"IloAlgorithm::Status"是一个枚举,其范围仅限于 "IloAlgorithm类。 成员函数 "IloAlgorithm::getStatus返回一个状态,显示当前模型和解决方案的相关信息。
Unknown 指定算法没有关于模型解决方案的信息。
Feasible表示算法找到了可行解(即变量赋值满足模型的约束条件,但不一定是最优解)。 成员函数 "IloAlgorithm::getValue可以访问这个可行的解决方案。
Optimal表示算法找到了最优解(即变量的赋值满足模型的所有约束条件,并被证明是模型目标的最优解)。 成员函数 "IloAlgorithm::getValue可以访问该最优解。
Infeasible表示算法证明模型不可行,即无法找到满足模型中所有约束条件的变量赋值。
Unbounded 指定算法已证明该模型无界限。 为了检查模型是否可行,可以删除目标,然后重新优化。
InfeasibleOrUnbounded 指定模型不可行或无界限。
Error表示发生了错误,在支持异常的平台上,表示抛出了异常。
另请参阅:
| 字段 |
|---|
Unknown | |
Feasible | |
Optimal | |
Infeasible | |
Unbounded | |
InfeasibleOrUnbounded | |
Error |