混合图是可能同时具有有向边和无向边的图。通过忘记有向边的方向可以获取其下面的无向图,而在另一个方向上,可以通过为每个无向边分配一个方向来获得混合图的方向。如果一组边可以定向以形成有向环,则它在混合图中形成一个环。混合图只有且没有循环时才是非循环的。
这是所有标准,并且有许多发表的论文提到无环混合图。因此,必须知道以下用于测试混合图的非循环性的算法:
重复以下步骤:
- 删除任何没有传入有向边和入射无向边的顶点,因为它不能属于任何循环。
- 如果任何一个顶点都没有传入的有向边,但恰好有一个入射的无向边,那么任何使用无向边的循环都必须进入该边。用传入的有向边替换无向边。
当无法执行更多步骤时,请停止。如果结果为空图,则原始图必须一定是非循环的。否则,可以从剩下的任何顶点开始,在图形上回溯,在每一步中,通过向后进入输入边或沿着非指向性边(不是用来到达当前顶点的那个边)进行后退,直到看到重复的顶点。在该顶点的第一次和第二次重复之间(以相反顺序)跟随的边沿顺序在混合图中形成一个循环。
Wikipedia上有关混合图的文章提到了非循环混合图,但没有提及如何对其进行测试,因此我想向其添加有关此算法的一些信息,但是为此,我需要一个公开的参考。有人可以告诉我它(或其他任何用于测试非周期性的算法)在文献中出现的地方吗?