模型
(类来自 pyomo.core.base.PyomoModel)
- class pyomo.core.base.PyomoModel.Model(*args, **kwds)[source]
基础类:
ScalarBlock一个优化模型。默认情况下,这会推迟组件的构建,直到数据加载完成。
方法
__init__([name])构造函数
activate()将活动属性设置为True
active_blocks(*args, **kwargs)已弃用。
active_component_data(*args, **kwargs)已弃用。
active_components(*args, **kwargs)已弃用。
add_component(name, val)向块中添加一个组件 'name'。
all_blocks(*args, **kwargs)已弃用。
all_component_data(*args, **kwargs)已弃用。
all_components(*args, **kwargs)已弃用。
block_data_objects([active, sort, ...])返回此块及任何匹配的子块。
clear()清除此组件中的数据
clear_suffix_value(suffix_or_name[, expand])设置此组件数据的后缀值
clone([memo])待办事项
cname(*args, **kwds)已弃用。
collect_ctypes([active, descend_into])计算存储在此块上或下的所有组件类型的数量。
component(name_or_object)返回此块的一个子组件。
component_data_iterindex([ctype, active, ...])已弃用。
component_data_objects([ctype, active, ...])返回一个生成器,该生成器遍历块中所有组件的组件数据对象。
component_map([ctype, active, sort])返回此块中组件的伪映射。
component_objects([ctype, active, sort, ...])返回一个生成器,用于遍历块中的组件对象。
compute_statistics([active])计算模型统计信息
construct([data])初始化块
contains_component(ctype)如果组件类型在_ctypes中,则返回True。
create_instance([文件名, 数据, 名称, ...])创建一个抽象模型的具体实例,可能使用从文件中读取的数据。
将活动属性设置为False
del_component(name_or_object)从此块中删除一个组件。
dim()返回索引的维度
display([filename, ostream, prefix])在块中显示值
find_component(label_or_component)返回给定名称的块中的组件。
fix_all_vars()get_suffix_value(suffix_or_name[, default])获取此组件数据的后缀值
getname([fully_qualified, name_buffer, ...])返回包含组件名称和索引的字符串
返回所有ComponentData实例的字典id->索引。
index()返回此ComponentData实例相对于父组件索引集的索引。
返回索引集
如果此类是Pyomo组件,则返回True
一个布尔值,指示输入模型的所有活动组件是否已正确构建。
is_expression_type([expression_system])如果此数值是一个表达式,则返回 True
如果此组件已索引,则返回true
如果此类是Pyomo布尔对象,则返回True。
如果此数值是一个命名表达式,则返回 True
如果此类是Pyomo数值对象,则返回True
除非此类是参数对象,否则返回 False
如果此组件是引用,则返回True,其中“引用”被解释为任何不拥有自己数据的组件。
除非此类是变量对象,否则返回 False
items([sort, ordered])返回一个包含(index, data)组件数据元组的迭代器
已弃用。
iterkeys()已弃用。
已弃用。
keys([sort, ordered])返回组件数据键的迭代器
load(arg[, namespaces, profile_memory])从文件、字典或DataPortal对象加载模型数据。
model()返回拥有此数据的组件的模型。
nconstraints()nobjectives()nvariables()返回拥有此数据的组件的父组件。
返回与此对象关联的组件。
pprint([ostream, verbose, prefix])打印组件信息
preprocess([preprocessor])已弃用。
private_data([scope])reclassify_component_type(name_or_object, ...)待办事项
reconstruct([data])已移除:reconstruct() 在 Pyomo 6.0 中被移除。
register_private_data_initializer(initializer)返回 self.model()
set_suffix_value(suffix_or_name, value[, expand])设置此组件数据的后缀值
set_value(val)设置标量组件的值。
待办事项
将用户定义的属性从src传输到此块
type()已弃用。
unfix_all_vars()如果这可以用作模型组件,则返回True。
此方法允许pyomo.opt转换函数与Model对象一起工作。
values([排序, 有序])返回组件数据对象的迭代器
write([文件名, 格式, 求解器能力, ...])将模型写入文件,使用给定的格式。
属性
返回活动属性
返回此组件的类类型
仅在直接父容器的上下文中获取组件名称。
获取完全限定的组件名称。
成员文档
- activate()
将活动属性设置为True
- active_blocks(*args, **kwargs)
已弃用。
自版本4.1.10486起已弃用:active_blocks方法已被弃用。请使用Block.block_data_objects()方法。
- active_component_data(*args, **kwargs)
已弃用。
自版本4.1.10486起已弃用:active_component_data方法已被弃用。请使用Block.component_data_objects()方法。
- active_components(*args, **kwargs)
已弃用。
自版本4.1.10486起已弃用:active_components方法已被弃用。请使用Block.component_objects()方法。
- add_component(name, val)
向块中添加一个组件‘name’。
该方法假设属性不在模型中。
- all_blocks(*args, **kwargs)
已弃用。
自版本4.1.10486起已弃用:all_blocks方法已被弃用。请使用Block.block_data_objects()方法。
- all_component_data(*args, **kwargs)
已弃用。
自版本4.1.10486起已弃用:all_component_data方法已被弃用。请使用Block.component_data_objects()方法。
- all_components(*args, **kwargs)
已弃用。
自版本4.1.10486起已弃用:all_components方法已被弃用。请使用Block.component_objects()方法。
- block_data_objects(active=None, sort=False, descend_into=True, descent_order=None)
返回此块及任何匹配的子块。
这大致相当于
iter(block for block in itertools.chain( [self], self.component_data_objects(descend_into, ...)) if block.active == active)
注释
无论descend_into指示的类型如何,self块总是返回。
活动标志在所有块上强制执行,包括self。
- Parameters:
active (None 或 bool) – 如果不是 None,则根据 active 标志过滤组件
sort (None 或 bool 或 SortComponents) – 以指定的排序顺序迭代组件
descend_into (None 或 type 或 iterable) – 指定要返回并深入的类型组件(ctypes)。如果为 True 或 None,则默认为 (Block,)。如果为 False,则仅返回 self。
descent_order (None 或 TraversalStrategy) – 用于遍历块层次结构的策略。默认为 TraversalStrategy.PrefixDepthFirstSearch。
- Return type:
tuple 或生成器
- clear()
清除此组件中的数据
- clear_suffix_value(suffix_or_name, expand=True)
设置此组件数据的后缀值
- clone(memo=None)
待办事项
- cname(*args, **kwds)
已弃用。
自版本5.0起已弃用:cname() 方法已重命名为 getname()。 获取组件名称的首选方法是使用 .name 属性,该属性返回完全限定的组件名称。 .local_name 属性将仅在直接父容器的上下文中返回组件名称。
- collect_ctypes(active=None, descend_into=True)
计算存储在此块上或下的所有组件类型的数量。
- Parameters:
active (True/None) – 设置为True表示只应计算活动组件。默认值None表示应计算所有组件(包括已停用的组件)。
descend_into (bool) – 表示是否应该在子块上计算组件类型。默认值为 True。
返回:一组组件类型。
- component(name_or_object)
返回此块的一个子组件。
如果传递一个字符串,这将返回通过该名称注册的子组件。如果传递一个组件,这将返回该组件,仅当该组件是此块的子组件时。查找失败时返回None。
- component_data_iterindex(ctype=None, active=None, sort=False, descend_into=True, descent_order=None)
已弃用。
返回一个生成器,该生成器为块中的每个组件数据对象返回一个元组。默认情况下,此生成器会递归地深入到子块中。元组是
((组件名称, 索引值), 组件数据)
自版本6.6.0起已弃用:component_data_iterindex方法已被弃用。组件现在知道它们的索引,因此更高效的方法是使用Block.component_data_objects()方法,然后使用.index()。
- component_data_objects(ctype=None, active=None, sort=False, descend_into=True, descent_order=None)
返回一个生成器,该生成器遍历块中所有组件的数据对象。默认情况下,此生成器会递归地深入到子块中。
- component_map(ctype=None, active=None, sort=False)
返回此块中组件的伪映射。
- Parameters:
- component_objects(ctype=None, active=None, sort=False, descend_into=True, descent_order=None)
返回一个生成器,该生成器遍历块中的组件对象。默认情况下,生成器会递归地深入到子块中。
- construct(data=None)
初始化块
- contains_component(ctype)
如果组件类型在_ctypes中并且… 待办事项,则返回True。
- create_instance(filename=None, data=None, name=None, namespace=None, namespaces=None, profile_memory=0, report_timing=False, **kwds)[source]
创建一个抽象模型的具体实例,可能使用从文件中读取的数据。
- Parameters:
filename (str, optional) – 用于将数据加载到模型中的Pyomo数据文件的名称。
data (dict, 可选) – 一个包含模型初始化数据的字典,如果没有文件名则使用
name (str, 可选) – 赋予模型的名称。
namespace (str, 可选) – 用于选择数据的命名空间。
命名空间 (列表, 可选) – 用于选择数据的命名空间列表。
profile_memory (int, 可选) – 一个表示分析级别的数字。
report_timing (bool, optional) – 在构建过程中报告时间统计。
- deactivate()
将活动属性设置为False
- del_component(name_or_object)
从此块中删除一个组件。
- dim()
返回索引的维度
- display(filename=None, ostream=None, prefix='')
在块中显示值
- find_component(label_or_component)
返回给定名称的块中的组件。
- Parameters:
label_or_component (str, Component, or ComponentUID) – 要在此块中查找的组件的名称。字符串或组件参数首先转换为ComponentUID。
- Returns:
由ComponentUID标识的块上的组件。如果未找到匹配的组件,则返回None。
- Return type:
- get_suffix_value(suffix_or_name, default=None)
获取此组件数据的后缀值
- getname(fully_qualified=False, name_buffer=None, relative_to=None)
返回包含组件名称和索引的字符串
- id_index_map()
返回所有ComponentData实例的字典id->索引。
- index()
返回此ComponentData实例相对于父组件索引集的索引。如果此实例没有父组件,或者由于某些未知原因此实例不属于父组件的索引集,则返回None。
- index_set()
返回索引集
- is_component_type()
如果此类是Pyomo组件,则返回True
- is_constructed()
一个布尔值,指示输入模型的所有活动组件是否已正确构建。
- 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 (bool 或 SortComponents) – 以指定的排序顺序迭代声明的组件项。有关有效选项和描述,请参见
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 (bool 或 SortComponents) – 以指定的排序顺序迭代声明的组件键。有关有效选项和描述,请参见
SortComponents。ordered (bool) – 已弃用:请使用 sort=SortComponents.ORDERED_INDICES。 如果为 True,则键将以确定性顺序返回 (使用底层集合的 ordered_iter())。
- model()
返回拥有此数据的组件的模型。
- parent_block()
返回拥有此数据的组件的父组件。
- parent_component()
返回与此对象关联的组件。
- pprint(ostream=None, verbose=False, prefix='')
打印组件信息
- reclassify_component_type(name_or_object, new_ctype, preserve_declaration_order=True)
待办事项
- 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(val)
设置标量组件的值。
- to_dense_data()
待办事项
- transfer_attributes_from(src)
将用户定义的属性从src传输到此块
这将从块或字典src中传输所有组件和用户定义的属性,并将它们放置在此块上。组件按声明顺序传输。
如果在src上的一个组件也在本块中声明为组件或属性,则本地组件或属性将被传入的组件替换。如果src上的属性名称与本块中声明的组件匹配,则传入的属性将传递给本地组件的set_value()方法。出现在本块的_Block_reserved_words集合中的属性名称不会被转移(尽管组件会被转移)。
- type()
已弃用。
返回此组件的类类型
自版本5.7起已弃用:Component.type() 方法已被 .ctype 属性取代。
- valid_model_component()
如果这可以用作模型组件,则返回True。
- valid_problem_types()
此方法允许pyomo.opt转换函数与模型对象一起工作。
- values(sort=<SortComponents.UNSORTED: 0>, ordered=NOTSET)
返回组件数据对象的迭代器
- Parameters:
sort (bool 或 SortComponents) – 以指定的排序顺序迭代声明的组件值。有关有效选项和描述,请参见
SortComponents。ordered (bool) – 已弃用:请使用 sort=SortComponents.ORDERED_INDICES。 如果为 True,则值将以确定性顺序返回 (使用底层集合的 ordered_iter()。
- write(filename=None, format=None, solver_capability=None, io_options={}, int_marker=False)
将模型写入文件,使用给定的格式。
- property active
返回活动属性
- property ctype
返回此组件的类类型
- property local_name
仅在直接父容器的上下文中获取组件名称。
- property name
获取完全限定的组件名称。