集合

(类来自 pyomo.core.base.set)

class pyomo.core.base.set.Set(*args, **kwds)[source]

基础:IndexedComponent

用于索引其他Pyomo组件的组件。

该类提供了一个与Python set对象API兼容的Pyomo组件,并具有额外的功能,包括:

  1. 成员验证和过滤。用户可以声明域并提供回调函数来验证集合成员并过滤(忽略)潜在的成员。

  2. 设置表达式。对Set对象的操作(&,|,*,-,^)生成保留对原始Set对象引用的Set表达式,以便更新参数Set隐式更新Set操作符实例。

  3. 支持与RangeSet实例进行集合操作(包括有限和无限范围)。

Parameters:
  • initialize (initializer(iterable), optional) – 在构造Set时存储的初始值。传递给initialize的值可能会被传递给construct()方法的data覆盖。

  • dimen (initializer(int), optional) – 指定集合的元数(集合中所有成员所需的元组长度),如果不强制执行元数,则为None

  • ordered (boolSet.InsertionOrderSet.SortedOrderfunction) –

    指定集合是否有序。 可能的值为:

    False

    无序

    True

    按插入顺序排序

    Set.InsertionOrder

    按插入顺序排序 [默认]

    Set.SortedOrder

    按排序顺序排序

    使用此比较函数排序

  • within (initialiser(set), optional) – 一个定义了可以包含在此集合中的有效值的集合。如果后者被索引,前者可以是索引的或非索引的,在这种情况下,它适用于所有索引。

  • domain (initializer(set), optional) – 一个定义了可以包含在此集合中的有效值的集合

  • bounds (initializer(tuple), optional) – 一个元组,用于指定有效Set值的边界 (接受1-、2-或3-元组RangeSet参数)

  • filter (initializer(rule), optional) –

    用于确定集合成员资格的规则。其函数形式为:

    f: Block, *data -> bool

    如果数据属于集合,则返回True。如果filter返回False,集合将静默忽略这些值。

  • validate (initializer(rule), optional) –

    用于验证集合成员资格的规则。其函数形式为:

    f: Block, *data -> bool

    如果数据属于集合,则返回True。对于任何validate返回False的值,集合将引发ValueError

  • name (str, optional) – 集合的名称

  • 文档 (str, 可选) – 描述此组件的文本字符串

注释

注意

domain=, within=, 和 bounds= 都提供了对有效集合值的限制。如果指定了多个,集合值将被限制在 domain, within, 和 bounds 的交集内。

__init__(*args, **kwds)[source]

方法

__init__(*args, **kwds)

check_values()

已弃用。

clear()

清除此组件中的数据

clear_suffix_value(suffix_or_name[, expand])

清除此组件数据的后缀值

cname(*args, **kwds)

已弃用。

construct([data])

用于构建组件的API定义

dim()

返回索引的维度

display([ostream, verbose, prefix])

get_suffix_value(suffix_or_name[, default])

获取此组件数据的后缀值

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

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

id_index_map()

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

index_set()

返回索引集

is_component_type()

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

is_constructed()

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

is_expression_type([expression_system])

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

is_indexed()

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

is_logical_type()

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

is_named_expression_type()

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

is_numeric_type()

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

is_parameter_type()

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

is_reference()

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

is_variable_type()

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

items([sort, ordered])

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

iteritems()

已弃用。

iterkeys()

已弃用。

itervalues()

已弃用。

keys([排序, 有序])

返回组件数据键的迭代器

model()

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

parent_block()

返回此对象的父对象。

parent_component()

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

pprint([ostream, verbose, prefix])

打印组件信息

reconstruct([data])

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

root_block()

返回 self.model()

set_suffix_value(suffix_or_name, value[, expand])

设置此组件数据的后缀值

set_value(value)

设置标量组件的值。

to_dense_data()

待办事项

type()

已弃用。

valid_model_component()

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

values([sort, ordered])

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

属性

active

返回活动属性

ctype

返回此组件的类类型

local_name

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

name

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

成员文档

check_values()[source]

已弃用。

验证此集合中的值是否有效。

自版本5.7起已弃用:check_values() 已弃用:集合仅包含有效成员

clear()

清除此组件中的数据

clear_suffix_value(suffix_or_name, expand=True)

清除此组件数据的后缀值

cname(*args, **kwds)

已弃用。

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

construct(data=None)[source]

用于构建组件的API定义

dim()

返回索引的维度

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_set()

返回索引集

is_component_type()

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

is_constructed()

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

is_expression_type(expression_system=None)

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

is_indexed()

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

is_logical_type()

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

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

is_named_expression_type()

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

is_numeric_type()

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

is_parameter_type()

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

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()

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()

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

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()

root_block()

返回 self.model()

set_suffix_value(suffix_or_name, value, expand=True)

设置此组件数据的后缀值

set_value(value)

设置标量组件的值。

to_dense_data()

待办事项

type()

已弃用。

返回此组件的类类型

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

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

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