主要内容

maxflow

最大流量图

描述

例子

曼氏金融= maxflow (G,s t)返回最大流量节点之间年代t。如果图G未加权的(也就是说,G.Edges不包含变量重量),然后maxflow把所有图边有重量等于1。

例子

曼氏金融= maxflow (G,s t,算法)指定要用最大流算法。这个语法只是如果G是一个有向图。

例子

(曼氏金融,女朋友)= maxflow (___)返回一个有向图对象,女朋友,使用任何输入参数在以前的语法。女朋友只使用形成的边缘G有非零流量值。

例子

(曼氏金融,女朋友,cs,ct)= maxflow (___)此外返回源和目标节点id、csct,代表了删减。与最大流量有关。

例子

全部折叠

创建并画一个加权图。加权边缘代表流量的能力。

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.76 0.90 - 2 1 1];G =有向图(s t重量);情节(G,“EdgeLabel”G.Edges.Weight,“布局”,“分层”);

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

确定最大流从节点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 3 8];G =有向图(s t重量);H =情节(G,“EdgeLabel”,G.Edges.Weight);

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

找到节点1和节点之间的最大流量值5。指定“augmentpath”使用Ford-Fulkerson算法,使用两个输出返回一个非零流图。

(mf, GF) = maxflow (G, 1, 5,“augmentpath”)
mf = 11
女朋友=有向图的属性:边缘:[6 x2表]节点:[5 x0表)

突出和标签的图像非零流。

H。EdgeLabel = {};突出(H,女朋友,“EdgeColor”,“r”,“线宽”2);圣= GF.Edges.EndNodes;labeledge (H,圣(:1),圣(:,2)GF.Edges.Weight);

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

创建并画一个加权图。边的权值表示流的能力。

s = [1 1 2 3 3 4 4 5 5];t = [2 3 4 3 2 5 5 6 6);重量= [0.77 0.44 0.67 0.69 0.78 0.73 - 2 1 1];G =有向图(s t重量);情节(G,“EdgeLabel”G.Edges.Weight,“布局”,“分层”)

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

找到的最大流和最小切图。

(mf ~, cs, ct) = maxflow (G, 1, 6)
mf = 0.7300
c =3×11 2 3
ct =3×14 5 6

情节的最小切割,使用cs节点和来源ct节点下沉。突出了cs节点是红色的ct节点是绿色的。注意边缘连接这两组的重量等于最大流量的节点。

H =情节(G,“布局”,“分层”,“源”计算机科学,“汇”ct,“EdgeLabel”,G.Edges.Weight);突出(H, c,“NodeColor”,“红色”)突出(H, ct,“NodeColor”,“绿色”)

图包含一个坐标轴对象。坐标轴graphplot类型的对象包含一个对象。

输入参数

全部折叠

输入图,指定为一个有向图对象。使用创建一个无向图有向图创建一个有向图。

例子:图G = (1、2)

例子:2 G =有向图([1],[2 3])

节点,指定为单独的节点参数指标或节点名称来表示源节点和目标节点。这个表显示了不同的方式引用节点通过节点指标或节点名。

价值 例子
标量节点索引 1
特征向量节点名 “一个”
字符串标量节点名 “一个”

例子:mf = maxflow (G, A, B)

例子:mf = maxflow (G, 1, 10)

数据类型:|字符|字符串

最大流算法,表中指定的条目。

请注意

你只能指定默认的算法选择一个有向图。

选项 描述
“searchtrees”(默认)

使用Boykov-Kolmogorov算法。计算最大流量通过构造两个相关搜索树的节点年代t

“augmentpath”

使用Ford-Fulkerson算法。迭代计算的最大流量,通过寻找增广路径中残留的有向图。

有向图不能有任何平行边之间的相反方向相同的两个节点,除非其中一个边缘的重量是零。如果图像包含边缘我[j],那么它可以包含反向边我[j]只有的重量我[j]是零和/或重量的我[j]是零。

“pushrelabel”

计算最大流量通过将节点的流量限制其邻国,然后重新标记节点。

有向图不能有任何平行边之间的相反方向相同的两个节点,除非其中一个边缘的重量是零。如果图像包含边缘我[j],那么它可以包含反向边我[j]只有的重量我[j]是零和/或重量的我[j]是零。

例子:mf = maxflow (G, A, D ', ' augmentpath ')

输出参数

全部折叠

最大流量,作为一个标量返回。

有向图的流程,作为一个返回有向图对象。女朋友包含相同的节点G,但只包含那些边缘的G有一个非零流。对于油印多个相同的两个节点之间的边,女朋友包含一个边缘反映了流经多个边缘。

最低减少源节点id作为节点指标或返回节点的名称。

  • 如果年代t指定数字节点指标csct也包含节点指标。

  • 如果年代t指定节点的名称,然后csct也包含节点名称。

最低目标节点id,作为节点指标或返回节点的名称。

  • 如果年代t指定数字节点指标csct也包含节点指标。

  • 如果年代t指定节点的名称,然后csct也包含节点名称。

更多关于

全部折叠

最大流量

在最大流量的情况下,被认为有一个边缘在一个图能力边所代表的重量。的能力优势流的数量,可以通过优势。因此,两个节点之间的最大流量图最大化流从源节点的数量,年代目标节点,t基于能力的连接边缘。

删减。

最小有向图节点分区切成两组,csct,这样所有边缘连接的权重的总和csct(减少的重量)最小化。最小的重量等于最大流量值,曼氏金融

的条目csct显示的节点G与节点相关联年代t,分别。csct满足元素个数(cs) +元素个数(ct) = numnodes (G)

版本历史

介绍了R2015b

另请参阅

|