CPLEX持久化

(类来自 pyomo.solvers.plugins.solvers.cplex_persistent)

class pyomo.solvers.plugins.solvers.cplex_persistent.CPLEXPersistent(**kwds)[source]

基础类:PersistentSolver, CPLEXDirect

一个提供与Cplex持久接口的类。直接求解器接口不使用任何文件输入输出。相反,它们直接与特定求解器的python绑定接口。持久求解器接口类似,但它们“记住”它们的模型。因此,持久求解器接口允许对求解器模型进行增量更改(例如,gurobi python模型或cplex python模型)。请注意,当对相应的pyomo模型进行更改时,用户有责任通知持久求解器接口。

Keyword Arguments:
  • model (ConcreteModel) – 将模型传递给构造函数等同于调用set_instance方法。

  • type (str) – 字符串,表示求解器实例的类类型。

  • name (str) – 表示求解器实例的类类型或指定名称的字符串。

  • 文档 (str) – 求解器的文档

  • options (dict) – 求解器选项的字典

__init__(**kwds)[源代码]

构造函数

方法

__init__(**kwds)

构造函数

add_block(block)

向求解器的模型添加一个单一的Pyomo块。

add_column(model, var, obj_coef, ...)

向求解器和Pyomo模型添加一列

add_constraint(con)

向求解器的模型添加单个约束。

add_sos_constraint(con)

向求解器的模型添加单个SOS约束(如果支持)。

add_var(var)

向求解器的模型添加单个变量。

available([exception_flag])

如果求解器可用,则为True。

config_block([init])

default_variable_value()

has_capability(cap)

返回一个布尔值,表示求解器是否支持特定功能。

has_instance()

如果已调用set_instance并且此求解器接口具有pyomo模型和求解器模型,则为True。

license_is_valid()

如果求解器存在并且具有有效的许可证(如果适用),则为True

load_duals([cons_to_load])

将双变量加载到 'dual' 后缀中。

load_rc(vars_to_load)

将减少的成本加载到 'rc' 后缀中。

load_slacks([cons_to_load])

将松弛变量的值加载到 'slack' 后缀中。

load_vars([vars_to_load])

将求解器变量的值加载到相应的pyomo变量中。

problem_format()

返回当前问题的格式。

remove_block(block)

从求解器的模型中移除单个块。

remove_constraint(con)

从求解器的模型中移除单个约束。

remove_sos_constraint(con)

从求解器的模型中移除单个SOS约束。

remove_var(var)

从求解器的模型中移除单个变量。

reset()

重置求解器的状态

results_format()

返回当前的结果格式。

set_callback(name[, callback_fn])

为命名回调设置回调函数。

set_instance(model, **kwds)

此方法用于将提供的Pyomo模型转换为求解器的Python模型实例。

set_objective(obj)

设置求解器的目标。

set_options(istr)

set_problem_format(format)

设置当前问题的格式(如果它是有效的),并将结果格式更新为适合此问题格式的有效格式。

set_results_format(format)

设置当前结果格式(如果它对当前问题格式有效)。

solve(*args, **kwds)

解决模型。

update_var(var)

更新求解器模型中的单个变量。

version()

返回一个描述求解器可执行文件版本的4元组。

warm_start_capable()

如果求解器可以接受热启动解决方案,则为True

write(filename[, filetype])

将模型写入文件(例如,一个lp文件)。

属性

keepfiles

log_file

soln_file

suffixes

symbolic_solver_labels

tee

warm_start_file_name

warm_start_solve

results

从solve方法返回的结果对象。

成员文档

add_block(block)

向求解器的模型添加一个单一的Pyomo块。

这将保持任何现有模型组件的完整性。

Parameters:

block (Block (标量 Block单个 BlockData))

add_column(model, var, obj_coef, constraints, coefficients)

向求解器和Pyomo模型添加一列

这将把Pyomo变量var添加到求解器的模型中,并将相关约束的系数放入求解器模型中。如果obj_coef不为零,它将会把obj_coef*var添加到Pyomo和求解器模型的目标中。

Parameters:
  • model (将列添加到的pyomo ConcreteModel)

  • var (Var (标量 Var单个 VarData))

  • obj_coef (float, pyo.Param)

  • 约束 (列表标量约束单一约束数据)

  • coefficients (list要在相关约束中应用于 var 的系数)

add_constraint(con)

向求解器的模型添加单个约束。

这将保持任何现有模型组件的完整性。

Parameters:

con (Constraint (标量约束单一约束数据))

add_sos_constraint(con)

向求解器的模型添加单个SOS约束(如果支持)。

这将保持任何现有模型组件的完整性。

Parameters:

con (SOSConstraint)

add_var(var)

向求解器的模型添加单个变量。

这将保持任何现有模型组件的完整性。

Parameters:

var (Var)

available(exception_flag=True)

如果求解器可用,则为True。

has_capability(cap)

返回一个布尔值,表示求解器是否支持特定功能。如果求解器不知道某个选项,则默认为‘False’。期望输入一个字符串。

