问题标签 [gurobi]

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 回答
3736 浏览

mathematical-optimization - 求解整数线性程序:为什么求解器声称可解实例不可行?

我正在尝试解决整数规划问题。我已经尝试过使用SCIPLPSolve

例如,给定 A 和 B 的最终值,我想在以下 C# 代码中求解 valA:

我以 lp 格式将其实现为这个整数程序(截断除法会导致一些并发症):

然后试图解决它:

但是,我知道有一个可行的解决方案,因为我知道一个有效的变量赋值。添加以下条件会导致找到解决方案:

两个不同的求解器声称这个可行的问题是不可行的。我是否违反了一些不成文的条件?这是怎么回事?有没有真正解决问题的解决方案?

0 投票
3 回答
10753 浏览

python - Gurobi python获取定义变量的值

如何获取我之前在 gurobi python 中定义的变量的值(使用 addVar)?我需要比较 gurobi 变量的值,然后执行计算以达到我的目标变量。在优化之前也必须这样做。

0 投票
0 回答
112 浏览

gurobi - 使用 Gurobi 求解器的 Web 版本时出错

我正在尝试使用 Gurobi 求解器网络版本来解决线性规划问题。这是链接: http: //www.neos-server.org/neos/solvers/index.html 但无论我提交的问题如何,我都会收到以下错误:

---------- 开始求解器输出 -----------
在时间执行 /opt/neos/Drivers/gurobi/gurobi-mps-wrapper-driver.py:2013-06- 10 14:17:48.434197
错误:/usr/bin/env:/opt/gurobi/latest/linux64/bin/python2.5: 没有这样的文件或目录

我正在提交 MPS 格式的文件。

为什么我会收到此错误?

0 投票
1 回答
885 浏览

python - PyDev + gurobipy + Fedora 18 = ImportError

我正在尝试在 Fedora 18 安装上使用 Gurobi 的 python 模块 gurobipy。

到目前为止,我通过执行与 Gurobi 一起分发的 Python 二进制文件,使 Gurobi 下载的提取和未修改版本“工作”。

但是,我无法让它包含 gurobipy 模块:

由于这是发行版的 Python2.7 版本,我不知道如何继续,更不用说将库集成到我系统的 Python2.7 64 位版本中。

0 投票
1 回答
938 浏览

ipython - 在 Linux 上的 Enthought Canopy 编辑器中使用 Gurobi 求解器

我目前正在使用 python 使用 Gurobi 求解器。以前,我只是混合使用文本编辑器和终端来编写和运行我的模型,但我目前正在尝试使用 Enthought Canopy Editor。我有一个模型,当我在终端中运行时可以使用python model.py,但是当我尝试%run model.py在 Canopy 的 iPython shell 中运行时,我得到:

我的猜测是终端和 Canopy 在不同的地方寻找模块,但我不知道如何纠正它。我在 Gurobi 组网站上找到了有关 OS X 10.8 上的 Enthought Canopy 和 Gurobi 的参考资料,但不知道这些指令与在 Linux 上执行它有多大不同,甚至不知道他在 Canopy 的站点包中安装 Gurobi 的意思。

更新:根据我点击的第一个链接找到的信息,我确实留下了框住的点击,使 Canopy 成为我的默认目录。您必须手动添加 PATH 变量,我想念他们说我必须这样做。所以我就这么做了。我现在在我的终端中运行 Canopy 的 iPython 版本(使用 sys.path 检查);但是,当我尝试运行 python 时,我得到了一个巨大的错误列表。

建议?

并回答@Jonathan 的问题:

sys.prefix='/usr'

sys.path

  • /usr/lib/python2.7
  • /usr/lib/python2.7/plat-x86_64-linux-gnu
  • /usr/lib/python2.7/lib-tk
  • /usr/lib/python2.7/lib-old
  • /usr/lib/python2.7/lib-dynload
  • /usr/local/lib/python2.7/dist-packages
  • /usr/lib/python2.7/dist-packages
  • /usr/lib/python2.7/dist-packages/PILcompat
  • /usr/lib/python2.7/dist-packages/gtk-2.0
  • /usr/lib/pymodules/python2.7
  • /usr/lib/python2.7/dist-packages/ubuntu-sso-client

