Bounded terminal assignments, flows, and weak duality #
Let Q be an arrow family on a finite vertex type V with lower and upper bounds
lo hi : Assignment Q K. A bounded s–t assignment is an arrow assignment between the bounds
that is conserved at every vertex other than the terminals s and t; its value is its excess
at t, of either sign. An ordinary s–t flow for capacities cap is the special case with
zero lower bounds and nonnegative value. Both share the arrow assignments, excess calculus and
residual updates of TauCeti.Combinatorics.Network.Excess and
TauCeti.Combinatorics.Network.Residual.
The value of a bounded s–t assignment is the net value across every vertex set S containing
s but not t. This gives weak duality: the value is at most the cut bound
hi(δ⁺ S) - lo(δ⁻ S), and for an ordinary flow at most the capacity cap(δ⁺ S) of the cut. A
residual s–t assignment within the residual capacities updates a bounded s–t assignment
to another one, adding the two values, and every bounded s–t assignment arises from any other
in this way. These are the steps from which the augmenting-path characterization of maximum
flows is assembled.
Main definitions #
TauCeti.BoundedFlow lo hi s t: boundeds–tassignments, with valueBoundedFlow.val.TauCeti.cutBound lo hi S: the total upper bound leavingSminus the total lower bound enteringS.TauCeti.BoundedFlow.swap: the same assignment as a boundedt–sassignment.TauCeti.BoundedFlow.update: the residual update by a residuals–tassignment.TauCeti.Flow cap s t: ordinarys–tflows for the capacitiescap.TauCeti.Flow.zero: the zero flow for nonnegative capacities.TauCeti.BoundedFlow.swapFlow: terminal exchange, turning a capacity-feasible assignment of nonpositive value into an ordinary flow in the opposite direction.TauCeti.Flow.augment: augmentation of a flow by a flow of its residual network.
Main results #
TauCeti.BoundedFlow.val_eq_arrowSum_sub: the value is the net value across any terminal-separating vertex set.TauCeti.BoundedFlow.val_le_cutBoundandTauCeti.BoundedFlow.neg_cutBound_compl_le_val: weak duality for boundeds–tassignments, from above and from below.TauCeti.Flow.val_le_arrowSum: weak duality for ordinary flows.TauCeti.Flow.arrowSum_le_arrowSum_univ: a flow carries at most the total capacity across any pair of vertex sets.TauCeti.map_cutBound: cut bounds commute with additive coefficient maps.TauCeti.neg_cutBound_le_sum_excessAtandTauCeti.sum_excessAt_le_cutBound_compl: cut bounds bound the total excess of an assignment betweenloandhion any vertex set.TauCeti.BoundedFlow.cutBound_sub_valandTauCeti.BoundedFlow.val_eq_cutBound_iff: the gap between a cut bound and the value is the residual capacity leaving the cut, so the value attains the cut bound exactly when no residual arrow of positive capacity leaves the cut.TauCeti.BoundedFlow.val_updateandTauCeti.BoundedFlow.exists_update_eq: residual updates add values, and connect any two boundeds–tassignments.TauCeti.Flow.exists_augment_eq: every flow of at least the value offis an augmentation offby a flow of its residual network.TauCeti.Flow.exists_nsmul_eq_val: a flow with arrow values inzmultiples dhas valuen • dfor a natural numbern.
References #
- R. K. Ahuja, T. L. Magnanti, J. B. Orlin, Network Flows: Theory, Algorithms, and Applications, Prentice Hall, 1993.
- A. Schrijver, Combinatorial Optimization: Polyhedra and Efficiency, Springer, 2003.
A bounded s–t assignment for lower and upper bounds lo and hi: an arrow assignment
between the bounds, conserved at every vertex other than s and t. There is no sign condition
on the arrow values or on the value.
- toFun : Assignment Q K
The value on each arrow.
The assignment lies between the lower and upper bounds.
The assignment is conserved at every vertex other than the terminals.
Instances For
The cut bound of a vertex set S for lower and upper bounds lo and hi: the total upper
bound on arrows leaving S minus the total lower bound on arrows entering S. For zero lower
bounds it is the capacity of the arrows leaving S.
Instances For
Cut bounds commute with additive coefficient maps.
An assignment between lo and hi has total excess on S at least minus the cut bound
of S.
An assignment between lo and hi has total excess on S at most the cut bound of the
complement of S.
The value of a bounded s–t assignment: its excess at the sink t.
Instances For
The excess at the source is minus the value.
The value of a bounded s–t assignment is the value on arrows leaving S minus the value
on arrows entering S, for every vertex set S containing s but not t.
Residual cut gap. For every vertex set S containing s but not t, the cut bound of S
exceeds the value of a bounded s–t assignment by its total residual capacity on the residual
arrows leaving S: the room left on the arrows leaving S plus the room left to decrease the
arrows entering S.
A bounded s–t assignment, viewed as a bounded t–s assignment.
Instances For
Exchanging the terminals negates the value.
A bounded assignment whose terminals coincide has value zero.
The excess of a bounded terminal assignment is concentrated at its terminals, with demand
f.val at the sink and supply f.val at the source. This also holds for coinciding terminals.
Weak duality. The value of a bounded s–t assignment is at most the cut bound of every
vertex set containing s but not t.
Weak duality from below. The value of a bounded s–t assignment is at least minus the
cut bound of the complement of every vertex set containing s but not t, that is, at least the
total lower bound leaving the set minus the total upper bound entering it.
The terminal excess of a bounded assignment satisfies the incoming cut inequality on every vertex set, whether or not it separates the terminals.
A value between two feasible terminal values satisfies every incoming cut inequality for its terminal demand.
The residual update of a bounded s–t assignment f by a residual s–t assignment r
between zero and the residual capacities of f: the value on an arrow e becomes
f e + r e⁺ - r e⁻.
Instances For
A residual update adds the value of the residual assignment.
A bounded s–t assignment attains the cut bound of a vertex set S containing s but not
t exactly when every residual arrow leaving S has zero residual capacity.
Every bounded s–t assignment g is a residual update of any other one f, by a residual
s–t assignment, necessarily of value g.val - f.val.
Ordinary flows #
An ordinary s–t flow for the capacities cap: a bounded s–t assignment with zero
lower bounds, so with 0 ≤ f e ≤ cap e on every arrow, whose value is nonnegative.
- toFun : Assignment Q K
The excess at the sink, which is the value of the flow, is nonnegative.
Instances For
The zero flow for nonnegative capacities.
Instances For
Ordinary s–t flows are the bounded s–t assignments with zero lower bounds and
nonnegative value.
Instances For
Terminal exchange. A capacity-feasible s–t assignment of nonpositive value is an
ordinary t–s flow, with the same arrow values and the opposite value.
Instances For
Weak duality. The value of an ordinary s–t flow is at most the total capacity of the
arrows leaving any vertex set containing s but not t.
The augmentation of an ordinary s–t flow f by an ordinary s–t flow r of its
residual network: the residual update of f by r.
Instances For
The value of an ordinary flow on the arrows from any vertex set to any other is at most the total capacity of all arrows.
Every ordinary s–t flow g of value at least that of f is the augmentation of f by an
ordinary s–t flow of the residual network of f, necessarily of value g.val - f.val.
For 0 < d, an ordinary flow with arrow values in zmultiples d has value n • d for a
natural number n.
Network abbreviations #
The bounded s–t assignments of a network, respecting both its lower and upper bounds.
Instances For
The ordinary s–t flows against the upper bounds of a network. The lower bounds are
ignored, so this is the flow type of N only when its lower bounds vanish, as for networks built
by Network.ofCapacity.