Interface Solver<Solution_>

Type Parameters:
Solution_ - the solution type, the class with the PlanningSolution annotation
All Known Implementing Classes:
AbstractSolver, DefaultSolver, PartitionSolver

public interface Solver<Solution_>
A Solver solves a planning problem and returns the best solution found. It's recommended to create a new Solver instance for each dataset.

To create a Solver, use SolverFactory.buildSolver(). To solve a planning problem, call solve(Object). To solve a planning problem without blocking the current thread, use SolverManager instead.

These methods are not thread-safe and should be called from the same thread, except for the methods that are explicitly marked as thread-safe. Note that despite that solve(Solution_) is not thread-safe for clients of this class, that method is free to do multithreading inside itself.