Basic flow definitions: Difference between revisions

From Algowiki
Jump to navigation Jump to search
Line 13: Line 13:
A '''flow-augmenting path''' from some node <math>s\in V</math> to some node <math>t\in V</math> is a path from <math>s</math> to <math>t</math> that may contain arcs in forward and backward, subject to:
A '''flow-augmenting path''' from some node <math>s\in V</math> to some node <math>t\in V</math> is a path from <math>s</math> to <math>t</math> that may contain arcs in forward and backward, subject to:
# <math>f(a)<u(a)</math> if <math>a\in A</math> is a forward arc;
# <math>f(a)<u(a)</math> if <math>a\in A</math> is a forward arc;
# <math>f(a)>0/math> if <math>a\in A</math> is a backward arc.
# <math>f(a)>0</math> if <math>a\in A</math> is a backward arc.


In the residual network of <math>(G,u)</math> with respect to <math>f</math>, backward arcs need not be considered for flow-augmenting path.
In the residual network of <math>(G,u)</math> with respect to <math>f</math>, backward arcs need not be considered for flow-augmenting path.

Revision as of 19:23, 12 October 2014

Residual network

Let [math]\displaystyle{ G=(V,A) }[/math] be a directed graph. Without loss of generality, we assume [math]\displaystyle{ (v,w)\in A }[/math] if, and only if, [math]\displaystyle{ (w,v)\in A }[/math]. For [math]\displaystyle{ a\in A }[/math], there are real values [math]\displaystyle{ u(a) }[/math] and [math]\displaystyle{ f(a) }[/math] such that [math]\displaystyle{ 0\leq f(a)\leq u(a) }[/math].

The residual network of [math]\displaystyle{ (G,u) }[/math] with respect to [math]\displaystyle{ f }[/math] is the pair [math]\displaystyle{ (G,u_f) }[/math] defined by [math]\displaystyle{ u_f(v,w):=u(v,w)-f(v,w)+f(w,v) }[/math] for all [math]\displaystyle{ (v,w)\in A }[/math]. The value [math]\displaystyle{ u_f(a) }[/math] is called the residual capacity of [math]\displaystyle{ a\in A }[/math] with respect to [math]\displaystyle{ f }[/math].

Therefore, the residual capacity of an arc [math]\displaystyle{ (v,w)\in A }[/math] is the amount by which the net flow from [math]\displaystyle{ v }[/math] could be changed within the capacity constraints just by changes of the flow values of [math]\displaystyle{ (v,w) }[/math] and [math]\displaystyle{ (w,v) }[/math].

Flow-augmenting path

Let [math]\displaystyle{ G=(V,A) }[/math] be a directed graph. Without loss of generality, we assume [math]\displaystyle{ (v,w)\in A }[/math] if, and only if, [math]\displaystyle{ (w,v)\in A }[/math]. For [math]\displaystyle{ a\in A }[/math], there are real values [math]\displaystyle{ u(a) }[/math] and [math]\displaystyle{ f(a) }[/math] such that [math]\displaystyle{ 0\leq f(a)\leq u(a) }[/math].

A flow-augmenting path from some node [math]\displaystyle{ s\in V }[/math] to some node [math]\displaystyle{ t\in V }[/math] is a path from [math]\displaystyle{ s }[/math] to [math]\displaystyle{ t }[/math] that may contain arcs in forward and backward, subject to:

  1. [math]\displaystyle{ f(a)\lt u(a) }[/math] if [math]\displaystyle{ a\in A }[/math] is a forward arc;
  2. [math]\displaystyle{ f(a)\gt 0 }[/math] if [math]\displaystyle{ a\in A }[/math] is a backward arc.

In the residual network of [math]\displaystyle{ (G,u) }[/math] with respect to [math]\displaystyle{ f }[/math], backward arcs need not be considered for flow-augmenting path.

Preflow

Pseudoflow

Valid distance labeling