Solvers
The Solvice Platform allows for solving multiple hard optimisation problems:
VRP: in routing optimisationSHIFT: creating shifts according to a predefined demandFILL: assigning resources to shiftsTASK: assigning tasks to resources within a shift
Platform structure: endpoints
Our platform is super simple. Per solver, we have 6 endpoints. You give us the input, we give you the output for an
optimization request of a certain kind.
Every solver has 3 action endpoints (POST requests):
Solve: for optimizing requests. Read all about how optimization works in Intro to optimization.Evaluate: for evaluating solutions, whether they are feasible or not, human-made or algorithm-made. We return you
the score of the solution.Suggest: for suggesting a multiple options for a single empty assignment. We return you a list of suggestions.
And 3 endpoints for retrieving information (GET requests):
Status: Current state of the request: QUEUED, SOLVING, SOLVED, ERRORSolution: Solution response of the requestExplanation: Explanation of the solution of the request. This explains what planning objects are involved in
violated constraints.
Ideal flow:
Actions
You can use the same request body for that solver for every action. Check out the schemas in
the API reference.
Solve
Solving will optimize the schedule.
POST /v2/:solver/solve
Evaluate
Evaluating will only calculate a score for a certain (not-empty) schedule.
POST /v2/:solver/evaluate
Suggest
Suggesting will create multiple suggestions for only 1 empty assignment into a schedule.
POST /v2/:solver/suggest
Information
Status
The status endpoint will return the status of the solve run and the id of the solve job.
GET /v2/:solver/jobs/:job_id/status
Solution
The solution endpoint will return the solution of the solve run if the status is SOLVED.
GET /v2/:solver/jobs/:job_id/solution
Explanation
The explanation endpoint will return the explanation of the violated constraints of the solve run if the status
is SOLVED.
GET /v2/:solver/jobs/:job_id/explanation
