Deterministic simultaneous matching selection #
A pessimistic-estimator sweep chooses perfect matchings in overlapping apex neighbourhoods while
keeping all previously selected matching edges disjoint. This is the deterministic core used for
the r = 2 specialization of BKLO Lemma 10.7.
The used-degree counter and the potential #
The number of edges of the used set F at y lying inside the apex neighbourhood N_H(x,W).
This is exactly the amount by which the Dirac degree of y in H[N_H(x,W)] has been eroded.
Equations
- BKLOK2.usedCnt H W F x y = BKLOK2.edeg (BKLOK2.edgesIn F (BKLOK2.nbhdIn H x W)) y
Instances For
The pessimistic-estimator potential. R is the set of apices not yet processed.
Equations
- BKLOK2.pot H W q F R = ∑ x ∈ R, ∑ y ∈ BKLOK2.nbhdIn H x W, 2 ^ BKLOK2.usedCnt H W F x y * (1 + q) ^ BKLOK2.degTo H y R
Instances For
The weight function fed to the spread clause at the apex being processed: the potential mass
carried by the pair (y, z), i.e. the total over the remaining apices containing both.
Equations
- BKLOK2.wgt H W q F R' R y z = ∑ x ∈ R' with y ∈ BKLOK2.nbhdIn H x W ∧ z ∈ BKLOK2.nbhdIn H x W, 2 ^ BKLOK2.usedCnt H W F x y * (1 + q) ^ BKLOK2.degTo H y R
Instances For
The potential controls the used degrees: if Φ < 2 ^ (s+1) then no counter exceeds s.
The step inequality #
The used degree inside N_H(x,W) grows by at most one, and only at vertices of the current
neighbourhood matched into N_H(x,W).
The term bound at a vertex of the neighbourhood being processed: one unit of used degree may
be created, and the factor (1+q) released by deleting x₀ from the index set pays for it.
The term bound away from the neighbourhood being processed: nothing changes there.
Fubini for the partner weight. The mass the sweep pays at the processed apex is exactly the weight of the chosen involution.
The total weight, evaluated: each remaining apex contributes its codegree with x₀ times
its own potential mass inside N_H(x₀, W).
The half of the step inequality living inside the processed neighbourhood: this is where the spread clause and the codegree bound are consumed.
The pessimistic estimator does not increase. Processing the apex x₀ with a matching
chosen by the spread clause leaves the potential no larger.
The sweep #
The sequential selection. The apices of R can be processed one at a time, each receiving
a perfect matching of its neighbourhood avoiding all the edges used so far, as long as the potential
stays below 2 ^ (s₁+1). The Dirac slack is split: s₁ absorbs the already used edges, and the
remaining s₂ supplies the 1/(s₂+1)-spread matching of
SimpleGraph.exists_spread_involution_of_edgeSet.
Edge-disjoint perfect matchings of all the apex neighbourhoods, from the spread clause and a potential bound at the start of the sweep.