Ipopt
(类来自 pyomo.contrib.solver.ipopt)
- class pyomo.contrib.solver.ipopt.Ipopt(**kwds)[source]
基础:
SolverBase方法
__init__(**kwds)available([config])测试此系统上是否可用的求解器。
has_linear_solver(linear_solver)solve(model, **kwds)使用Ipopt解决模型
version([config])属性
name成员文档
- enum Availability(value)
基础:
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
复数的实部
- available(config=None)[source]
测试此系统上是否可用的求解器。
名义上,如果求解器接口有效并可用于解决问题,则返回True;如果不能,则返回False。
请注意,对于有许可证的求解器,有多个“级别”的可用性:根据许可证的不同,求解器可能在问题大小或运行时间上有限制(例如,‘demo’ vs. ‘community’ vs. ‘full’)。在这些情况下,求解器可能会返回一个enum.IntEnum的子类,如果求解器可用(可能有限制),则其成员解析为True。该枚举也可能有多个成员,所有成员都解析为False,表示接口不可用的原因(未找到、许可证无效、版本不受支持等)。
- Returns:
available – 一个枚举,表示求解器的“可用性”。 请注意,该枚举可以转换为布尔值,如果求解器可以运行,则为 True,否则为 False。
- Return type:
- solve(model, **kwds)[source]
使用Ipopt解决模型
- 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) – 传递给求解器的选项。
executable (默认=
) – 首选的ipopt可执行文件。默认情况下,会在 PATH中搜索第一个可用的ipopt。writer_config (dict, optional) –
nlwriter
show_section_timing: bool, 默认=False
在写入NL文件的每个部分后打印时间
skip_trivial_constraints: bool, 默认=True
跳过写入主体为常数的约束
file_determinism: InEnum[~pyomo.repn.util.FileDeterminism], 默认=
我们希望投入多少努力来确保NL文件对于Pyomo模型的写入是确定性的:
NONE (0) : 无
ORDERED (10): 依赖底层组件的排序(默认)
SORT_INDICES (20) : 对索引组件的键进行排序
SORT_SYMBOLS (30) : 对键和名称进行排序(非声明顺序)
symbolic_solver_labels: bool, 默认=False
写入相应的.row和.col文件
scale_model: bool, 默认=True
如果为True,则写入器将使用‘scaling_factor’后缀的缩放因子输出模型的约束和变量到‘缩放空间’中(如果提供了缩放因子)。
export_nonlinear_variables: list, 可选
确保这些变量在NL文件中(即使它们没有出现在任何约束中)。
row_order: 可选
约束的列表,按照它们在NL文件中出现的顺序。请注意,这只是一个建议,因为NL写入器会将所有非线性约束移动到线性约束之前(在每个组内保留row_order)。
column_order: 可选
变量的列表,按照它们在NL文件中出现的顺序。请注意,这只是一个建议,因为NL写入器会将所有非线性变量移动到线性变量之前,并且在非线性变量中,出现在目标和约束中的变量会出现在仅出现在约束中的变量之前,而仅出现在约束中的变量会出现在仅出现在目标中的变量之前。在每个组内,连续变量出现在离散变量之前。在所有情况下,column_order在每个组内保留。
export_defined_variables: bool, 默认=True
如果为True,则将Expression对象导出为NL文件中的‘定义变量’。
linear_presolve: bool, 默认=True
如果为True,我们将通过执行变量消除(不填充)来执行基本的线性预解。
- CONFIG = <pyomo.contrib.solver.ipopt.IpoptConfig object>