Residual arrows and the residual update #
Let Q be an arrow family on V with lower and upper bounds lo hi : Assignment Q K, and let
f be a feasible assignment, lo ≤ f ≤ hi arrowwise; feasibility is membership in the order
interval Set.Icc lo hi for the pointwise order on assignments. The residual arrows from v
to w are the forward copies e⁺ of the arrows e : Q v w together with the reverse copies e⁻
of the arrows e : Q w v. A forward copy has residual capacity hi e - f e, the room left to
increase f e; a reverse copy has residual capacity f e - lo e, the room left to decrease it.
The residual arrow family does not depend on f, and zero-capacity residual arrows are retained.
Given any assignment r of the residual arrows, the residual update of f by r is
f' e = f e + r e⁺ - r e⁻. Augmentation along residual paths and cycles is the case of a residual
assignment supported on a path or cycle, for ordinary flows as well as for assignments with signed
lower bounds. We prove:
- if
0 ≤ r ≤the residual capacities, thenf'is feasible; excessAt f' = excessAt f + excessAt rat every vertex, with no conservation hypothesis onr; so a residual circulation preserves every excess, and a residuals–tassignment changes the excess only atsandt, raising it attand lowering it atsby its value;- conversely every feasible assignment
gis the residual update offby the residual difference fromftog, the positive part ofg - fon forward copies and its negative part on reverse copies; this residual assignment is feasible, its values on the two copies of an arrow have infimum zero (so in a linear order one of them vanishes), and it has excessexcessAt g - excessAt f. So the feasible residual updates offare exactly the feasible assignments, and two assignments of the same excess differ by a residual circulation.
Main definitions #
TauCeti.ResidualHom Q: the residual arrow familyfun v w ↦ Q v w ⊕ Q w v.TauCeti.residualCapacity lo hi f: the residual capacities off.TauCeti.residualNet: the net changer e⁺ - r e⁻of a residual assignment, as an additive homomorphism.TauCeti.residualUpdate f r: the residual updatef + residualNet r.TauCeti.residualDifference f g: the canonical residual assignment updatingftog.
Main results #
TauCeti.excessAt_residualNet: passing from residual arrows to net changes preserves excess.TauCeti.residualUpdate_mem_Icc: feasible residual updates are feasible.TauCeti.excessAt_residualUpdate: excess is additive under residual updates.TauCeti.residualCapacity_residualUpdate: the residual capacities after a residual update.TauCeti.excessAt_residualUpdate_source: a residual assignment conserved away fromsandtlowers the excess atsby its value att.TauCeti.residualUpdate_residualDifference,TauCeti.residualDifference_mem_IccandTauCeti.excessAt_residualDifference: the residual difference updatesftog, is feasible for feasiblefandg, and changes excess by the difference of the excesses.TauCeti.image_residualUpdate_Icc: the residual updates of a feasiblefby feasible residual assignments are exactly the feasible assignments.TauCeti.Assignment.map_residualCapacityandTauCeti.Assignment.map_residualUpdate: residual capacities and residual updates commute with additive coefficient maps.
Implementation notes #
The residual arrows are tagged by Sum.inl (forward) and Sum.inr (reverse) rather than by
their direction relative to the original arrow family, so that a forward copy of an arrow
v → w and a reverse copy of an antiparallel arrow w → v remain distinct residual arrows from
v to w, as do the two residual copies of a loop. Bounds are separate parameters, so the
results apply to any arrow family carrying lower and upper bounds.
References #
- R. K. Ahuja, T. L. Magnanti, J. B. Orlin, Network Flows: Theory, Algorithms, and Applications, Prentice Hall, 1993 (residual networks).
- A. Schrijver, Combinatorial Optimization: Polyhedra and Efficiency, Springer, 2003 (residual graphs and augmentation).
The residual capacities of an assignment f with lower and upper bounds lo and hi: the
forward copy of an arrow e has capacity hi e - f e and its reverse copy has capacity
f e - lo e.
Instances For
Residual capacities commute with additive coefficient maps.
Residual capacities take values in an additive subgroup containing the bounds and the assignment.
The residual capacities of a feasible assignment are nonnegative.
The residual capacity on the residual arrows from S to T is the room left on the arrows
from S to T plus the room left to decrease the arrows from T to S.
The net change of a residual assignment r: the value of r on the forward copy of an
arrow minus its value on the reverse copy.
Instances For
The residual update of f by a residual assignment r: the value on each arrow e is
f e + r e⁺ - r e⁻, where e⁺ = Sum.inl e and e⁻ = Sum.inr e are its residual copies.
Instances For
Updating by r and then by r' is updating by r + r'.
Residual updates commute with additive coefficient maps.
Residual updates preserve values in an additive subgroup: if f and r take values in H,
so does the residual update of f by r.
Residual capacities after a residual update. Updating f by r lowers the residual
capacity of a residual arrow a by the value of r on a and raises it by the value of r on the
reverse residual arrow a.swap, the other residual copy of the same arrow.
Passing from a residual assignment to its net change preserves excess: a forward copy carries value along its arrow, and a reverse copy carries value against it.
Excess under residual updates. The excess of the residual update of f by r is the
excess of f plus the excess of r in the residual arrow family. No conservation is assumed.
A residual circulation preserves every excess.
A residual assignment conserved away from s and t lowers the excess at s by its excess
at t. Together with excessAt_residualUpdate at t, the value of an s–t assignment rises by
the residual value, and the value of the reversed t–s assignment falls by it.
Feasibility of residual updates. Updating an assignment by a residual assignment between
zero and its residual capacities gives an assignment within the bounds. Such a residual assignment
exists only when the residual capacities are nonnegative, that is, when f is itself feasible.
The residual difference from f to g: the positive part of g - f on the forward copy of
each arrow and its negative part on the reverse copy. It is the canonical residual assignment
updating f to g, and its values on the two residual copies of an arrow have infimum zero.
Instances For
The net change of the residual difference from f to g is g - f.
Residual update by the residual difference. Updating f by the residual difference from
f to g gives g.
The values of the residual difference on the two residual copies of an arrow have infimum zero; in a linear order, at least one of them vanishes.
The residual difference between two feasible assignments lies between zero and the residual capacities of the first.
Completeness of residual updates. Every feasible assignment g is the residual update of
a feasible f by a residual assignment between zero and the residual capacities of f, namely
the residual difference from f to g.
The residual updates of a feasible assignment f by residual assignments between zero and its
residual capacities are exactly the feasible assignments.
Excess of the residual difference. The excess of the residual difference from f to g
is the excess of g minus the excess of f.
The residual difference between two assignments with the same excess is a residual circulation.
The residual difference between two assignments with values in an additive subgroup takes values in it.