检测社区

(函数来自 pyomo.contrib.community_detection.detection)

pyomo.contrib.community_detection.detection.detect_communities(model, type_of_community_map='constraint', with_objective=True, weighted_graph=True, random_seed=None, use_only_active_components=True)[source]

检测Pyomo优化模型中的社区

此函数接收一个Pyomo优化模型,并将变量和约束组织成节点和边的图。然后,通过在图上使用Louvain社区检测,创建一个字典(community_map),它将(任意的)社区键映射到模型中检测到的社区。

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

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

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

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

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

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

Returns:

CommunityMap对象充当Python字典,将整数键映射到包含两个列表(包含给定社区中的组件)的元组 - 一个约束列表和一个变量列表。此外,CommunityMap对象存储有关给定社区映射(dict)的相关信息,例如用于创建它的模型、其networkX表示等。

Return type:

CommunityMap 对象(类似字典的对象)