求解器基础

(类来自 pyomo.contrib.solver.base)

class pyomo.contrib.solver.base.SolverBase(**kwds)[源代码]

基类:ABC

This base class defines the methods required for all solvers:
  • available: Determines whether the solver is able to be run,

    结合它是否可以在系统上找到以及许可证是否有效。

  • solve: 每个求解器的主要方法

  • 版本:求解器的版本

  • is_persistent: 对于所有非持久性求解器,设置为false。

此外,求解器应该有一个config属性,该属性继承自SolverConfigBranchAndBoundConfigPersistentSolverConfigPersistentBranchAndBoundConfig

__init__(**kwds) None[source]

方法

__init__(**kwds)

available()

测试此系统上是否可用的求解器。

is_persistent()

solve(model, **kwargs)

解决一个Pyomo模型。

version()

属性

CONFIG

成员文档

enum Availability(value)[source]

基础:IntEnum

用于捕获求解器可能存在的不同状态的类,以记录其可用性。

as_integer_ratio()

返回整数比率。

返回一对整数,其比例完全等于原始整数,并且分母为正数。

>>> (10).as_integer_ratio()
(10, 1)
>>> (-10).as_integer_ratio()
(-10, 1)
>>> (0).as_integer_ratio()
(0, 1)
bit_count()

自身绝对值的二进制表示中1的数量。

也被称为人口计数。

>>> bin(13)
'0b1101'
>>> (13).bit_count()
3
bit_length()

表示自身所需的二进制位数。

>>> bin(37)
'0b100101'
>>> (37).bit_length()
6
conjugate()

返回自身,即任何整数的复共轭。

classmethod from_bytes(bytes, byteorder='big', *, signed=False)

返回由给定字节数组表示的整数。

bytes

保存要转换的字节数组。参数必须支持缓冲区协议或是一个生成字节的可迭代对象。Bytes 和 bytearray 是支持缓冲区协议的内置对象的示例。

byteorder

用于表示整数的字节顺序。如果字节顺序是‘big’,最高有效字节位于字节数组的开头。如果字节顺序是‘little’,最高有效字节位于字节数组的末尾。要请求主机系统的本机字节顺序,请使用sys.byteorder作为字节顺序值。默认是使用‘big’。

signed

指示是否使用二进制补码来表示整数。

to_bytes(length=1, byteorder='big', *, signed=False)

返回表示整数的字节数组。

length

要使用的字节对象的长度。如果整数不能用给定的字节数表示,则会引发OverflowError。默认长度为1。

byteorder

用于表示整数的字节顺序。如果字节顺序是‘big’,最高有效字节位于字节数组的开头。如果字节顺序是‘little’,最高有效字节位于字节数组的末尾。要请求主机系统的本机字节顺序,请使用sys.byteorder作为字节顺序值。默认是使用‘big’。

signed

确定是否使用二进制补码来表示整数。 如果 signed 为 False 并且给出了负整数,则会引发 OverflowError。

denominator

最低项有理数的分母

imag

复数的虚部

numerator

最低项有理数的分子

real

复数的实部

abstract available() bool[source]

测试此系统上是否可用的求解器。

名义上,如果求解器接口有效并可用于解决问题,则返回True;如果不能,则返回False。

请注意,对于有许可证的求解器,有多个“级别”的可用性:根据许可证的不同,求解器可能在问题大小或运行时间上有限制(例如,‘demo’ vs. ‘community’ vs. ‘full’)。在这些情况下,求解器可能会返回一个enum.IntEnum的子类,如果求解器可用(可能有限制),则其成员解析为True。该枚举也可能有多个成员,所有成员都解析为False,表示接口不可用的原因(未找到、许可证无效、版本不受支持等)。

Returns:

available – 一个枚举,表示求解器的“可用性”。 请注意,该枚举可以转换为布尔值,如果求解器可以运行,则为 True,否则为 False。

Return type:

SolverBase.Availability

is_persistent() bool[source]
Returns:

is_persistent – 如果求解器是持久求解器,则为True。

Return type:

bool

abstract solve(model: BlockData, **kwargs) Results[source]

解决一个Pyomo模型。

Parameters:
  • model (BlockData) – 要解决的Pyomo模型

  • **kwargs – 额外的关键字参数(包括solver_options - 透传选项;直接传递给求解器(不进行验证))

Returns:

results – 一个结果对象

Return type:

Results

Keyword Arguments:
  • tee (TextIO_or_Logger, default=False) – tee 接受 bool, io.TextIOBase, 或 logging.Logger(或这些类型的列表)。True 被映射到 sys.stdout。求解器日志将被打印到每个 这些流/目的地。

  • working_dir (Path, optional) – 生成文件应保存的目录。这将替换keepfiles选项。

  • load_solutions (Bool, default=True) – 如果为True,原始变量的值将被加载到模型中。

  • raise_exception_on_nonoptimal_result (Bool, default=True) – 如果为False,solve方法将继续处理,即使返回的结果是非最优的。

  • symbolic_solver_labels (Bool, default=False) – 如果为True,求解器的名称将反映Pyomo组件的名称。在调用set_instance后无法更改。

  • timer (可选) – 用于记录相关过程计时数据的计时器对象。

  • threads (NonNegativeInt, optional) – 求解器使用的线程数。

  • time_limit (NonNegativeFloat, optional) – 应用于求解器的时间限制(以秒为单位)。

  • solver_options (dict, optional) – 传递给求解器的选项。

abstract version() Tuple[源代码]
Returns:

version – 表示版本的元组

Return type:

tuple