graph - 简化/减少图的算法
解决方案
您是在寻找开箱即用的东西,还是在寻找关于如何自己实现它的算法想法?后者我可以帮你。
您想要做的是称为具有完全邻居的顶点的收缩2
,即具有 degree 2
。
为了实现这一点,请执行以下操作:
while exists vertex v with degree 2:
- remove v and the 2 outgoing edges
- add a new edge between the neighbours of v
- the weight of the new edge is the sum of the weights of the deleted edge
也就是说,如果您有图表的以下部分:
u ---2--- v ---5--- w
并应用收缩,您最终会得到u ---7--- w
.
只需迭代地执行此操作,直到没有保留度数的顶点即可2
将第一张图片中的图形转换为第二张图片中的图形。
当然,确切的实现细节将取决于您使用哪种数据结构来表示 Python(或任何其他正在使用的语言)中的图形。
推荐阅读
- java - 更改 Spring Boot 和 Maven 项目的默认目录结构
- wordpress - 如何从我的帐户页面隐藏库存产品
- python-3.x - 如何使用python获取总和字符串?
- c++ - glutMouseWheelFunc 的缩放问题
- ios - 在为 iOS 13 构建应用程序时,是否有替代 VoIP 推送的方法?
- python - 无法导入名称“_gi”
- android - 单击搜索时为搜索视图打开新活动
- string - 批处理:如果是某个字符,则仅替换字符串中的第一个字符
- javascript - 如何在 NodeJs 中更改 package.json 中的主文件
- json - 具有不同键集的子对象的 JSON 模式