# Solvers ## The `Solver` interface `jobshop.solvers.Solver` provides a common interface for all solvers. ## Basic solver A very simple solver that tries to schedule all first tasks, then all second tasks, then all third tasks, ... It does so using the `JobNumbers` encoding ## Random solver Another very simple solver based on the `JobNumbers` encoding. At each iteration, the solver generates a new random solution keeps it if it the best one found so far. It repeats this process until the deadline to produce a result is met and finally returns the best solution found. ## Greedy solver The greedy solver is not implemented yet. Its constructor accepts a parameter that specifies the priority that should be used to produce solutions. ## Descent Solver ### Neighborhoods TODO