最小费用流

合集下载

最小费用流

最小费用流

(4,6,2)
v2
(2,3,0) (2,2,2)
再求v0到vn的最短增流路v0v2v3v1v4vn,路长为 14,可增加1单位的流值。(v3v1反向弧,同 最大流处理)
v1
(4,3,2)
v4 (2,5,3) vn (9,3,0) v5 (3,4,2)
(3,3,3)
v0
(2,2,1) v3
(1,1,1)
b
17,3 (c )
c
(4)在 sbct 路中,每边的容量减 5, wsb ,如图 d。求最小费 用通路 sabct, 单位流费用和为 4 (2) 3 2 7, f0 3 , 边 ( c, t ) 饱 和。
s
0,
12, 4
a
13,6
0,
t
3, 2
11, 2
b
v1
(4,3,0)
v4 (2,5,0) vn
(3,3,0)
v0
(2,2,0) v3
(1,1,0)
(4,6,0)
v2
(2,3,0) (2,2,0)
(9,3,0) v5
(3,4,0)
(单位运费,边容量,流值)
v1
(4,3,0)
v4 (2,5,0) vn (9,3,0) v5 (3,4,0)
(3,3,0)
s
0,
b
9, 4
8, 2
a
0,
t
0,
13, 6
9, 3
(e)
c
s
16
6
8
a
0
14
t
8
b
8
c
(f)
实际问题实例:一个工厂要将产品送 到火车站,可以有许多道路供其选择,在 不同路线上每吨货物的运费并不相同,而 且每条路线只能有限重量的货物运输,那 么要将w吨的产品从工厂送到火车站,用 什么方法可以使运费最少?

最小费用流

最小费用流
i j c P
s
a W
t
b
Edmonds和Karp
• 假设增广前s到u的距离为d(u), 增广后的费 用函数为w(e), 对于弧e=uv定义一个新的权 值w*(e) = w(e) + d(u) – d(v), 则对于任意s-t 路X, 有w*(X) = w(X) – d(x), 即对于权函数 w(e), w*(e), 从s出发的单源最短路树完全一 样 • 改进算法: 用w*(e)=w(e)+d(u)-d(v)作为权函 数计算单源最短路d*(x), 然后计算出真正的 新最短路
消圈定理
• 消圈定理: 流量为f的可行流x为流量为f的最 小费用流当且仅当x没有负费用增广圈 • 必要性显然,用反证法证明充分性。 • 假设存在不同的可行流x0使得它的费用比x 更低,则它们的差x1=x0-x是网络中的负费 用循环流。既然是循环流,x1一定可以分解 为至多m个非零圈流之和,则它们中至少有 一个圈是负费用的(有限个非负费用之和 仍是非负的),这个圈就是题目中非负增 广圈,矛盾
例1. Another Assignment Problem (SPOJ 684)
• 第i类工人有a(i)个, 第j类工作有b(j)个, 第i类 工人做第j类工作的代价是c(i,j). 用最小代价 把所有工人安排好位
目录
• 消圈算法及其正确性 • 连续最短路算法及其改进 • 应用
最小费用流
• 如下图, 弧上除了网络外还有一个费用值 • 总费用等于每条弧的流量与费用的乘积
残量网络
• 残量网络N’=(G’,c’,s,t) • c’的定义同不带费用的网络流问题 • 费用定义
– 正向弧费用为w(e) – 反向弧费用为-w(e)
连续最短路算法

图论专题小结:最小费用最大流算法

图论专题小结:最小费用最大流算法

图论专题小结:最小费用最大流算法一,给定流量F,求最小费用题意:网络中有两台计算机s,t。

现在每秒钟要从s到t传输大小为F的数据到t。

该网络中一共有N台计算机,其中有一些靠单向电缆相连接每条电缆用(from,to,cap,cost)表示从from发送给to,最大容量是cap,单位传输费用是cost。

问传输数据最小的花费是多少?解决最小费用流的一般思路是:每次都沿着最短路进行增广,增广一次之后累加本次增广的总费用,同时修改剩余的流量F,当F≤0时或dist[t]==INF时退出。

利用改进的Dijkstra算法求解(1)概述:题目要求在存在流量为F的前提下,总花费最少。

这类问题就是最小费用流问题。

该问题可以采用加入“势函数”后的Dijkstra算法解决。

