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