标量端口

(类来自 pyomo.network.port)

class pyomo.network.port.ScalarPort(*args, **kwds)[source]

基础类:Port, PortData

__init__(*args, **kwd)[源代码]

方法

Equality(port, name, index_set)

生成简单等式约束的Arc扩展过程

Extensive(port, name, index_set[, ...])

用于扩展变量属性的弧扩展过程

__init__(*args, **kwd)

add(var[, 名称, 规则])

var添加到此端口,必要时将其转换为Pyomo数值

arcs([active])

此端口所属的弧线列表

clear()

清除此组件中的数据

clear_suffix_value(suffix_or_name[, expand])

清除此组件数据的后缀值

cname(*args, **kwds)

已弃用。

construct([data])

用于构建组件的API定义

dests([active])

此端口作为源的弧线列表

dim()

返回索引的维度

display([prefix, ostream])

打印组件状态信息

fix()

将所有变量固定在端口中的当前值。

free()

解除端口中的所有变量的固定。

get_split_fraction(arc)

返回一个元组 (val, fix),表示通过 set_split_fraction 设置的此弧的分割分数(如果存在),否则返回 None。

get_suffix_value(suffix_or_name[, default])

获取此组件数据的后缀值

getname([fully_qualified, name_buffer, ...])

返回与此对象关联的组件名称。

id_index_map()

返回所有ComponentData实例的字典id->索引。

index()

返回此ComponentData实例相对于父组件索引集的索引。

index_set()

返回索引集

is_binary()

如果端口中的所有变量都是二进制的,则返回True

is_component_type()

如果此类是Pyomo组件,则返回True

is_constructed()

如果这个类已经被构造,则返回True

is_continuous()

如果端口中的所有变量都是连续的,则返回True

is_equality(name)

如果此端口成员的规则是Port.Equality,则返回True

is_expression_type([expression_system])

如果此数值是一个表达式,则返回 True

is_extensive(name)

如果此端口成员的规则是 Port.Extensive,则返回 True

is_fixed()

如果端口中的所有变量/表达式都已固定,则返回 True

is_indexed()

如果此组件已索引,则返回true

is_integer()

如果端口中的所有变量都是整数,则返回True

is_logical_type()

如果此类是Pyomo布尔对象,则返回True。

is_named_expression_type()

如果此数值是一个命名表达式,则返回 True

is_numeric_type()

如果此类是Pyomo数值对象,则返回True

is_parameter_type()

除非此类是参数对象,否则返回 False

is_potentially_variable()

返回 True,因为端口可能(应该!)包含变量

is_reference()

如果此组件是引用,则返回True,其中“引用”被解释为任何不拥有自己数据的组件。

is_variable_type()

除非此类是变量对象,否则返回 False

items([sort, ordered])

返回一个包含(index, data)组件数据元组的迭代器

iter_vars([expr_vars, fixed, names])

遍历端口的每个成员,通过索引成员的索引进行遍历。

iteritems()

已弃用。

iterkeys()

已弃用。

itervalues()

已弃用。

keys([sort, ordered])

返回组件数据键的迭代器

model()

返回与此对象关联的模型。

parent_block()

返回此对象的父对象。

parent_component()

返回与此对象关联的组件。

polynomial_degree()

返回所有端口成员的最大多项式次数

pprint([ostream, verbose, prefix])

打印组件信息

reconstruct([data])

已移除:reconstruct() 在 Pyomo 6.0 中被移除。

remove(name)

从端口移除此成员

root_block()

返回 self.model()

rule_for(name)

返回与给定端口成员关联的规则

set_split_fraction(arc, val[, fix])

在使用Port.Extensive时,设置用于弧扩展的弧的分割分数值。

set_suffix_value(suffix_or_name, value[, expand])

设置此组件数据的后缀值

set_value(value)

设置标量组件的值。

sources([active])

此端口作为目的地的弧线列表

to_dense_data()

待办事项

type()

已弃用。

unfix()

解除端口中的所有变量的固定。

valid_model_component()

如果这可以用作模型组件,则返回True。

values([sort, ordered])

返回组件数据对象的迭代器

属性

vars

active

返回活动属性

ctype

返回此组件的类类型

local_name

仅在直接父容器的上下文中获取组件名称。

name

获取完全限定的组件名称。

成员文档

static Equality(port, name, index_set)

生成简单等式约束的Arc扩展过程

static Extensive(port, name, index_set, include_splitfrac=None, write_var_sum=True)

用于扩展变量属性的弧扩展过程

此过程是在需要保持变量数量时应使用的规则;也就是说,出口处拆分,入口处合并。

