我有一个具有以下属性的图表:
- 无向的
- 未加权
- 每个顶点至少有 2 条和最多 6 条连接到它的边。
- 顶点数将小于 100
- 图形是静态的,不能添加/删除或编辑任何顶点/边。
我正在寻找顶点的随机子集(至少 2 个)之间的路径。路径应该是只经过任何顶点一次的简单路径。
我的最终目标是拥有一组路线,以便您可以从一个子集顶点开始并到达任何其他子集顶点。跟随路线时不必通过所有子集节点。
我发现的所有算法(Dijkstra、深度优先搜索等)似乎都在处理两个顶点之间的路径和最短路径。
是否有一种已知的算法可以为我提供连接这些顶点子集的所有路径(我想这些是子图)?
编辑:
我创建了一个(警告!程序员艺术)动画 gif 来说明我想要实现的目标:http: //imgur.com/mGVlX.gif
有两个阶段预处理和运行时。
预处理
- 我有一个图和顶点的子集(蓝色节点)
- 我生成连接所有蓝色节点的所有可能路线
运行
- 我可以从任何蓝色节点开始,选择任何生成的路线,然后沿着它到达我的目标蓝色节点。
所以我的任务更多是关于创建连接所有蓝色节点的所有子图(路由),而不是创建从 A->B 的路径。