Graph 在给定多个顶点的情况下寻找所有可能的有向图

Graph 在给定多个顶点的情况下寻找所有可能的有向图,graph,graph-theory,directed-graph,Graph,Graph Theory,Directed Graph,给定一对顶点以及它们之间存在边的信息,是否有可能找到所有可能的有向图?例如,如果我们知道具有边对的顶点,如 1 2 2 3 1 3 可能的有向图为: 1→2, 2→3, 1→3 1→2, 2→3, 3→1 1→2, 3→2, 1→3 1→2, 3→2, 3→1 2→1, 2→3, 1→3 2→1, 2→3, 3→1 2→1, 3→2, 1→3 2→1, 3→2, 3→1 这里要使用什么数据结构?工作逻辑是什么 我在考虑使用邻接矩阵数据结构并计算所有可能的邻接矩阵。每个邻接矩阵

给定一对顶点以及它们之间存在边的信息,是否有可能找到所有可能的有向图?例如,如果我们知道具有边对的顶点,如

1 2
2 3
1 3
可能的有向图为:

1→2, 2→3, 1→3 
1→2, 2→3, 3→1 
1→2, 3→2, 1→3 
1→2, 3→2, 3→1 
2→1, 2→3, 1→3 
2→1, 2→3, 3→1 
2→1, 3→2, 1→3 
2→1, 3→2, 3→1 
这里要使用什么数据结构?工作逻辑是什么

我在考虑使用邻接矩阵数据结构并计算所有可能的邻接矩阵。每个邻接矩阵将表示一个图。我们可以在需要时使用该图来执行任务,如检查循环是否存在等


很抱歉,这更多的是一个讨论而不是一个编程问题,但是如果您有任何帮助,我们将不胜感激

您可以维护一个无向图数据结构G,并了解边(u,v)的存在意味着在有向图可能性D的特定实例中只有一条有向边


如果要单独维护所有可能的有向图,则需要2^m个,其中m是边数。如果顶点和边始终相同,并且只有方向是不变的,则可以保持2^m位字符串,每个字符串的长度为m。每个位都有一个0或1,这取决于它所对应的边(u,v)是u-->v还是v每条边可以延伸一个方向或另一个方向,因此答案似乎是2^n,其中
n
是边的数量,假设每条边都是单向的。@user5994461我实际上并没有询问获得的图的数量,而是这样获得的图。这不清楚。“所有可能的有向图”与给定的“顶点对以及它们之间存在边的信息”有什么关系?此外,您的单词与示例输入不一致,示例输入是一组顶点对,而不是一个图形&顶点对。我们可以猜出你想说什么,并要求确认,但你应该找到如何说。使用足够的单词、句子和引用部分例子,清楚、完整地说出你的意思。否则,您无法搜索、询问或编码解决方案。您的问题是什么?讨论离题了。要求“方法”是离题的。您没有给出选择一种方法而不是另一种方法的标准。你基本上是要求我们不费吹灰之力就解决你的问题。尽可能多地想出一个解决方案&问一个特定的问题。你是第一个被卡住的地方。干得好。所有可能的位字符串将给出所有可能的有向图,但我认为很难确定每个有向图中是否有一个循环。我最初的任务是找出这些图是否都是非循环的。我指的是逻辑部分,如果我真的为每种可能性维护一个图形数据结构,这将非常容易。然后,我可以很容易地找到周期使用DFS算法。但考虑到时间复杂性,这将是最糟糕的。如果逻辑正确,你的算法会更快。如果你找到了算法,请分享,这将是很大的帮助。