在不引入循环和/或新顶点的情况下向有向无环图添加边

问题描述

请考虑我们有一个定向Graph G = (V,E)。 假设|V| ≥ 5. 是否可以在没有引入循环(也没有引入新顶点)的情况下向|V|添加G有向边? 这怎么可能?正式的证明会是什么样子? 据我所知,也有类似的问题,但都没有这种情况(图形是严格定向的,不能添加顶点)。

谢谢。

解决方法

DAG节点可以进行拓扑排序,这意味着对于每个弧(a,b),节点a在排序中位于节点b的左侧。

一种执行所需操作的方法是先对DAG进行拓扑排序。说它总共有n个节点。排序之后,位置i处的节点之后将有n-i-1个节点。如果对于任何i,i处的节点的出度为

现在,如果可以确保您拥有DAG,并且想知道可以添加多少弧并仍保留DAG属性,但是您无需识别它们,那么可以做得更快。请注意,在完整的DAG(一个具有所有可能的弧线)中,topo排序后,输出度将为[n-1,n-2,...,1,0],它们的总和将为n *(n + 1)/ 2。

找到弧的数量==内度的总和==外度的总和。如果该值小于n *(n + 1)/ 2,则区别在于可以在保持DAG的同时添加到DAG的弧数。