Documentation

CslibFrontier.Algorithms.Lean.EdgeCSP.Solver.Optimize

Optimization by successive two-defect improvements #

Repeat the one-improvement routine at most one more than the number of occurring variables. Each successful call removes exactly two defects. The final labeling minimizes defects among all valid occurrence labelings, and it has zero defects exactly when the original CSP is satisfiable. There is no comparison input, optimizer provider or assumed lifting operation.

This is the optimization organization of Section 5 of [KKR18], arXiv:1602.03124v6, printed pp. 8–13. The finite recursion bookkeeping is original.

Run at most rounds improvements, stopping immediately when fresh search certifies optimality. Each improvement has its own fresh contraction-depth allowance.

Instances For

    Enough outer rounds give an actual optimum. The premise is a finite defect count, not a promised optimizer or runtime certificate.

    Compute a minimum-defect labeling using the original whole-instance contraction. Variable names are never used as loop bounds.

    Instances For

      Every defect is an occurring variable; no edge or validity hypothesis is needed.

      The executable optimizer attains the minimum over all valid occurrence labelings. Its model is the actual ordered positional CSP Table ℕ; disconnected instances and duplicate constraints and rows are permitted.

      SAT correctness for the actual optimizer, including unsatisfiable edge instances with odd local parities. A zero-defect labeling is exactly a global satisfying assignment.