|
85 | 85 | } |
86 | 86 | } |
87 | 87 |
|
| 88 | +// Render complexity from graph-data nodes |
| 89 | +#let render-complexity(name) = { |
| 90 | + let nodes = graph-data.nodes.filter(n => n.name == name) |
| 91 | + if nodes.len() == 0 { return } |
| 92 | + let seen = () |
| 93 | + let entries = () |
| 94 | + for node in nodes { |
| 95 | + if node.complexity not in seen { |
| 96 | + seen.push(node.complexity) |
| 97 | + entries.push(node.complexity) |
| 98 | + } |
| 99 | + } |
| 100 | + block(above: 0.5em)[ |
| 101 | + #set text(size: 9pt) |
| 102 | + - Complexity: #entries.map(e => raw(e)).join("; "). |
| 103 | + ] |
| 104 | +} |
| 105 | + |
88 | 106 | // Render the "Reduces to/from" lines for a problem |
89 | 107 | #let render-reductions(problem-name) = { |
90 | 108 | let reduces-to = get-reductions-to(problem-name) |
|
158 | 176 | base_level: 1, |
159 | 177 | ) |
160 | 178 |
|
161 | | -// Problem definition wrapper: auto-adds schema, reductions list, and label |
| 179 | +// Problem definition wrapper: auto-adds schema, complexity, reductions list, and label |
162 | 180 | #let problem-def(name, body) = { |
163 | 181 | let lbl = label("def:" + name) |
164 | 182 | let title = display-name.at(name) |
165 | 183 | [#definition(title)[ |
166 | 184 | #body |
167 | 185 | #render-schema(name) |
| 186 | + #render-complexity(name) |
168 | 187 | #render-reductions(name) |
169 | 188 | ] #lbl] |
170 | 189 | } |
@@ -309,95 +328,116 @@ In all graph problems below, $G = (V, E)$ denotes an undirected graph with $|V| |
309 | 328 |
|
310 | 329 | #problem-def("MaximumIndependentSet")[ |
311 | 330 | Given $G = (V, E)$ with vertex weights $w: V -> RR$, find $S subset.eq V$ maximizing $sum_(v in S) w(v)$ such that no two vertices in $S$ are adjacent: $forall u, v in S: (u, v) in.not E$. |
| 331 | + One of Karp's 21 NP-complete problems @karp1972. Best known: $O^*(1.1996^n)$ via measure-and-conquer branching @xiao2017. Solvable in polynomial time on bipartite, interval, and cograph classes. |
312 | 332 | ] |
313 | 333 |
|
314 | 334 | #problem-def("MinimumVertexCover")[ |
315 | 335 | Given $G = (V, E)$ with vertex weights $w: V -> RR$, find $S subset.eq V$ minimizing $sum_(v in S) w(v)$ such that every edge has at least one endpoint in $S$: $forall (u, v) in E: u in S or v in S$. |
| 336 | + Best known: $O^*(1.1996^n)$ via MIS complement ($|"VC"| + |"IS"| = n$) @xiao2017. A central problem in parameterized complexity: admits FPT algorithms in $O^*(1.2738^k)$ time parameterized by solution size $k$. |
316 | 337 | ] |
317 | 338 |
|
318 | 339 | #problem-def("MaxCut")[ |
319 | 340 | Given $G = (V, E)$ with weights $w: E -> RR$, find partition $(S, overline(S))$ maximizing $sum_((u,v) in E: u in S, v in overline(S)) w(u, v)$. |
| 341 | + Best known: $O^*(2^(omega n slash 3))$ via algebraic 2-CSP techniques @williams2005, where $omega < 2.372$ is the matrix multiplication exponent; requires exponential space. Polynomial-time solvable on planar graphs. The Goemans-Williamson SDP relaxation achieves a 0.878-approximation @goemans1995. |
320 | 342 | ] |
321 | 343 |
|
322 | 344 | #problem-def("KColoring")[ |
323 | 345 | Given $G = (V, E)$ and $k$ colors, find $c: V -> {1, ..., k}$ minimizing $|{(u, v) in E : c(u) = c(v)}|$. |
| 346 | + Deciding $k$-colorability is NP-complete for $k >= 3$ @garey1979. Best known: $O(n+m)$ for $k=2$ (equivalent to bipartiteness testing by BFS); $O^*(1.3289^n)$ for $k=3$ @beigel2005; $O^*(1.7159^n)$ for $k=4$ @wu2024; $O^*((2-epsilon)^n)$ for $k=5$, the first to break the $2^n$ barrier @zamir2021; $O^*(2^n)$ in general via inclusion-exclusion over independent sets @bjorklund2009. |
324 | 347 | ] |
325 | 348 |
|
326 | 349 | #problem-def("MinimumDominatingSet")[ |
327 | 350 | Given $G = (V, E)$ with weights $w: V -> RR$, find $S subset.eq V$ minimizing $sum_(v in S) w(v)$ s.t. $forall v in V: v in S or exists u in S: (u, v) in E$. |
| 351 | + Best known: $O^*(1.4969^n)$ via branch-and-reduce with measure and conquer @vanrooij2011. W[2]-complete when parameterized by solution size, making it strictly harder than Vertex Cover in the parameterized hierarchy. |
328 | 352 | ] |
329 | 353 |
|
330 | 354 | #problem-def("MaximumMatching")[ |
331 | 355 | Given $G = (V, E)$ with weights $w: E -> RR$, find $M subset.eq E$ maximizing $sum_(e in M) w(e)$ s.t. $forall e_1, e_2 in M: e_1 inter e_2 = emptyset$. |
| 356 | + Solvable in polynomial time $O(n^3)$ by Edmonds' blossom algorithm @edmonds1965, which introduced the technique of shrinking odd cycles into pseudo-nodes. Unlike most combinatorial optimization problems on general graphs, maximum matching is not NP-hard. |
332 | 357 | ] |
333 | 358 |
|
334 | 359 | #problem-def("TravelingSalesman")[ |
335 | 360 | Given an undirected graph $G=(V,E)$ with edge weights $w: E -> RR$, find an edge set $C subset.eq E$ that forms a cycle visiting every vertex exactly once and minimizes $sum_(e in C) w(e)$. |
| 361 | + Best known: $O^*(2^n)$ via Held-Karp dynamic programming @heldkarp1962, requiring $O^*(2^n)$ space. No $O^*((2-epsilon)^n)$ time algorithm is known. |
336 | 362 | ] |
337 | 363 |
|
338 | 364 | #problem-def("MaximumClique")[ |
339 | 365 | Given $G = (V, E)$, find $K subset.eq V$ maximizing $|K|$ such that all pairs in $K$ are adjacent: $forall u, v in K: (u, v) in E$. Equivalent to MIS on the complement graph $overline(G)$. |
| 366 | + Best known: $O^*(1.1996^n)$ via complement reduction to MIS @xiao2017. Robson's direct algorithm achieves $O^*(1.2109^n)$ @robson1986 using exponential space. |
340 | 367 | ] |
341 | 368 |
|
342 | 369 | #problem-def("MaximalIS")[ |
343 | 370 | Given $G = (V, E)$ with vertex weights $w: V -> RR$, find $S subset.eq V$ maximizing $sum_(v in S) w(v)$ such that $S$ is independent ($forall u, v in S: (u, v) in.not E$) and maximal (no vertex $u in V backslash S$ can be added to $S$ while maintaining independence). |
| 371 | + Best known: $O^*(3^(n slash 3))$ for enumerating all maximal independent sets @tomita2006. This bound is tight: Moon and Moser @moonmoser1965 showed that every $n$-vertex graph has at most $3^(n slash 3)$ maximal independent sets, achieved by disjoint triangles. |
344 | 372 | ] |
345 | 373 |
|
346 | 374 |
|
347 | 375 | == Set Problems |
348 | 376 |
|
349 | 377 | #problem-def("MaximumSetPacking")[ |
350 | 378 | Given universe $U$, collection $cal(S) = {S_1, ..., S_m}$ with $S_i subset.eq U$, weights $w: cal(S) -> RR$, find $cal(P) subset.eq cal(S)$ maximizing $sum_(S in cal(P)) w(S)$ s.t. $forall S_i, S_j in cal(P): S_i inter S_j = emptyset$. |
| 379 | + One of Karp's 21 NP-complete problems @karp1972. Generalizes maximum matching (the special case where all sets have size 2, solvable in polynomial time). The optimization version is as hard to approximate as maximum clique. Best known: $O^*(2^m)$. |
351 | 380 | ] |
352 | 381 |
|
353 | 382 | #problem-def("MinimumSetCovering")[ |
354 | 383 | Given universe $U$, collection $cal(S)$ with weights $w: cal(S) -> RR$, find $cal(C) subset.eq cal(S)$ minimizing $sum_(S in cal(C)) w(S)$ s.t. $union.big_(S in cal(C)) S = U$. |
| 384 | + Best known: $O^*(2^m)$. The greedy algorithm achieves an $O(ln n)$-approximation where $n = |U|$, which is essentially optimal: cannot be approximated within $(1-o(1)) ln n$ unless P = NP. |
355 | 385 | ] |
356 | 386 |
|
357 | 387 | == Optimization Problems |
358 | 388 |
|
359 | 389 | #problem-def("SpinGlass")[ |
360 | 390 | Given $n$ spin variables $s_i in {-1, +1}$, pairwise couplings $J_(i j) in RR$, and external fields $h_i in RR$, minimize the Hamiltonian (energy function): $H(bold(s)) = -sum_((i,j)) J_(i j) s_i s_j - sum_i h_i s_i$. |
| 391 | + NP-hard on general graphs @barahona1982; best known $O^*(2^n)$. On planar graphs without external field ($h_i = 0$), solvable in polynomial time via reduction to minimum-weight perfect matching. Central to statistical physics and quantum computing. |
361 | 392 | ] |
362 | 393 |
|
363 | 394 | #problem-def("QUBO")[ |
364 | 395 | Given $n$ binary variables $x_i in {0, 1}$, upper-triangular matrix $Q in RR^(n times n)$, minimize $f(bold(x)) = sum_(i=1)^n Q_(i i) x_i + sum_(i < j) Q_(i j) x_i x_j$ (using $x_i^2 = x_i$ for binary variables). |
| 396 | + Equivalent to the Ising model via the linear substitution $s_i = 2x_i - 1$. The native formulation for quantum annealing hardware and a standard target for penalty-method reductions @glover2019. Best known: $O^*(2^n)$. |
365 | 397 | ] |
366 | 398 |
|
367 | 399 | #problem-def("ILP")[ |
368 | 400 | Given $n$ integer variables $bold(x) in ZZ^n$, constraint matrix $A in RR^(m times n)$, bounds $bold(b) in RR^m$, and objective $bold(c) in RR^n$, find $bold(x)$ minimizing $bold(c)^top bold(x)$ subject to $A bold(x) <= bold(b)$ and variable bounds. |
| 401 | + Best known: $O^*(n^n)$ @dadush2012. When the number of integer variables $n$ is fixed, solvable in polynomial time by Lenstra's algorithm @lenstra1983 using the geometry of numbers, making ILP fixed-parameter tractable in $n$. |
369 | 402 | ] |
370 | 403 |
|
371 | 404 | == Satisfiability Problems |
372 | 405 |
|
373 | 406 | #problem-def("Satisfiability")[ |
374 | 407 | Given a CNF formula $phi = and.big_(j=1)^m C_j$ with $m$ clauses over $n$ Boolean variables, where each clause $C_j = or.big_i ell_(j i)$ is a disjunction of literals, find an assignment $bold(x) in {0, 1}^n$ such that $phi(bold(x)) = 1$ (all clauses satisfied). |
| 408 | + Best known: $O^*(2^n)$. The Strong Exponential Time Hypothesis (SETH) @impagliazzo2001 conjectures that no $O^*((2-epsilon)^n)$ algorithm exists for general CNF-SAT. Despite this worst-case hardness, conflict-driven clause learning (CDCL) solvers handle large practical instances efficiently. |
375 | 409 | ] |
376 | 410 |
|
377 | 411 | #problem-def("KSatisfiability")[ |
378 | 412 | SAT with exactly $k$ literals per clause. |
| 413 | + $O(n+m)$ for $k=2$ via implication graph SCC decomposition @aspvall1979. $O^*(1.307^n)$ for $k=3$ via biased-PPSZ @hansen2019. Under SETH, $k$-SAT requires time $O^*(c_k^n)$ with $c_k -> 2$ as $k -> infinity$. |
379 | 414 | ] |
380 | 415 |
|
381 | 416 | #problem-def("CircuitSAT")[ |
382 | 417 | Given a Boolean circuit $C$ composed of logic gates (AND, OR, NOT, XOR) with $n$ input variables, find an input assignment $bold(x) in {0,1}^n$ such that $C(bold(x)) = 1$. |
| 418 | + NP-complete by the Cook-Levin theorem @cook1971, which established NP-completeness by showing any NP computation can be expressed as a boolean circuit. Reducible to CNF-SAT via the Tseitin transformation. Best known: $O^*(2^n)$. |
383 | 419 | ] |
384 | 420 |
|
385 | 421 | #problem-def("Factoring")[ |
386 | 422 | Given a composite integer $N$ and bit sizes $m, n$, find integers $p in [2, 2^m - 1]$ and $q in [2, 2^n - 1]$ such that $p times q = N$. Here $p$ has $m$ bits and $q$ has $n$ bits. |
| 423 | + Sub-exponential classically: $e^(O(b^(1 slash 3)(log b)^(2 slash 3)))$ via the General Number Field Sieve @lenstra1993, where $b$ is the bit length. Solvable in polynomial time on a quantum computer by Shor's algorithm @shor1994. Not known to be NP-complete; factoring lies in NP $inter$ co-NP. |
387 | 424 | ] |
388 | 425 |
|
389 | 426 | == Specialized Problems |
390 | 427 |
|
391 | 428 | #problem-def("BMF")[ |
392 | 429 | Given an $m times n$ boolean matrix $A$ and rank $k$, find boolean matrices $B in {0,1}^(m times k)$ and $C in {0,1}^(k times n)$ minimizing the Hamming distance $d_H (A, B circle.tiny C)$, where the boolean product $(B circle.tiny C)_(i j) = or.big_ell (B_(i ell) and C_(ell j))$. |
| 430 | + NP-hard, even to approximate. Arises in data mining, text mining, and recommender systems. Best known: $O^*(2^n)$; practical algorithms use greedy rank-1 extraction. |
393 | 431 | ] |
394 | 432 |
|
395 | 433 | #problem-def("PaintShop")[ |
396 | 434 | Given a sequence of $2n$ positions where each of $n$ cars appears exactly twice, assign a binary color to each car (each car's two occurrences receive opposite colors) to minimize the number of color changes between consecutive positions. |
| 435 | + NP-hard and APX-hard @epping2004. Arises in automotive manufacturing where color changes require setup time and increase paint waste. A natural benchmark for quantum annealing. Best known: $O^*(2^n)$. |
397 | 436 | ] |
398 | 437 |
|
399 | 438 | #problem-def("BicliqueCover")[ |
400 | 439 | Given a bipartite graph $G = (L, R, E)$ and integer $k$, find $k$ bicliques $(L_1, R_1), dots, (L_k, R_k)$ that cover all edges ($E subset.eq union.big_i L_i times R_i$) while minimizing the total size $sum_i (|L_i| + |R_i|)$. |
| 440 | + NP-hard; connected to the Boolean rank of binary matrices and nondeterministic communication complexity. Best known: $O^*(2^n)$. |
401 | 441 | ] |
402 | 442 |
|
403 | 443 | // Completeness check: warn about problem types in JSON but missing from paper |
|
0 commit comments