问题标签 [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-2.7 - PuLp:lpSum 约束的最小和最大阈值
我有一个大型线性规划模型,我正在尝试用 PuLp 解决。到目前为止,一切都很好,除了我在尝试为我的 dict 变量中的每个“行”设置最小值和最大值时遇到了障碍。在下面的示例中,我希望每个区域的动物数量最少和最多,如图所示。
为简化起见,变量名改为“dogs”和“cats”
结果如下。问题是这些变量中的每一个都应该有一个不小于 inmin_cats
和的值min_dogs
。它将价值分配给猫和狗的一个区域,而不是传播它。
如何在行级别分配最小和最大界限?
python - 线性规划(单纯形 LP) 纸浆?
仅在 Python 中,并使用来自 Pandas 数据框的数据,我如何使用PuLP解决线性编程问题,就像在 Excel 中一样?应该为“新预算”列下的每个渠道分配多少预算,以便我们最大化估计的成功总数?我真的在寻找一个使用来自数据框的数据的具体示例,而不是真正的高级建议。
问题数据设置
这是一个最大化问题。
目标函数为:
约束是:
- 的总和
df['New Budget']
必须等于5000
New Budget
给定频道的Cost Min
New Budget
给定频道的Cost Max
任何想法如何使用 PuLP 或任何其他求解器方法翻译这个熊猫数据帧求解器线性问题?最终结果将是您在下图中看到的。
python-3.x - 如何在 PuLP 中添加逻辑约束
我正在尝试使用 PuLP 解决 FLP。我想为变量值添加逻辑约束。
我有 LpVariable f 和 C 是 LpVariables 的列表。我想将 f 添加到问题的约束中,这取决于 c[i] 的值。
以下是代码片段>
添加了第一个约束:
现在我想添加以下约束:
现在的问题是 LpVariables c[i] 被初始化,None
因此它在计算时抛出错误lpSum()
。
我希望我很清楚。让我知道是否需要任何帮助来理解这个查询,但我认为给定的代码片段就足够了。
python-3.x - 如何在 PuLP 中初始化 LpVariable
我已宣布facility
清单LpVariable
:
当我这样做时print(value(facility[i]))
,它会给我输出,None
因为默认情况下所有 LpVariables 都具有 None 值。但是在我的代码中,我想用 0 进行初始化。但是当我解决问题时,最佳解决方案可以具有 0 到 1 之间的任何值。如果我这样做:
它将设置facility[i] = 0
(整数值并且没有更多的 LpVariable)。
如果我这样做会引发错误我value(facility[i]) = 0.
应该如何初始化这些变量?
python - 如何在纸浆中使用变量作为除数
我试图通过将变量 A 除以变量 B 来计算约束来解决 LP 问题。
问题的简单版本如下:
该产品由两种材料(A和B)制成
A 的百分比应大于 50%
B 的百分比应小于 40%
A和B的总量是100
目标:A的最小数量是多少?
代码如下:
但是我收到一条错误消息:
TypeError:表达式不能被非常量表达式除
看起来纸浆不支持变量作为除数。 https://github.com/coin-or/pulp/blob/master/src/pulp/pulp.py#L800
任何想法?如果 PuLP 不是正确的库,我很乐意切换到任何适合的库。
2015 年 11 月 27 日更新
出于某种原因,上面的示例没有意义(没有按预期工作)。我是这个图书馆的新手。也许这根本不是解决我问题的合适人选。因此,如果有人对其他图书馆有建议,我们将不胜感激。
顺便说一句,下面 Koen Peters 的建议很棒。接受他的建议后,错误消失了。谢谢你。
python - 配电网络线性规划约束
我正在尝试使用 Pulp 框架用 Python 编写一个线性程序 - 捐赠诊所提供血液,这些血液被送到配送中心,然后送到医院供使用。困难在于创建约束来决定是否使用配送中心并保持从进入 DC 到退出的流量?
python - 如何深拷贝 LpVariables
当我使用方法时LpProblem
,我需要LpVariables
通过引用对问题副本进行深度复制。LpProblem.deepcopy()
在这种情况下,如果我更改复制问题变量之一的上限,此更改会影响原始问题变量。
考虑以下情况:
在这种情况下,变量 in 的上限currentProblem
也更改为 10。
我怎样才能深拷贝一个LpProblem
深拷贝它的所有元素?(包括LpVariables
)
python - 纸浆不在 IPython 单元上打印输出
我正在为一个项目使用PuLP和 IPython/Jupyter Notebook。
我有以下代码单元:
当我执行单元格时,输出很简单:
当我查看运行笔记本服务器的终端时,我可以看到求解器的输出(在本例中为:COIN)。如果将model.solve参数更改为
或者
但是,当我使用 Gurobi Solver 时,使用这条线
求解器的输出显示在笔记本单元格上,这是我想要的行为。事实上,我会很高兴任何免费求解器直接在笔记本单元格上打印其输出。
我在纸浆文档中找不到有关如何解决此问题的说明。任何帮助,将不胜感激。我也很想知道其他人是否有这种行为。
我正在使用 Linux Mint、64 位、IPython 4.0.0 和 PuLP 1.6.0。
scipy - 目标函数值的零乘数不能给出最可行的解决方案
我正在使用 Pulp来解决线性程序(也使用 scipy 得到相同的结果)。所以我的线性程序公式有问题,或者我不知道单纯形算法如何工作的一些棘手细节。
这是minimization的目标函数,注意乘数x2
是0
,所以我不期望x1
或x2
有任何值0
,因为x3
没有最大约束并且-1 * x3
能够为最小化提供更多价值:
线性方程组:
作为一个解决方案,x2 = 20
即使它在目标函数中的乘数是0
.
如果在我设置的目标函数中-2 * x3
,那么它工作得很好。
python - PuLP:检查解决方案是否满足约束
所以我通过纸浆运行 CBC 5 秒钟,它给出了一个解决方案,但我不确定它是否满足所有限制。每个变量的值存储在prob.variables()
. 有没有一种方法可以运行与下面类似的代码来检查解决方案是否满足给出的约束prob.constraints
- 即解决方案是否可行?
问题的设置和约束与此处给出的非常相似:github_code
干杯。