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

python - 如何在线性规划中的总内容的某些部分和单个最大项目的内容之间写出条件

我正在尝试用 Python 纸浆解决优化问题。以下是我的基本 LP 模型。

对于这个模型,我如何再添加一个约束来指定总内容的 45% 应该超过解决方案中一个最大项目的内容。以下是几个示例案例。

0 投票
1 回答
678 浏览

c++ - 为什么当 cplex presolve 打开时 MIP 不可行?

我在 c++ 程序中使用 cplex 可调用库(版本 12.6.3)来解决混合整数程序。代码的相关部分如下所示:

第一行正确构建了子问题,我可以从 lp 文件中检查。CPXmipopt 的状态为 0。但是,根据日志文件,求解器似乎过早停止并且未找到整数解。CPXgetstat 返回状态 103(“整数不可行”)。因此,错误发生在最后一行,状态为 1217(“不存在解决方案”)。Solstat 仍为 0。

但是,当预求解器关闭时(在第 7 行),似乎没有问题。CPXmipopt 以状态 0 结束,日志文件显示找到了一个整数解,并且可以使用 CPXsolution 获得解(如预期的那样,solstat 为 104)。

我的问题是:什么原因可能导致这种行为?为什么打开预处理器会导致无法找到解决方案,如何解决?

0 投票
1 回答
481 浏览

r - R: ompr 封装约束

我在 R 中使用 ompr 包来解决优化问题。书面优化问题如下所示:

最小 wi * xi

xi ε {0,1}

xi ≤ xj , i 的 j 个追随者

如果在距离矩阵 (distmatrix) 中有可用值,则 i 是 j 的追随者。如果值为 inf,则无法从 i 到 j 连接

目标是分析物料清单,为了使我的示例更容易一些,我创建了一个更简单的示例,其中包含更少的材料。

如果我划掉约束,我会得到我会expext的结果(考虑到没有使用约束)。如何在 i 和 j 的约束内分别处理?

0 投票
1 回答
364 浏览

matlab - 尽早停止 MATLAB 的 intlinprog

当和/或相对差距不再改善时,我如何intlinprog在“分支和绑定”阶段退出?fval我尝试了很多选择,但到目前为止都没有成功。对于下面的示例,我知道最佳值为6834。例如,如果连续五个步骤没有改善,我该如何实施提前停止?

0 投票
0 回答
204 浏览

python - PULP 最小化成本和偏差/错误限制

我在 python 中有一个 LP,其中包含以下代码:

目标函数:

约束:

我将 delta 定义为函数中的浮点数,但无论出于何种原因,它都没有注册。有没有人像这样成功地实现了 PULP 的目标编程?这只是总 LP 的一个样本。

0 投票
1 回答
224 浏览

cplex - 带 MIP 的接送车辆路线

我正在尝试解决车辆路线问题,其中只有一辆汽车携带多种产品,需要多次接送。在解决了这个问题后,我还将扩展到多种类型的汽车。

一个特殊的设置是它有一个起点和一个终点,不必相同。我假设不同并将 1 和 n 设置为开始和结束的虚拟节点。

我部分使用了 IBM 提供的示例 TSP 代码来解决 subtour 问题,并从 Internet 获得帮助以打印出最佳游览。

因为我需要找到一条通过所有点的最佳路径。这是 NP 难的。但是作为第一次使用 ILog,我想使用 MIP 来解决这个问题以进行练习。

我在跟踪每个弧线中拾取的产品和丢弃的产品时遇到了麻烦。

我正在努力将我设定的运输成本降到最低

y是将每个弧与当前加载的产品相关联的变量。z 说明在每个节点中加载或卸载的内容。由于只有一辆车,我认为实际上不需要 z,但对于多辆车的扩展,我认为这将是一件好事。

如果其中一些dvar不是必需的,请给我一些见解!下面是设置。

对以下限制的任何帮助都将非常有帮助。特别是在跟踪沿途装载的产品时。

并进行后期处理以找到子旅游

这是我创建的示例数据集。我希望我的解释对每个人都有意义!非常感谢你!!

0 投票
1 回答
606 浏览

julia - 最小化 Julia JuMP 中的最大值

因此,我梳理了与 Julia JuMP 相关的各种网站,并使用函数作为 @objective 或 @NLobjective 的参数,但让我尝试说明我的问题。我确定我在做一些愚蠢的事情,这是一个快速修复。

这是一个简短的代码片段以及我想做的事情:

现在根据我的理解,“最大”函数使问题成为非线性问题,并且在 JuMP 目标函数中是不允许的,所以人们会做以下两件事之一:

(1)玩辅助变量+约束的把戏,或者

(2) 创建一个函数,然后在 JuMP 中“注册”这个函数。

但是,我似乎不能正确地做任何一个。

这是使用辅助变量+约束技巧的尝试:

我希望在完成最小化最大值这一看似微不足道的任务时获得一些帮助。

另外,应该注意的是,这是我正在尝试解决的 MILP 问题。我之前使用 OPL 的 ILOG 脚本在 CPLEX 中实现了这个问题,其中这个目标函数看起来要简单得多。虽然这可能只是我对使用 JuMP 的无知。

谢谢。

0 投票
2 回答
74 浏览

mathematical-optimization - 如何通过使用具有 IFF 条件的方程作为 GAMS 中的切割来增加这个 MILP?

所以我试图在 GAMS 中实现一个算法,方法是在每次迭代后用削减来增加一个主问题。主要问题是,

在第一次迭代之后,我想添加约束,

在第二次迭代之后,我想添加约束,

这两个增加问题的约束限制了解空间产生(w=-22,x=2,z=2)作为最优解。

我尝试通过使用带有以下脚本的动态集在 GAMS 中实现它(在 GAMSworld 的帮助下)。然而,GAMS 给出的最终解决方案是 (x=6, z=2)。最佳答案应该是 (x=2, z=2),因为由于第二次迭代后的约束,除非 z <= 1,否则 x 不能大于 2.5。

谁能告诉我如何在迭代后使用带有 IFF 条件的增强约束的削减?我现在拥有它的方式是没有正确限制解决方案空间。我将非常感谢一些帮助。谢谢你!

0 投票
1 回答
352 浏览

python - 在 PuLP MIP 中定义多个逻辑 OR 约束

说,我有一组像这样的二进制变量:

我想确保 ht[t] 之间存在差距,例如:

根据 't' 的位置,左侧和/或右侧的相邻邻居需要为 0。

是否可以在 PuLP 中编写此约束?

0 投票
1 回答
121 浏览

python - 使用混合整数规划限制最大分配大小

我有 2 个设施,每个都有管道和安装成本。我还有16个客户需要服务,每个客户都有服务成本。我想为每个设施分配最多 10 个客户,以便将管道、安装和服务成本降至最低。

我已经实现了以下代码,但它不能正常工作。它应该将每个设施分配给它应该服务的客户数量并返回最低成本。但是,输出将井分配给所有设施(我认为)。

非常感谢您的帮助: