- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试在我的 Haskell 项目中使用glpk-hs,但我完全不知道如何去做。我正在使用 stack 来运行我的程序,我的困惑很可能来自于我对其工作原理缺乏了解。
话虽这么说,我已经下载了glpk-hs-0.7并将提取的文件夹放入我的项目文件夹中。我使用 stack ghci my_program.hs
运行代码,并在 stack.yaml
文件上具有以下依赖项:
“额外的部门:
-喘息-1.2.0.0
- glpk-hs-0.7"
成功安装gasp,但glpk安装失败,并出现以下错误:glpk-hs > * 缺少(或错误)C 库:glpk
.
我还尝试通过下载可执行文件并将其添加到 PATH 来为 Windows 安装 glpk,当我在 cmd 上运行 glpsol
时,它会显示以下消息:
GLPSOL:GLPK LP/MIP 求解器,v4.65
未指定输入问题文件;尝试 glpsol --help
我错过了什么?我注意到在 glpk-hs-0.7/glpk 文件夹中有一个 glpk.c 文件。我应该编译并执行这个程序吗?
顺便说一句,我现在在 Windows 10 上运行,但我主要在 Linux 计算机上工作,所以我希望有一种适用于这两个系统的解决方案(如果有的话)。
谢谢!
最佳答案
glpk-hs
软件包为单独安装 GLPK 库提供了 GHC 接口(interface),但安装 glpk-hs
不会自动安装所需的库。编译包的"glpk.c"
文件没有帮助,因为这只是一些帮助构建界面的 stub C 代码。 (绝大多数为其他库提供“桥梁”的 GHC 包都是这样设计的,因此 glpk-hs
不是一个特殊情况。)
在 Linux 下,您需要使用发行版的软件包管理器以“通常”的方式安装 GLPK 软件包的开发版本(例如,对于基于 Debian 的发行版,您需要运行 apt install libglpk-dev
),然后再尝试(重新)安装glpk-hs
包。
在 Windows 下,我想从 GLPK for Windows Project Page 下载带有预编译二进制文件的 zip 文件可能是最简单的。 。将其解压到方便的地方,然后按照该网页上的说明,根据需要将 32 位或 64 位 DLL 复制到 c:\windows\system32
目录。
为了stack
要针对该库进行构建,它需要一些额外的库并指定包含文件目录。在您的项目特定stack.yaml
(或在全局 config.yaml
中),您需要添加指向适当的解压路径的行。例如,类似(假设 64 位环境):
# in stack.yaml or config.yaml
extra-lib-dirs: ["c:\\users\\XXXXX\\glpk-4.65\\w64"]
extra-include-dirs: ["c:\\users\\XXXXX\\glpk-4.65\\src"]
此外,当 Cabal 寻找 glpk.lib
时,我遇到了另一个问题。而不是glpk_4_65.lib
,所以我不得不将库复制过来。我不确定是否有更好的方法来做到这一点。
> cd c:\users\XXXXX\glpk-4.65\w64
> cp glpk_4_65.lib glpk.lib
现在,最新的glpk-hs-0.7
软件包与当前的 GHC 不兼容 containers
版本,因此您需要在 stack.yaml
中使用较早的解析器文件。 lts-12.26
解析器为我工作:
# in stack.yaml
resolver: lts-12.26
最后,GLPK 仅适用于线程运行时,因此将标志添加到您的 .cabal
中。文件:
-- in your .cabal file
executable glpktest
ghc-options: -threaded -O2
您可以从 https://github.com/jyp/glpk-hs/blob/master/examples/example1.hs 获取示例。删除import Algebraic.Classes
行,因为不需要它,并且具有以下 executable
您的 .cabal
中的条款文件:
-- in your .cabal file
executable glpktest
hs-source-dirs: src
main-is: Example1.hs
default-language: Haskell2010
build-depends: base >= 4.7 && < 5
, glpk-hs
, containers
ghc-options: -threaded -O2
以及以下stack.yaml
:
-- full stack.yaml contents
resolver: lts-12.26
packages:
- .
extra-deps:
- glpk-hs-0.7
- gasp-1.2.0.0
extra-lib-dirs: ["c:\\users\\XXXXX\\glpk-4.65\\w64"]
extra-include-dirs: ["c:\\users\\XXXXX\\glpk-4.65\\src"]
你应该能够stack build
和stack exec glpktest
那个例子。如果可执行文件正确构建但运行它没有产生输出,则可能是因为未找到 DLL。确保正确的 DLL 集已复制到 c:\windows\system32
.
总结假设 64 位环境的所有步骤:
w64
复制 DLL目录到c:\windows\system32
w64
目录,复制glpk_4_65.lib
至glpk.lib
.stack.yaml
上面带有解析器 lts-12.26
以及适当的目录设置。stack build
Example1.hs
上面链接(首先删除不必要的 import
行)与 executable
上面给出的条款复制到您的.cabal
中文件(包括 -threaded
GHC 选项)stack exec glpktest
,您有望看到打印的解决方案(x1=40、x2=50 和 x3=0)。关于haskell - 安装 glpk-hs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59911444/
我的代码中发生了一些奇怪的事情。我创建了一个函数来动态创建 MIP 问题以供 GLPK 解决。问题是在代码的某些部分 JVM 崩溃了。 调试后,我发现崩溃恰好发生在我创建 intArray (GLPK
我需要编写一个整数程序。它非常简单,但问题是几乎没有关于如何使用可调用库为 GLPK 编写整数程序的好信息,更不用说 GLPK# 了。 我的整数程序看起来非常像这样: Maximise: X[0] +
我正在尝试解决 GLPK 中的问题,但它给了我这个消息“问题没有主要可行的解决方案”。您将在下面找到该程序。给我错误的约束是“约束 6”,但我不知道如何修复它。谢谢你们的帮助 param n, int
我希望这对某人来说是显而易见的。我只使用过 GLPK/MathProg。 我无法弄清楚 GNU MathProg(在 GLPK 内)中的语法来执行以下操作,例如: set PartsOfWeek; s
我刚刚编写了一个 python 脚本来使用 igraph 模块执行优化模块,这个函数使用了 GLPK 库,但是即使在安装了 python-glpk 和几乎所有与 glpk 相关的包之后我也会收到这个错
我无法在一个名为 dist 的包含示例上运行我通过 apt-get 安装的 GLPK 求解器 (glpsol)。它抛出以下内容: $ glpsol dist.mod GLPSOL: GLPK LP/M
我有一个线性问题,我想在 Java 上使用 GLPK 获得最佳对偶解决方案。我试过这个: parm = new glp_smcp(); parm.setMeth(GLPKConstants.GLP_D
我一直在尝试在我的 Haskell 项目中使用glpk-hs,但我完全不知道如何去做。我正在使用 stack 来运行我的程序,我的困惑很可能来自于我对其工作原理缺乏了解。 话虽这么说,我已经下载了gl
我在 Linux 下使用 GLPK 来解决一些线性规划问题。在我的一个限制中,我有: s.t. example: binary_var+binary_val 0 还是 1? 最佳答案 如果binary
我正在尝试在我的 java 项目中使用 GLPK。我点击了这里的链接https://wiki.nps.edu/pages/viewpage.action?pageId=113606659安装和配置 j
我正在使用 Glpk java,我必须解决这个问题(原始) \* Problem: Branch and Bound Problem *\ Maximize z: + 0.5 x1 + 0.5 x2
如何在我的控制台或文件上打印 java-glpk 中所有已解决的问题? 类似这样的事情:(此输出来自 gusek) ------ ------------ ------------- -----
GLPK 是否可以将解决方案分散到多个等成本变量上? 假设我在 myprog 中有这段代码: from pymprog import * begin() loads = var('loads', 3)
我在我的程序中使用 GNU 线性编程工具包。一切正常,但是当我用 valgrind 检查程序时,我发现了一些内存泄漏: ==7051== 160 bytes in 1 blocks are still
我正在使用 Glpk java 来解决 LP 松弛问题。 奇怪的是,有时它可以工作,但有时 JVM 会崩溃。当它崩溃时,我遇到了这个错误: # A fatal error has been detec
较新版本的 glpk 没有 LPX api,而旧版软件包需要它。我如何将旧包(如 COBRA )与新版本的 glpk 一起使用? 请注意,COBRA 可用于 MATLAB 和 Python。两者都需要
我正在尝试安装 sparkTable在依赖于 Rglpk 的 R 3.1.0 中.我在系统上手动安装了 GPLK 并将 libs 文件夹添加到 LD_LIBRARY_PATH在为 install.pa
我正在使用 GLPK C API 来解决混合整数规划问题。有没有办法以人类可读的格式打印目标/约束以进行调试? 最佳答案 也许最好的格式是 CPLEX LP format 。它看起来像这样: Maxi
我正在尝试在我的 java 项目中使用 GLPK。我点击了这里的链接https://wiki.nps.edu/pages/viewpage.action?pageId=113606659安装和配置 j
我找到了很多关于如何为求解器指定模型(问题/约束)和从数据文件读取参数的 GLPK for Java 示例,但关于编程参数输入/输出的内容很少。在我的例子中,我需要以编程方式将值(权重和值的数组)提交
我是一名优秀的程序员,十分优秀!