问题标签 [mixed-integer-programming]

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

r - 混合线性整数优化 - 根据对 R 中所有商店的不同处理优化利润

我有 4 家商店(1、2、3、4),我可以对 4 家商店中的每家应用 3 种治疗方法(A、B、C)。每种治疗都有自己的成本和利润。

矩阵如下:

使用简单的 lpp 对此不起作用。

在 R 中,如何在限制最大成本的情况下最大化利润?每个商店只能获得 1 次治疗。

提前致谢。

0 投票
1 回答
932 浏览

python - Pyomo ValueError:PositiveReals 不是有效域

我正在尝试使用 PyOMO 解决约束混合整数非线性优化问题。具体来说,我试图找到满足两个给定齿轮比的齿轮直径和齿数。我对如何使用Set()Var(). 我一直在阅读文档,但对于 Set 实际上是什么并不是超级清楚!它是我可以用来访问问题的类似分组部分的索引吗?这是我的代码:(Python 3.5)

此代码给出以下错误:

I've also tried using RangeSet() and passing the associated Set as the first argument of Var() but this doesn't do anything either! I known I'm missing something super obvious here but I've been staring at the screen for 4 hours now and I'm enlisting your help! Thanks

0 投票
2 回答
1127 浏览

constraints - 有没有可靠的开源非线性混合整数优化求解器?

我一直在努力寻找一些开源非线性整数优化求解器!我正在尝试解决一个 16 个变量问题,其中 8 个值是整数,受到两个非线性目标函数和 5 个非线性约束函数的影响。在开源领域这可能吗?在我意识到 GLPK 求解器不支持非线性之前,我得到了 PyOmo 并创建了我的整个模型...... facepalm

(尝试在给定目标齿轮传动比的情况下求解变速箱中的齿轮尺寸 - 我是一名工科学生)

0 投票
1 回答
1033 浏览

c# - 使用 C# 上的给定初始解决方案启动 CPLEX(音乐会技术)

我想用 CPLEX-C# 解决 MILP 问题。我的问题很大,为了提高 CPU 时间,我想使用初始解决方案。我想将此解决方案添加到 cplex 中,并开始使用给定的初始解决方案来解决问题。我使用了以下代码:

在这段代码中,我有多维数组决策变量X[i][j](二元决策变量),并且值等于start[i][j]. 的值start[i][j]存储double [] array为参数。当我运行代码时,出现以下错误:

我有两个问题:1)我必须把这段代码放在模型的哪个部分?(我的意思是在所有约束之后添加目标值并调用 addMin 或 addMax 或在它们之前?)

2)当我表扬startvar = null; startval = null;我有以下错误:

如果您能帮助解决这个问题,我将不胜感激。

0 投票
1 回答
1631 浏览

optimization - Gurobi 优化结果写入 CSV 文件

我正在使用 Gurobi 7 来解决我的 MIP。我有几个不同的变量。但是,我对其中两个特别感兴趣,即“x”和“y”。作为参考,我给出的代码显示了我如何将 x 和 y 变量添加到求解器中:

尽管上面的代码可能没有任何意义,但我只是想展示一下,以防你可以用它来解决我的问题。

解决问题后,我得到以下结果:

m.printAttr('X')

我特别想显示 x 和 y 变量及其索引。其他变量不是必需的。我的问题是如何将这些结果写入一列的 csv 文件中,如下所示?

我不需要它们对应的值,它只能是“1”,因为它们是二进制变量。我只需要编写值为“1”的变量。

0 投票
1 回答
787 浏览

optimization - 根据加权平均标准优化贷款组合

编辑:我意识到我之前尝试描述问题的方式并不是很有帮助,实际上并没有很好地模拟我目前正在做的事情,所以我重写了这篇文章。我已经包含了我的工作代码。我将使用的示例中的数据是借贷俱乐部贷款数据(csv格式),可以从这里下载:https ://www.kaggle.com/wendykan/lending-club-loan-data

