Vertex Cover reduces to Steiner Tree #
The classical reduction, read in the tagged framework
(DescriptiveComplexity.steinerInterp, tag Fin 3, dimension 2): a marked graph
becomes the bipartite incidence structure of its edges, plus a root joined to
every vertex.
- tag
0on the diagonal carries the vertices of the input; - tag
1on adjacent off-diagonal pairs carries the edges, which are the terminals; - tag
2on the diagonal of the minimum carries the root, also a terminal; - everything else is junk: isolated, non-terminal, unmarked, and therefore never in a chosen set.
A connected set containing all terminals must join every edge-terminal to the root, and an edge's only neighbours are its two endpoints, so the vertices it uses form a vertex cover; conversely a vertex cover joins every edge to the root through one of its endpoints. Since vertices are the only non-terminals, the budget counts exactly the cover, and the marked diagonal transports the threshold unchanged.
The root is a single fresh element, so – as for the fresh variable of
DescriptiveComplexity.Problems.NaeSat – this is an ordered reduction: an
interpretation adds elements only by tags, and a tag contributes a whole copy
of the universe, so the root has to be picked out inside its copy as the
minimum (DescriptiveComplexity.minF).
The adjacency symbol over the ordered expansion of marked graphs.
Instances For
Dependency graph
The mark symbol over the ordered expansion of marked graphs.
Instances For
Dependency graph
The three sorts of point of the interpreted structure. Tags built from
constructors, rather than Fin 3, so that the tag match inside the defining
formulas reduces definitionally in the characterization proofs.
- vertex : SteinerTag
A vertex of the input graph, carried by the diagonal.
- edge : SteinerTag
An edge of the input graph, carried by an adjacent off-diagonal pair.
- root : SteinerTag
The root, carried by the diagonal of the minimum.
Instances For
Dependency graph
Dependency graph
Equations
- One or more equations did not get rendered due to their size.
Dependency graph
Equations
Dependency graph
The interpretation of Vertex Cover into Steiner Tree.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The point carrying the vertex v.
Instances For
Dependency graph
The point carrying the (oriented) edge (u, v).
Equations
Instances For
Dependency graph
The point carrying the root, at the minimum m.
Instances For
Dependency graph
Dependency graph
Shapes #
The three master characterizations, from which the point-level lemmas above and the case analyses of the correctness proof follow.
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
A marked point of the interpreted structure is a vertex point.
Dependency graph
A terminal of the interpreted structure is an edge point or the root.
Dependency graph
The neighbours of an edge point are the points of its two endpoints.
Dependency graph
Counting on the vertex points #
A predicate holding only of vertex points encodes the same number as its restriction to the vertices.
Dependency graph
Correctness #
Correctness of the interpretation: a graph has a vertex cover at most as large as its marked set iff the associated incidence structure has a Steiner tree of the same budget.
Dependency graph
Vertex Cover ordered-FO-reduces to Steiner Tree: the edges become the terminals, the vertices the available Steiner points, and the minimum of a spare copy the root joining them all.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The edge-weighted variant #
The same construction, with one clause changed: the marked set must now count
k plus one unit per edge point, since a Steiner tree of the incidence
structure spends one edge joining each edge point to an endpoint before it can
spend anything on the cover. Marking the edge points themselves is exactly
that budget, and it needs no arithmetic in the formulas.
The interpretation of Vertex Cover into the edge-weighted Steiner Tree:
as DescriptiveComplexity.steinerInterp, but the marked set also contains every edge
point.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The vertex point of the edge-weighted interpretation.
Instances For
Dependency graph
The edge point of the edge-weighted interpretation.
Equations
Instances For
Dependency graph
The root point of the edge-weighted interpretation.
Instances For
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The neighbours of an edge point are the points of its two endpoints.
Dependency graph
Correctness of the edge-weighted reduction #
The edge points of the interpreted structure: what the marked set pays for before any cover.
Equations
- DescriptiveComplexity.EdgePtSet A = {p : DescriptiveComplexity.steinerEdgeInterp.Map A | ∃ (u : A) (v : A), (DescriptiveComplexity.MGAdj u v ∧ u ≠ v) ∧ p = DescriptiveComplexity.eeePt u v}
Instances For
Dependency graph
Dependency graph
Dependency graph
The marked set of the interpreted structure is one unit per edge point, plus the marked vertices.
Dependency graph
Correctness of the edge-weighted interpretation: a graph has a vertex cover at most as large as its marked set iff the associated incidence structure has an edge-weighted Steiner tree within the enlarged budget.
Dependency graph
Vertex Cover ordered-FO-reduces to the edge-weighted Steiner Tree: Karp's original reading of the problem, with the budget enlarged by one unit per edge point – the price of attaching each terminal to the tree.
Equations
- One or more equations did not get rendered due to their size.