XpressPersistent
(类来自 pyomo.solvers.plugins.solvers.xpress_persistent)
- class pyomo.solvers.plugins.solvers.xpress_persistent.XpressPersistent(**kwds)[source]
基础:
PersistentSolver,XpressDirect一个提供与Xpress持久接口的类。直接求解器接口不使用任何文件输入输出。相反,它们直接与特定求解器的Python绑定接口。持久求解器接口类似,但它们“记住”它们的模型。因此,持久求解器接口允许对求解器模型进行增量更改(例如,gurobi python模型或cplex python模型)。请注意,当对相应的pyomo模型进行更改时,用户有责任通知持久求解器接口。
- Keyword Arguments:
model (ConcreteModel) – 将模型传递给构造函数等同于调用set_instance方法。
type (str) – 字符串,表示求解器实例的类类型。
name (str) – 表示求解器实例的类类型或指定名称的字符串。
文档 (str) – 求解器的文档
options (dict) – 求解器选项的字典
方法
__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()get_xpress_attribute(*args)获取xpress属性。
get_xpress_control(*args)获取xpress控件。
has_capability(cap)返回一个布尔值,表示求解器是否支持特定功能。
如果已调用set_instance并且此求解器接口具有pyomo模型和求解器模型,则为True。
如果求解器存在并且具有有效的许可证(如果适用),则为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变量中。
返回当前问题的格式。
remove_block(block)从求解器的模型中移除单个块。
remove_constraint(con)从求解器的模型中移除单个约束。
从求解器的模型中移除单个SOS约束。
remove_var(var)从求解器的模型中移除单个变量。
reset()重置求解器的状态
返回当前的结果格式。
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)设置当前结果格式(如果它对当前问题格式有效)。
set_xpress_control(*args)设置xpress控件。
solve(*args, **kwds)解决模型。
update_var(var)更新求解器模型中的单个变量。
version()返回一个描述求解器可执行文件版本的4元组。
如果求解器可以接受热启动解决方案,则为True
write(filename[, flags])将模型写入文件(例如,一个lp文件)。
属性
keepfileslog_filesoln_filesuffixessymbolic_solver_labelsteewarm_start_file_namewarm_start_solve从solve方法返回的结果对象。
成员文档
- XpressException
RuntimeError的别名
- 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和求解器模型的目标中。
- add_constraint(con)
向求解器的模型添加单个约束。
这将保持任何现有模型组件的完整性。
- Parameters:
con (Constraint (标量约束 或 单一约束数据))
- add_sos_constraint(con)
向求解器的模型添加单个SOS约束(如果支持)。
这将保持任何现有模型组件的完整性。
- Parameters:
con (SOSConstraint)
- 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’)
- license_is_valid()
如果求解器存在并且具有有效的许可证(如果适用),则为True
- load_duals(cons_to_load=None)
将双变量加载到‘dual’后缀中。‘dual’后缀必须存在于父模型上。
- Parameters:
cons_to_load (list of Constraint)
- load_rc(vars_to_load=None)
将减少的成本加载到‘rc’后缀中。‘rc’后缀必须存在于父模型上。
- load_slacks(cons_to_load=None)
将松弛变量的值加载到‘slack’后缀中。‘slack’后缀必须存在于父模型上。
- Parameters:
cons_to_load (list of Constraint)
- 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)
- 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_problem_format(format)
设置当前问题的格式(如果它是有效的)并更新结果格式,使其适用于此问题格式。
- set_results_format(format)
设置当前结果格式(如果它对当前问题格式有效)。
- set_xpress_control(*args)[源代码]
设置xpress控件。
- Parameters:
control (str) – 要设置的xpress控制。选项包括任何xpress控制。 请参阅Xpress文档以获取选项。
val (any) – 设置控件的值。有关可能的值,请参阅Xpress文档。
参数 (如果有的话)
values (必须是一个包含控制键和控制的字典)
- 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
- results
从solve方法返回的结果对象。