问题标签 [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.

0 投票
2 回答
994 浏览

python - Python中不可行的解决方案,使用COIN-OR的纸浆

我正在尝试在 python 中使用 COIN-OR 解决线性规划问题。我已经完成了所有工作,但似乎有一个我无法识别的错误。很多时候,根据我试图强制的约束,解决方案要么不可行要么不正确。二进制变量的值也不正确,即〜0.1 ^ 10或〜0.999.....

请帮助我找到错误或尝试指导解决问题。

我附上

  • zip 文件(代码 + 来自 excel 的输入数据文件)
  • 单词文档。对于数学公式

Model1 主类接受输入并创建一个新的输出文件,然后 PanelTwo 类方法构建距离矩阵和 Njg 矩阵。

构建LP并解决LP的Model1类的构造方法似乎有错误

这是压缩文件

声明变量和约束的代码是:

M = 100000 * prob.schoolNum

0 投票
2 回答
2439 浏览

linear-programming - 为什么这个混合整数程序的求解效率如此之低?

我正在尝试使用 GLPK 和 CBC 解决 MIP,但两个求解器都无法有效地找到解决方案。GLPK 求解器日志显示,它可以快速找到与真正最优值相差 0.1% 以内的解决方案,但随后会花费很长时间才能找到真正的最优值。

我知道我可以使用miptolarg 来设置容差——我的问题是,这个问题会导致求解器在找到真正的最优值时效率低下吗?我经常用稍微不同的输入来解决这个问题的版本,它们会在不到一秒钟的时间内解决。

这是一个包含我的问题规范的文件,可以在 GLPK 中运行glpsol --cpxlp anonymizedlp.lp

下面是一些 GLPK 日志——您会看到在 54K 次迭代中找到了接近最优的 MIP 解决方案,然后分支树开始不断增长:

0 投票
0 回答
410 浏览

c++ - 如何在 COIN-OR Clp 中设置线性程序?

我正在使用 COIN-OR Clp,我需要在 C++ 中定义我的线性问题。我可以根据矩阵和约束向量构造我的问题,但我不明白 Clp 需要此信息的格式。如何构造 CoinPackedMatrix 或 CoinBigIndex 等,以通过 ClpSimplex 传递给 ClpSimplex。负载问题()?

0 投票
1 回答
266 浏览

linear-programming - 目标下限命令?将 PULP 与 COIN_CMD/CBC/CLP 一起使用

我正在使用 PULP 来解决带有 CBC 的 LP,fracgap(epgap) 为 0.01 (99.99%)。求解器完成后是否有返回最佳下限的命令?因此,无论求解器将目标值与什么进行比较,以了解其在 0.01 范围内,它都可以停止。

0 投票
2 回答
1186 浏览

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 解决方案文件的前几行是:

谁能告诉我如何在不产生任何错误的情况下获得这些值?

提前致谢。

0 投票
1 回答
158 浏览

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”时它失败并显示相同的错误是

0 投票
1 回答
198 浏览

python - 在使用 PULP 从 COIN 解决不可行后,影子价格是否有效

我正在使用 COIN-OR 的 CLP 求解器和 Python 中的 PULP 求解一个最小化线性程序。

问题中包含的变量是可能变量总数的子集,有时我的定价启发式会选择导致不可行解决方案的变量子集。之后,我使用影子价格为新变量定价。

我的问题是,如果问题不可行,我仍然可以通过调用 prob.constraints[c].pi 获得值,但这些值本身似乎并不总是“有效”或“好”。

现在,像 Gurobi 这样的求解器甚至不允许我在求解不可行后调用影子价格。

0 投票
0 回答
404 浏览

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 来解决它显示了进度。我只是不知道该怎么做!

0 投票
0 回答
1203 浏览

pyomo - Solver (cbc) 返回非零返回码 (3)

我正在使用 pyomo 和 CBC 求解器来解决一系列二进制 inetger 线性规划问题,它在大多数情况下都有效,但我遇到了这个错误

对此的任何帮助将不胜感激。非常感谢。

0 投票
0 回答
44 浏览

package - 修改通过 JuliaPro 下载的包的代码

我的 JuliaPro 安装有问题:

我想在 Cbc C 接口中添加一个函数,但我的 JuliaPro 安装目录中只有包含文件和动态库。

我可以保持我的 JuliaPro 安装不变并且仍然可以访问 Cbc 源,还是我需要回到标准安装?

非常感谢,