有向图中的欧拉电路
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有向图中的欧拉电路相关的知识,希望对你有一定的参考价值。
如何检查有向图是否为欧拉?
1)所有非零度的顶点都属于单个强连通分量。
2)入度等于每个顶点的出度。来源:geeksforgeeks
问题:在给定的两个条件下,第一个条件严格吗?我的意思是为什么图真正需要“强”连接图?如果图形刚刚连接怎么办?
我了解到条件1可以用弱连接图代替。同样,如果图只是连接而不是弱连接,该怎么办?将很高兴看到一些示例。
P.S:在以上讨论中,条件2总是得到满足。通过“仅连接”,我的意思是图中存在一个顶点,从该顶点可以到达所有其他顶点。
这是一个有趣的问题。据我所知,在有向图的上下文中,“连接”没有标准化的含义。有向图中连通性的两个一般概念是
- 强连通性,对于任何对u和v的节点,都有从u到v的路径以及从v到u的路径,以及
- 弱连通性,其中连接了通过忽略箭头的方向性而形成的无向图。
您的“有连接”的有向图版本与这些定义略有不同,但是与强大的连通性有关。任何有向图都可以将其节点划分为strongly connected components(SCC),这些节点组可以相互到达。这些强连接的组件形成一个DAG,其中每个强连接的组件都是一个节点,并且如果第一个SCC中的一个节点与第二个SCC中的一个节点都有一条边缘,则从一个SCC到另一个SCC会有一条边缘。
然后您可以像这样将图的定义“固定连接”起来:
- “仅已连接”:SCC的DAG的源节点可以到达所有其他节点。
[注意,“仅连接”表示弱连接,但并非相反。
事实证明,在这种情况下,如果有一个图,其中每个节点的入度恰好等于其出度,那么,如果该图是“刚刚连接的”,则它具有一个欧拉电路。如果您的图形是“刚刚连接”,则它是弱连接。然后,我们要声明,indegree等于outdegrees的任何弱连接图也必须是强连接的。要看到这一点,请在SCC的DAG中选择没有传入边缘的任何SCC。进入此SCC中任何节点的任何边必须来自该SCC内部。结果,如果我们遍历SCC中的每个节点并累加离开该节点的边数,则该总数将与SCC中每个节点的传入边数相匹配。但是,由于节点的度数的总和等于节点的度数的总和,因此,由于考虑了所有边缘,因此在此SCC中不会再有任何边缘开始于另一个SCC。因此,此SCC没有边缘。
我们刚刚表明,任何源SCC都不得与任何其他SCC发生冲突。而且,由于某个源SCC中有一个可以到达每个节点的节点,这意味着图中没有其他SCC,因此该图只有一个SCC,因此是牢固连接的。
以上是关于有向图中的欧拉电路的主要内容,如果未能解决你的问题,请参考以下文章