Auxiliary terminals #
The standard reduction of flow and cut problems between two vertex sets A and B to problems
between two single vertices adds a fresh source σ with an arrow to every vertex of A, and a
fresh sink τ with an arrow from every vertex of B. Here the new vertices live on the sum type
V ⊕ Bool: Sum.inl v is the original vertex v, Sum.inr false is σ and Sum.inr true is
τ. Every original arrow is retained with its identity, and the capacities of the new arrows are
arbitrary parameters. The sets A and B are arbitrary, and may be empty or overlap.
A σ–τ cut S is determined by its original vertices S.toLeft, and its capacity is the
capacity of the new arrows it crosses plus the original capacity leaving S.toLeft. A minimum
σ–τ cut need not contain all of A, so S.toLeft need not be a cut between A and B. When
A and B are disjoint, the vertex set (S.toLeft ∪ A) \ B contains A and avoids B; if the
original capacities are nonnegative, each arrow σ → a has capacity at least the total capacity
leaving a, and each arrow b → τ at least the total capacity entering b, then this
normalization of S has original cut capacity at most the capacity of S.
A walk from a vertex of A to a vertex of B lifts to a walk from σ to τ through the same
original vertices, and every walk from σ to τ contains a walk along original arrows from a
vertex of A to a vertex of B, so deleting a set of original vertices separates σ from τ
exactly when it separates A from B.
Main definitions #
TauCeti.AuxTerminalHom Q A B: the arrow family ofQwith the auxiliary terminals added.TauCeti.AuxTerminalHom.original,TauCeti.AuxTerminalHom.sourceandTauCeti.AuxTerminalHom.sink: its three kinds of arrows.TauCeti.AuxTerminalHom.originalEquiv: the arrows between original vertices are exactly the original arrows.TauCeti.auxTerminalCapacity cap cσ cτ: the capacitiescapon original arrows,cσ aonσ → aandcτ bonb → τ.TauCeti.auxTerminalRestrict g: the restriction of an assignment to the original arrows.TauCeti.setFlowCapacity cap A B: the auxiliary capacities whose new arrows carry the total capacity leaving eacha ∈ Aand entering eachb ∈ B.
Main results #
TauCeti.AuxTerminalHom.forall_iff: a property of all arrows with auxiliary terminals reduces to the original arrows, the arrows fromσand the arrows toτ.TauCeti.arrowSum_auxTerminalCapacity: the capacity of aσ–τcut.TauCeti.TerminalCut.IsAdmissible.arrowSum_auxTerminalCapacity: a vertex set containingAand avoidingB, together withσ, has the same cut capacity as in the original network.TauCeti.arrowSum_union_sdiff_le_arrowSum_auxTerminalCapacity: the normalization lemma.TauCeti.TerminalCut.IsMinimum.isMinimum_union_sdiffandTauCeti.TerminalCut.IsMinimum.arrowSum_union_sdiff: normalizing a minimumσ–τcut gives a minimum cut betweenAandBof the same capacity.TauCeti.AuxTerminalHom.exists_arrowWalk_vertices_eqandTauCeti.AuxTerminalHom.exists_arrowWalk_map_vertices_subset: lifting walks betweenAandBto walks between the auxiliary terminals, and projecting them back.TauCeti.reachableAvoiding_auxTerminalHom_iff: reachability between the auxiliary terminals after deleting vertices is reachability fromAtoB.TauCeti.AuxTerminalHom.excessAt_inlandTauCeti.AuxTerminalHom.excessAt_inr_true: the excess of an assignment at an original vertex and at the fresh sink.
References #
- L. R. Ford, D. R. Fulkerson, Flows in Networks, Princeton University Press, 1962.
- A. Schrijver, Combinatorial Optimization: Polyhedra and Efficiency, Springer, 2003.
The arrow family of Q with auxiliary terminals for the vertex sets A and B, on the
vertex type V ⊕ Bool. The arrows between original vertices Sum.inl v and Sum.inl w are those
of Q v w; the fresh source σ = Sum.inr false has one arrow to each Sum.inl a with a ∈ A; the
fresh sink τ = Sum.inr true has one arrow from each Sum.inl b with b ∈ B; and there are no
other arrows.
Instances For
An original arrow e : Q v w, as an arrow from Sum.inl v to Sum.inl w.
Instances For
A property holds for every arrow with auxiliary terminals exactly when it holds for every original arrow, every arrow from the fresh source and every arrow to the fresh sink.
The capacities on the arrow family with auxiliary terminals: cap e on an original arrow
e, cσ a on the arrow from the fresh source to a, and cτ b on the arrow from b to the
fresh sink.
Instances For
The restriction of an assignment with auxiliary terminals to the original arrows.
Instances For
The capacities with auxiliary terminals are nonnegative when the original capacities and the capacities of the new arrows are.
A sum over the arrows between two original vertices is a sum over the original arrows.
A sum over the arrows from the fresh source to Sum.inl a, for a ∈ A, is the value on
source.
There is no arrow from the fresh source to Sum.inl a for a ∉ A.
A sum over the arrows from Sum.inl b to the fresh sink, for b ∈ B, is the value on
sink.
There is no arrow from Sum.inl b to the fresh sink for b ∉ B.
The total capacity of the arrows from the fresh source to Sum.inl a is cσ a for a ∈ A,
and zero otherwise.
The total capacity of the arrows from Sum.inl b to the fresh sink is cτ b for b ∈ B,
and zero otherwise.
The total capacity with auxiliary terminals of the arrows between two original vertices is their original total capacity.
The capacity of a cut S separating the fresh source from the fresh sink is the capacity
cσ a of each a ∈ A outside S, plus the capacity cτ b of each b ∈ B inside S, plus the
original capacity of the arrows leaving the original vertices of S.
A vertex set R containing A and avoiding B, together with the fresh source, is a cut
with the same capacity as R in the original network.
Normalization of auxiliary cuts. Let A and B be disjoint and the original capacities
nonnegative, and suppose that the arrow from the fresh source to each a ∈ A has capacity at least
the total capacity leaving a, and the arrow from each b ∈ B to the fresh sink has capacity at
least the total capacity entering b.
Then for every cut S separating the fresh source from the fresh sink, the vertex set
(S.toLeft ∪ A) \ B, which is admissible by TerminalCut.isAdmissible_union_sdiff, has original
cut capacity at most the capacity of S.
Normalization of minimum auxiliary cuts. Under the hypotheses of the normalization lemma
TauCeti.arrowSum_union_sdiff_le_arrowSum_auxTerminalCapacity, normalizing a minimum cut S
between the fresh terminals to the vertex set (S.toLeft ∪ A) \ B preserves its capacity.
Under the hypotheses of the normalization lemma
TauCeti.arrowSum_union_sdiff_le_arrowSum_auxTerminalCapacity, normalizing a minimum cut S
between the fresh terminals gives a minimum cut (S.toLeft ∪ A) \ B between A and B in the
original network.
Capacities for flows between vertex sets #
The capacities of the auxiliary network for flows between the vertex sets A and B: cap on
the original arrows, the total capacity leaving a on the arrow from the fresh source to a ∈ A,
and the total capacity entering b on the arrow from b ∈ B to the fresh sink. These satisfy the
hypotheses of the normalization lemmas with equality.
Instances For
The capacities setFlowCapacity cap A B are the auxiliary capacities auxTerminalCapacity
with the total capacity leaving a and entering b on the new arrows.
The auxiliary capacities are nonnegative when the original capacities are.
The auxiliary capacities lie in an additive submonoid containing the original capacities.
Lifting a walk to auxiliary terminals. A walk from a ∈ A to b ∈ B gives a walk from
the fresh source to the fresh sink through the same original vertices.
Projecting a walk from auxiliary terminals. A walk from the fresh source to the fresh sink
contains a walk along original arrows from a vertex of A to a vertex of B.
The fresh sink is reachable from the fresh source avoiding a set X of vertices not containing
either, exactly when some vertex of B is reachable from some vertex of A avoiding the original
vertices in X.
The excess at an original vertex Sum.inl v of an assignment with auxiliary terminals is the
excess at v of its restriction to the original arrows, plus the value arriving from the fresh
source, minus the value sent to the fresh sink.
The excess at the fresh sink of an assignment with auxiliary terminals is the total value on the arrows entering it.