or-tools:谷歌优化开源工具(Google Optimization Tools)

jopen 6年前


The suite contains:

  • A constraint programming solver.
  • A simple and unified interface to several linear programming and mixed integer programming solvers, including CBC, CLP, GLOP, GLPK, Gurobi, SCIP, and Sulum.
  • Knapsack algorithms
  • Graph algorithms (shortest paths, min cost flow, max flow, linear sum assignment)

The or-tools suite is:

  • Open source and free. Examples and source code are freely available for download under Apache License 2.0.
  • Alive. The library is actively maintained; improvements are made frequently.
  • Documented. In addition to this site, there are many examples available in C++, Python, Java, and C#.
  • Portable. The code conforms strictly to Google C++ coding style. Everything is coded in C++ and available through SWIG in Python, Java, and .NET (using Mono on non-Windows platforms). It's known to compile on:
    • gcc 4.4.x on Ubuntu 10.04 and up (10.10, 11.04, 11.10 and 12.04).
    • Xcode >= 3.2.3 on Mac OS X Snow Leopard and Mac OS X Lion (gcc 4.2.1).
    • Microsoft Visual Studio 10.
  • Efficient. We use it internally at Google, where speed and memory consumption are critical.
  • User-friendly. We try to make our code as easy to use as possible (especially in Python and C#).
  • Well tested. We use it in mission-critical applications at Google, as do many external developers.
  • </ul>

    On this site you'll find:

    • A general introduction to combinatorial optimization.
    • Installation instructions for or-tools.
    • Code examples in the navigation bar for particular problems you might want to solve.
    These libraries have been tested under:    - Ubuntu 10.04 and up (32 and 64 bit).    - Mac OS X Mavericks and up with Xcode 5.x (64 bit).    - Microsoft Windows with Visual Studio 2013    Upon checking out the repository, you will get the following structure:    or-tools/    LICENSE-2.0.txt        <- Apache license    Makefile               <- Top-level Makefile    CONTRIBUTING           <- Contribution guidelines    README                 <- This file    bin/                   <- Compiled binaries    com/                   <- All Java code    dependencies/          <- Built dependencies    examples/              <- Root directory for all examples    examples/com/          <- Java examples    examples/cpp/          <- C++ examples    examples/csharp/       <- C# examples    examples/python/       <- Python examples    examples/tests/        <- C# unit tests and bug reports    lib/                   <- Libraries and jar files    makefiles/             <- Subsidiary makefiles    objs/                  <- C++ object files    src/                   <- Source code    src/algorithms/        <- Basic algorithms    src/base/              <- Basic utilities    src/constraint_solver/ <- Constraint solver    src/gen/               <- Generated files    src/graph/             <- Graph algorithms    src/linear_solver/     <- Linear solver wrapper    src/util/              <- Utilities needed by the constraint solver    tools/                 <- Windows binaries