因为对于每条边e=(u,v),有如下事实成立:h(v)≤h(u)+e.cost(其中h[u]表示s到u的最短距离)。

因此令dist[v]=dist[u]+e.cost+h[u]-h[v],。

那么所有的dist值必然大于等于0,这样就能用Dijkstra算法求解了。

下面代码中用了一个优先队列,每次优先出列dist值小的元素。

整个算法的时间复杂度是O(F*ElogV)(F是流量,E是边数,V是顶点数)。

1.#include<iostream>2.#include<algorithm>3.#include<string>4.#include<sstream>5.#include<set>6.#include<vector>7.#include<stack>8.#include<map>9.#include<queue>10.#include<deque>11.#include<cstdlib>12.#include<cstdio>13.#include<cstring>14.#include<cmath>15.#include<ctime>16.#include<functional>ing namespace std;18.19.#define N 100020.#define INF 10000000021.typedef pair<int, int>P;//first保存最短距离,second保存顶点的编号22.23.struct Edge24.{25.int to, cap, cost, rev;//终点,容量(指残量网络中的),费用,反向边编号26.Edge(int t, int c, int cc, int r) :to(t), cap(c), cost(cc), rev(r){}27.};28.int V;//顶点数29.vector<Edge>G[N];//图的邻接表30.int h[N];//顶点的势31.int dist[N];//最短距离32.int prevv[N];//最短路中的父结点33.int preve[N];//最短路中的父边34.35.void addedge(int from, int to, int cap, int cost)36.{37.G[from].push_back(Edge( to, cap, cost,G[to].size()));38.G[to].push_back(Edge( from, 0, -cost, G[from].size() - 1 ));39.}40.int min_cost_flow(int s, int t, int f)//返回最小费用41.{42.int res = 0;43.fill(h, h + V, 0);44.while (f>0)//f>0时还需要继续增广45.{46.priority_queue<P, vector<P>, greater<P> >q;47.fill(dist, dist + V, INF);//距离初始化为INF48.dist[s] = 0;49.q.push(P(0, s));50.while (!q.empty())51.{52.P p = q.top(); q.pop();53.int v = p.second;54.if (dist[v]<p.first)continue;//p.first是v入队列时候的值,dist[v]是目前的值,如果目前的更优,扔掉旧值55.for (int i = 0; i<G[v].size(); i++)56.{57.Edge&e = G[v][i];58.if (e.cap>0 && dist[e.to]>dist[v] + e.cost + h[v] - h[e.to])//松弛操作59.{60.dist[e.to] = dist[v] + e.cost + h[v] - h[e.to];61.prevv[e.to] = v;//更新父结点62.preve[e.to] = i;//更新父边编号63.q.push(P(dist[e.to], e.to));64.}65.}66.}67.if (dist[t] == INF)//如果dist[t]还是初始时候的INF,那么说明s-t不连通,不能再增广了68.return -1;69.for (int j = 0; j<V; j++)//更新h70.h[j] += dist[j];71.int d = f;72.for (int x = t; x != s; x = prevv[x])73. d = min(d, G[prevv[x]][preve[x]].cap);//从t出发沿着最短路返回s找可改进量74. f -= d;75.res += d*h[t];//h[t]表示最短距离的同时,也代表了这条最短路上的费用之和,乘以流量d即可得到本次增广所需的费用76.for (int x = t; x != s; x = prevv[x])77.{78.Edge&e = G[prevv[x]][preve[x]];79. e.cap -= d;//修改残量值80.G[x][e.rev].cap += d;81.}82.}83.return res;84.}85.86.int main()87.{88.freopen("t.txt", "r", stdin);89.int m;90.while (cin >> V >> m)91.{92.for (int i = 0; i<m; i++)93.{94.int from, to, cap, cost;95.cin >> from >> to >> cap >> cost;96.addedge(from, to, cap, cost);97.}98.int s, t, f;99.cin >> s >> t >> f;100.cout << min_cost_flow(s, t, f) << endl;101.}102.return 0;103.}104.二,网络输出最大流时,求出最小的费用这就是最小费用最大流问题:既要求出最大流,又要求出达到最大流时候的最小费用。

网络优化-7-最小费用流问题

网络优化-7-最小费用流问题
3
最小费用流问题
定义7.2 (容量-费用网络中的流(flow) 的定义同前一章)
流x的(总)费用定义为 c(x) cijxij 线性费用网络 (i,j)A
最小费用流问题就是在网络中寻找总费用最小的可行流.
mc(ix)n cix ji j s.t. x i j x j id i, i V( 7 .1 )
di >0:供应点(supply node)或源(source)、起始点或发货点 di <0:需求点(demand node)或汇(sink) 、终止点或吸收点
di =0:转运点(transshipment node)或平衡点、中间点
可以把L 0的网络转化为L=0的网络进行研究(思考?) 除非特别说明, 假设L=0,网络简记为N=(V,A,C,U,D).
大的s-t可行流y. 定义P的费用为 C(P) cij(x) (i,j)P
则当增广的流量为时 c (y ) c (x )• C (P )
为了获得最小费用流,我们希望沿费用最小的增广路对当前流x 进行增广,以最小的费用增加获得流值更大的s-t可行流y
16
7.2.2 最小费用路算法
定理7.2 设x为流值为v的最小费用流,P为关于x的从s到t的一条 最小费用增广路,且沿P所能增广的流量为 ,则增广后得到流 值为v+ 的最小费用流y.
(i,j) A
j : ( i,j) A j : (j,i) A
0 x i j u i,j ( i , j ) A ( 7 . 2 )
通常又称为转运问题(transshipment problem)或容量受限的 转运问题(capacitated transshipment problem).
如果当流量流过一条弧时,流出该弧的流量是进入该弧的流量 的一个线性函数,即流出该弧的流量是对进入该弧的流量按一 定比例进行放大或缩小的结果,则这样的流网络一般称为带增 益(或盈亏)的流网络(flow with gain network).

最大网络流最小费用流模型

最大网络流最小费用流模型


该函数满足:

(1)对于G的残流网络中的每一条边(u,v)有,h(u) h(v)+1; (2)h(t)=0。 G的残流网络中满足h(u) = h(v)+1的边(u,v)称为G的可推流边。
11
一般的预流推进算法
步骤0:构造初始预流flow: 对源顶点s的每条出边(s,v)令flow(s,v)=cap(s,v); 对其余边(u,v)令flow(u,v)=0。构造一有效的高度函数h。 步骤1:如果残量网络中不存在活顶点,则计算结束,已经得到最大流; 否则转步骤2。 步骤2:在网络中选取活顶点v。 如果存在顶点v的出边为可推流边,则选取一条这样的可推流边,并沿此边推流。 否则令h(v) = min{h(w)+1 | (v,w)是当前残流网络中的边},并转步骤1。
6



2 算法描述 最大流的增广路算法如下。该算法也常称作Ford Fulkerson算法。
template <class Graph, class Edge> class MAXFLOW { const Graph &G; int s, t,maxf; vector<int> wt; vector<Edge *> st; int ST(int v) const { return st[v]->other(v); } void augment(int s, int t) { int d = st[t]->capRto(t); for (int v = ST(t); v != s; v = ST(v)) if (st[v]->capRto(v) < d) d = st[v]->capRto(v); st[t]->addflowRto(t, d); maxf+=d; for ( v = ST(t); v != s; v = ST(v)) st[v]->addflowRto(v, d); } bool pfs(); public: MAXFLOW(const Graph &G, int s, int t,int &maxflow) : G(G), s(s), t(t), st(G.V()), wt(G.V()),maxf(0) { while (pfs()) augment(s, t); maxflow+=maxf;} };

最大流与最小费用流

最大流与最小费用流

c67 = 7 − P = 7 - 6 = 1
通过第1次修改,得到图3。
图3 返回步骤①,进行第2次修改。
次修改: 第2次修改 次修改 选定①—②—⑤—⑦,在这条路中,由 于 P = c25 = 3 ,所以,将 c12 改为2 , 25 改 c 为0,c57 改为5,c 21 、 52 、 75 改为3。修改后 c c 的图变为图4。
x12 + x13 + x14 = x57 + x67 = f
x12 + x32 x + x 23 13 x14 + x34 x + x 35 25 x36 + x 46 = x 23 + x 25 = x32 + x34 + x35 + x36 = x 46 + x65 = x56 + x57 + x56 = x65 + x67
所以取 P = c13 = 6 。
③在路①—③—⑥—⑦中,修改每一 条弧的容量
c13 = 6-P = 6-6 = 0
c36 = 7 − P = 7 - 6 = 1
c31 = 0 + P = 0 + 6 = 6
c63 = 0 + P = 0 + 6 = 6
c76 = 0 + P = 0 + 6 = 6
f = f 0 ≤ f max
(15)
使其代价最小,即
d=
( i , j )∈V
∑d
ij
xij = min
(16)
式中:d ij 指单位车辆数通过弧 (i, j )的代价。
图11 代价条件
图1 约束条件

