GLPK/Matlab
Matlab 是来自 The MathWorks 的数值计算环境。Matlab 是专有的,并且跨平台。
GLPKMEX 是一个到 GLPK 库的 Matlab MEX 接口。GLPKMEX 最初由 Nicolò Giorgetti 开发,Niels Klitgord 最近也做了一些贡献。GLPKMEX 遵循 GNU 通用公共许可证 2.0 版发布。官方支持可能在 sourceforge.net/projects/glpkmex/support 获得。
GPLKMEX 二进制文件可用于 Windows 和 MacOS X,以及用于 Linux 的源代码。文件可以在 SourceForge 下载。但要小心——版本 2.8 仅为 32 位(而不是 64 位)Windows 系统提供预编译版本,而版本 2.11 现在已经是最新版本。
更多预编译二进制文件和 glpkmex 的更新版本在 Benoît Legat 的一个分支 中可用。
有关用法文档,请参阅文件 glpk.m 的注释头。
确保所有组件都与您的操作系统匹配
- 32 位 Matlab 环境
- 32 位编译的 mex 接口
- 32 位 GLPK 库文件 (.lib)
请按照文件 INSTALL 中的说明进行操作。
所需的 .lib 文件是 Build_GLPK_with_VC10.bat 创建的。不能使用来自 GLPK for Windows 的 .lib 文件。
确保所有组件都与您的操作系统匹配
- 64 位 Matlab 环境
- 64 位编译的 mex 接口
- 64 位 GLPK 库文件 (.lib)
请按照文件 INSTALL 中的说明进行操作。
所需的 .lib 文件是 Build_GLPK_with_VC10.bat 创建的。不能使用来自 GLPK for Windows 的 .lib 文件。
如果您不想使用 Matlab,还有类似的替代方案
- GNU Octave 附带集成版本的 GLPKMEX,有关详细信息,请参见 此处
- GLPK Scilab 基于 GLPKMEX,是 Scilab 的附加组件。
PARFOR 命令用于循环执行代码块,该代码块随后在工作节点集群上并行执行。2011 年,Tim Kam 将 PARFOR 与 GLPKMEX 结合使用。他遇到了内存泄漏,并确定这是由于这种组合造成的。Tim 写道:“也许使用 MATLAB 的mxFree()对于这个特定的 MATLAB 绑定(参见GLPKCC.cpp在 GLPKMEX 中)在并行工作节点级别评估这些函数时似乎不起作用?因此,我并不优雅的解决方法是在每次退出并重新进入 PARFOR 循环实例时关闭并重新启动并行作业(向并行工作节点发送关闭和重新启动信号需要几秒钟)。这样,这些并行执行的大型 GLPKMEX 作业对内存的大致需求保持恒定。”