You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Add plan for #251: [Model] BoundedComponentSpanningForest
* Implement #251: [Model] BoundedComponentSpanningForest
* chore: remove plan file after implementation
* fix: address review feedback for bcsf
* fix: preserve create variant errors for graph-backed problems
* fix: address final review weaknesses
- Add CeTZ figure to paper entry showing the 3-component partition
with colored vertices, weight labels, and region backgrounds
- Relax max_components assertion: K > |V| is mathematically harmless
(just means fewer than K components will be used)
- Update CLI validation and tests accordingly
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: remove re-introduced trait_consistency.rs
Main branch intentionally removed centralized trait tests in PR #676
(commit 9eaa786). The PR branch diverged before that removal, so our
merge kept the PR's version. Aligning with main's intent by removing it.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: simplify paper figure to avoid hobby/on-layer
Use only g-node, g-edge, and content — the same primitives used by
other figures in the paper. Removes hobby curve regions that could
fail on older CeTZ versions.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: resolve CI failures — tempdir and dead code
- Replace tempdir() with std::env::temp_dir() in CLI test (tempfile
crate not available in test scope)
- Remove unused cli_flag_name function (superseded by help_flag_name)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: merge cli_flag_name mappings into help_flag_name
The cli_flag_name function was superseded by help_flag_name but its
general field-name mappings (universe_size->universe, collection->sets,
etc.) were still needed. Merge them into help_flag_name and remove the
redundant function.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: zazabap <sweynan@icloud.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
"OptimalLinearArrangement": [Optimal Linear Arrangement],
@@ -535,6 +536,56 @@ Graph Partitioning is a core NP-hard problem arising in VLSI design, parallel co
535
536
caption: [Graph with $n = 6$ vertices partitioned into $A = {v_0, v_1, v_2}$ (blue) and $B = {v_3, v_4, v_5}$ (red). The 3 crossing edges $(v_1, v_3)$, $(v_2, v_3)$, $(v_2, v_4)$ are shown in bold red; internal edges are gray.],
536
537
) <fig:graph-partitioning>
537
538
]
539
+
540
+
#problem-def("BoundedComponentSpanningForest")[
541
+
Given an undirected graph $G = (V, E)$ with vertex weights $w: V -> ZZ_(gt.eq 0)$, a positive integer $K <= |V|$, and a positive bound $B$, determine whether there exists a partition of $V$ into $t$ non-empty sets $V_1, dots, V_t$ with $1 <= t <= K$ such that each induced subgraph $G[V_i]$ is connected and each part satisfies $sum_(v in V_i) w(v) <= B$.
542
+
][
543
+
Bounded Component Spanning Forest appears as ND10 in Garey and Johnson @garey1979. It asks for a decomposition into a bounded number of connected pieces, each with bounded total weight, so it naturally captures contiguous districting and redistricting-style constraints where each district must remain connected while respecting a population cap. A direct exhaustive search over component labels gives an $O^*(K^n)$ baseline, but subset-DP techniques via inclusion-exclusion improve the exact running time to $O^*(3^n)$@bjorklund2009.
is feasible: each set induces a connected subgraph, the component weights are $2 + 3 + 1 = 6$, $1 + 2 + 3 = 6$, and $1 + 2 = 3$, and exactly three non-empty components are used. Therefore this instance is a YES instance.
0 commit comments