ドキュメンテーションヘルプセンタードキュメンテーション
このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
グラフの最大フロー
mf = maxflow (G s t)
mf = maxflow (G s t算法)
(mf, GF) = maxflow (___)
(mf、广发、cs, ct) = maxflow (___)
例
曼氏金融= maxflow (G,s t)は,ノード年代とtの間の最大フローを返します。グラフGが重みなしの場合(つまりG.Edgesが変数重量を含まない),maxflowはすべてのグラフエッジが重み1をもつものとして扱います。
曼氏金融= maxflow (G,s t)
曼氏金融
G
s t
年代
t
G.Edges
重量
maxflow
曼氏金融= maxflow (G,s t,算法)は,使用する最大フローアルゴリズムを指定します。この構文は,Gが有向グラフの場合にのみ使用できます。
曼氏金融= maxflow (G,s t,算法)
算法
[曼氏金融,女朋友) = maxflow (___)は,前述の構文に示した任意の入力引数を使用して,有向グラフオブジェクト女朋友も返します。女朋友は,非ゼロのフロー値をもつGのエッジのみを使用して構成されます。
[曼氏金融,女朋友) = maxflow (___)
女朋友
[曼氏金融,女朋友,cs,ct) = maxflow (___)はさらに,ソースとターゲットのノードIDcsおよびctを返します。これらは最大フローに対応する最小カットを表します。
[曼氏金融,女朋友,cs,ct) = maxflow (___)
cs
ct
すべて折りたたむ
重み付きグラフを作成し,プロットします。重み付きエッジはフロー容量を表します。
S = [1 1 2 2 3 4 4 4 5 5];T = [2 3 3 4 5 3 5 6 4 6];权重= [0.77 0.44 0.67 0.75 0.89 0.90 2 0.76 1 1];G =有向图(s t重量);情节(G,“EdgeLabel”G.Edges.Weight,“布局”,“分层”);
ノード1からノード6までの最大フローを求めます。
mf = maxflow (G, 1, 6)
mf = 1.2100
グラフを作成してプロットします。重み付きエッジはフロー容量を表します。
S = [1 1 2 2 3 3 4];T = [2 3 3 4 4 5 5];权重= [10 6 15 5 10 3 8];G =有向图(s t重量);H =情节(G,“EdgeLabel”, G.Edges.Weight);
ノード1とノード5の間の最大フロー値を求めます。“augmentpath”を指定してフォード・ファルカーソンアルゴリズムを使用し,2つの出力を使用して非ゼロフローのグラフを返します。
“augmentpath”
(mf, GF) = maxflow (G, 1, 5,“augmentpath”)
mf = 11
GF =具有属性的有向图:Edges: [6x2 table] Nodes: [5x0 table]
非ゼロフローのグラフを強調表示し,ラベルを付けます。
H.EdgeLabel = {};突出(H,女朋友,“EdgeColor”,“r”,“线宽”2);圣= GF.Edges.EndNodes;labeledge (H,圣(:1),圣(:,2)GF.Edges.Weight);
重み付きグラフを作成し,プロットします。エッジの重みはフロー容量を表します。
S = [1 1 2 3 3 4 4 5 5];T = [2 3 3 2 5 5 6 4 6];权重= [0.77 0.44 0.67 0.69 0.73 2 0.78 1 1];G =有向图(s t重量);情节(G,“EdgeLabel”G.Edges.Weight,“布局”,“分层”)
グラフの最大フローおよび最小カットを求めます。
(mf ~, cs, ct) = maxflow (G, 1, 6)
mf = 0.7300
c =3×11 2 3
ct =3×14 5 6
csノードをソース,ctノードをシンクとして使用して,最小カットをプロットします。csノードを赤,ctノードを緑で強調表示します。これら2セットのノードを連結するエッジの重みが最大フローに等しくなります。
H =情节(G,“布局”,“分层”,“源”计算机科学,“汇”ct,...“EdgeLabel”, G.Edges.Weight);突出(H, c,“NodeColor”,“红色”)突出(H, ct,“NodeColor”,“绿色”)
图
有向图
入力グラフ。图オブジェクトまたは有向图オブジェクトとして指定します。無向グラフの作成には图を,有向グラフの作成には有向图を使用します。
例:图G =(1、2)
图G =(1、2)
例:G =有向图([1,2],[2 3])
G =有向图([1,2],[2 3])
ノードペア。ソースノードとターゲットノードを表すノードインデックスまたはノード名の個別の引数として指定します。次の表は,ノードをノードインデックスまたはノード名で参照するさまざまな方法を示しています。
1
“一个”
例:mf = maxflow (G, A, B)
mf = maxflow (G, A, B)
例:mf = maxflow (G, 1, 10)
mf = maxflow (G, 1, 10)
データ型:双|字符|字符串
双
字符
字符串
“searchtrees”
“pushrelabel”
最大フローアルゴリズム。次の表のいずれかの項目として指定します。
メモ
既定以外の算法オプションは,有向グラフにのみ指定できます。
ボイコフ・コルモゴロフアルゴリズムを使用します。ノード年代およびtに関連する探索木を2本作成することにより,最大フローを計算します。
フォード・ファルカーソンアルゴリズムを使用します。残余有向グラフで増加経路を検出することにより,最大フローを繰り返し計算します。
有向グラフでは,エッジのいずれかの重みが0でない限り,同じ2つのノード間に逆方向の平行エッジを含むことができません。したがって,グラフがエッジ我[j]を含む場合,我[j]の重みが0か/まつたは我[j]の重みが0の場合にのみ逆向きエッジ我[j]を含むことができます。
我[j]
ノードの過剰フローを隣接ノードに押し付け,ノードにラベルを付け直すことにより,最大フローを計算します。
例:mf = maxflow (G, A, D ', ' augmentpath ')
mf = maxflow (G, A, D ', ' augmentpath ')
最大フロー。スカラーとして返されます。
フローの有向グラフ。有向图オブジェクトとして返されます。女朋友はGと同じノードを含みますが,非ゼロフローをもつGのエッジのみを含みます。同じ2つのノード間に複数のエッジがある多重グラフでは,女朋友に複数のエッジを通過するフローを表す単一のエッジが含まれます。
最小カットのソースノードID。ノードインデックスまたはノード名として返されます。
年代とtが数値ノードインデックスを指定する場合,csとctもノードインデックスを含みます。
年代とtがノード名を指定する場合,csとctもノード名を含みます。
最小カットのターゲットノードID。ノードインデックスまたはノード名として返されます。
最大フローのコンテキストでは,グラフ内のエッジは,エッジの重みで表される”容量”をもつと見なされます。エッジの容量は,そのエッジを通過できるフローの量です。したがって,グラフ内の2つのノード間の最大フローは,連結エッジの容量に基づいて,ソースノード年代からターゲットノードtまで通過するフローの量を最大にします。
最小カットは,csとctを連結するすべてのエッジの重みの合計(カットの重み)が最小になるように,有向グラフのノードを2つのセットcsおよびctに分割します。最小カットの重みは最大フロー値曼氏金融と等しくなります。
csおよびctの要素はそれぞれ,ノード年代およびtに対応するGのノードを示します。csとctはnummel (cs) + nummel (ct) = numnodes(G)を満たします。
nummel (cs) + nummel (ct) = numnodes(G)
有向图|图
この例の変更されたバージョンがあります。編集された方の例を開きますか吗?
次のMATLABコマンドに対応するリンクがクリックされました。
コマンドをMATLABコマンドウィンドウに入力して実行してください。WebブラウザーはMATLABコマンドをサポートしていません。
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系