Skip to content

v2.8.0

Choose a tag to compare

@rcrida rcrida released this 26 May 14:37
· 135 commits to main since this release

New features

  • IndependentSubproblemLocalSolver: decomposes a CSP into independent subproblems and solves each with a delegate LocalSolver, mirroring IndependentSubproblemSolver for the local search path
  • LocalSolver.Factory.INSTANCE: full pipeline wiring — NC + AC3 preprocessing → independent subproblem decomposition → min-conflicts search. NC prunes forced variables (e.g. equalsConstraint(v, true) reduces the domain to {true}); AC3 propagates further. Infeasibility detected during preprocessing short-circuits to Optional.empty()
  • exactlyOneConstraint optimisation: a single-variable set now emits UnaryValueConstraint(true) instead of ExactlyOneConstraint, which is cheaper and picked up directly by min-conflicts conflict detection without binary expansion
  • LocalSolver.Factory interface: convenience factory with createLocalSolver(maxAttempts, maxSteps, factory) signature