# The Solvice Platform

# Solvers

The Solvice Platform allows for solving multiple hard optimisation problems:

`VRP`

: in routing optimisation`SHIFT`

: creating shifts according to a predefined demand`FILL`

: assigning resources to shifts`TASK`

: 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, ERROR`Solution`

: Solution response of the request`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`

Updated 5 months ago