问题标签 [coin-or-cbc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python中不可行的解决方案,使用COIN-OR的纸浆
我正在尝试在 python 中使用 COIN-OR 解决线性规划问题。我已经完成了所有工作,但似乎有一个我无法识别的错误。很多时候,根据我试图强制的约束,解决方案要么不可行要么不正确。二进制变量的值也不正确,即〜0.1 ^ 10或〜0.999.....
请帮助我找到错误或尝试指导解决问题。
我附上
- zip 文件(代码 + 来自 excel 的输入数据文件)
- 单词文档。对于数学公式
Model1 主类接受输入并创建一个新的输出文件,然后 PanelTwo 类方法构建距离矩阵和 Njg 矩阵。
构建LP并解决LP的Model1类的构造方法似乎有错误
声明变量和约束的代码是:
M = 100000 * prob.schoolNum
linear-programming - 为什么这个混合整数程序的求解效率如此之低?
我正在尝试使用 GLPK 和 CBC 解决 MIP,但两个求解器都无法有效地找到解决方案。GLPK 求解器日志显示,它可以快速找到与真正最优值相差 0.1% 以内的解决方案,但随后会花费很长时间才能找到真正的最优值。
我知道我可以使用miptol
arg 来设置容差——我的问题是,这个问题会导致求解器在找到真正的最优值时效率低下吗?我经常用稍微不同的输入来解决这个问题的版本,它们会在不到一秒钟的时间内解决。
这是一个包含我的问题规范的文件,可以在 GLPK 中运行glpsol --cpxlp anonymizedlp.lp
。
下面是一些 GLPK 日志——您会看到在 54K 次迭代中找到了接近最优的 MIP 解决方案,然后分支树开始不断增长:
c++ - 如何在 COIN-OR Clp 中设置线性程序?
我正在使用 COIN-OR Clp,我需要在 C++ 中定义我的线性问题。我可以根据矩阵和约束向量构造我的问题,但我不明白 Clp 需要此信息的格式。如何构造 CoinPackedMatrix 或 CoinBigIndex 等,以通过 ClpSimplex 传递给 ClpSimplex。负载问题()?
linear-programming - 目标下限命令?将 PULP 与 COIN_CMD/CBC/CLP 一起使用
我正在使用 PULP 来解决带有 CBC 的 LP,fracgap(epgap) 为 0.01 (99.99%)。求解器完成后是否有返回最佳下限的命令?因此,无论求解器将目标值与什么进行比较,以了解其在 0.01 范围内,它都可以停止。
python-2.7 - 使用 cbc 求解器运行 pyomo 优化并使用 timelimit 时报告错误
我正在尝试使用 CBC 求解器(版本:2.9.8 )解决 pyomo( Pyomo 5.3(Linux 3.10.0-514.26.2.el7.x86_64 上的 CPython 2.7.13)的优化问题,并在求解器中指定时间限制60 秒。求解器得到了一个可行的解决方案(-1415.8392),但显然还不是最优的(-1415.84),如下所示。
时间限制结束后,模型似乎以错误代码退出。我想在指定的时间限制内使用 CBC 打印或获取可行解决方案的所有变量的值。或者是否有任何其他方式可以设置,如果模型获得 99% 的最佳解决方案值,则退出并打印可行解决方案。
错误代码贴在下面。
当我使用与 pyomo 相同的命令行参数手动运行 pyomo 生成的模型时,/usr/bin/cbc -sec 60 -printingOptions all -import /tmp/tmpJK1ieR.pyomo.lp -import -stat=1 -solve -solu /tmp/tmpJK1ieR.pyomo.soln
它似乎正常退出并且还编写了如下所示的解决方案。
CBC 解决方案文件的前几行是:
谁能告诉我如何在不产生任何错误的情况下获得这些值?
提前致谢。
solver - 提供给 cbc 崩溃的 LP 格式文件中的半连续部分
我在 ubuntu 17.10 docker 映像中使用 2.9.9 版的 cbc。我的 test.lp 文件有以下内容:
尝试使用 semis 部分时,我收到错误“在抛出“CoinError”实例后调用终止?中止”
在 Mac 上我得到:libc++abi.dylib:以 CoinError 类型的未捕获异常终止?中止陷阱:6
但是,如果我注释掉 Semis,它就可以正常工作。我希望支持 Semis。难道我做错了什么?
我的命令是:cbc -presolve on -import test.lp solve solu out.txt
在进一步分析中,我发现当在 cbc 提示中输入“import test.lp”时它失败并显示相同的错误是
python - 在使用 PULP 从 COIN 解决不可行后,影子价格是否有效
我正在使用 COIN-OR 的 CLP 求解器和 Python 中的 PULP 求解一个最小化线性程序。
问题中包含的变量是可能变量总数的子集,有时我的定价启发式会选择导致不可行解决方案的变量子集。之后,我使用影子价格为新变量定价。
我的问题是,如果问题不可行,我仍然可以通过调用 prob.constraints[c].pi 获得值,但这些值本身似乎并不总是“有效”或“好”。
现在,像 Gurobi 这样的求解器甚至不允许我在求解不可行后调用影子价格。
optimization - Juliaopt JuMP CbcSolver 如何打印进度
我使用 Juliopt 的 JuMP 在 julia 中编码。我想知道如何使用 CbcSolver 打印求解进度?
我已经使用了日志级别参数:m = Model(solver = CbcSolver(log=1))
它可以工作,您可以在 0 到 3 之间进行选择,更高的细节。
但我的问题是日志级别仅在求解器完成后打印,我已经设置了时间限制参数“sec”但是当它设置为更高的值时永远不会停止,我不知道为什么!
m = 模型(求解器 = CbcSolver(sec=90,log=1))
我打算尝试回调,但 Cbc 不支持回调。
我很肯定有一种打印方法,因为当我在 excel 中使用 opensolver 时,一组 Cbc 来解决它显示了进度。我只是不知道该怎么做!
pyomo - Solver (cbc) 返回非零返回码 (3)
我正在使用 pyomo 和 CBC 求解器来解决一系列二进制 inetger 线性规划问题,它在大多数情况下都有效,但我遇到了这个错误
对此的任何帮助将不胜感激。非常感谢。
package - 修改通过 JuliaPro 下载的包的代码
我的 JuliaPro 安装有问题:
我想在 Cbc C 接口中添加一个函数,但我的 JuliaPro 安装目录中只有包含文件和动态库。
我可以保持我的 JuliaPro 安装不变并且仍然可以访问 Cbc 源,还是我需要回到标准安装?
非常感谢,