问题标签 [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 回答
388 浏览

mathematical-optimization - 对于相同 MILP 配方的更大案例,Gurobi 未能达到最佳解决方案

我的 MILP 问题基于简单但大量的约束和变量。

  1. 大多数决策变量是“半”类型的(例如生产数量、运输数量等)
  2. S( wijk ) 是整数类型(一行的移位数)
  3. 数据:delta、theta、alpha、lambda、N( ijw )、Mmin( ijk )、Mmax( ijk )、V0( ik )、D wijk 配方如下

问题公式在小规模上达到了最佳解决方案,但对于较大规模,它只是在某个“间隙”处“停滞”并且不会向前发展

一种。小规模问题规模:少于 15 周(计划范围)
b. 更大规模问题的规模:>= 15 周

问题输入法:.lp 文件(因此在命令提示符下使用 lp.py 脚本解决)
gurobi 版本:6.0(学术许可)

关于我可以做些什么来获得较大案例的最佳解决方案的任何建议?
以下是 15 周和 124 种产品的示例输出日志。

0 投票
1 回答
2950 浏览

java - Gurobi UnsatisfiedLinkError

我正在尝试在 Ubuntu 14.04 上的学术许可下安装 Gurobi。我已阅读以下有关UnsatisfiedLinkErrorstackoverflow.com/questions/ ...。但这对我没有帮助。我已经在我的opt文件夹中提取了 zip。我已将许可证文件放在/opt/gurobi600/linux64/lib/gurobi.lic.

我正在尝试Callback.java在 Eclipse 中运行该示例。

我有 Java VM 参数:-Djava.library.path=/opt/gurobi600/linux64/lib/ . 我有作为程序参数:/opt/gurobi600/linux64/examples/data/qafiro.lp. 环境变量LD_LIBRARY_PATH设置为/opt/gurobi600/linux64/lib/gurobi.lic

我得到以下堆栈跟踪:

有任何想法吗?

0 投票
2 回答
1391 浏览

python - 在时限后获得最知名的可行答案

我正在解决 Gurobi 6.0 中的大型 MIP。我的顾问想为这个问题设定一个 12 小时的时间限制。我发现我可以设置 TimeLimit 参数,这将在分配的时间后杀死求解器,但我不知道当时如何检索最佳可行解决方案,只是目标值和最优性差距。有没有办法获得最佳可行的解决方案?

0 投票
0 回答
90 浏览

optimization - 离散优化:大量最优解

TL;DR 版本:有没有办法处理存在大量最优解(找到最佳目标值的解)的优化问题?也就是说,找到最佳解决方案非常快(但显然很大程度上取决于问题的大小),但存在许多这样的解决方案,因此求解器无休止地试图找到更好的解决方案(无休止地因为它确实找到了其他可行的解决方案,但目标值等于当前最佳值)。

不是 TL;DR 版本: 对于一个大学项目,我需要实现一个调度器,该调度器应该输出每个大学课程每年学习的时间表。我提供了一些数据,对于这个问题,我只会坚持一个一般但没有那么罕见的例子。

在许多部分中,您有必修课和选修课。有时,这些可选课程分为模块,学生需要选择其中一个模块。通常,他们必须选择两个模块,但某些组合比其他组合出现的频率更高。显然,如果您计算课程数量(必修课 + 选修课)而不考虑对模块的细分,那么您的课程恰好多于需要安排的时间段。我的模型很简单。我有一些限制,即每门课程都应安排在一个且只有一个时间段(2小时),并且教授不应同时开设两门课程。这些都是硬约束。问题是,在一个完美的世界里,我应该添加硬约束,说明一个学生不能同时学习两门课程。

这就是为什么我决定在优化问题中移动这些硬约束。我简单地定义我的目标函数,为每个学生最小化他/她同时安排的课程数量。

If I run this simple model with only one student (22 courses) and 20 time slots, I should have an objective value of 4 (since 2 time slots embed each 2 courses). But, using Gurobi, the relaxed objective is 0 (since you can have fraction of courses inside a time slot). Therefore, when the solver does reach a solution of cost 4, it cannot prove optimality directly. The real trouble, is that for this simple case, there exists a huge number of optimal solutions (22! maybe...). Therefore, to prove optimality, it will go through all other solutions (which share the same objective) desperately trying to find a solution with a smaller gap between the relaxed objective (0) and the current one (4). Obviously, such solution doesn't exist...

您对我如何解决这个问题有任何想法吗?我想分析现有的数据库并试图找出哪些模块组合很可能发生,这样我就可以放回硬约束,但它似乎很危险(也许我会选择一个导致冲突的组合,因此找不到任何解决方案或省略有效的组合)。我使用的当前解决方案是设置时间阈值来停止优化......

0 投票
1 回答
6539 浏览

python - 如何使用 python 为 gurobi 设置超时

我想使用 gurobi 的 python 接口来解决 ILP。我还想设置 5 分钟的超时。我试过了

但我得到了错误

gurobipy.Env 中的文件“env.pxi”,第 18 行。init (../../src/python/gurobipy.c:2821) TypeError: init () 需要 2 个位置参数(1 个给定)

尽管根据文档gurobipy.Env()没有没有默认值的参数。此外,在文档中它说

Env() 在计算服务器上创建客户端环境。

所以我想知道这是否是为 gurobi 设置简单时间限制的最有效方法。什么是限制 gurobipy 的好方法?

0 投票
1 回答
79 浏览

python - 使用 NEOS 服务器的奇怪错误

我尝试使用 NEOS 服务器,但出现以下错误:

在此处输入图像描述

我使用 MINTO 求解器和 Gurobi 求解器得到了这个。我在工作中进行优化时没有收到此错误,但我确实使用我的家用电脑。有谁知道如何以通常的方式接收错误?

问候,

0 投票
1 回答
1996 浏览

python - 具有 python 字典值的 Gurobi 目标

我将 Gurobi 6.0 与 Python 2.7 一起使用。我很想知道 Gurobi 是否允许目标函数的值来自具有决策变量索引的字典。附上代码:

模型的答案是

-5.0

-0.0

-0.0

这显然没有意义,因为 max(d[(x,y)]) = 10 根据给定的数据发生在 x=0 和 y=2 处。这里有什么问题?Gurobi 甚至允许这样的字典引用吗?甚至允许吗?

0 投票
2 回答
469 浏览

c++ - 未安装的 Gurobi 机器中的 Gurobi 可执行文件

在我的 Gurobi C++ 程序中,我尝试使可执行文件可以在没有安装 Gurobi 的其他机器上移植。

当我将可执行文件移动到另一台机器时,错误消息如下:

我在 Gurobi 文件夹内的 lib 文件夹中找到了 libgurobi60.so 和 libgurobi_c++.a

是因为版权问题还是其他原因?

在 Mac OS 10.10、Gurobi 6.0.0 中编译

0 投票
1 回答
813 浏览

c# - Gurobi C# 优化盒子包装

我有三个产品和五个盒子:

尺寸为:

我想选择所有产品都可以装入的最小体积的盒子。

我编写了以下代码,并且我知道我应该添加约束以仅在其中选择 1 个框。但它在当前状态下不起作用(给出不可行的 sol)。代码如下:

在此先感谢您的帮助,

注意:我给出了简单的问题 (1D) ,实际上我真正的问题是 3D 问题。在这种情况下,我只考虑产品和盒子的长度,但实际上我还应该考虑宽度和高度。

0 投票
1 回答
1488 浏览

java - 在 Gurobi 中解决混合整数二次规划 (MIQP) 的问题

我需要你的帮助。对于我的论文,我需要使用 Gurobi 解决具有二次约束的混合整数二次问题 (MIQP)。当我将问题写入文件时,实现很好,解决部分就是问题,因为它的最佳界限和目标是 0....... 这不可能!问题定义:

使用Java接口实现:

Gurobi 能否解决这种混合整数二次问题,因为变量 x_ij 是 BINARY 而 c_ij 是 CONTINUOUS。如果我将 c_ij 设置为 BINARY,我会得到一个合理的结果。这是否意味着问题不是凹最大化问题???(据我所知,Gurobi 只能解决这种特殊的 MIQP)。提前致谢!!