これは、複数商品フロー問題のバリエーションです。
これらの問題は、フローが整数である必要がある場合に特に解決が困難です。つまり、1 つのソースs_dから 1 つのデマンドへのフローを からへt_dの複数のパスに「分割」することはできません。s_dt_d
これがあなたの問題の場合だと思います。つまり、1 つのソースから 1 つの宛先への複数のパスを介して gaz を送信できますが、これは「合理的」と思われます。
このトピックに関する広範な文献があり、主に整数バージョンまたは問題の非常に大きなインスタンス (通信ネットワークや輸送の問題で発生する) の解決に焦点を当てています。問題が小さい場合は、単純な線形ソルバーで十分です。
ネットワーク グラフは(E,V)、質問のように示されます。有向頂点を想定しています。
それぞれが source 、 destination 、 valueである一連Dの要求を考えます。この値を最大化する特定の需要を除いて、値は定数です。させて:d in Ds_dt_dV_dV_dd0
c^{min}_eエッジの最大容量e in E 
c^{max}_eそのような容量を持つエッジeのサブセット内のエッジの最小容量E' 
のノードのv場合V:
delta_{vd}の場合は 1、 の場合v = t_dは -1、v = s_dそれ以外の場合は 0 
E^+_vは頭のある辺の集合ですv 
E^-_vテール付きのエッジのセットですv 
各エッジeと各需要に対して、エッジを通過するフローの量を表すd変数を導入します。x_{ed}de
問題は、次の形式の線形 (連続) モデルとして記述できます。
maximize V_{d0} on x and V_{d0}
subject to:
       // flow constraints
       forall v in V, d in D:
         sum_{e in E^+_v x_{ed} - sum_{e in E^-_v} x_{ed} = V_d delta_{vd}
       // max capacity constraints
       forall e in E:
         sum_{d in D} x_{ed} <= c^{max}_e
       //  min capacity constraints
       forall e in E':
         sum_{d in D} x_{ed} >= c^{min}_e
       //  bound constraints on the variable `x`
       forall d in D, forall e in E:
         0 <= x_{ed} <= V_d