私のアルゴリズムの一部では、整数の容量を持つネットワークで最大フローを計算する必要があります。boost::edmonds_karp_max_flow アルゴリズムを使用して最大フローを見つけたい。
ドキュメントを読んでみましたが、これまで BGL を使用したことがなかったので、非常に困難でした。次のようにグラフを作成しました。ここでは、グラフのエッジの容量として の重み属性をEdge
使用する必要があります。
struct Vertex{
int id;
bool flag;
};
struct Edge{
int weight;
};
typedef boost::adjacency_list<
boost::listS,
boost::vecS,
boost::undirectedS,
Vertex,
Edge
>MyGraph;
私の目標は、次の関数を書くことです
int max_flow( const MyGraph& gr, int u, int v) {
// compute the maximum flow between vertices with ids u,v
}
誰かがこの機能を実装する方法の例を教えてもらえますか?