最小费用流算法

最小费用流算法

最小费用流算法
最小费用流算法是一种简单的费用流算法,它旨在解决费用流问题,其中边权最小化。

它可以用于解决实际应用中的资源分配问题,表示流程网络(Flow Network)中使用费用
流算法利用边权来最小化流量路线。

最小费用流算法是一种基于增广路径的状态搜索算法。

它主要由两步组成:一是从源结点到汇结点的增广搜索;二是根据找到的增广路径调
整边权。

只要满足三个要求:1. 所有结点都有非负出度;2. 所有边都具有非负权;3.
所有结点都有相同的进入现金流,则最小费用流算法就可以得到最优解。

在最小费用流问题中,要求最小化所有边上的流入和流出时消耗的权重和,考虑到这
些约束,最小费用流算法具有一定的优越性。

首先,最小费用流算法可以在常数时间内完
成寻路,寻路的次数不会太多,其逻辑清晰,容易理解,对于每个结点,只需要搜索到可
达目的地的路径,而不需要考虑搜索路径的可行性。

由于最小费用流算法在查找算法中总
是具有优先权,因此它也可以改善整体优化算法,提供快速和可靠的结果。

最小费用流算法在实际应用中比较广泛,它可以用于解决很多实际问题,包括报价,
补给,物流等。

最小费用流算法可以帮助用户充分利用现有资源、实现最低开销,同时还
保持最大的流动性,从而降低建设成本和管理成本,使企业经营更加高效。

运筹学课件最小费用流问题概要

运筹学课件最小费用流问题概要

vt
) 2 , 4 , 3 (
(3,10,3)
v2
v3
第三次剩s
-1
-2
vt
2
6
3
v2
-3
v3
第三次调整网络流
v1
1 ( ) 4 , ,10
(5 ,5 ,1 )
vs
( 8,8 ,1)
(4,5,2)
vt
) 2 , ,4 4 (
(4,10,3)
( ,6) 0,2
v2
v3
v1
三、求解最小费用流的复合标号法
修正如下: 标号过程中,永久标号和临时标号一样 是可以改变的。对任一顶点而言,它有 可能反复变成T标号和P标号,顶点每次 变成P标号,标号过程都要从该顶点重新 开始。 所有顶点变为P标号,算法停止。
三、求解最小费用流的复合标号法
P(vs ) [0, ,0]
正向弧是非饱和弧: 反向弧是非零流弧:
(0 ,5 , 1)
( f ij ,cij ,bij )
(0,5,2)
1
0,
4)

vs (

6) 2, 0,
0, 8,
vt
) 2 , 4 , 0 (
1)
(0,10,3)
v2
v3
第一次剩余网络最短路
v1
1
D=4
4
vs
1
2
vt
2
6
3
v2
v3
第一次调整网络流
v1
(5,5,2)
0, ( , 0 1 4)
P(vs ) [0, ,0]
0, 8, 1)
vt
( 0 ) 2 , ,4
T (v2 ) [vs ,8,1] P
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
最小费用流问题
定义7.2 (容量-费用网络中的流(flow) 的定义同前一章) 流x的(总)费用定义为
c( x )
( i , j )A
c
ij
xij
线性费用网络
di , i V (7.1)
(7.2)
最小费用流问题就是在网络中寻找总费用最小的可行流.
min c( x)
( i , j )A
只需证明网络中不存在关于y的负费用增广圈. 用反证法
假设增广后存在关于y的负费用增广圈W. 由于除P以外的弧及其流量在增广 前后没有发生改变, 于是P和W至少有一条公共弧. 不妨假设P和W只有一条公 共弧,记为(i,j) 如果 (i,j) 在P中是正向弧, 则在W中是反向弧; 反之, 如果 (i,j) 在P中是反向弧, 则在W中是正向弧
( i , j )P
则当增广的流量为时 c( y) c( x) C ( P)
为了获得最小费用流,我们希望沿费用最小的增广路对当前流x 进行增广,以最小的费用增加获得流值更大的s-t可行流y
16
7.2.2 最小费用路算法 定理7.2 设x为流值为v的最小费用流,P为关于x的从s到t的一条 最小费用增广路,且沿P所能增广的流量为 ,则增广后得到流 值为v+ 的最小费用流y.
(i, j ) A, xij u ij , ( j, i) A, x ji 0,
其中称, uij(x)为弧(i,j)上的残留容量(residual capacity).
讨论算法复杂度时,假定: 弧(i,j)A时,弧(j,i) A;c ij = - cji A(x)=A (允许容量为0的弧仍然保留在网络中就可以了)11
6
7.1.2 最小费用流模型的特例及扩展
例 -运输问题(transportation Problem) 又称Hitchcock问题(Hitchcock,1941年)
min s.t.
( i , j ) A
c x
S
T
ij ij
(7.5) i S, j T , (i, j ) A. ( 7.6)
引理7.1 最小费用流问题存在可行流的必要条件

