Can we use the previous solution of a MaxSMT solver (optimize) in an incremental way in z3? Also, Is there any way to print out the soft assertions on the optimizer?
Incremental Learning using MAXSMT
226 Views Asked by Kshitij Goyal At
1
There are 1 best solutions below
Related Questions in Z3
- Get the only solution based on given constraints using z3 theorem
- Z3 to solve a puzzle(8 blocks tiles) please?
- Taylor expansion trigonometric functions in Z3-Python
- How can I use built-in trigonometric funtions in Z3 Python?
- Obtain an interpretation of unbounded variables using Z3 in OCaml
- Z3-Solver (z3.z3types.Z3Exception: Z3 invalid substitution, expression pairs expected.)
- Efficient modular arithmetic in Z3
- Unknown when working sequence of type StringSort
- Retrieve the correct found objective values via the C-API
- How to measure size of formula in Z3?
- Z3 returns unknown with HORN logic if I use a specific operation
- Given my logical questions have options {True, False, Unknown}, Is is possible for me to use Z3 to solve it?
- How to use the Z3 Solver to solve a natural deduction problem
- Are there tools available to convert SMT-LIB files to DIMACS CNF?
- Do not assign concrete values to symbols
Related Questions in SMT
- Z3 to solve a puzzle(8 blocks tiles) please?
- Taylor expansion trigonometric functions in Z3-Python
- How can I use built-in trigonometric funtions in Z3 Python?
- Does CBMC support assertions written in SMTLIB2?
- How to encode a scikit-learn Gradient Boosting Classifier as an SMT formula, using conditions on the sub-regressor for each class?
- Z3 returns unknown with HORN logic if I use a specific operation
- How to use the Z3 Solver to solve a natural deduction problem
- Are there tools available to convert SMT-LIB files to DIMACS CNF?
- Is cvc5 able to minimize or maximize an expression, given a set of constraints?
- MUS cores in Alloy UNSAT models
- Error reading files in Mosesdecoder train-model script (GIZA++, mgiza)
- How to let z3 python existential proposition simplified to True/False?
- Trying to model Towers of Hanoi in SMT-LIB ( Using SMT-LIB is required for me!)
- Simplification with Z3 does not simplify as much as expected
- rust z3 version >= v 0.10.0 ast.Bool::and function
Related Questions in OPTIMATHSAT
- Linear Programming Binary Variable Grouping
- What conversion operators are available in Z3 and CVC4 for Bit-Vectors?
- Timeout for Z3 Optimize
- Gap tolerance control in Z3 optimization
- Incremental Learning using MAXSMT
- How to Solve Vertex Cover Problem by SAT and Optimization?
- syntax error when taking a code from mac to linux machine
- Minizinc. Count number of shifts in a cycle
- How to maximize a var int that is larger than 32 bits?
- MiniZinc Geocode not printing all solutions to CSP with "all" solutions enabled
- Specific inputs of experiment return parser error
- get execution time only from the command gtime
- parallel execution with a fixed order
- Correct order of parallel execution of shell `time` command
- parralelizing a part of a script shell
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The answer is YES if you are asking whether it is technically possible to run either
z3orOptiMathSATincrementally with a MaxSMT problem. (Use the API).All soft-clauses with the same
id--at the moment in which one performs acheck-sat-- are considered part of the same MaxSMT goal. In essence, the OMT solver evaluates the relevant set of soft-clauses of a MaxSMT goal lazily. This holds for bothz3andOptiMathSAT.When dealing with a MaxSMT problem, the ability of an OMT solver to reuse learned clauses across incremental calls may depend on the optimization algorithm that is being used.
I see two possible cases:
One is using a core-based MaxSMT engine. In this case, exploring formulations of the problem with an increasing level of complexity may help identifying a tractable sub-set of the original problem. However, notice that lemmas involving soft-constraints learned at previous iterations may not be useful at later stages (Actually, the OMT solver is going to discard all of these clauses and re-compute them if necessary).
One is using a sat-based MaxSMT engine. In this case, it is not clear to me the benefit of splitting the problem into smaller chunks, other than focusing the search over particular groups of (?possibly related?) soft-clauses. The OMT solver could be given all soft-constraints at once, together with a hard timeout, and it would still be able to yield a partial optimal solution when the alarm fires. (T-Lemmas involving the cost function are not going to be useful across incremental calls because the cost function changes. In the best scenario, the OMT solvers discards them. In the worst scenario, these T-Lemmas remain in the environment and clutter the search without altering the solution).
I admit that it is a bit hard to predict the performance of the OMT solver because of the overhead that is introduced with either approach. On the one hand, we have the overhead of incremental calls and the fact that the optimization process is restarted from scratch multiple times. On the other hand, we have the overhead of performing BCP over a much larger set of soft-clauses. I guess that the balance turns in favor of the incremental approach for sufficiently large sets of soft-clauses. [This would be an interesting subject of investigation, I would love to read a paper about it!]