Google OR-Tools v9.15
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
ortools.math_opt.python.parameters.SolverType Class Reference

Detailed Description

The underlying solver to use.

This must stay synchronized with math_opt_parameters_pb2.SolverTypeProto.

Attributes:
  GSCIP: Solving Constraint Integer Programs (SCIP) solver (third party).
    Supports LP, MIP, and nonconvex integer quadratic problems. No dual data
    for LPs is returned though. Prefer GLOP for LPs.
  GUROBI: Gurobi solver (third party). Supports LP, MIP, and nonconvex integer
    quadratic problems. Generally the fastest option, but has special
    licensing, see go/gurobi-google for details.
  GLOP: Google's Glop linear solver. Supports LP with primal and dual simplex
    methods.
  CP_SAT: Google's CP-SAT solver. Supports problems where all variables are
    integer and bounded (or implied to be after presolve). Experimental
    support to rescale and discretize problems with continuous variables.
  MOE:begin_intracomment_strip
  PDLP: Google's PDLP solver. Supports LP and convex diagonal quadratic
    objectives. Uses first order methods rather than simplex. Can solve very
    large problems.
  MOE:end_intracomment_strip
  GLPK: GNU Linear Programming Kit (GLPK) (third party). Supports MIP and LP.
    Thread-safety: GLPK use thread-local storage for memory allocations. As a
    consequence when using IncrementalSolver, the user must make sure that
    instances are closed on the same thread as they are created or GLPK will
    crash. To do so, use `with` or call IncrementalSolver#close(). It seems OK
    to call IncrementalSolver#Solve() from another thread than the one used to
    create the Solver but it is not documented by GLPK and should be avoided.
    Of course these limitations do not apply to the solve() function that
    recreates a new GLPK problem in the calling thread and destroys before
    returning.  When solving a LP with the presolver, a solution (and the
    unbound rays) are only returned if an optimal solution has been found.
    Else nothing is returned. See glpk-5.0/doc/glpk.pdf page #40 available
    from glpk-5.0.tar.gz for details.
  OSQP: The Operator Splitting Quadratic Program (OSQP) solver (third party).
    Supports continuous problems with linear constraints and linear or convex
    quadratic objectives. Uses a first-order method.
  ECOS: The Embedded Conic Solver (ECOS) (third party). Supports LP and SOCP
    problems. Uses interior point methods (barrier).
  SCS: The Splitting Conic Solver (SCS) (third party). Supports LP and SOCP
    problems. Uses a first-order method.
  HIGHS: The HiGHS Solver (third party). Supports LP and MIP problems (convex
    QPs are unimplemented).
  SANTORINI: The Santorini Solver (first party). Supports MIP. Experimental,
    do not use in production.

Definition at line 34 of file parameters.py.

Inheritance diagram for ortools.math_opt.python.parameters.SolverType:

Static Public Attributes

 GSCIP = math_opt_parameters_pb2.SOLVER_TYPE_GSCIP
 GUROBI = math_opt_parameters_pb2.SOLVER_TYPE_GUROBI
 GLOP = math_opt_parameters_pb2.SOLVER_TYPE_GLOP
 CP_SAT = math_opt_parameters_pb2.SOLVER_TYPE_CP_SAT
 PDLP = math_opt_parameters_pb2.SOLVER_TYPE_PDLP
 GLPK = math_opt_parameters_pb2.SOLVER_TYPE_GLPK
 OSQP = math_opt_parameters_pb2.SOLVER_TYPE_OSQP
 ECOS = math_opt_parameters_pb2.SOLVER_TYPE_ECOS
 SCS = math_opt_parameters_pb2.SOLVER_TYPE_SCS
 HIGHS = math_opt_parameters_pb2.SOLVER_TYPE_HIGHS
 SANTORINI = math_opt_parameters_pb2.SOLVER_TYPE_SANTORINI

Member Data Documentation

◆ CP_SAT

ortools.math_opt.python.parameters.SolverType.CP_SAT = math_opt_parameters_pb2.SOLVER_TYPE_CP_SAT
static

Definition at line 85 of file parameters.py.

◆ ECOS

ortools.math_opt.python.parameters.SolverType.ECOS = math_opt_parameters_pb2.SOLVER_TYPE_ECOS
static

Definition at line 89 of file parameters.py.

◆ GLOP

ortools.math_opt.python.parameters.SolverType.GLOP = math_opt_parameters_pb2.SOLVER_TYPE_GLOP
static

Definition at line 84 of file parameters.py.

◆ GLPK

ortools.math_opt.python.parameters.SolverType.GLPK = math_opt_parameters_pb2.SOLVER_TYPE_GLPK
static

Definition at line 87 of file parameters.py.

◆ GSCIP

ortools.math_opt.python.parameters.SolverType.GSCIP = math_opt_parameters_pb2.SOLVER_TYPE_GSCIP
static

Definition at line 82 of file parameters.py.

◆ GUROBI

ortools.math_opt.python.parameters.SolverType.GUROBI = math_opt_parameters_pb2.SOLVER_TYPE_GUROBI
static

Definition at line 83 of file parameters.py.

◆ HIGHS

ortools.math_opt.python.parameters.SolverType.HIGHS = math_opt_parameters_pb2.SOLVER_TYPE_HIGHS
static

Definition at line 91 of file parameters.py.

◆ OSQP

ortools.math_opt.python.parameters.SolverType.OSQP = math_opt_parameters_pb2.SOLVER_TYPE_OSQP
static

Definition at line 88 of file parameters.py.

◆ PDLP

ortools.math_opt.python.parameters.SolverType.PDLP = math_opt_parameters_pb2.SOLVER_TYPE_PDLP
static

Definition at line 86 of file parameters.py.

◆ SANTORINI

ortools.math_opt.python.parameters.SolverType.SANTORINI = math_opt_parameters_pb2.SOLVER_TYPE_SANTORINI
static

Definition at line 92 of file parameters.py.

◆ SCS

ortools.math_opt.python.parameters.SolverType.SCS = math_opt_parameters_pb2.SOLVER_TYPE_SCS
static

Definition at line 90 of file parameters.py.


The documentation for this class was generated from the following file: