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

python - 在 PuLP 中打印 3 维变量的索引以进行调度

我正在使用 SolverStudio(Excel 插件)和 PuLP(基于 Python 的优化语言)创建一个将学生分配到工作场所的工具。

这是我要打印其索引的变量:

# Decision variable, =1 if student s is assigned to working place w on day d; 0 otherwise Assignment = LpVariable.dicts("Assignment",(Students,Working_places,Days),0,1,LpBinary)

对于每个工作地点和日期,我想输出分配在那里的学生的姓名,以便创建时间表。

我目前的做法是:

Schedule[w,d]是在 SolverStudio 中定义的空 2d 参数,Name[s]包含学生的姓名。

我将代码序列放置在模型的不同位置。prob.solve()无论是在声明之前还是之后,它都没有区别。

目前,Schedule[w,d]正在填写学生列表中最后一个学生的姓名。

我观察到 if 子句被完全忽略。我可以删除它并生成相同的输出。

是否有不同的方式告诉 Python“对于每个工作地点和日期,打印分配的学生”?

非常感谢您!

0 投票
1 回答
210 浏览

python - 解析纸浆错误

当我尝试安装 ManPy 时,我收到以下错误消息:

错误:已安装 pyparsing 2.1.4,但 set(['pulp']) 需要 pyparsing<=1.9.9

我检查了 Pyparsing 设置,但没有找到解决方案。

0 投票
1 回答
384 浏览

python - 在 Python 中将 Python 代码从 gurobipy 转换为 PuLP

一般来说,我是纸浆和 LP 的新手。在翻译用于gurobipi库的代码以便它可以与 一起使用时PuLP,我陷入了以下创建变量的 gurobipy 代码。

m.addVar允许使用参数定义目标系数obj。怎么能做同样的事情PuLP?它的文档pulp.LpVariable似乎没有类似的参数......

另外,是否有任何示例代码可以使用 PuLP 在 Python 中解决 TSP?作为参考,这将有很大帮助!


到目前为止,这是我的代码,没有查看 subtours。决策变量的结果x_ij似乎非常错误,1.0只有当 时才相等i == j。到目前为止我的尝试是否正确?

结果

纸浆代码

my-waypoints-dist-dur.tsv (完整版)

0 投票
1 回答
3725 浏览

python - 用 Python 定义旅行推销员的线性规划模型

使用 Python 和PuLP库,我们如何创建线性规划模型来解决旅行商问题 (TSP)?

来自维基百科,目标函数和约束是

在此处输入图像描述

问题:这是我卡住的部分尝试。

  1. 我没有在代码中包含最终约束,因为我不知道如何定义它。我相信这个带有 u 变量的约束是为了防止解决方案中的子循环

  2. 此外,求解当前模型会给出决策变量,例如x0_0x1_1等于1.0哪个绝对是错误的......我无法弄清楚为什么会这样,即使我有

    /li>

Python代码

我的航点-dist-dur.tsv

数据文件可以在这里找到

结果


更新代码

0 投票
1 回答
3092 浏览

scipy - CPLEX 与使用 SCIP 的 CPLEX 的速度

我是 LP 新手,只PuLP在 Python 中短暂使用过。

  1. SCIP 3.2.1 - CPLEX 12.63为什么和之间有速度差异CPLEX 12.6.3?SCIP 不是仍然使用 CPLEX 来求解吗?

  2. 为什么有人将 SCIP 与 CPLEX 求解器一起使用,而不是直接使用 CPLEX?

在此处输入图像描述

0 投票
1 回答
4929 浏览

python - 如何使用 CBC 求解器在 PULP-OR 中设置最优差距?

我想在计算最优解和实际解之间的解时设置最优差距。

我使用的是 PuLP 版本 1.6.1,我想将 gap 的参数传递给求解器。有没有人有关于如何解决这个问题的例子或想法。

可在此处找到的文档:

https://pythonhosted.org/PuLP/solvers.html

不是很有帮助。

谢谢你。

0 投票
1 回答
1735 浏览

python-3.x - Python,PuLP:将 LpVariable 转换为整数

我正在尝试打印定义为 LpVariable(PuLP 1.6.1,Python 3.5)的变量的值。LpVariable 具有将参数类别设置为“整数”的选项。但是,当我要求打印变量时,这不会产生值。特此我要解决的一个问题:

这给了我以下结果:

我希望最后一行是一个整数值,但事实并非如此。有人可以向我解释如何将表达式转换为整数值吗?

0 投票
0 回答
103 浏览

python - 识别 N × N 矩阵中值的最佳组合以最大化 Python 中线性目标函数的值

我有一个班次数组(我将其呈现为字典),其中每一行都是一个人,他们有资格获得的每个班次可以是多个班次。我在示例中使用字母来传达数据如何匹配。对于字母表示,实际数据集为 0 或 1 即 shifts = {Bob: (A, C, E), George: (B, C), Steve: (B, C, E), Greg: (C), Jose:(B,E)} 本质上变成 [[(A, 0, C, 0, E),(0, B, C, 0, 0), (0, 0, C, 0, 0), (0 , B, 0, D, E)]]

我有一定数量的个人配额来填补每个班次。一个人不能被分配到 2 个不同的班次。

基本上=> totalshifts = A=1 + B=1 + C=2 + E=1 => 5 个总位置约束是 A<=1:A>=0 , B<=1:B>=0, C<= 2:C>=0, E<=1:E>=0

这目前正在 Excel 求解器中解决,其中单纯形 LP 设置为最大化。我一直在研究使用 scipy.optimize.linprog,但我正在努力正确设置它,或者当输入数组不足以满足轮班所需的人数时如何处理它。

我希望输出是为个人分配正确的班次以最大化每个班次的功能,或者尽可能接近最大化它,类似于以下内容:Bob:A,George:B,Steve:C,Greg: C, Jose:E 本质上答案矩阵需要是 [(A, 0, 0, 0, 0),(0, B, 0, 0, 0),(0 , 0, C, 0 ,0), ( 0, 0, C, 0, 0), (0, 0, 0, 0, E)] 这样我就可以用正确的班次引用正确的候选人。这是一个简单的案例,更多的是 10 个不同的班次和 100 到 1000 个人。

Excel 示例:目前没有 10 个代表发布图片 http://i.imgur.com/ZZET86D.jpg

0 投票
1 回答
606 浏览

python-3.x - 在 Python 3.5 中使用 PuLP 对变量进行索引

我试图让我的线性规划问题的代码更简单一些。我现在拥有的是:

等等...

我想以如下格式对其进行编码:

然后在需要时单独使用这些变量,通过它们的名称和索引号来调用它们。

我可以打印包含所有变量名称的列表,但我不能在计算中使用单个变量。有人知道该怎么做吗?

0 投票
1 回答
1330 浏览

python-3.x - 纸浆显示 LpVariable 的上界值和最小化

我试图最小化以下问题:对于笔记本电脑、手机和平板电脑的生产,存在库存成本(每件每月 1 美元)和加班时间(每小时 10 美元)。需要满足一个需求方案,该方案用作特定月份中小工具最少数量的约束。除此之外,还有最多 20000 小时的生产时间,加上每月 3000 小时的加班时间。

问题是 python/pulp 给我的结果是(有一个例外)插入 LpVariables 的所有上限值:而不是最小化成本!

这给了我以下结果:

有人可以告诉我我做错了什么吗?