我有一个有向循环图,边缘处有值,但节点处没有值。
该图有一个开始节点和一个结束节点,我想保留通过图的路径集,但我不关心路径上的节点,只关心边缘值。下面的例子。
是否有任何算法可以生成保留该属性的较小图形?
该图可能有数十个数千个节点,但不是数百万个。每个节点的边数比节点数少。
保守的启发式方法是受欢迎的。
举个例子,哪里O
是一个节点,一个数字是相邻边的值:
O --------> O -------> O
2 3
^ |4
|1 v
1 2 3 4
start -> O -> O -> O -> end
|5 ^
v |8
O --------> O -------> O
6 7
从头到尾有两条边值为 [1,2,3,4] 的路径,所以一条是多余的,我很乐意将上述内容减少到
O --------> O -------> O
2 3
^ |4
|1 v
start end
|5 ^
v |8
O --------> O -------> O
6 7
该图可以是循环的,所以在
1
/-\
| /
v/
start -> O -> O -> end
1 1 2
一个更简单的图将消除第二个 1 转换,只留下自边缘:
1
/-\
| /
v/
start -> O -> end
1 2