Independent local improvements of threshold cuts #
A set I of vertices of a multigraph is independent when no edge has both endpoints in I.
Then every edge is at at most one vertex of I, so changing a cut only at the vertices of I
changes its size by the sum of the changes at the edges of each of them
(ncard_edgeCut_add_sum_eq). In particular, improvements of the cut at each vertex of I,
made simultaneously, improve the whole cut (ncard_edgeCut_le_of_local), and the gain is the
sum of the local gains (ncard_edgeCut_eq_add_sum_sub).
For a layout by keys, the cuts are the threshold cuts {v | key v < t}. Moving the key of
each vertex of an independent set to a median of the keys of its neighbours improves every
threshold cut at once (ncard_edgeCut_threshold_le): at every threshold, a median sides with
at least half of the neighbours. For a vertex with three edges, the median of the three keys of
its neighbours is such a median (isMedianAt_median3).
Main definitions #
Cslib.Circuits.Frontier.Multigraph.otherEnd: the endpoint of an edge other than a vertex.Cslib.Circuits.Frontier.Multigraph.IsMedianAt: a median of the keys of the neighbours.Cslib.Circuits.Frontier.median3: the median of three values.
Main results #
Cslib.Circuits.Frontier.Multigraph.ncard_edgeCut_add_sum_eq: the exact change of a cut under changes at an independent set.Cslib.Circuits.Frontier.Multigraph.ncard_edgeCut_le_of_local: independent local improvements improve the cut.Cslib.Circuits.Frontier.Multigraph.ncard_edgeCut_threshold_le: independent median updates improve every threshold cut.Cslib.Circuits.Frontier.Multigraph.isMedianAt_median3: the median of three keys.
The median of three values.
Instances For
At least two of three values are at most their median, and at least two are at least it.
Changes at an independent set #
Independent sets count edges once. If no edge has both endpoints in I, the edges of
a set X at the vertices of I are the disjoint union of those at each vertex of I.
The exact change of a cut under changes at an independent set I: if L and L' agree
outside I, the cut of L' together with the local cuts of L at the vertices of I balances
the cut of L together with the local cuts of L'.
Independent local improvements improve the cut. If L and L' agree outside an
independent set I, and at each vertex of I at most as many edges cross L' as cross L,
then at most as many edges cross L' as cross L.
A strict local improvement at one vertex of I gives a strict improvement of the cut.
The gain is the sum of the local gains: updated stars at an independent set do not interact.
Median updates of keys #
The endpoint of e other than v. When v is not an endpoint of e, this is the source
of e.
Instances For
An edge at v crosses a cut when its other end lies on the other side.
In an independent set, the other ends of the edges at a vertex lie outside the set.
m is a median at v of the keys of the neighbours of v: of the edges at v, at most
as many lead to keys above m as to keys at most m, and at most as many lead to keys below m
as to keys at least m.
Instances For
A median minimises the local threshold cuts. If the neighbours of v keep their keys and
the new key of v is a median of theirs, then at every threshold at most as many edges at v
cross the new threshold cut as crossed the old one.
Median updates improve every threshold cut. Moving the keys of the vertices of an
independent set I to medians of the keys of their neighbours does not increase the cut at any
threshold.
The median of three keys. At a vertex with exactly three edges, the median of the keys of the three neighbours is a median.