Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在无向图中寻找两条非重叠路径_Java_Python_Algorithm_Graph_Artificial Intelligence - Fatal编程技术网

Java 在无向图中寻找两条非重叠路径

Java 在无向图中寻找两条非重叠路径,java,python,algorithm,graph,artificial-intelligence,Java,Python,Algorithm,Graph,Artificial Intelligence,两个多星期以来,我一直在努力解决一个问题。我应该生成一个无向图,它表示街道地图,我应该把地图分成两组不重叠的街道,两条路径的距离应该大致相同 我应该使用什么样的算法来解决它? 我只是在这里寻找一个大致的方向,我应该用什么样的算法来实现这一点 编辑:(测试用例) 假设我们有一个顶点为a,B,C,D,E的无向图 A --- B | / | \ | / | C | / | / D --- E 这意味着像这样的邻接矩阵: A B C D E A - 1 0 1

两个多星期以来,我一直在努力解决一个问题。我应该生成一个无向图,它表示街道地图,我应该把地图分成两组不重叠的街道,两条路径的距离应该大致相同

我应该使用什么样的算法来解决它?

我只是在这里寻找一个大致的方向,我应该用什么样的算法来实现这一点

编辑:(测试用例)

假设我们有一个顶点为a,B,C,D,E的无向图

A --- B 
|   / | \
|  /  |  C
| /   | / 
D --- E 
这意味着像这样的邻接矩阵:

  A  B  C  D  E
A -  1  0  1  0
B 1  -  1  1  1
C 0  1  -  0  1
D 1  1  0  -  1
E 0  1  1  1  -
假设所有边都是无向的,我们有以下边:

(a,b) (a,d) (b,d) (b,e) (b,c) (e,d) (e,c)
我想要的是,通过人工智能,我可以得到这张图,并生成两组大小大致相同的边。(在这种特殊情况下,由于我们有7条边,我们将得到一组3条边和另一组4条边

Group 1: (a,b) (a,d) (b,d) (e,d)
A --- B 
|   / 
|  /  
| /     
D --- E 

Group 2: (b,e) (b,c) (e,c)
B 
| \
|  C
| / 
E 
请注意,每个组中的所有边都至少由一个节点连接,这是一项要求

另一个有效的解决方案可以是,例如:

Group 1: (d,a) (a,b) (b,c) (c,e)
A --- B 
|       \
|       C
|       / 
D     E 
Group 2: (d,b) (b,e) (e,d)
      B 
    / |
   /  |
  /   | 
D --- E 
诸如此类,正如你们看到的,有很多有效的解决方案,但我想要一个算法来找到一个,我会保留第一个找到的,我该怎么做呢


我确信有一种正式的方式来说明这个问题,如果你告诉我应该怎么做,我将非常感激。

你能提供一个测试用例吗?不确定你的意思是什么,什么样的测试用例?你说你需要从一个图中找到两个不重叠的路径。所以,提供一个图和该图的两个不重叠的路径。顺便说一下路径有任何代价,或者遍历每条路径需要相同的代价。路径的来源和目的地是什么?