You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We need to provide an interface for portfolio SAT solvers.
Portfolio solvers are solvers that spawn multiple instances of some SAT solver with different internal parameters, or just multiple instances of different solvers. In turn, these solvers try to solve the SAT problem in parallel — whichever solves first, wins. Some parallel/portfolio solver implementation (e.g., painless) also support sharing the learnt clauses etc. Nevertheless, in kotlin-satlib we just have to provide a common interface for such portfolio solvers.
To begin with, we could implement the simplest strategy of spawning all the supported solvers (MiniSat, Glucose, Cadical, etc) without any sharing of the internal data. Additionally, we could spawn multiple instances of, e.g., MiniSat, with different random seeds.
Next, we have to make sure that the resulting portfolio solver is capable of solving incrementally (we might want to asynchronously interrupt other solvers).
After that, we could also support dropping "bad" (e.g. slow or inefficient) solvers from the portfolio, maybe even replacing them with new instances.
While doing all of the above, we should either keep the interface the same as before (interface Solver), or derive/devise the new one (interface PortfolioSolver).
The text was updated successfully, but these errors were encountered:
We need to provide an interface for portfolio SAT solvers.
Portfolio solvers are solvers that spawn multiple instances of some SAT solver with different internal parameters, or just multiple instances of different solvers. In turn, these solvers try to solve the SAT problem in parallel — whichever solves first, wins. Some parallel/portfolio solver implementation (e.g., painless) also support sharing the learnt clauses etc. Nevertheless, in
kotlin-satlib
we just have to provide a common interface for such portfolio solvers.interface Solver
), or derive/devise the new one (interface PortfolioSolver
).The text was updated successfully, but these errors were encountered: