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

QBF Solver #53

Open
7 of 9 tasks
SSoelvsten opened this issue Dec 13, 2022 · 0 comments
Open
7 of 9 tasks

QBF Solver #53

SSoelvsten opened this issue Dec 13, 2022 · 0 comments
Labels
⏰ benchmark New or changes to existing benchmark

Comments

@SSoelvsten
Copy link
Owner

SSoelvsten commented Dec 13, 2022

We had earlier a crude and quite bad SAT solver. We should redo it from the ground up as a QBF solver (where SAT is a special case of having no explicit quantification and only free variables).

  • Construct qcir circuit from file.
    • Derive the level of each gate
    • Derive the desired Variable Ordering
      • INPUT/MATRIX: The order they are defined (as per the cleansed order). This is essentially the order they are defined in the matrix.
      • QUANT: The order as they defined in the quantification block.
      • DFS: The first occurence of a variable's leaf in a depth-first traversal of the matrix.
      • LEVEL: Based on the deepest depth a variable occurs within the circuit. Ties are broken with DFS.
    • Support free variables by adding an existential gate at the top.
  • Compute the decision diagram for the formula by recursing through the qcir circuit. The circuit itself probably can be implemented quite similarly to Picotrav.
    • Bottom-up evaluate the circuit (similar to Picotrav); i.e. compute the evaluation order of the levels in the circuit.
    • The top-most quantifier block is not solved with BDDs, but rather a witness/counter-example is extracted from the BDD.
@SSoelvsten SSoelvsten added ⏰ benchmark New or changes to existing benchmark 🎓 student project Interesting (~ 5 ECTS) side projects labels Dec 13, 2022
@SSoelvsten SSoelvsten changed the title Add SAT/QBF Solver Benchmarl Add SAT/QBF Solver Benchmark Dec 13, 2022
@SSoelvsten SSoelvsten mentioned this issue Feb 1, 2023
@SSoelvsten SSoelvsten removed the 🎓 student project Interesting (~ 5 ECTS) side projects label Feb 2, 2023
@SSoelvsten SSoelvsten added this to the Quantified Boolean Formula milestone Sep 22, 2023
@SSoelvsten SSoelvsten changed the title Add SAT/QBF Solver Benchmark QBF Solver Oct 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⏰ benchmark New or changes to existing benchmark
Projects
None yet
Development

No branches or pull requests

1 participant