我目前在 python 中使用 PuLP 和 pandas 来解决我目前遇到的优化问题。我对线性规划很陌生,最近利用它来解决有关最小化成本问题的问题。

对于这个借贷俱乐部的例子,假设我有 100,000 美元。鉴于借贷俱乐部贷款被证券化并且可以由个人投资,我想分配这 100,000 美元,以便:

1. 投资10万美元的加权平均利率不能低于8%。

2.投资10万美元的加权平均债务收入比不能超过10

暂时忽略3。为了尽量减少任何一笔贷款的风险,优化后的投资组合的平均贷款规模不能超过 10,000 美元。)

我在实施约束 3 和 100,000 美元的投资上限时遇到了困难。对于约束 1 和 2,我已按贷款规模对贷款进行加权,并将利率和债务收入比率乘以权重,因此可以以线性方式对这些约束进行建模,使得:

购买的最终贷款组合不需要完全等于 100,000 美元。目标函数是在约束(即 LpMaximise)内接近 100,000。

我选择将贷款选择建模为二元变量,因为我只是想知道它们是进还是出。此外,为了速度和内存,我从数据中选择了 50 行的切片来处理。

这是我的代码:

解决方案状态显示为“不可行”,输出有一些非二进制整数。

我将不胜感激有关此问题的任何帮助。我是线性代数和高等数学的新手,但我已经阅读了这个页面(http://lpsolve.sourceforge.net/5.1/ratio.htm),它帮助我设置了前两个约束。我只是纠结于如何编写一个方程式或代码,以确保优化的投资组合的平均贷款价值低于 10,000 美元。

0 投票
2 回答
1107 浏览

linear-programming - CPLEX dvar 作为条件

我在尝试寻找资源约束调度问题的解决方案时遇到了这个问题。每当我将 dvar 作为 forall 循环中的条件或 if 条件时,我都会遇到错误,指出“不允许使用决策变量(或表达式)“S”。

0 投票
1 回答
660 浏览

matlab - Matlab中的混合整数最近最优解

是否有可能找到最接近混合整数问题的最优解?例如,我想要下面的简化问题:

返回x=[0;0;1],因为这是 的目标值最接近的整数解0.16。相反,目前它返回

Intlinprog 停止,因为没有点满足约束。

不一定要运行intlinprog。理想情况下,如果beq低也需要工作,例如0.14.

0 投票
1 回答
904 浏览

python - 在 quicksum 中使用 max 命令 - gurobi with python

我正在尝试在使用 gurobi 和 python 的 quicksum 命令中包含一个 python“max”命令。在 LinExpr 限制下,这样做显然会出错,因为它不被接受。

V 是模型中的二元变量,其余为固定变量。问题是在 v[hour - 1, i] 为 0 且 v[hour, i] 为 1 的情况下,shutdowncost 为负数。

是否有另一个命令可用于替换 quicksum 中的 max 命令?

0 投票
1 回答
4096 浏览

python - PuLP - 如何指定求解器的精度

我会尽量让我的问题简短而简单。如果您需要任何进一步的信息,请告诉我。

我有一个 MIP,在 Python 中使用包 PuLP 实现。(大约 100 个变量和约束)问题的数学公式来自一篇研究论文。本文还包括一项数值研究。但是,我的结果与作者的结果不同。

我的问题变量被称为prob

我解决prob.solve() LpStatus退货问题Optimal

当我添加一些最佳(论文)结果作为约束时,我得到了一个稍微好一点的客观值。将目标函数限制为稍低的值也是如此。LpStatus 仍然存在Optimal

我的假设是 PuLP 的求解器近似于解决方案。计算速度非常快,但显然不是很准确。有没有办法可以提高 PuLP 正在使用的求解器的准确性?我正在寻找类似的东西:prob.solve(accuracy=100%).我查看了文档,但不知道该怎么做。有什么想法可能是什么问题?

任何帮助表示赞赏。谢谢。