gurobipy.__file__ = '/usr/local/lib/python2.7/dist-packages/gurobipy/gurobipy.so'

0 投票
1 回答
686 浏览

python - AMPL 与 Python - 导入表(多维字典?)

我是一名 AMPL 用户,尝试使用 Python(我的第一个 Python 代码)编写线性编程优化模型。我试图找到如何在复合集上声明索引参数。例如,在 AMPL 中,我会说: Set A Set B Set C param x{A, B, C} param y{A, B, C} param z{A, B, C} 以上的集合和参数可以是通过 AMPL 从数据库中轻松读取。

我从数据库中读取的表有六个字段,即 A、B、C、x、y、z。其中三个是主键(A、B、C),其余的(x、y、z)是在主键上索引的值。

PYTHON PART:我正在使用 PYODBC 模块与 SQL Server 连接。我试过“dict”,但它只能索引一个键。我不确定应该使用哪个 python 功能将前三个字段声明为复合集,并将 x、y 和 z 声明为复合集上的索引值。

当然这是不正确的。我想不出办法来做到这一点。

请帮助我:)提前谢谢!

0 投票
1 回答
499 浏览

python - ILOG OPL 与 Python

我正在尝试使用 Gurobi Python API 将我的 OPL 模型转换为 Python。我想知道 Python 中是否存在等效的 OPL 元组结构。最好举个例子:

Route 和 Leg 是我的优化模型中的集合;Curr_Time、Min_Time、Max_Time 和 Cube 是在 Route 和 Leg 集上索引的参数。

在 OPL 中,由于我将 Route 和 Leg 定义为键,因此可以将它们视为集合,并且可以对参数进行索引。例如,要解决 Curr_Time,我可以这样做:

我一直在努力在 Python 中找到类似的东西。到目前为止,我在 Python 中有以下内容:

我不确定如何处理 Curr_Time 或 Min_Time?到目前为止,我有:

除了听写,还有更好的方法吗?我想知道是否还有其他选项可以让我以 OPL 允许的方式处理表字段。

0 投票
2 回答
1857 浏览

linear-programming - Gurobi 花了很长时间为 LP 建立模型

我一直在用 gurobi 解决一些 LP,我注意到对于我遇到的大多数情况,构建模型比实际解决它花费的时间更长。也许这是标准,但对我来说似乎很奇怪。

一个特定的实例需要 1.75 秒来解决,但用于构建模型的以下代码部分需要 13.6 秒:

在上述示例中,numSeq1 = 7475、numSeq2 = 7475、numIS2 = 2517,最终 LP 有 9992 行和 9992 列。我知道这相当大,但构建模型所需的时间几乎是解决模型的 10 倍,这似乎很奇怪。

我尝试了 expr.clear() 而不是为每个约束创建一个新的 GRBLinExpr (注释掉),但它没有帮助。

有什么方法可以让 gurobi 更快地构建模型?如果瓶颈在于构建模型,cplex 在这方面会比 gurobi 更好吗?

谢谢!

0 投票
1 回答
749 浏览

optimization - k个连续整数约束

如何在约束编程中陈述以下约束?(最好在 Gurobi 或 Comet 中)。

S 是一个大小为 n 的整数数组。我可以用来填充数组的整数集在 1-k 范围内。每个可以使用的整数都有一个约束ci 。ci表示连续整数i的最小数量。

例如,如果 c1 = 3, c2 = 2,则 1112211112111 不是有效序列,因为必须有两个连续的 2,而 1112211122111 是有效序列。

0 投票
0 回答
462 浏览

python - 在 Win 7 上的 Enthought Canopy 中使用 Gurobi 时 Python 内核死机

我试图使用 Gurobi for Python 来解决一个混合整数优化问题,但是每次运行我按照 Gurobi 教程编写的代码时,都会弹出一条消息,说:“内核已死,您要重新启动它吗? ? 如果你不重新启动内核,你将能够保存笔记本,但运行代码将无法工作,直到笔记本重新打开。

我在 Win 7 上将 Enthought Canopy 与 Python 2.7 和 Gurobi 的 Gurobipy 一起使用。

这是我尝试解决的一个小试优化问题,运行后出现了上面的消息:

有人会帮我解决这个问题吗?非常感谢!