Skip to content

[Model] MaximumLeafSpanningTree #897

@isPANN

Description

@isPANN

Motivation

MAXIMUM LEAF SPANNING TREE (ND2) from Garey & Johnson, A2. Given a graph G, find a spanning tree that maximizes the number of leaves (degree-1 vertices). NP-hard even for regular degree-4 graphs and planar graphs with maximum degree 4. Dual to degree-constrained spanning tree problems. The non-leaf vertices of a maximum-leaf spanning tree form a minimum connected dominating set. Applications in network broadcast optimization where leaf nodes represent endpoints.

Definition

Name: MaximumLeafSpanningTree
Reference: Garey & Johnson, Computers and Intractability, A2 ND2

Mathematical definition:

INSTANCE: Graph G = (V, E).
OBJECTIVE: Find a spanning tree T for G that maximizes the number of leaves (vertices of degree 1).

Variables

  • Count: m = |E| (one binary variable per edge)
  • Per-variable domain: {0, 1}
  • Meaning: Whether each edge is included in the spanning tree. The selected edges must form a spanning tree, and the objective is to maximize the number of degree-1 vertices in the tree.

Schema

Type name: MaximumLeafSpanningTree
Variants: graph: SimpleGraph

Field Type Description
graph SimpleGraph The input graph G = (V, E)

Complexity

  • Best known exact algorithm: O*(1.8966^n) by Fernau, Kneis, Kratsch, Langer, Liedloff, Raible, and Rossmanith (Theoretical Computer Science, vol. 412, pp. 6290–6302, 2011). NP-hard even for graphs that are regular of degree 4 or planar with maximum degree 4 (Garey and Johnson). Approximation: 2-approximation by Solis-Oba (ESA 1998). Connected graphs with minimum degree ≥ 3 have spanning trees with at least n/4 + 2 leaves.
  • Special cases:
    • Star graph K_{1,n-1}: always has n-1 leaves.
    • Path graph P_n: every spanning tree is P_n itself, with 2 leaves.

Extra Remark

Full book text:

INSTANCE: Graph G = (V, E), positive integer K <= |V|.
QUESTION: Is there a spanning tree for G that has K or more leaves?

Reference: [Garey and Johnson, ----].
Comment: NP-complete even for graphs that are regular of degree 4 or planar and have maximum degree 4.

Note: The original G&J formulation is a decision problem with threshold K. We use the equivalent optimization formulation: maximize the number of leaves in a spanning tree.

How to solve

  • It can be solved by (existing) bruteforce. (Enumerate all spanning trees of G; count degree-1 vertices in each; return the maximum.)
  • It can be solved by reducing to integer programming. (ILP with binary edge variables for tree selection, binary vertex variables for leaf indicators, subtour elimination, degree-leaf linking constraints; maximize leaf count.) See companion issue [Rule] MaximumLeafSpanningTree to ILP #965.
  • Other:

Reduction Rule Crossref

Example Instance

Input:
Graph G with V = {v0, v1, v2, v3, v4, v5} (n = 6) and 9 edges:
E = {(v0,v1), (v0,v2), (v0,v3), (v1,v4), (v2,v4), (v2,v5), (v3,v5), (v4,v5), (v1,v3)}

Optimal spanning tree T: edges {(v0,v1), (v0,v2), (v0,v3), (v2,v4), (v2,v5)}

  • v0: degree 3 (connected to v1, v2, v3) — internal
  • v1: degree 1 — leaf ✓
  • v2: degree 3 (connected to v0, v4, v5) — internal
  • v3: degree 1 — leaf ✓
  • v4: degree 1 — leaf ✓
  • v5: degree 1 — leaf ✓

This is a "double star" tree with hubs at v0 and v2. Leaves: {v1, v3, v4, v5} = 4 leaves.

Suboptimal tree T2: edges {(v0,v1), (v1,v4), (v4,v5), (v5,v2), (v2,v3)} — a path

  • All internal vertices have degree 2; only endpoints v0 and v3 are leaves = 2 leaves.

Why 5 leaves is impossible: A spanning tree on 6 vertices has 5 edges. If 5 vertices were leaves (degree 1), the remaining vertex would need degree 5. But the maximum degree in G is 4 (at v0: edges to v1, v2, v3 only — degree 3). So at most 4 leaves are achievable.

Expected Outcome

Optimal value: Max(4) — the maximum number of leaves in any spanning tree is 4. The graph has 75 spanning trees with 3 distinct leaf counts: 30 trees with 2 leaves, 42 trees with 3 leaves, and 3 trees with 4 leaves.

Metadata

Metadata

Assignees

No one assigned

    Labels

    GoodAn issue passed all checks.modelA model problem to be implemented.

    Type

    No type

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions