文档帮助中心文档
图中最大流量
mf = maxflow(G,s,t)
mf = maxflow(G,s,t,算法)
[mf,GF] = maxflow(___)
[mf,GF,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(___)额外返回源和目标节点id,cs而且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 = plot(G,“EdgeLabel”, G.Edges.Weight);
找出节点1和节点5之间的最大流量值。指定“augmentpath”使用Ford-Fulkerson算法,并使用两个输出返回非零流的图形。
“augmentpath”
[mf,GF] = maxflow(G,1,5,“augmentpath”)
Mf = 11
GF =有向图属性:边:[6x2表]节点:[5x0表]
突出显示并标记非零流的图形。
H.EdgeLabel = {};突出(H,女朋友,“EdgeColor”,“r”,“线宽”2);st = 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节点为绿色。注意,连接这两组节点的边的权值等于最大流量。
H = plot(G,“布局”,“分层”,“源”计算机科学,“汇”ct,...“EdgeLabel”, G.Edges.Weight);突出(H, c,“NodeColor”,“红色”)突出(H, ct,“NodeColor”,“绿色”)
图
有向图
输入图形,指定为a图或有向图对象。使用图创建无向图或有向图创建有向图。
例子: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”
最大流量算法,指定为表中的一个条目。
请注意
只能指定非默认值算法有向图的选项。
使用Boykov-Kolmogorov算法。通过构造两个与节点相关的搜索树来计算最大流量年代而且t.
使用Ford-Fulkerson算法。通过在残差有向图中寻找增广路径,迭代地计算最大流量。
有向图在相同的两个节点之间不能有任何方向相反的平行边,除非其中一条边的权值为零。如果图像包含一条边我[j],则它可以包含反边我[j]只若重之我[j]的权值为0和/或我[j]是零。
我[j]
通过将一个节点的多余流量推到它的邻居,然后重新标记该节点,计算最大流量。
例子:mf = maxflow(G,'A','D','augmentpath')
mf = maxflow(G,'A','D','augmentpath')
最大流量,作为标量返回。
流的有向图,返回为有向图对象。女朋友包含相同的节点G,但只包含的边缘G有非零流量。对于在相同的两个节点之间有多条边的多重图,女朋友包含一条反映流经多条边的流的边。
最小切割源节点id,返回为节点索引或节点名称。
如果年代而且t然后指定数值节点索引cs而且ct还包含节点索引。
如果年代而且t然后指定节点名称cs而且ct还要包含节点名。
最小切割目标节点id,返回为节点索引或节点名称。
在最大流量的情况下,图中的边被认为具有a能力由边权值表示。边的容量是指能通过该边的流量。因此,图中两个节点之间的最大流量使从源节点通过的流量最大,年代,到目标节点,t,根据连接边的容量。
最小切割将有向图节点划分为两个集合,cs而且ct,使得所有连接的边的权值之和cs而且ct(切口的重量)最小化。最小切割的重量等于最大流量值,曼氏金融.
中的条目cs而且ct的节点G与节点关联年代而且t,分别。cs而且ct满足数字(cs) +数字(ct) = numnodes(G).
数字(cs) +数字(ct) = numnodes(G)
图|有向图
您有这个示例的修改版本。要使用编辑打开此示例吗?
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在可用的地方获得翻译的内容,并查看当地的活动和优惠。根据您所在的位置,我们建议您选择:.
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系当地办事处