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

algorithm - 无线网络中的资源分配

什么确定性算法适合以下资源分配/调度问题?

考虑一组玩家:P1、P2、P3 和 P4。每个玩家从蜂窝塔接收数据(例如在无线网络中)。塔在 1 秒内传输数据。有5个街区。可以安排每个玩家在任意数量的块中接收数据。

现在,每个块中接收的数据量是一个常数(C)除以同一块中调度的其他玩家的数量(因为必须共享带宽)。贪婪的方法会将每个玩家分配到每个块,但随后每个块接收的数据会减少。

我们如何才能找到玩家对时间块的分配,从而使网络传递的数据量最大化?我已经在这个问题上尝试了许多启发式方法(遗传算法,Sim Anneal)并且它们运行良好。但是,我想解决最佳时间表。

0 投票
2 回答
5544 浏览

python-2.7 - Python - The integer linear programming (ILP) function in CVXOPT is not generating correct results

I'm trying to solve the simple example found in https://en.wikipedia.org/wiki/Integer_programming#Example using the CVXOPT library on Python 2.7 ; The optimal answers are either (1,2) or (2,2). I'm getting (0.0 , 0.0). What am I doing wrong in the code below ? Thanks !

0 投票
1 回答
178 浏览

optimization - 从 LP/MPS 文件中获取格式化方程

在解决具有许多(不断变化的)约束或目标组件的问题时,很难以格式化方程的形式为其创建文档。

有没有一种简单的方法可以从 LP/MPS 文件自动创建格式化方程(LaTeX、PDF、..)?

这对我会有很大的帮助。

提前致谢!

0 投票
2 回答
526 浏览

python - 集合中的 Sympy 关系符号

我有一个 FiniteSet 和一个符号,我想将它与一个 Relation 关联,这样该符号就在 FiniteSet 中,sympy 可以吗?symbol in FiniteSet不返回表达式,而是计算它:

编辑:感谢 ohe 告诉我关于Contains. 我更新了我的 sympy 版本,顺便说一下,FinitSet 的语法在更新中也发生了变化。我举了一个我希望在记录中首先工作的小例子:

0 投票
4 回答
484 浏览

matrix - 如何解决这个 ILP/CP 矩阵难题

我正在研究算法,最近发现了一个有趣的挑战。

它会给我们一些行/列,我们的任务是用整数 1~N 填充表格,它只显示一次,并且它们的行和列总和等于给定的行/列。

挑战简单示例:

谢谢

0 投票
1 回答
80 浏览

.net - 在 Visual Studio 2015 中从 C# 调用 Cplex 且未创建节点文件时,Cplex.IntParam.WorkDir 属性的值不正确

我在 Visual Studio 2015 中从 C# 调用 cplex。

我检查了 Cplex.IntParam.WorkDir 的值(使用 cplex.GetParam(Cplex.IntParam.WorkDir)),它给了我以下值“。\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0"

然后我执行以下代码行,

现在,Cplex.IntParam.WorkDir 的值是“C:\TEMP\cplex\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\ 0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\ 0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"

当我调用 cplex.Solve() 时,在构建模型之后,即使我将 WorkMem 的值设置为极低的值,节点文件实际上也不会在目录“D:\TEMP\cplex”中创建128 MB。尽管 Cplex.IntParam.NodeFileInd 的值设置为 3,但内存消耗扩展到我的 RAM 容量,然后出错。

我试着写出模型文件,看看它会写在哪里,它在项目的默认目录中。

有谁知道为什么没有创建节点文件?为什么 IntParam.WorkDir 会给出这个值,以及当内存不足时如何强制 cplex 创建节点文件?

0 投票
2 回答
905 浏览

np-complete - 为什么使用线性整数规划 (ILP) 虽然它是 NP 完全的?

这个问题可能很愚蠢,但它确实让我困惑了很长时间。

我阅读了很多关于无线传感器网络的论文。许多研究人员将他们的问题建模为 ILP 的形式。但是,ILP 是 NP 完全的,因此它对于解决问题效率不高。

那么为什么人们将他们的问题写成 ILP 的形式呢?他们这样做是为了让他们的问题清晰易懂吗?还是我在理解 ILP 和 NPC 之间的关系时犯了一些错误?

非常感谢您能帮我解决这个问题。

0 投票
2 回答
968 浏览

gurobi - Gurobi Optimizer:在不优化模型的情况下确定可行性

在 Gurobi 中,是否可以在不实际优化问题的情况下查看一组约束和变量是否可行?似乎如果目标是一个常数,Gurobi 仍然会进行大量繁重的计算来找到我不需要的最佳解决方案!

0 投票
1 回答
147 浏览

java - 在 Java 中求解 petri 网的线性整数规划

我的问题总结:
我有一个像这样的Petri网(ILP)的线性方程组:

这些问题可能有更多的变量和约束。方程永远不是不等式。它也可以最大化或最小化。

我检查了一些关于所有整数问题的示例,但它们无法处理变量多于约束或其他方式的系统。

在像lp_solve这样的软件中,我可以处理这些问题,但对于这个解决方案,我必须处理许多 .dll 文件和包装器的东西。

我正在寻找 Java 解决方案或简单的嵌入库。我真的很感谢你的帮助,因为我有点卡住了。

0 投票
0 回答
46 浏览

mathematical-optimization - 在分支和价格中,如何处理具有偏移成本的变量?

我正在实现一个分支和价格(或列生成)算法。我在优化期间生成的变量(或列)的成本为 offset。例如,如果我想引入一个新变量xi,它既有一个成ci比例的成本系数,xi又有一个常数成本ci'

总成本 = 所有 i 的总和 (ci * xi + ci')

我的变量xi是连续的。

我该如何处理?

是否有必要重新表述问题以使变量的相关成本没有抵消?例如,为了保证列生成导致最优解。

我的第一个想法是成对生成变量:原始xi变量和关联的二进制变量bi。然后添加附加约束bi = 0ifxi = 0bi = 1if xi > 0。这是一个合理的方法吗?除了引入二进制变量之外,它还有什么缺点?