#优化 #CSP #线性求解器 #SAT #or-tools

sys or-tools-sys

非官方的Rust封装库,用于访问C++库Google OR-Tools,这是一种开源的组合优化软件

1个稳定版本

9.7.0 2023年11月13日

#10#线性求解器


or-tools 中使用

Apache-2.0

10KB
99

Google Or-Tools

Current Crates.io Version

or-tools 是一个Rust库,它绑定到Google Or-Tools C++库的一些特定功能。

此仓库将致力于改进库的内容。

包括

  • 待定 # TODO: 待实现!

构建

最低Rust版本

请将您的Rust编译器调整到版本 1.73 或更高。

支持的平台

  • Linux { aarch64, x86_64 }
    • Alpine Edge
    • Arch Linux (AUR)
    • CentOS 7 LTS
    • Debian 11
    • Fedora 37, 38
    • OpenSuse Leap
    • Ubuntu 20.04, 22.04, 23.04
  • MacOS { aarch64, x86_64 }
    • macOS Intel
    • macOS M1
  • Windows { x86_64 }
    • Visual Studio 2022

您的包管理器可能不支持在上面的“支持”标记的平台上的部署。

为了更好的维护,请告知我们其他平台是否支持它。此外,您可以通过 Issues 向我们主张特定平台应该支持它。

依赖

  • C++20编译器(GCC 10或更高版本)
  • cmake>= 3.18
  • [可选] Or-Tools C++

构建依赖

  • COIN-OR求解器
  • git
  • Google Abseil-cpp
  • Google Protobuf
  • SCIP
  • zlib

构建本地库

dlib-face-recognition 需要 Or-Tools 来安装。您可以选择提供一个现有的系统级安装,或者使用此库构建它。

  • 在编译时构建它
    • cargo build --features build-native
      
  • 使用系统级依赖项
    • cargo build
      

当启用 build-native 功能标志时,将通过 or-tools-sys 安装C++库 Or-Tools

对于构建,此库使用 cmake,因此请确保已安装 cmake

build-native 标志默认禁用,这会提高构建时间。

构建Rust软件包

dlib-face-recognition 包含一个默认开启的 solver-all 功能标志。

solver-all 将启用所有受支持的 开源 求解器。关于求解器的最新信息可以在以下链接中找到:[https://github.com/google/or-tools/blob/stable/cmake/README.md#solvers-supported](https://github.com/google/or-tools/blob/stable/cmake/README.md#solvers-supported)

可以使用以下命令禁用 solver-all 标志:cargo build --no-default-features

GPL/专有求解器

dlib-face-recognition 包含一个 solver-all-nonfree 功能标志,可以与 cargo build --features solver-all-nonfree 一起使用。

solver-all 将启用所有受支持的求解器,包括 GPL 和/或 专有 求解器。关于求解器的最新信息可以在以下链接中找到:[https://github.com/google/or-tools/blob/stable/cmake/README.md#solvers-supported](https://github.com/google/or-tools/blob/stable/cmake/README.md#solvers-supported)

有关嵌入专有求解器的详细说明,请点击以下链接

  • CPLEX: [https://github.com/google/or-tools/blob/stable/cmake/README.md#enabling-cplex-support](https://github.com/google/or-tools/blob/stable/cmake/README.md#enabling-cplex-support)
  • XPRESS: [https://github.com/google/or-tools/blob/stable/cmake/README.md#enabling-xpress-support](https://github.com/google/or-tools/blob/stable/cmake/README.md#enabling-xpress-support)

默认禁用 solver-all-nonfree 标志,这会提供更长的构建时间。

依赖

~0–1.1MB
~28K SLoC