问题标签 [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.
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)。
python - 使用 CBC 的整数线性规划近似解
我有一个 ILP(整数线性规划)问题,并且正在使用 CBC 来解决它。
我的目标是在 30 秒内计算出最佳近似解。
我尝试使用以下参数:maxSeconds = 30 但它并不总是有效。有时,算法会在 30 秒后返回非整数解。
我还尝试了 ratioGap = 0.01, hOptions = 1 以获得近似解。但是,有时需要超过 30 秒才能获得它。
我怎样才能在不到 30 秒的时间内获得最好的整数解(不一定是最优解)?
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 时它不起作用。有没有人遇到过这样的问题?
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'
以及为什么会产生这个错误?
mathematical-optimization - GLPK(纸浆包装器)中的约束违规
我将 Pulp 与 GLPK 求解器一起使用并具有以下约束:
求解器:
但结果我解决了违反约束的问题(状态“最佳”):
那么,在这种情况下我能做些什么呢?我可以以某种方式提高准确性或使用其他解决方案吗?
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 会产生错误?使用默认求解器,得到的输出是:
python - Python 线性规划
我正在尝试解决以下等式:
maximize x^{T}Ax
其中x
是3 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来模拟这个函数。我有以下代码,但看到一个错误:
python - Python 意外退出,分段错误:11
我已经安装了 python 2.7.12。我使用“pip install 纸浆”来安装纸浆包。我的问题是“进口纸浆”给了我以下错误。我怎么解决这个问题。如果您需要其他东西来调试,请告诉我。我有一台装有 El Capitan 10.11.5 操作系统的 Mackbook pro。
python - Python Pulp 模块中的条件约束线性规划
有没有办法在 python 的纸浆中添加一个约束来计算所有高于 5 的变量并要求该计数大于 10?我目前有以下代码,但它只调用一次函数;
因此,例如,如果我有 vars = [x1,x2,..,x20] 其中 xi 是纸浆.Lpvariable 并且 x1,..,x10 = 6 那么这些变量中有 10 个大于 5,从而满足了在至少有 10 个变量的值大于 5。
python - 如何禁用纸浆的计算日志
我在 python 中使用“pulp”和 GUROBI 来解决一些优化问题。例如,GUROBI 的计算日志是:
我想禁用此输出,因为我要解决 800k 优化问题,并且在输出中写入这些日志会使我的代码太慢。禁用这些日志的任何想法?