recommend_backend
Rank solver backends for an optimization problem to identify the best usable option, using problem structure and backend capabilities—no solving or network requests.
Instructions
Rank the solver backends of this server for a given problem, without solving it.
Advisory only: solve_optimization always uses problem.solver.backend exactly as
given and never substitutes a backend. Each entry reports whether the backend is
usable right now (installed, credentialed, permitted by policy, within limits),
the model type it would compile to, deterministic reason codes, blocking errors,
and the same warnings validate_optimization_problem would give for that backend.
Based only on the problem structure, backend capabilities and server policy —
no cost estimation, no network requests, no quota consumed.
A problem with integer variables adds reason codes: R_INTEGER_NATIVE when the
backend compiles to cqm and takes integers as they are, R_INTEGER_ENCODED when
it compiles to bqm and must binary-encode them, and R_INTEGER_BLOWUP when that
encoding also raises an INTEGER_QUADRATIC_BLOWUP warning — a backend carrying
that code is ranked after the ones without it.
The entries are ordered best first, so the first usable entry is the default
choice when the user named no backend. Among backends of the same kind, two
reason codes come from a backend's declared, measured structural preference:
R_DENSE_STRENGTH when it declares that it reaches the same energy as its
peers in a fraction of the time on large dense unconstrained models and this
problem is one, R_PENALTY_WEAKNESS when it declares a lower hit rate on
models whose hard constraints compile to penalties and this problem has an
effective hard constraint. Both shapes are bqm-path shapes, so a backend that
compiles to cqm is never matched. A backend carrying the first is ranked
ahead of its neighbours, one carrying the second behind them; neither changes
which backends are usable.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| problem | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| valid | Yes | The problem's own validity. When false, recommendations is empty. | |
| errors | No | The problem's errors when it is invalid; empty otherwise. | |
| advisory | No | A fixed sentence restating that a solve always uses problem.solver.backend as given and never substitutes one. | Advisory only: solve_optimization always uses problem.solver.backend as given and never substitutes a backend. |
| recommendations | No | Every registered backend, ranked best first. |