检测社区
(函数来自 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 对象(类似字典的对象)