Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Debugging explanations #22

Open
Dekker1 opened this issue May 10, 2024 · 0 comments
Open

[Feature] Debugging explanations #22

Dekker1 opened this issue May 10, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@Dekker1
Copy link
Contributor

Dekker1 commented May 10, 2024

We discussed two method that can be used to help verify the validity of explanations given by the solver.

Note that in the solver Reason refers to the conjunction that implies a propagation. In this issue I've used the term “explanation” as the clause that could have been added at the root level instead.

Simple

A simple heuristic to protect against typos in the Reason conjunction generated, is to check that all literals are known to be true at this point in time.

In debug builds we could simply check this when propagating.

Harder

When given an explanation R1 /\ R2 /\ ... /\ Rn -> B, negating B would make this clause unsatisfiable in combination with the original constraint being propagated.

One idea is to output the explanations ourself together with the originating constraint, and then check them with a generalized system, such as MiniZinc+gecode.

The same system is employed by CP proof systems to proof correctness of their result. Hopefully we would be able to use the system currently being developed by Emir's team to verify the correctness of our explanations.

@Dekker1 Dekker1 changed the title [feature] Debugging explanations [Feature] Debugging explanations May 10, 2024
@Dekker1 Dekker1 added the enhancement New feature or request label Aug 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant