package ortools_solvers

  1. Overview
  2. Docs
On This Page
  1. TODOs
Call Google OR-Tools solvers

Install

dune-project
 Dependency

Authors

Maintainers

Sources

ortools-9.15.0-1.tbz
sha256=7cb1810955bae43d7b65dc8f9ca68731048862ad1acc7dbb38adbe4d2fac47d4
sha512=95a42628e35985ffe2056f98e0d4b88684d1e669fd94101060cab9bdf694528816509e6d971442608d52f28cd78cff8b959a28e75dec7ddf0e2fdf4c4f2fe4a9

doc/README.html

OCaml interface to Google OR-Tools

Currently only a subset of CP-SAT is supported.

Pull requests providing the missing features are welcome, but please pay attention to documentation and tests.

This project provides two packages:

  • ortools is an OCaml interface for building CP-SAT models. It does not require an installation of OR-Tools as it simply works with the protocol buffer format. See utils/sat_solve_pb.{c,py} for examples of interfacing with the CP-SAT solver.
  • ortools_solvers builds on ortools to provide a simple OCaml interface for calling CP-SAT. This package builds its own version of OR-Tools and, on Linux, the libraries abseil, re2, protobuf, and protobuf-c.

Online docs: https://inria.github.io/ocaml-ortools/

opam install ocamlfind ortools_solvers
ocamlfind ocamlopt -o cp_is_fun_sat.exe \
            -package ortools_solvers -linkpkg \
            samples/sat/cp_is_fun_sat.ml
./cp_is_fun_sat.exe

TODOs

  • Finish migrating OR-Tools sat/samples
  • Use alcotest to test the interface.
  • CP-SAT: Support Interval constraints
  • CP-SAT: Support NoOverlap constraints
  • CP-SAT: Support NoOverlap2D constraints
  • CP-SAT: Support Element constraints
  • CP-SAT: Support Circuit constraints
  • CP-SAT: Support Routes constraints
  • CP-SAT: Support Table constraints
  • CP-SAT: Support Automaton constraints
  • CP-SAT: Support Inverse constraints
  • CP-SAT: Support Reservoir constraints
  • CP-SAT: Support Cumulative constraints
  • CP-SAT: Support Dummy constraints
  • Support other solvers