The Bonnet–Chang reduction
Lax762056.Reduction · concepts/Lax762056/Reduction.lean · lax-762056
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Definition
Order the vertices of as . For every edge with , reserve rows and in an intermediate graph with columns. Keep only columns from through . In row keep only side at column and side at column ; keep both sides at every intervening column. The resulting induced subgraph is .
The additive offset is .
Concept map
In the paper
- page 4 of this submission's paper
Lean source view on GitHub
| 1 | import Lax762056.ColumnGraph |
| 2 | import Lax762056.MaxCut |
| 3 | |
| 4 | /-! |
| 5 | --- |
| 6 | title: The Bonnet–Chang reduction |
| 7 | type: definition |
| 8 | --- |
| 9 | Order the vertices of as . For every edge with , |
| 10 | reserve rows and in an intermediate graph with |
| 11 | columns. Keep only columns from through . In row keep |
| 12 | only side at column and side at column ; keep both sides |
| 13 | at every intervening column. The resulting induced subgraph is . |
| 14 | |
| 15 | The additive offset is . |
| 16 | -/ |
| 17 | |
| 18 | namespace Lax762056.Reduction |
| 19 | |
| 20 | open ColumnGraph MaxCut |
| 21 | |
| 22 | abbrev Edge {n : ℕ} (F : SimpleGraph (Fin n)) := |
| 23 | {e : Fin n × Fin n // e.1 < e.2 ∧ F.Adj e.1 e.2} |
| 24 | |
| 25 | abbrev Row {n : ℕ} (F : SimpleGraph (Fin n)) := Edge F × Bool |
| 26 | |
| 27 | abbrev Vertex {n : ℕ} (F : SimpleGraph (Fin n)) := |
| 28 | ColumnGraph.Vertex (Row F) (2 * n - 1) |
| 29 | |
| 30 | def retainedVertices {n : ℕ} (F : SimpleGraph (Fin n)) : Set (Vertex F) := |
| 31 | fun ((edge, tag), column, side) => |
| 32 | let u := edge.val.1.val |
| 33 | let v := edge.val.2.val |
| 34 | let j := column.val |
| 35 | (j = 2 * u ∧ side = tag) ∨ |
| 36 | (2 * u < j ∧ j < 2 * v) ∨ |
| 37 | (j = 2 * v ∧ side = !tag) |
| 38 | |
| 39 | def reductionGraph {n : ℕ} (F : SimpleGraph (Fin n)) : |
| 40 | SimpleGraph (retainedVertices F) := |
| 41 | (columnGraph (Row F) (2 * n - 1)).induce (retainedVertices F) |
| 42 | |
| 43 | noncomputable def offset {n : ℕ} (F : SimpleGraph (Fin n)) : ℕ := |
| 44 | 2 * ∑ e ∈ edges F, (e.2.val - e.1.val) |
| 45 | |
| 46 | end Lax762056.Reduction |
| 47 |
From Mathlib
none
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments