我想在haskell中编写程序,它将在流网络中找到最大流量。但是,我不太了解Haskell,所以我不知道最好的方法是什么。
我最大的问题是寻找增强路径。
在Java中,我会创建一个布尔数组Visited
(知道访问哪个节点)和残差图rGraph
并使用DFS我会找到扩充路径(如果有的话)。
但在哈斯克尔......
这是我对Graph类型的定义。
type Node = Char
type Edge = (Node ,Node, Int)
type Graph = ([Node], [Edge])
所以带有5个节点和6个边的图可以用这种方式表示
['a','b','c','d','e'], [('a','b',7),('b','c',4),('a','d',8),('c','d',9),('e','b',11),('d','e',3)]
我可以尝试“java风格”,但我认为还有更好的方法。
在haskell中查找图表中的扩充路径的最佳方法是什么?