iV
di 0.
经典的最小费用流问题:单源单汇(起点s,终点t),寻找从s流 到t的给定流量(或最大流量、最小流量等)的最小费用流.
d s v, d t v
di 0(i s, t )
4
思考: 经典问题与一般问题有什么关系?是否等价?
1
最小费用流问题的例子
公路交通网络:车辆路线确定
S
T
1辆车
最短路问题
多辆车:车流
最小费用流问题
许多实际问题都可以转化为最小费用流问题
2
7.1.1 最小费用流问题
定义7.1 在流网络N=(V,A,L,U,D) 上增加如下的权函数: C: A R为弧上的权函数,弧(i,j)对应的权 C(i,j)记 为cij ,称为弧(i,j)的单位流量的成本或费用(cost); 此时网络可称为容量-费用网络 (一般仍可简称为网络),记为 N=(V,A,C,L,U,D).
c x
ij ij
s.t.
ij j:(i , j )A
x

j:( j ,i )A
x
ji
0 xij uij ,
(i, j) A
通常又称为转运问题(transshipment problem)或容量受限的 转运问题(capacitated transshipment problem).
消圈算法的思想
对于N(x)中的任何一个有向圈W, 它一定对应于原网络N中的一 个增广圈(增广弧构成的圈); 通过沿W对当前流x进行增广,可以获得流值相等的s-t可行流y. 定义W的费用为
C(W )
(i , j )W
c
ij
( x)
则当增广的流量为时 c( y) c( x) C (W ) 只要N中存在费用为负数的增广圈W, 即C(W)<0,则可以通过沿W 对当 前流 x 进行增广,获得流值相等但 费用更小的s-t可行流y.
k 1
r
至少存在一个费用为 负的增广圈. 矛盾
13
7.2.1 消圈算法: Klein (1967)等
STEP 0 . 在网络N=(s,t,V,A,C,U)中计算流值为v的可行流 x. STEP 1. 在残量网络N(x)中判别负圈. 若无负圈, 则已经找到了最 小费用流,结束;否则转STEP 2. STEP 2. 沿找到的负圈增广流量, 转STEP 1.
如果再令所有弧上的(单位流量)的费用为“弧长”, 则此时的最 小费用流问题就是第五章讨论过的最短路问题.
在第五章我们正是用这样的方式对最短路问题进行建模的
5
7.1.2 最小费用流模型的特例及扩展
例 - 最大流问题
s
t
设s为起点,t为终点,增加弧(t,s), 令
cts 1, uts
而令所有其他弧上的费用为0, 所有顶点上的供需量(外部流量)全为0.
7.1.2 最小费用流模型的特例及扩展
例 7.1 最短路问题
s
P
t
在有向网络中,令所有弧上容量下界为0,容量(上界)为1, 并令图中节点s的供需量为1,节点t的供需量为-1,则: 从s到t的一条有向路正好对应于网络中的一个可行流x (弧(i,j)位于s-t路上:xij =1;弧(i,j)不在s-t路上:xij=0).
ij j:( i , j ) A
x
ai , bj ,
i:( i , j ) A
x
完全二部图
( 7. 7 ) (7.8)
ij
只有源和汇
没有中间转运点
xij 0,
如果每条弧上还有容量(上下限)的限制, 则称为容量受限的运 输问题(capacitated transportation problem).
P W \ {(i, j )} 也是网 络中关于x的增广路, 且
s
i
j
P
t
C ( P W \ {(i, j )}) C ( P) C (W ) C ( P)
W
17
7.2.2 最小费用路算法 也称为连续最短路算法, 即Successive Shortest Path Algorithm), Jewell(1958), Iri(1960), Busacker & Gowen (1961) 独立提出的 STEP 0 . 取x为任一s-t可行流、且在同一流值的流中费用最小的 流 (如x=0). STEP 1. 若x的流值达到v, 结束;否则在残量网络N(x)中判别最 小费用路. 若无这样的路,则流值不可达到v, 结束;否则STEP 2. STEP 2. 沿该最小费用增广路增广流量(增广后的流值不超过v), 转STEP 1.
增益除了可以发生在弧上,类似地可以考虑增益发生在节点上
8
7.1.2 最小费用流模型的特例及扩展
最 问 短 路 题 最 小 费 用 流 问 题
带 增 益 的 最小费用流 问 题 凹费用网络 的最小费用 流 问 题 凸费用网络 的最小费用 流 问 题 线 规 问 性 划 题
最 问

