Solvers

The Solvice Platform allows for solving multiple hard optimisation problems:

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):

  1. Solve: for optimizing requests. Read all about how optimization works in Intro to optimization.
  2. Evaluate: for evaluating solutions, whether they are feasible or not, human-made or algorithm-made. We return you the score of the solution.
  3. 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):

  1. Status: Current state of the request: QUEUED, SOLVING, SOLVED, ERROR
  2. Solution: Solution response of the request
  3. Explanation: 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