10个稳定版本
| 2.0.1 | 2024年6月20日 |
|---|---|
| 2.0.0 | 2024年5月12日 |
| 1.3.0 | 2021年11月16日 |
| 1.2.0 | 2021年10月19日 |
| 1.0.1 | 2021年2月18日 |
#66 in 数学
25 每月下载量
用于 2 软件包
255KB
5.5K SLoC
grb

此软件包为Gurobi优化器提供Rust绑定。目前需要Gurobi 9.0或更高版本。
这个库最初是gurobi的分支,该分支似乎不再维护。它已经经历了一系列根本性的API变化。
此软件包支持Gurobi 9.5、10和11。
安装和链接
在开始使用此软件包之前,您应该安装Gurobi并获得许可证。
构建
在本节中,假设Gurobi已安装于/opt/gurobi/linux64。
建议您使用系统链接器的环境变量以确保可以找到Gurobi。例如,在Linux系统上,可以通过将gurobi安装目录下的lib子目录路径追加到LIBRARY_PATH来完成此操作。例如,在您的~/.profile文件中添加以下内容:
export LIBRARY_PATH="LIBRARY_PATH:/opt/gurobi/linux64/lib"
您也可以在每个项目的基础上将此设置在PROJECT/.cargo/config.toml文件中(见[env] 部分)。
另一种选择是将环境变量GUROBI_HOME设置为Gurobi的安装路径(例如,/opt/gurobi95/linux64)。
Gurobi 共享库的库名中会包含 Gurobi 的主版本号和副版本号。例如,Gurobi 11.0.* 将有一个共享库文件 libgurobi110.so。依赖于这个库的 grb-sys2 crate 将使用 -lgurobi110 链接。在 Linux 上,我们根据 GUROBI_HOME 来猜测库名。如果这个猜测不正确(或者没有设置 GUROBI_HOME,或者你在 Windows 上),你需要设置 GUROBI_LIBNAME 环境变量。例如,假设你的 LIBRARY_PATH 设置为 /opt/gurobi1003/linux64/lib(其中包含 libgurobi100.so),并且没有设置 GUROBI_HOME。那么,你应该设置 GUROBI_LIBNAME=gurobi100,这样在编译期间就会发出正确的 -lgurobi100 标志。
运行
在运行编译后的二进制文件或运行测试时,你可能得到
error while loading shared libraries: libgurobi95.so: cannot open shared object file: No such file or directory
在这种情况下,你需要设置 LD_LIBRARY_PATH(在 Windows 上我相信这被称为 PATH)环境变量,或者在编译期间通过在 RUSTFLAGS 中提供适当的链接器标志将 libgurobi95.so 的路径嵌入到 rpath 中。
对于下面的示例,假设 Gurobi 在路径 /opt/gurobi/linux64/lib/libgurobi95.so 中。你可以在你的 ~/.profile 中像设置 LIBRARY_PATH 变量一样设置 LD_LIBRARY_PATH。
export LD_LIBRARY_PATH="LD_LIBRARY_PATH:/opt/gurobi/linux64/lib"
文档
文档可以在 docs.rs 上找到
许可证
本软件在 MIT 许可证 下发布。
依赖
~1.3–1.8MB
~40K SLoC