问题标签 [coin-or]

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 投票
0 回答
48 浏览

julia - 如何使用 JuMP 0.19 更改下限

我有一个变量x,其下限被定义为lb=zeros(3),之后我想将 的每个元素更改为lb数组的相等元素,就像c=[1;2;1]我想要的那样,让lb[i]=c[i] for i=1:length(c)我以前在以前的版本中通过以下方式执行此操作:

当然在哪里m=Model(Clpsolver())

0 投票
1 回答
1821 浏览

python - 您如何使 CBC 在时间限制时返回最佳解决方案?(皮莫)

我正在尝试在 Pyomo 上使用 CBC(v2.10.3) 来解决整数线性问题。

执行求解器时,我当前设置的时间限制为 600 秒。

在这个时限内,求解器设法找到多个可行的解决方案。但是,当它在 600 秒结束时超时,它不会返回找到的最佳整数解。相反,它返回一个非整数解决方案。

有没有办法在 pyomo 上使用 CBC 在时间限制结束时返回最佳整数解决方案?

(我知道设置最优差距。但是,最好在给定的时间内解决并返回找到的最佳解决方案。)

谢谢您的帮助!

0 投票
1 回答
277 浏览

python - 在 CyLP 中初始化整数变量

我目前正在使用CyLPPython 中的包进行混合整数线性编程。但是,我无法初始化整数变量。根据文档,我已经传递isInt = TrueaddVariable方法,但它什么也没做。

我的程序的一个最小示例如下所示。时的最佳值应该是 2 x = y = 1,但结果却不如预期。

有没有其他方法来初始化整数变量CyLP?或者我错过了一些关于addVariable方法的东西?

顺便说一句,我想Clp3002W Empty problem知道s.primal().

提前致谢。

0 投票
2 回答
327 浏览

julia - Julia JuMP Cbc 求解器无限挂起,没有消息,也没有退出

我正在使用 Julia 语言(版本 1.3.1)、JuMP 包(版本 0.20.1)和 Cbc 包(版本 0.6.6)来解决带有 ubuntu:16.04 的 docker 容器中的优化问题。优化器 Cbc 似乎已挂起,CPU 使用率为 100%,没有退出也没有任何消息。这些问题很少发生在类似的问题上,而且似乎不可复制:如果我用相同的数据运行相同的代码,它就不会再挂起。希望通过gdb获得的回溯可以有用。

如果需要,我可以分享我的模型。它有 11520 个变量,4652 个约束,10080 个变量用于线性目标函数。

这是 Cbc 优化器的日志:

欢迎使用 CBC MILP Solver 版本:2.10.3 构建日期:2019 年 10 月 7 日

命令行 - Cbc_C_Interface -threads 0 -seconds 360.0 -maxNodes 30000 -logLevel 1 -solve -quit(默认策略 1)秒从 1e+100 更改为 360 maxNodes 从 2147483647 更改为 30000 连续目标值为 2.3607e+08 - 0.11 秒 Cgl0002I 3197 个变量已修复 Cgl0005I 7 SOS 有 8323 个成员 Cgl0004I 处理的模型有 15 行,8323 列(8323 个整数(其中 8323 个二进制))和 26556 个元素 Cbc0045I 仅修复非零变量。Cbc0045I 警告:mipstart 值不能用于构建解决方案。

此处 Cbc 似乎挂起并变得无响应,CPU 使用率为 100%。

这里是正在运行的 pid 进程的回溯:

