添加许多约束时 PuLP 非常慢

2023-11-27

我正在尝试使用 PuLP,但它需要50秒添加 4000 个约束(包含 67 个变量)。解决问题只需要几分之一秒的时间。

我们希望使用 PuLP 轻松测试大量问题的多个求解器。

PuLP 应该花这么长时间吗?直接使用 PyGLPK 只需要几分之一秒的时间,包括设置和求解,所以我希望不会。我该如何提高 PuLP 中此步骤的效率?


Update

我的约束矩阵非常稀疏,通过仅包含非零系数,我能够将这个特定问题的设置时间减少到 4 或 5 秒。我仍然能够编写自己的 .lp 或 .mps 格式的文件,使用 cbc 或 glpsol 子进程解决问题,并且比 PuLP 更有效地解析解决方案,仅仅是因为当 PuLP 时我可以在几毫秒内写入输入文件需要几秒钟。我仍然不确定为什么会这样。


我没有足够的代表来发表评论。

但你有没有看过这个:

https://groups.google.com/forum/#!topic/pulp-or-discuss/p1N2fkVtYyM

提出的问题是:

"The problem is solved in less than 0.5 second.
However setting it up with PULP takes more than 10 seconds. "

这似乎也是您报告的内容。解决方案是不使用 += 或 sum(...) 运算符,而是使用链接中的说明:

yeah using the += operator with pulp is really slow, as is using sum() 
instead of lpSum()

因此,也许您一次将约束 1 添加到 PuLP,而不是先构建约束列表,然后在最后将约束添加到 PuLP?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

添加许多约束时 PuLP 非常慢 的相关文章

随机推荐

  • EnvironmentVariables默认值长度大于4096

    我正在尝试将 Rails 应用程序部署到 Amazon Elastic Beanstalk eb 环境 我收到了这个错误 Uploading 100 Done 2019 01 24 09 42 16 INFO Environment upd
  • 为什么column = NULL不返回任何行? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么 NULL NULL 在 SQL Server 中计算结果为 false 如果生成查询以将数据插入表 MyTab 中的列 Age Sex DOB ID INSERT INTO MyTab VAL
  • 安装 pylinkgrammar 时缺少文件

    http pypi python org pypi pylinkgrammar 我在尝试安装 pylinkgrammar 时遇到错误 Running setup py egg info for package pylinkgrammar I
  • 如何使我的应用程序在 Galaxy Tab 上全屏显示

    我一直在尝试一切我能想到的方法 让我的应用程序在 Galaxy Tab 上全屏显示 基本上 它的工作原理类似于 Android SDK 附带的 Lunar Lander 示例应用程序 您将如何使 Lunar Lander 应用程序在 Gal
  • 使用 ReactJs 更改 Ant Design 变量

    我在用antd我的应用程序中的库 根据文档 我可以通过更改变量来自定义主题 例如 modifyVars primary color EB564F link color 0DD078 success color 0DD078 border r
  • 如何在 POST 请求期间刷新会话?

    我正在 Symfony2 中构建一个 Ajax 应用程序 用户登录 然后从那时起 一切都由 POST 请求处理 将会话生命周期定义为 5 分钟后config yml 我遇到了用户会话在 5 分钟后失效的问题 即使他们正在发出 POST 请求
  • 自动加载路径和嵌套服务类在 Ruby 中崩溃

    我有多个问题需要加载 需要我的类app servicesRails 5 项目中的文件夹 我开始放弃这个问题 首先要明确的是 services 是我在整个项目中使用的简单 PORO 类 用于从控制器 模型等中抽象出大部分业务逻辑 这棵树看起来
  • 是否有一个 jQuery 解决方案,在可用时使用 CORS,并在 MSIE 上使用 XDomainRequest,在浏览器上使用 niether 时使用 JSONP?

    我愚蠢地相信所有现代浏览器都支持CORS 跨域资源共享 当我的玩具 JavaScript 工具无法在 IE9 或 Opera 上运行时 我发现前者只支持CORS通过XDomainRequest jQuery 似乎不支持 歌剧不支持CORS还
  • C# 泛型与 C++ 模板 - 需要澄清约束

    复制 C 和 Java 中的泛型与 C 中的模板有什么区别 Hi all 我是一位经验丰富的 C 程序员 但对 C 还很陌生 这些限制和泛型怎么了 为什么它的工作方式与 C 中的约束不同 C 中的约束是隐式的 并且是从您对模板类进行的实例化
  • 将大型 CSV 文件加载到核心数据中的最快方法是什么

    结论我想问题已经解决了 看起来这个问题与方法无关 但 XCode 没有在构建之间正确清理项目 看起来在所有这些测试之后 正在使用的 sqlite 文件仍然是第一个没有索引的文件 当心 XCode 4 3 2 我除了 Clean 不清理的问题
  • 以最快、最有效的方式调整 UIImage 大小

    我想将 UIImage 的大小调整为一定的宽度和高度 保持比例不变 最简单的方法是 CGSize newSize CGSizeMake 726 521 UIGraphicsBeginImageContext newSize image dr
  • 避免在 scikit learn StandardScaler 中缩放二进制列

    我正在 sci kit learn 中构建线性回归模型 并将输入缩放为 sci kit learn Pipeline 中的预处理步骤 有什么方法可以避免缩放二进制列吗 发生的情况是这些列与其他列一起缩放 导致值以 0 为中心 而不是 0 或
  • 使用 CSS 更改链接文本

    我想用 CSS 更改我的链接文本 但它不起作用 a testclass display none a testclass after content new text a class testclass href someurl com C
  • 在 Haskell 中使用填充进行压缩

    有几次我发现自己想要一个zip在 Haskell 中 它会向较短的列表添加填充 而不是截断较长的列表 这很容易写 Monoid在这里对我有用 但您也可以只传递要用于填充的元素 zipPad Monoid a Monoid b gt a gt
  • 屏幕密度为 440 dpi 的设备与 Google Play 上发布的应用不兼容

    添加后
  • 工作流/管道插件中的访问阶段结果

    我有一个具有不同阶段的管道 我希望当前的作业检查上一个构建已经经过了多少阶段并将其记录在控制台中 考虑这是我当前的管道 node stage 1 do something stage 2 do something else 我想要一个很棒的
  • 如何在 MySQL 上进行 SQL 区分大小写的字符串比较?

    我有一个函数返回五个大小写混合的字符 如果我对此字符串进行查询 无论大小写 它都会返回值 如何使 MySQL 字符串查询区分大小写 使用它来进行区分大小写的查询 SELECT FROM table WHERE BINARY column v
  • 使用 LINQ 获取每第 n 行

    我们的 SQL 数据库中有一个表 其中包含我需要用来创建图表的历史原始数据 我们通过实体框架和 LINQ 访问数据库 对于较小的日期时间间隔 我可以简单地读取数据并生成图表 var mydata entity DataLogSet Wher
  • Oracle用rownum查看性能

    我正在使用 Oracle 10g 并且有一个连接两个大表 数百万条记录 的视图 我试图为用户选择有限的数据 样本 如下所示 select from VIEW NAME where ROWNUM lt 5 它非常慢 我认为不应该 因为我只需要
  • 添加许多约束时 PuLP 非常慢

    我正在尝试使用 PuLP 但它需要50秒添加 4000 个约束 包含 67 个变量 解决问题只需要几分之一秒的时间 我们希望使用 PuLP 轻松测试大量问题的多个求解器 PuLP 应该花这么长时间吗 直接使用 PyGLPK 只需要几分之一秒