Solvers
The Solver
interface
jobshop.solvers.Solver
provides a common interface for all solvers.
Implementing the Solver
interface requires implementing a method solve(Instance instance, long deadline)
where:
instance
is the jobshop instance that should be solved.deadline
is the absolute time by which the solver should have exited. This deadline is in milliseconds and can be compared with the result ofSystem.currentTimeMillis()
.
The solve()
method should return a Optional<Schedule>
object, that provides the found solution (if any) as a Schedule
.
BasicSolver
A very simple solver that tries to schedule all first tasks, then all second tasks, then all third tasks, ...
It does so using the ResourceOrder
encoding.
GreedySolver
The greedy solver is not implemented yet. Its constructor accepts a parameter that specifies the priority that should be used to produce solutions.
DescentSolver
Not implemented yet. It should use the Nowicki and Smutnicki neighborhood for which some initial code is provided in the jobshop.solver.neighborhood
package.