这将首先遍历端口的每个目的地(即,源为此端口的弧),并在弧的扩展块上创建一个与当前正在处理的变量相同索引的新变量,以存储通过弧流动的变量量。对于具有多个出弧的端口,此过程还将在弧的扩展块上创建一个单一的splitfrac变量。然后,它将为新变量生成约束,使用分割分数将其与端口成员变量相关联,确保端口中的所有扩展变量使用相同的比率进行分割。可以通过将include_splitfrac参数设置为False来抑制分割分数变量和约束的生成。

一旦创建了所有特定于弧的变量,此过程将创建“平衡约束”,以确保所有新变量的总和等于原始端口成员变量。可以通过将write_var_sum参数设置为False来抑制此约束;在这种情况下,将写入一个约束,说明分割分数的总和等于1。

最后,此过程将遍历此端口的所有来源,并创建一个新的弧变量(除非它已经存在),然后生成平衡约束,确保所有传入的新弧变量的总和等于原始端口变量。

模型简化:

如果端口在任一侧有1对1的连接,它将不会创建新变量,而是为该侧写入一个简单的等式约束。

如果出口侧不是1对1但只有一个出口, 它将不会创建splitfrac变量或写入分割 约束,但它仍然会写入outsum约束, 这将是一个简单的等式。

如果端口只包含一个扩展变量,splitfrac变量和分割约束将被跳过,因为它们将是不必要的。然而,仍然可以通过传递include_splitfrac=True来包含它们。

注意

如果跳过分割分数,则不允许使用write_var_sum=False选项。

add(var, name=None, rule=None, **kwds)

var添加到此端口,必要时将其转换为Pyomo数值

Parameters:
  • var – 一个变量或一些NumericValue,如表达式

  • name (str) – 与此端口成员关联的名称

  • 规则 (function) – 实现此成员所需扩展过程的函数。默认为Port.Equality,其他选项包括Port.Extensive。允许自定义。

  • kwds – 将传递给规则的关键字参数

arcs(active=None)

此端口所属的弧线列表

clear()

清除此组件中的数据

clear_suffix_value(suffix_or_name, expand=True)

清除此组件数据的后缀值

cname(*args, **kwds)

已弃用。

自版本5.0起已弃用:cname() 方法已重命名为 getname()。 获取组件名称的首选方法是使用 .name 属性,该属性返回完全限定的组件名称。 .local_name 属性将仅在直接父容器的上下文中返回组件名称。

construct(data=None)

用于构建组件的API定义

dests(active=None)

此端口作为源的弧线列表

dim()

返回索引的维度

display(prefix='', ostream=None)

打印组件状态信息

这重复了Component.pprint()中的逻辑

fix()

将所有变量固定在端口中的当前值。 对于表达式,固定表达式中的每个变量。

free()

解除端口中的所有变量的固定。 对于表达式,解除表达式中每个变量的固定。

get_split_fraction(arc)

返回一个元组 (val, fix),表示通过 set_split_fraction 设置的此弧的分割分数(如果存在),否则返回 None。

get_suffix_value(suffix_or_name, default=None)

获取此组件数据的后缀值

getname(fully_qualified=False, name_buffer=None, relative_to=None)

返回与此对象关联的组件名称。

Parameters:
  • fully_qualified (bool) – 从嵌套的块名称生成全名

  • relative_to (Block) – 生成相对于指定块的完全限定名称。

id_index_map()

返回所有ComponentData实例的字典id->索引。

index()

返回此ComponentData实例相对于父组件索引集的索引。如果此实例没有父组件,或者由于某些未知原因此实例不属于父组件的索引集,则返回None。

index_set()

返回索引集

is_binary()

如果端口中的所有变量都是二进制的,则返回True

is_component_type()

如果此类是Pyomo组件,则返回True

is_constructed()

如果这个类已经被构造,则返回True

is_continuous()

如果端口中的所有变量都是连续的,则返回True

is_equality(name)

如果此端口成员的规则是Port.Equality,则返回True

is_expression_type(expression_system=None)

如果此数值是一个表达式,则返回 True

is_extensive(name)

如果此端口成员的规则是 Port.Extensive,则返回 True

is_fixed()

如果端口中的所有变量/表达式都已固定,则返回 True

is_indexed()

如果此组件已索引,则返回true

is_integer()

如果端口中的所有变量都是整数,则返回True

is_logical_type()

如果此类是Pyomo布尔对象,则返回True。

布尔对象包括常量、变量或逻辑表达式。

is_named_expression_type()

