NLWriter

(类来自 pyomo.repn.plugins.nl_writer)

class pyomo.repn.plugins.nl_writer.NLWriter[source]

基础类:object

__init__()[source]

方法

__init__()

write(model, ostream[, rowstream, colstream])

以NL格式编写模型。

属性

CONFIG

成员文档

write(model, ostream, rowstream=None, colstream=None, **options) NLWriterInfo[source]

以NL格式编写模型。

Return type:

NLWriterInfo

Parameters:
  • model (ConcreteModel) – 要写出的具体Pyomo模型。

  • ostream (io.TextIOBase) – 文本输出流,NL“文件”将被写入的地方。 可以是一个打开的文件或一个io.StringIO。

  • rowstream (io.TextIOBase) – 一个文本输出流,用于写入 ASL “行文件”(约束/目标名称的列表)。除非 symbolic_solver_labels 为 True,否则忽略。

  • colstream (io.TextIOBase) – 一个文本输出流,用于写入ASL“col文件”(变量名称列表)。除非symbolic_solver_labels为True,否则忽略。

Keyword Arguments:
  • show_section_timing (bool, default=False) – 在写入NL文件的每个部分后打印时间

  • skip_trivial_constraints (bool, default=True) – 跳过写入主体为常量的约束

  • file_determinism (InEnum[FileDeterminism], default=) –

    我们希望投入多少努力来确保为Pyomo模型写入的NL文件是确定性的:

    • NONE (0) : 无

    • ORDERED (10): 依赖底层组件排序(默认)

    • SORT_INDICES (20) : 对索引组件的键进行排序

    • SORT_SYMBOLS (30) : 对键进行排序并对名称进行排序(非声明顺序)

  • symbolic_solver_labels (bool, default=False) – 写入相应的 .row 和 .col 文件

  • scale_model (bool, default=True) – 如果为True,则写入器将使用‘scaling_factor’后缀中的缩放比例输出模型约束和变量在‘缩放空间’中,如果提供了该后缀。

  • export_nonlinear_variables (list, optional) – 确保在NL文件中的变量列表(即使它们没有出现在任何约束中)。

  • row_order (可选) – 约束条件的列表,按照它们在NL文件中出现的顺序排列。请注意,这只是一个建议,因为NL写入器会将所有非线性约束移动到线性约束之前(在每个组内保留row_order)。

  • column_order (可选) – 变量列表,按照它们在NL文件中出现的顺序排列。 请注意,这只是一个建议,因为NL写入器会将所有非线性变量移动到线性变量之前,并且在非线性变量中,同时出现在目标和约束中的变量会出现在仅出现在约束中的变量之前,而仅出现在目标中的变量会出现在最后。在每个组中,连续变量会出现在离散变量之前。在所有情况下,column_order在每个组内都会保留。

  • export_defined_variables (bool, default=True) – 如果为True,将Expression对象导出为NL文件中的“定义变量”。

  • linear_presolve (bool, default=True) – 如果为True,我们将通过执行变量消除(不填充)来进行基本的线性预解。