[rules-dev] Planner design naming: phasing

Geoffrey De Smet ge0ffrey.spam at gmail.com
Sun May 29 10:09:22 EDT 2011


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




More information about the rules-dev mailing list