Skip to content

[Rule] MaximumIndependentSet to MaximumClique #165

@zazabap

Description

@zazabap

Source: MaximumIndependentSet
Target: MaximumClique
Motivation: An independent set in $G$ corresponds to a clique in the complement graph; this is the reverse of Karp's classical complement graph reduction.
Reference: Karp, R. M. (1972). Reducibility among combinatorial problems.

Reduction Algorithm

Notation:

  • Source: MaximumIndependentSet instance on graph $G = (V, E)$ with vertex weights $w$
  • $n = |V|$, $m = |E|$
  • Complement graph: $\bar{G} = (V, \bar{E})$ where $\bar{E} = {(u,v) : u \neq v,; (u,v) \notin E}$

Variable mapping:

  • Vertices are preserved: vertex $i$ in $G$ maps to vertex $i$ in $\bar{G}$
  • Weights are preserved: $w_i$ in the source maps to $w_i$ in the target
  • Configuration is identity: $\text{config}[i]$ in source equals $\text{config}[i]$ in target

Constraint/objective transformation:

  • A set $S$ is an independent set in $G$ iff no pair in $S$ is adjacent in $G$ iff all pairs in $S$ are adjacent in $\bar{G}$ iff $S$ is a clique in $\bar{G}$
  • Objective (maximize total weight of selected vertices) is identical in both problems

Size Overhead

Target metric (code name) Polynomial (using symbols above)
num_vertices $n$
num_edges $n(n-1)/2 - m$

Validation Method

Closed-loop test: construct a MaximumIndependentSet instance, reduce to MaximumClique, solve both with BruteForce, verify optimal values match and extracted solution is a valid independent set in the original graph.

Example

Source: MaximumIndependentSet on triangle $K_3$ with 3 vertices, edges ${(0,1), (1,2), (0,2)}$, unit weights.

  • $n=3$, $m=3$
  • Complement $\bar{G}$ has edges $\emptyset$ (empty graph), so $|\bar{E}| = 3 \cdot 2/2 - 3 = 0$

Reduction: Build MaximumClique on $\bar{G}$ (the empty graph on 3 vertices) with same weights.

Target: MaximumClique on $\bar{G} = ({0,1,2},; \emptyset)$.

Solution: In $\bar{G}$ (empty graph), every single vertex is a trivial max clique of size 1. Back in $G$, any single vertex is an independent set of size 1. This is optimal ($K_3$ has no independent set of size $> 1$).

Metadata

Metadata

Assignees

No one assigned

    Labels

    GoodAn issue passed all checks.ruleA new reduction rule to be added.

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions