algorithm - 在社交网络中寻找密切关系的算法(图论)
问题描述
我需要编写一个算法,给定一个以图形表示的社交网络,找出一组人 X 是否形成密切关系。这意味着 X 中的每个人彼此之间都有关系。
例如,如果我们有图表:
集合 {H,B,O} 形成亲密的友谊,因为子图中的每个人都相互连接。
集合 {O,F,K} 没有,因为我们不能从 O 到 F
这个特定算法的伪代码会是什么样子?
解决方案
您要求的是搜索Clique。
Bron-Kerbosch算法会为您找到
BronKerbosch1(R, P, X):
if P and X are both empty:
report R as a maximal clique
for each vertex v in P:
BronKerbosch1(R ⋃ {v}, P ⋂ N(v), X ⋂ N(v))
P := P \ {v}
X := X ⋃ {v}
推荐阅读
- javascript - 如何将每个工作人员的结果 .push() 放入节点 js 中的数组中?
- html - jQuery UI Slide In 影响页面上的其他 div
- java - 拖动 ImageView 和绘图 - Android Studio 4.0
- macos - OSX终端命令使应用程序在启动时运行
- java - Unity 在 Java 中的 Mathf.PingPong
- android - 我正在使用 Firesbase 数据库并在尝试检索图像时出现存储异常
- amadeus - python中的Amadeus网络错误但适用于节点
- javascript - 想要通过选择一个下拉列表来更改多个下拉列表值
- r - 如何斜体和非斜体y轴标签的一部分
- django - Django 模型:设置每日时间段