文件帮助中心文件
最大流程
mf = maxflow(g,s,t)
mf = maxflow (G s t算法)
[mf,gf] = maxflow(___)
[MF,GF,CS,CT] = maxFlow(___)
例子
曼氏金融= maxflow(G那s t)返回最大流量节点之间S.和T..如果图G是未加权的(即,G.Edges不包含变量重量),然后maxflow.将所有的图边视为权值等于1。
曼氏金融= maxflow(G那s t)
曼氏金融
G
s t
S.
T.
G.Edges
重量
maxflow.
曼氏金融= maxflow(G那s t那算法)指定要使用的最大流算法。此语法仅在以下情况下可用G是一条定向图。
曼氏金融= maxflow(G那s t那算法)
算法
[曼氏金融那GF.) = maxflow (___)也返回一个有向图对象,GF.,使用前面语法中的任何输入参数。GF.是形成只用边在G具有非零流量值。
[曼氏金融那GF.) = maxflow (___)
GF.
[曼氏金融那GF.那CS那CT.) = maxflow (___)另外返回源和目标节点id,CS和CT.,代表这一点删减。与最大流量相关。
[曼氏金融那GF.那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,st(:,1),st(:,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
CS =3×11 2 3
ct =3×14 5 6
绘制最小切割,使用CS节点作为来源和CT.节点作为下沉。突出显示CS节点是红色和CT.节点为绿色。注意,连接这两组节点的边缘的权重等于最大流量。
h = plot(g,'布局'那“分层”那“来源”,CS,'下沉',CT,......'Edgelabel', G.Edges.Weight);突出(H, c,“NodeColor”那'红色的')亮点(H,CT,“NodeColor”那“绿色”)
图形
有向图
输入图形,指定为a图形或有向图对象。使用图形创建无向图或有向图创建定向图形。
例子:图G =(1、2)
图G =(1、2)
例子:G = Digraph([1 2],[2 3])
G = Digraph([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算法。通过构造两个与节点相关联的搜索树来计算最大流量S.和T..
使用Ford-Fulkerson算法。通过在剩余定向图中查找增强路径来计算最大流量。
定向图不能在相同的两个节点之间具有相反方向的任何并行边缘,除非这些边的一个的重量为零。因此,如果图表包含边缘[I J],则可以包含反向边[j i]只要重量[I J]0和/或的权重是多少[j i]是零。
[I J]
[j i]
通过将一个节点的多余流量推给它的邻居,然后重新标记该节点来计算最大流量。
例子:mf = maxflow(g,'a','d','augmentpath')
mf = maxflow(g,'a','d','augmentpath')
最大流量,作为标量返回。
流的有向图,返回为有向图对象。GF.包含的节点与G,但只包含G这是一个非零流。对于具有同一两个节点之间的多个边缘的多层的多层物,GF.包含通过多边缘反射流量的单个边缘。
最小剪切源节点ID,返回为节点索引或节点名称。
如果S.和T.指定数字节点索引,然后CS和CT.还包含节点索引。
如果S.和T.指定节点名称,然后指定节点名称CS和CT.还包含节点名称。
最小削减目标节点id,返回为节点索引或节点名称。
在最大流量的背景下,图中的边缘被认为具有一个能力由边缘重量表示。边缘的容量是可以通过该边缘的流量。因此,图中两个节点之间的最大流动最大化了从源节点的流量的量,S.,发送到目标节点,T.,根据连接边的能力。
最小剪切将定向图节点分为两组,CS和CT.,使得所有边缘连接的权重的总和CS和CT.(切割的重量)最小化。最小切割的重量等于最大流量值,曼氏金融.
参赛作品CS和CT.表示节点G与节点相关联S.和T., 分别。CS和CT.满足nummel (cs) + nummel (ct) = numnodes(G).
nummel (cs) + nummel (ct) = numnodes(G)
有向图|图形
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,以便在可用的地方进行翻译的内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。
与当地办事处联系