concepts.pdsketch.csp_solvers.dpll_sampling.csp_dpll_sampling_solve#
- csp_dpll_sampling_solve(executor, csp, *, generator_manager=None, max_generator_trials=3, enable_ignore=False, solvable_only=False, verbose=False)[source]#
Solve the constraint satisfaction problem using the DPLL-sampling algorithm.
- Parameters:
executor (PDSketchExecutor) – the executor.
csp (ConstraintSatisfactionProblem) – the constraint satisfaction problem.
generator_manager (GeneratorManager | None) – the generator manager.
max_generator_trials (int) – the maximum number of trials for each generator.
enable_ignore (bool) – whether to ignore constraints whose RHS value is not determined.
solvable_only (bool) – whether to only return whether the problem is solvable, without returning the solution.
verbose (bool) – whether to print verbose information.
- Returns:
When solvable_only is True, return a single Boolean value indicating whether the problem is solvable. When solvable_only is False, return an assignment dictionary. When the problem is not solvable, return None.
- Raises:
CSPNotSolvable – when the problem is not solvable.
CSPNoGenerator – when no generator can be found to solve the problem. However, the problem may still be solvable.
- Return type:
bool | Dict[int, Assignment] | None