如果此数值是一个命名表达式,则返回 True

is_numeric_type()

如果此类是Pyomo数值对象,则返回True

is_parameter_type()

除非此类是参数对象,否则返回 False

is_potentially_variable()

返回 True,因为端口可能(应该!)包含变量

is_reference()

如果此组件是引用,则返回True,其中“引用”被解释为不拥有自己数据的任何组件。

is_variable_type()

除非此类是变量对象,否则返回 False

items(sort=<SortComponents.UNSORTED: 0>, ordered=NOTSET)

返回一个包含(index, data)组件数据元组的迭代器

Parameters:
  • sort (boolSortComponents) – 以指定的排序顺序迭代声明的组件项。有关有效选项和描述,请参见 SortComponents

  • ordered (bool) – 已弃用:请使用 sort=SortComponents.ORDERED_INDICES。 如果为 True,则项目将以确定性顺序返回 (使用底层集合的 ordered_iter()

iter_vars(expr_vars=False, fixed=None, names=False)

遍历端口的每个成员,通过索引成员的索引进行遍历。

Parameters:
  • expr_vars (bool) – 如果为True,对表达式类型的成员调用identify_variables

  • fixed (bool) – 仅包含具有此类型固定的变量/表达式

  • names (bool) – 如果为True,则生成 (name, index, var/expr) 元组

iteritems()

已弃用。

从字典返回一个包含(索引,数据)元组的列表

自版本6.0起已弃用:iteritems方法已被弃用。请使用dict.items()。

iterkeys()

已弃用。

返回字典中的键列表

自版本6.0起已弃用:iterkeys方法已被弃用。请使用dict.keys()。

itervalues()

已弃用。

返回字典中组件数据对象的列表

自版本6.0起已弃用:itervalues方法已被弃用。请使用dict.values()。

keys(sort=<SortComponents.UNSORTED: 0>, ordered=NOTSET)

返回组件数据键的迭代器

此方法设置此IndexedComponent容器内组件数据对象的排序。为了保持一致性,__init__()values()items()都利用此方法以确保一致的排序。

Parameters:
  • sort (boolSortComponents) – 以指定的排序顺序迭代声明的组件键。有关有效选项和描述,请参见 SortComponents

  • ordered (bool) – 已弃用:请使用 sort=SortComponents.ORDERED_INDICES。 如果为 True,则键将以确定性顺序返回 (使用底层集合的 ordered_iter())。

model()

返回与此对象关联的模型。

parent_block()

返回此对象的父对象。

parent_component()

返回与此对象关联的组件。

polynomial_degree()

返回所有端口成员的最大多项式次数

pprint(ostream=None, verbose=False, prefix='')

打印组件信息

reconstruct(data=None)

已移除:reconstruct() 在 Pyomo 6.0 中被移除。

重新构建模型组件是脆弱的,并且不能正确更新在其他组件或上下文中使用的组件实例(这对于Var、Param和Set尤其成问题)。希望重现reconstruct()旧行为的用户,如果愿意操作非公开接口,并且愿意花时间验证他们的模型是否正确执行,可以通过以下方式近似实现reconstruct的旧行为:

component.clear() component._constructed = False component.construct()

remove(name)

从端口移除此成员

root_block()

返回 self.model()

rule_for(name)

返回与给定端口成员关联的规则

set_split_fraction(arc, val, fix=True)

设置在使用Port.Extensive时用于弧扩展的弧的分割分数值。

set_suffix_value(suffix_or_name, value, expand=True)

设置此组件数据的后缀值

set_value(value)

设置标量组件的值。

sources(active=None)

此端口作为目的地的弧线列表

to_dense_data()

待办事项

type()

已弃用。

返回此组件的类类型

自版本5.7起已弃用:Component.type() 方法已被 .ctype 属性取代。

unfix()

解除端口中的所有变量的固定。 对于表达式,解除表达式中每个变量的固定。

valid_model_component()

如果这可以用作模型组件,则返回True。

values(sort=<SortComponents.UNSORTED: 0>, ordered=NOTSET)

返回组件数据对象的迭代器

Parameters:
  • sort (boolSortComponents) – 以指定的排序顺序迭代声明的组件值。有关有效选项和描述,请参见 SortComponents

  • ordered (bool) – 已弃用:请使用 sort=SortComponents.ORDERED_INDICES。 如果为 True,则值将以确定性顺序返回 (使用底层集合的 ordered_iter()

property active

返回活动属性

property ctype

返回此组件的类类型

property local_name

仅在直接父容器的上下文中获取组件名称。

property name

获取完全限定的组件名称。