问题标签 [pulp]

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

python - 在 Python/PuLP 中将航班分配给行李处理工作站

我正在解决相当大的问题,但我陷入了困境。我会在这里尝试简化它,希望有人能给我一个想法......

假设我们有 25 个航班 (FlightID) 在不同的时间 (TimeIndex) 起飞,必须分配给 10 个可用的行李处理工作站 (WS),如下所示:

航班信息

每个航班需要 1、2 或 3 个行李处理工作站 (WS),从 StartTime 到 EndTime 将占用这些工作站。每个工作站在整个时间段(开始时间到结束时间)内只能服务一个航班。

我到目前为止看起来像这样:

首先,我从 .csv 文件中读取我的信息。

然后我创建了 10 个工作站。

接下来,我声明我的决策变量“x” - 一个字典,其中飞行、时间、工作站作为键,0、1 作为值。

用虚拟目标函数声明问题。

第一个约束强制将所有航班分配到一个工作站到所有需要的 24 次。

这会创建一组独特的时间,以便仅在需要时创建约束,而不是遍历所有可能的时间范围。

下一个约束强制一个工作站一次只分配给一个航班。

只需将模型写入 .txt 即可。

我也在使用 pandas 来获得“x”的可视化。

现在,我的问题是我不知道如何进行第三个约束,以便在该航班所需的所有时间将一个工作站 (WS) 分配给同一航班,如下所示:

结果到此为止。

更准确地说,例如,Flight01 应该一直分配给 WS1(从 116 到 140)。

0 投票
0 回答
337 浏览

python - 使用 CBC 的整数线性规划近似解

我有一个 ILP(整数线性规划)问题,并且正在使用 CBC 来解决它。

我的目标是在 30 秒内计算出最佳近似解。

我尝试使用以下参数:maxSeconds = 30 但它并不总是有效。有时,算法会在 30 秒后返回非整数解。

我还尝试了 ratioGap = 0.01, hOptions = 1 以获得近似解。但是,有时需要超过 30 秒才能获得它。

我怎样才能在不到 30 秒的时间内获得最好的整数解(不一定是最优解)?

0 投票
1 回答
1185 浏览

python - 具有最小绝对值的 Python 纸浆优化器

我正在使用纸浆(https://pythonhosted.org/PuLP/)进行优化并遇到问题。我需要使用类似的约束abs(x) > MIN,我在这里找到了解决方案http://lpsolve.sourceforge.net/5.5/absolute.htm,我只创建了两个约束:

其中 B 为 0 或 1 且 M 值足够大。问题是当我使用 M ~ 10000 时一切正常,但是当我使用 INT_MAX_VALUE 或 ~ 10000000000 时它不起作用。有没有人遇到过这样的问题?

0 投票
1 回答
2731 浏览

python - 什么 AttributeError: 'LpElement' object has no attribute 'cat' 为什么会产生这个错误?

我正在尝试使用 Python PuLP 对以下方程进行建模

在此处输入图像描述

我编写了以下 Python 代码

这给出了以下纸浆错误:

回溯(最后一次调用):文件“C:\Python34\Cloud 3.py”,第 446 行,在资源(请求,pmachine,l,q)文件“C:\Python34\Cloud 3.py”,第 136 行,在资源状态 = prob.solve() 文件“C:\Python34\lib\site-packages\pulp-1.6.1-py3.4.egg\pulp\pulp.py”,第 1643 行,在求解状态 = 求解器.actualSolve(self, **kwargs) 文件“C:\Python34\lib\site-packages\pulp-1.6.1-py3.4.egg\pulp\solvers.py”,第 1303 行,在 actualSolve 中返回 self.solve_CBC (lp, **kwargs) 文件“C:\Python34\lib\site-packages\pulp-1.6.1-py3.4.egg\pulp\solvers.py”,第 1325 行,在 solve_CBC tmpMps 中,重命名 = 1)文件“C:\Python34\lib\site-packages\pulp-1.6.1-py3.4.egg\pulp\pulp.py”,第 1431 行,在 writeMPS 中如果 mip 和 v.cat == LpInteger: AttributeError: 'LpElement' 对象没有属性 'cat'

什么AttributeError: 'LpElement' object has no attribute 'cat'以及为什么会产生这个错误?

0 投票
1 回答
474 浏览

mathematical-optimization - GLPK(纸浆包装器)中的约束违规

我将 Pulp 与 GLPK 求解器一起使用并具有以下约束:

求解器:

但结果我解决了违反约束的问题(状态“最佳”):

那么,在这种情况下我能做些什么呢?我可以以某种方式提高准确性或使用其他解决方案吗?

0 投票
1 回答
1554 浏览

python - 为什么 GLPK 会产生错误“无法执行 glpsol.exe”,而默认的 PuLP 求解器工作正常?

在尝试使用 PuLP 解决二进制整数编程问题并使用 GLPK 作为求解器时,我收到以下错误。我已经在 Windows 上安装了 GLPK,也设置了路径。pulp.pulpTestAll()演出结果Solver <class 'pulp.solvers.GLPK_CMD'> passed

但是,当我使用默认的 PuLP 求解器时,它运行得非常好。我status = prob.solve(pulp.GLPK())用来调用求解器。完整的 Python 代码很长,所以我没有在这里发布。从prob.writeLP('problem.txt')PuLP 获得的输出如下:

为什么 GLPK 会产生错误?使用默认求解器,得到的输出是:

0 投票
1 回答
1368 浏览

python - Python 线性规划

我正在尝试解决以下等式:

maximize x^{T}Ax 其中x3 X 1要最大化的变量的向量,A是值的3 X 3矩阵。

所以基本上x^{T} = [a,b,c]哪些是要最大化的未知数,A可能类似于

A = [ [29, 29, 79], [28, 28, 48], [9, 40, 0 ]]

有人可以告诉我如何使用 PuLP 或 python 中的其他一些线性编程包以最大化问题的形式表示这一点吗?

任何帮助将非常感激。我对这个领域非常陌生,不知道如何开始表示这个公式。

到目前为止,我已经尝试使用CVXPY来模拟这个函数。我有以下代码,但看到一个错误:

0 投票
2 回答
973 浏览

python - Python 意外退出,分段错误:11

我已经安装了 python 2.7.12。我使用“pip install 纸浆”来安装纸浆包。我的问题是“进口纸浆”给了我以下错误。我怎么解决这个问题。如果您需要其他东西来调试,请告诉我。我有一台装有 El Capitan 10.11.5 操作系统的 Mackbook pro。

0 投票
1 回答
1304 浏览

python - Python Pulp 模块中的条件约束线性规划

有没有办法在 python 的纸浆中添加一个约束来计算所有高于 5 的变量并要求该计数大于 10?我目前有以下代码,但它只调用一次函数;

因此,例如,如果我有 vars = [x1,x2,..,x20] 其中 xi 是纸浆.Lpvariable 并且 x1,..,x10 = 6 那么这些变量中有 10 个大于 5,从而满足了在至少有 10 个变量的值大于 5。

0 投票
3 回答
4246 浏览

python - 如何禁用纸浆的计算日志

我在 python 中使用“pulp”和 GUROBI 来解决一些优化问题。例如,GUROBI 的计算日志是:

我想禁用此输出,因为我要解决 800k 优化问题,并且在输出中写入这些日志会使我的代码太慢。禁用这些日志的任何想法?