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
    No fields configured for issues without a type.

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions