Once I introduce phasing, it will be possible to configure 2 or more 
sequential solver algorithms in planner, for example:
   Solver algorithm 1 = First Fit Decreasing (for initialization)
   Solver algorithm 2 = Simulated Annealing (after initialization)
   Solver algorithm 3 = Tabu search (when things get really hard)

I see 2 ways of naming these concepts.
What do you consider better? Or do you see a better alternative?

Alternative 1: A Solver has Phases
There is only 1 Solver, with the .solve() method, which is external API.
A Solver is constructed from a SolverConfiguration.
The Solver has n Phases.
A Phase is a solver algorithm implementation (for example tabu search).
A Phase also has a .solve() method, but that's internal API.

Alternative 2: A Planner has Solvers.
There is only 1 Planner, with the .solve() method, which is external API.
A Planner is constructed from a PlannerConfiguration.
The Planner has n Solvers.
A Solver is a solver algorithm implementation (for example tabu search).
A Solver also has a .solve() method, but that's internal API.

-- 
With kind regards,
Geoffrey De Smet


_______________________________________________
rules-dev mailing list
rules-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev

Reply via email to