社区地图

(类来自 pyomo.contrib.community_detection.detection)

class pyomo.contrib.community_detection.detection.CommunityMap(community_map, type_of_community_map, with_objective, weighted_graph, random_seed, use_only_active_components, model, graph, graph_node_mapping, constraint_variable_map, graph_partition)[source]

基础类:object

此类用于创建由detect_communities函数返回的CommunityMap对象。此类的实例允许类似字典的使用,并存储有关给定社区地图的相关信息,例如用于创建它们的模型、它们的networkX表示等。

CommunityMap对象充当Python字典,将整数键映射到包含两个列表(这些列表包含给定社区中的组件)的元组 - 一个约束列表和一个变量列表。

方法: generate_structured_model visualize_model_graph

__init__(community_map, type_of_community_map, with_objective, weighted_graph, random_seed, use_only_active_components, model, graph, graph_node_mapping, constraint_variable_map, graph_partition)[源代码]

CommunityMap类的构造方法

Parameters:
  • community_map (dict) – 一个Python字典,将任意键(在这种情况下是从零到社区数量减一的整数)映射到包含给定社区中Pyomo组件的两元素元组

  • type_of_community_map (str) – 一个字符串,指定要返回的社区地图类型,默认是‘constraint’。 ‘constraint’ 返回一个基于约束节点的字典(community_map), ‘variable’ 返回一个基于变量节点的字典(community_map), ‘bipartite’ 返回一个基于二分图(包含约束节点和变量节点)的字典(community_map)

  • with_objective (bool) – 一个布尔参数,用于指定目标函数是否包含在模型图中(从而包含在‘community_map’中);默认值为True

  • weighted_graph (bool) – 一个布尔参数,用于指定是否基于加权模型图或无加权模型图创建community_map;默认值为True(type_of_community_map=’bipartite’ 无论此参数如何,都会创建一个无加权模型图)

  • random_seed (intNone) – 一个整数,用作(启发式)Louvain社区检测的随机种子

  • use_only_active_components (bool, optional) – 一个布尔参数,指定是否在社区地图中包含非活动的约束/目标

  • model (Block) – 用于社区检测的Pyomo模型或块

  • graph (nx.Graph) – 一个基于Pyomo优化模型的节点和边的NetworkX图

  • graph_node_mapping (dict) – 一个字典,它将一个数字(对应于模型的networkX图表示中的节点)映射到模型中的一个组件

  • constraint_variable_map (dict) – 一个字典,将编号的约束映射到出现在该约束中的(编号的)变量列表

  • graph_partition (dict) – 基于Louvain社区检测的网络X模型图的分区

方法

__init__(community_map, ...)

CommunityMap类的构造方法

generate_structured_model()

使用社区地图和用于创建此社区地图的原始模型,我们将创建structured_model,它将基于原始模型,但会根据社区地图将变量、约束和目标放入或移出各个块(社区)。

items()

keys()

values()

visualize_model_graph([type_of_graph, ...])

此函数绘制Pyomo模型的社区图。

成员文档

generate_structured_model()[source]

使用社区地图和用于创建此社区地图的原始模型,我们将创建structured_model,它将基于原始模型,但会根据社区地图将变量、约束和目标放入或放置在各种块(社区)之外。

Returns:

structured_model – 一个反映社区地图性质的Pyomo模型

Return type:

Block

visualize_model_graph(type_of_graph='constraint', filename=None, pos=None)[源代码]

此函数绘制Pyomo模型的社区图。

type_of_graph 参数用于创建 Pyomo 模型的变量节点图、约束节点图或二分图。然后,节点根据它们所在的社区进行着色 - 这是基于社区映射(self.community_map)。可以提供一个文件名来保存图形,否则图形将使用 matplotlib 进行展示。

Parameters:
  • type_of_graph (str, optional) – 一个字符串,指定在模型图上绘制的节点类型,默认为‘constraint’。 ‘constraint’ 绘制带有约束节点的图, ‘variable’ 绘制带有变量节点的图, ‘bipartite’ 绘制二分图(包含约束节点和变量节点)

  • filename (str, optional) – 一个字符串,指定保存模型图例的路径

  • pos (dict, optional) – 一个将节点键映射到它们在图中位置的字典

Returns:

  • fig (matplotlib figure) – 用于模型图绘制的图形

  • pos (dict) – 一个将节点键映射到它们在插图上位置的字典 - 可用于为给定模型的图创建一致的布局