#0 0x00007f163c3facc9 在?? () 来自目标:/root/.julia/packages/Cbc/vWzyC/deps/usr/lib/libCbcSolver.so #1 0x00007f163c4125b3 in ?? () 来自目标:/root/.julia/packages/Cbc/vWzyC/deps/usr/lib/libCbcSolver.so #2 0x00007f163c467586 in ?? () 来自目标:/root/.julia/packages/Cbc/vWzyC/deps/usr/lib/libCbcSolver.so #3 0x00007f163c46aebc in ?? () 来自目标:/root/.julia/packages/Cbc/vWzyC/deps/usr/lib/libCbcSolver.so #4 0x00007f163c40594a in ?? () 来自目标:/root/.julia/packages/Cbc/vWzyC/deps/usr/lib/libCbcSolver.so #5 0x00007f163c29afbe in ?? () 来自目标:/root/.julia/packages/Cbc/vWzyC/deps/usr/lib/libCbcSolver.so #6 0x00007f163c2ad844 in ?? () 来自目标:/root/.julia/packages/Cbc/vWzyC/deps/usr/lib/libCbcSolver.so #7 0x00007f163b8ea31f 在 CbcHeuristicDive::solution(double&, int&, int&, OsiRowCut**, CbcSubProblem&, double*) () from target:/root/.julia/packages/Cbc/vWzyC/deps/usr/lib/libCbc.so.3 #8 0x00007f163b8ebf42 in CbcHeuristicDive::solution(double&, double*) () from target:/root/.julia/packages/Cbc/vWzyC/deps/usr/lib/libCbc.so.3 #9 0x00007f163b938fd2 in CbcModel::solveWithCuts(OsiCuts&, int, CbcNode*) () from target:/root/. julia/packages/Cbc/vWzyC/deps/usr/lib/libCbc.so.3 #10 0x00007f163b9472d7 in CbcModel::branchAndBound(int) () from target:/root/.julia/packages/Cbc/vWzyC/deps/usr /lib/libCbc.so.3 #11 0x00007f163c214c47 in CbcMain1(int, char const , CbcModel&, int ( )(CbcModel, int), CbcSolverUsefulData&) () from target:/root/.julia/packages/Cbc/vWzyC/deps/usr/lib/libCbcSolver.so #12 0x00007f163c2252ae in CbcMain1(int, char const**, CbcModel&) () from target:/root/.julia/packages/Cbc/vWzyC/deps/usr/lib/libCbcSolver.so #13 0x00007f163c19bc50 in Cbc_solve () from target:/root/.julia/packages/Cbc/vWzyC/deps/usr/lib /libCbcSolver.so #14 0x00007f16698e7e71 在?? () #15 0x000000000000000c 在 ?? () #16 0x00007fff70694480 在?? () #17 0x00007f16604ce110 在?? () #18 0x000000000000262e 在?? () #19 0x0000000000000006 在?? () #20 0x00007fff70694480 在?? () #21 0x00007f165966ab40 在?? () #22 0x00007f164a7ce1d0 在?? () #23 0x00007f164a7ce220 在?? () #24 0x00007f164a7ce1d0 在?? () #25 0x00007f1688be7b00 在?? () 在 /buildworker/worker/package_linux64/build/src/array.c:738 来自目标:/opt/julia/bin/../lib/libjulia.so。1 #26 0x00007f163d909af0 在?? () #27 0x00007f164439d3c0 在?? () #28 0x00007f1689524200 在?? () #29 0x0000000000000000 在 ?? ()

在控制台中使用next命令,gdbCbC 会捕获 StackOverflowError() 错误。

目标函数是否有太多项?

任何帮助都是非常可观的。

谢谢

0 投票
0 回答
33 浏览

linear-programming - C++如何使用COIN-OR排练库?

我下载并安装了 COIN-OR Rehearse - 用于线性编程的 C++ 库。一切正常,但我不知道如何在这个库中运行我自己的代码。其中的所有内容都由 makefile 运行。git 上的文档很差。有谁知道如何比运行下载的代码(测试)更广泛地使用它?

0 投票
0 回答
186 浏览

python-3.x - 如何修复 M1 Mac 上 CyLP 的导入错误?

我想使用 CyLP 包(https://github.com/coin-or/CyLP)。我的操作系统是 macOS Big Sur 11.5.1。我正在通过 anaconda3 使用 Python 3.8.8。按照自述文件中的说明,我首先通过自制软件安装了 cbc。由于它无法与brew install coin-or-tools/coinor/cbc我使用brew install cbc. 然后我通过pip install cylp.

安装成功。CyLP 安装在目录中/opt/homebrew/anaconda3/lib/python3.8/site-packages/cylp。但是,现在如果我尝试python -m unittest discoverCyLP 目录中的单元测试,它会给我下面附加的错误。

提到的文件在目录中,所以我不知道如何解决这个问题。有谁能够帮我?


更新 12.09.21 它仍然不起作用,但我取得了进展。

首先,我尝试正确安装 CBC。我认识到了这个问题,所以我从源代码安装了 CBC 及其所有依赖项。完成后,我仍然无法使用pip install cylp. 即使设置COIN_INSTALL_DIR到我的安装目录后,它也显示与我的架构相关的错误,x86 是什么。我意识到我一直在尝试 anaconda 3.8 上的所有内容,所以我改用 python 3.9。接下来,我克隆了 cylp 的存储库并使用pip3 install.

现在它显示了我的架构并且不再忽略.dylib文件。但现在我得到这个错误:


第二次更新 12.09.21

我想我解决了这个问题。

我仍然收到此错误:

但是第一个可能是可以忽略的,第二个只是GitHub Repository中不存在两个文件的产物。

所以我尝试编写自己的示例代码,到目前为止一切正常。

在修复发生的错误的最后一步中,我插入ICbcModel.cppCbcSolverUsefulDatato give toCbcMain0CbcMain1.

我希望如果有人有同样的问题,这篇文章会帮助他们。

0 投票
1 回答
34 浏览

gekko - 使用协方差矩阵优化整数规划

我正在尝试做一个优化问题,该问题需要计算受实现中变量影响的新协方差矩阵。

我可以通过 scipy 优化在我的目标函数中使用 numpy.cov 最小化来做到这一点。但是,由于我需要整数约束,我无法想出一个解决方案来解决我的 cvxpy、gekko 问题,因为大多数在线优化问题都有一个固定的协方差矩阵。

以下是我的 scipy 代码:

如果有人有解决方案将不胜感激!谢谢你。