4

私のアルゴリズムの一部では、整数の容量を持つネットワークで最大フローを計算する必要があります。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
 }

誰かがこの機能を実装する方法の例を教えてもらえますか?

4

0 に答える 0