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
Show replies by date