Provide access to decisions taken during the search in the API
There are several use cases in which it can be useful to know which decisions have been taken to obtain a given model.
That information is currently available inside the Solver class, but not available in the API. It is used to "block" a given model by adding a clause made of the negation of the decision literals.
Providing access to those decisions may allow the user to perform e.g. projected enumeration.
Providing public access to those decisions may require:
-
provide a new method in the API to access those decisions -
to move the current code of Solver.createBlockingClauseForCurrentModel
to another place (ModelIterator
?) -
optionally extend the ModelIterator
class to support projected model enumeration