问题标签 [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 投票
1 回答
1204 浏览

java - Gurobi 无法添加约束

我正在用 Java 编写一个程序来解决 Gurobi 的 MIP 问题。这个问题需要很多约束和变量,但第一个不能添加到我的模型中。在问题的更深处,当我尝试添加约束时,模型会显示它(通过调试读取),但row_no等于-1。第一件事:

  • 创建变量的多维矩阵:

    /li>
  • 添加约束(看起来像 Xij < 10):

    /li>
  • 调试项目:有iMax * jMax列、iMax * jMax变量、iMax * jMax约束(带row_no= -1)和 0 行。

任何的想法?

编辑

我不确定 的使用row_no,但我认为 Gurobi(从抽象的角度来看)将数据组织成一个伪矩阵,其中变量存储为列,约束存储为行。为什么我这么说?因为每次我添加一个变量时,列的计数器都会增加 1 并且它col_no与特定的列相关联,而不是当我添加一个约束时,行的计数器不会改变。

Gurobi 模型调试

列:http ://www.gurobi.com/documentation/6.0/refman/java_grbmodel_getcol.html 行:http ://www.gurobi.com/documentation/6.0/refman/java_grbmodel_getrow.html

编辑 2

我对列、行或其他任何内容都没有任何问题,但是当我尝试解决宽松模型时,Gurobi 会显示以下输出:

该解决方案是可行的,但无法显示任何有用的信息。我坚持我应该只在添加变量而不是约束之后更新模型。另外,我从 Gurobi 文档中了解到,如果模型需要更新,它会抛出异常(不是我的情况):

“缺少更新的最常见症状是 NOT_IN_MODEL 异常,这表明您尝试引用的对象尚未在模型中”

编辑 3

我已经按照您的建议更新模型(添加约束后)并且一切正常。我认为这不是强制性的,但是与文档(和代码示例)相比,它是强制性的。

0 投票
2 回答
2665 浏览

python - 在 Python 中反复求解 Gurobi 模型

我需要反复求解 gurobi 模型(每次迭代使用不同的变量值)。我不是每次迭代都重建模型,而是尝试设置模型,然后循环重复优化,但变量值不会更新。这是一个简单的例子。

如何一遍又一遍地使用现有模型?

0 投票
1 回答
541 浏览

amazon-web-services - 在 Amazon EC2 上免费提供学术 Gurobi?

Gurobi 为学术用途提供免费许可。我想在执行 MapReduce 流程时在 Amazon EC2 上使用 Gurobi。Amazon EWS 提供 Gurobi 服务,但太贵了。这对于需要大量机器的 MapReduce 来说会更多,每台机器同时使用 Gurobi。我想知道是否有人尝试部署学术许可证以在 EC2 上使用 Gurobi。

0 投票
1 回答
1234 浏览

java - Gurobi 无法设置或打印(手动)变量值

我正在使用 Gurobi 6.0.2 用 Ja​​va 编写程序,但我在管理变量方面遇到了一些麻烦,特别是我无法设置或打印它们。

例子:

NetBeans 显示此消息:

当我解决松弛模型时也会发生此问题,因此我无法检索变量的值。

0 投票
2 回答
2463 浏览

python - Gurobi 线性约束

在 Python 中将此约束添加到 gurobi 的最简单方法是什么。

D 是具有正项(常数)的给定矩阵。b 是我的变量的向量。T 和 K 是常数。

方程约束

0 投票
1 回答
1195 浏览

gurobi - 如何在 Gurobi 中更新约束的常数项

我面临一个问题,我必须迭代地调用 Gurobi 引擎。在运行之间,我必须更新一些约束中的常数项。我查看了手册,其中我发现 GRBModel::chgCoeff() 可用于更改约束中的变量系数,但没有与更改常数项相关的函数。有什么想法吗?谢谢!

0 投票
1 回答
8626 浏览

python - Gurobi,如何将连续变量更改为二进制变量

我正在使用 gurobi-python 界面。无论如何将连续变量转换为二进制变量。我只是不想转换

我必须以另一种方式来做,而不是使用

感谢您的可能反馈。

谢谢你。

0 投票
1 回答
104 浏览

python - Gurobi Python - 当我将代码移动到服务器时,RHS“改变”

我在我的个人电脑上用 python/gurobi 写了一个运输线性程序。需求节点的典型约束j可能如下所示:

在哪里

x[i, j]是边缘 (i,j) 上流的决策变量

arcs是供需节点之间所有边的集合

demand[j]是在 j 处所需的已知分数常数

当我在我的个人计算机上测试此代码时,它工作正常。但是,当我将它移动到我组织的计算集群并尝试运行它时,右侧 ( demand[j]) 不一样,我得到的x[i,j]'s.

0 投票
2 回答
1362 浏览

linux - Anaconda Python for Gurobi 6.0.4 安装_Py_FalseStruct 错误

为了运行优化问题,我们将 Gurobi 6.0.4 与

  • Anaconda (2.2.0 版) Python (Python 2.7.9.) 上
  • 带有 2.6.32-504.16.2.el6.x86_64 内核的 Linux CentOS 版本 6.6(最终版)

遵循 Gurobi 的安装指南(在此处列出:http: //www.gurobi.com/documentation/6.0/quickstart_linux.pdf

一切都在第一步中解决了。Gurobi 已安装,可以获得许可证。此外,已根据手册设置了 PATH 变量(在 .bashrc 中),对 anaconda python 的引用进行了一些扩展(而不是 python 的其他本地版本(即 2.7 和 3.4):

按照我们执行的程序:python2.7 setup.py install在各自的目录/opt/gurobi604/linux64中。在此之后,您通常可以import gurobipy在 python 解释器中运行该命令而不会出现错误。对于旧版本的 Gurobi(如 5.6.3),这非常有效。

对于 6.0.4,虽然我们不断收到错误:

这是非常可重现的,无论我们是否将 anaconda 也放在全局路径中,并检查 bash 是否有任何环境变量覆盖,但事实并非如此。

在 Windows 8 上,Gurobi 6.0.4 和 Anaconda Python 2.2.0 可以毫无问题地协同工作。

也从这里应用提示:Linux 上的 Python 模块错误 没有解决。

有没有其他人在使用这种工具组合时遇到过这些问题?谢谢。

0 投票
2 回答
2065 浏览

python - Gurobi Python == 和变量

==Gurobi Python是如何工作的?

在我创建了所需的变量 ( x[s,d,r]) 之后,我试图做出一个if类似x[s,d,r] == 1. x[s,d,r]==0问题是,这个陈述总是正确的,所以我将它设置为or并不重要x[s,d,r]==2,它总是一样的。

x[s,d,r]是由 定义的二进制变量 x[s,d,r] = m.addVar(0.0,1.0,1.0,GRB.BINARY,"x_"+ s+"_"+ d +"_" + r)

因此,如果 x[s,d,r]>0.001: 是始终评估为“真”的部分。