流 题
指 派 问 题
14
7.2.1 消圈算法,例:

15
7.2.2 最小费用路算法 能否首先在网络N=(s,t,V,A,C,U)中计算流值为v’且费用最小的s-t 可行流(v’< v),然后对它沿增广路增广以增加流值呢?
对于N(x)中的一条从s到t的有向路P,它一定对应于原网络N中的 一条增广路,即可以通过沿P对当前流x进行增广,获得流值更 大的s-t可行流y. 定义P的费用为 C ( P) cij ( x)
1 1 0 令 x1 =x0-x, 则 x 0, v( x ) v( x ) v( x) 0 ,即令x1为网络N中的循环流.
一个循环流一定可以表示为至多m个非零圈流之和,所以可以将x1表示为r个 非零圈流之和( 1 r m )。设对应的有向圈为Wk,
x {v(Wk ) | (i, j ) Wk }
12
7.2.1 消圈算法(cycle-canceling algorithm)
定理7.1 可行流x为最小费用流的充要条件是N(x)中不存在负费 用增广圈.
必要性是显然的. 反证法证明充分性:
设x0为不同于的可行流,但费用低于x的费用,即
v( x) v( x 0 ) v
c( x) c( x 0 )
运 输 问 题
凸 规 划
狭义模型
广义模型
9
7.2 消圈算法与最小费用路算法
单源单汇网络 可行流x的流量(或流值)为v=v(x)= ds = - dt
如果我们并不给定ds 和dt , 则网络一般记为N=(s, t,V,A,C,U)
容量可行且转运点流量守恒的流称为s-t可行流,有时为了方 便也称为可行流. 最小费用流问题就是在网络N=(s,t,V,A,C,U)中计算流值为v的 最小费用流x 或者当不给定流值时, 计算流值最大的最小费用流x (此时流x 称为最小费用最大流).
有解的必要条件 可以不失一般性
a b
iS i jT
j
指派问题(assignment problem)
a b
iS i jT
j
ai b j 1, | S || T |
7
1.2 最小费用流模型的特例及扩展
(1)当一定的流量流过一条弧时,该弧上导致的总费用与流量 大小成线性正比关系,这样的流网络一般称为线性费用网络. 如果当一定的流量流过一条弧时,该弧上导致的总费用不一定 与流量大小成线性正比关系,而是流量大小的一个凹(或凸) 函数,则这样的网络称为凹(或凸)费用网络,相应的最小费 用流问题称为凹(凸)费用网络上的最小费用流问题. (2)当流量流过一条弧时,流出该弧的流量(即流入该弧终点 的流量)与进入该弧的流量(即流出该弧起点的流量)相等. 如果当流量流过一条弧时,流出该弧的流量是进入该弧的流量 的一个线性函数,即流出该弧的流量是对进入该弧的流量按一 定比例进行放大或缩小的结果,则这样的流网络一般称为带增 益(或盈亏)的流网络(flow with gain network).
相关文档
最新文档