当前位置: 首页 > 知识库问答 >
问题:

多边无向图的圈枚举

严朝明
2023-03-14

我正在编写一个使用电网格分析的程序。所以我有电路的节点[A,B,C,D]和连接节点[0,1,2,3,4,5,6,7,8]的分支。

如何在具有多条边的无向图中找到最短的循环?

图形图像(4个节点,9条边/分支):

周期:

0-1-0
5-6-5
6-8-6
1-4-2-1
2-7-3-2
4-7-5-4

我需要的循环数是:循环=分支-(节点-1),在本例中我需要6个循环。

我将这些数据存储在这样的数组中:

realNodes = [A,B,C,D];

groupBranches = [[0,1,4,5,6,8], [3,5,6,7,8], [0,1,2,3], [2,4,7]];

// groupArray[0] stores the branch numbers connected to A;
// groupArray[1] stores the branch numbers connected to B;
// groupArray[2] stores the branch numbers connected to C;
// groupArray[3] stores the branch numbers connected to D;

我很乐意看到任何语言的算法。

共有1个答案

米项禹
2023-03-14

您可以使用任何您喜欢的算法(BFS工作)生成树。

然后,对于不在树中的每条边,你做一个循环,包含该边加上从树的一端到另一端的路径。

 类似资料:
  • 在一个已执行DFS的无向图中(为了生成一个DFS树,从而将每条边分类为树边或后边),图中是否存在仅由后边组成的循环,即没有树边?

  • 假设图G是一个有向无圈图,其顶点数为'n'no。如果我从图中移除所有边并使其完全断开,这会是一个DAG吗?

  • 我有一个有向和无向边的图,现在我想通过用有向边替换它们来去掉无向边(每个无向边变成一个有向边)。每个无向边有两种可能性(用一个方向或另一个方向的有向边替换它)。 如何确定无向边的方向,使我的图保持无环(一个DAG)? 我的方法: null null null https://en.wikipedia.org/wiki/directed_acyclic_graph

  • 我正在寻找一种算法,它可以<编码>不同两个有向无环图(DAG)。也就是说,我想要一个算法,它在第一个DAG上产生删除和插入序列,以产生第二个DAG。 我不是百分之百确定,但我认为一个最长的公共子序列可以应用于DAG。我不太关心结果编辑序列的长度(只要它足够短),更关心算法的运行时间。 一个复杂的问题是,除了一个根节点之外,没有一个顶点被标记。根节点也是唯一一个内边为零的节点。图的边被标记,图中的“

  • 请告诉我为什么这段代码不能分析无向图中是否有循环?代码如下。这是Spoj上的PT07Y问题。我正在做的是取一个节点并执行dfs。当执行dfs时,如果我访问同一个节点,那么我说有一个循环。从一个节点执行dfs后,我使访问的数组为假,并为下一个节点执行,直到我得到一个周期或所有节点都被访问。

  • A-B-C-D A-B-C-E A-B-C-F 我的想法是,我需要同时使用DFS和BFS,但我不确定这是否有效?