algorithm - 找到通过顶点 u 和 v 的最小权重电路
问题描述
我有一个无向且连接(不完整)的顶点图,其中u和v可以是任何 2 个不同的顶点。我想构建从顶点u开始,通过v,然后返回u而不重复任何边的最小权重电路。这可以通过执行以下操作来完成吗?
找到从u到v的最短路径- 称之为p1
从图中删除p1的所有组成边
找到从v到u的新最短路径- 称之为p2
将所有已删除的边返回到图中,并将p1和p2连接在一起 - 称之为c1
考虑到通过u和v的约束, c1是可以构造的最小权重电路吗?如果是,我如何证明它,如果不是,为什么不呢?
这对我来说似乎很有意义,因为c1中包含的所有路径本身也是最短路径,但是我无法完全摆脱我可能会遗漏某些东西的感觉。
编辑:我已将“完全连接图”更改为“连接图”。“完全”暗示图表是完整的,这不是我的意思。
解决方案
这是一个反例:
在完整图的情况下,假设图中未显示的所有边都具有较大的权重(例如 1000)。
p1
会找到最短路径并将其1 - 1 - 1
排除,禁止3 - 1
+的实际答案1 - 3
。
正如Falk Hüffner所建议的,这个任务可以通过边缘不相交最短对算法来解决。
推荐阅读
- assembly - 我想创建一个文件,但它不起作用
- c# - 错误无法加载类型“TrollMarket.web.MyRoleProvider.RoleSite”
- javascript - 为什么我无法记录 Express 返回的错误消息?
- c# - 为 Home Controler 移除 /Home in route
- mysql - 是否可以在不使用两个 for 循环的情况下迭代 MySQL 数据库中的各种记录?
- zsh - 如何将 zinit 与 zsh 一起使用?追加或制作新文件?
- c# - C#从文件中读取所有字节
- javascript - 谷歌地图:如果用户拒绝地理定位,则调用另一种使用公共 IP 的方法
- tcl - 使用 TCL 替换 URI
- python - python内置函数Iter()重调的Object类是什么样子的?