示例: # 如果求解器支持sos1约束,则打印True,否则打印False print(solver.has_capability(‘sos1’)

# 如果求解器支持‘feature’,则打印True,否则打印False print(solver.has_capability(‘feature’)

Parameters:

cap (str) – 特征

Returns:

val – 求解器是否具有指定的能力。

Return type:

bool

has_instance()

如果已调用set_instance并且此求解器接口具有pyomo模型和求解器模型,则为True。

Returns:

tmp

Return type:

bool

license_is_valid()

如果求解器存在并且具有有效的许可证(如果适用),则为True

load_duals(cons_to_load=None)

将双变量加载到‘dual’后缀中。‘dual’后缀必须存在于父模型上。

Parameters:

cons_to_load (list of Constraint)

load_rc(vars_to_load)

将减少的成本加载到‘rc’后缀中。‘rc’后缀必须存在于父模型上。

Parameters:

vars_to_load (list of Var)

load_slacks(cons_to_load=None)

将松弛变量的值加载到‘slack’后缀中。‘slack’后缀必须存在于父模型中。

Parameters:

cons_to_load (list of Constraint)

load_vars(vars_to_load=None)

将求解器变量中的值加载到相应的pyomo变量中。

Parameters:

vars_to_load (list of Var)

problem_format()

返回当前问题的格式。

remove_block(block)

从求解器的模型中移除单个块。

这将保持其他模型组件的完整性。

警告:用户在修改块之前必须调用remove_block。

Parameters:

block (Block (标量 Block单个 BlockData))

remove_constraint(con)

从求解器的模型中移除单个约束。

这将保持其他模型组件的完整性。

Parameters:

con (Constraint (标量约束单一约束数据))

remove_sos_constraint(con)

从求解器的模型中移除单个SOS约束。

这将保持其他模型组件的完整性。

Parameters:

con (SOSConstraint)

remove_var(var)

从求解器的模型中移除单个变量。

这将保持其他模型组件的完整性。

Parameters:

var (Var (标量 Var单个 VarData))

reset()

重置求解器的状态

results_format()

返回当前的结果格式。

set_callback(name, callback_fn=None)

为命名回调设置回调函数。

回调函数的形式如下:

def fn(solver, model):

通过

其中‘solver’是原生求解器接口对象,‘model’是Pyomo模型实例对象。

set_instance(model, **kwds)

此方法用于将提供的Pyomo模型转换为求解器的Python模型实例。这将丢弃任何现有模型并从头开始。

Parameters:

model (ConcreteModel) – 用于求解器的pyomo模型。

Keyword Arguments:
  • symbolic_solver_labels (bool) – 如果为True,求解器的组件(例如,变量、约束)将被赋予与Pyomo组件名称相对应的名称。

  • skip_trivial_constraints (bool) – 如果为True,则任何具有常量主体的约束将不会被添加到求解器模型中。 使用此选项时要小心。如果跳过了平凡约束,则无法从持久求解器中移除该约束(如果用户尝试移除不存在的约束,则会引发错误)。

  • output_fixed_variable_bounds (bool) – 如果为False,则在求解器约束中使用固定变量时将引发错误。 这对于捕获错误非常有用。通常,固定变量应作为常量值出现在求解器约束中。如果为True,则不会引发错误。

set_objective(obj)

设置求解器的目标。请注意,至少目前,任何现有的目标都将被丢弃。除此之外,任何现有的模型组件将保持不变。

Parameters:

obj (Objective)

set_problem_format(format)

设置当前问题的格式(如果它是有效的)并更新结果格式,使其适用于此问题格式。

set_results_format(format)

设置当前结果格式(如果它对当前问题格式有效)。

solve(*args, **kwds)

解决模型。

Keyword Arguments:
  • suffixes (list of str) – 字符串应表示求解器支持的后缀。示例包括‘dual’、‘slack’和‘rc’。

  • options (dict) – 求解器选项的字典。请参阅求解器文档以了解可能的求解器选项。

  • warmstart (bool) – 如果为True,求解器将被热启动。

  • keepfiles (bool) – 如果为True,求解器的日志文件将被保存。

  • logfile (str) – 用于求解器日志文件的名称。

  • load_solutions (bool) – 如果为True且存在解决方案,解决方案将被加载到Pyomo模型中。

  • report_timing (bool) – 如果为True,则将打印时间信息。

  • tee (bool) – 如果为True,则求解器日志将被打印。

update_var(var)[source]

更新求解器模型中的单个变量。

这将更新边界,根据需要固定/取消固定变量,并更新变量类型。

Parameters:

var (Var (标量 Var单个 VarData))

version()

返回一个描述求解器可执行文件版本的4元组。

warm_start_capable()

如果求解器可以接受热启动解决方案,则为True

write(filename, filetype='')[source]

将模型写入文件(例如,一个lp文件)。

Parameters:
  • filename (str) – 模型应写入的文件名称。

  • filetype (str) – 文件类型(例如,lp)。

results

从solve方法返回的结果对象。