针对 MILP 问题在 Gurobi 中高效添加大量约束

问题描述 投票:0回答:1

我正在使用 Gurobi 解决大规模混合整数线性规划 (MILP) 问题。决策变量向量

x
是二进制的,维度约为
n = 40,000,000
。目标函数定义为:

obj = c * x

其中

c
是与
x
大小相同的系数向量。

我还需要以批量形式添加大量约束。具体来说,约束的形式如下:

A * x <= b

地点:

A 是维度为 n x n_col 的矩阵,其中 n_col 约为 3,000,000。

B 是大小为 n 的向量。

考虑到问题的规模,我需要避免迭代地添加约束,而是以批量的方式处理它们。我正在寻找将这些约束添加到 Gurobi 模型中的最有效方法。

我的问题是:

  • 是否可以使用 Gurobi 的 API 在单个批次中添加类似

    A * x <= B
    的约束?

  • 在 Gurobi 中处理如此大的约束最有效的方法是什么?

  • 是否有任何性能技巧或方法(例如,使用稀疏矩阵)来有效地管理这个大规模问题?

gurobi mixed-integer-programming
1个回答
0
投票

看看,会有帮助的:

Gurobi Python 接口:矩阵友好的建模技术

简单示例:matrix1.py

© www.soinside.com 2019 - 2024. All rights reserved.