Python 我可以将lp文件读入plup.LpProblem对象吗

Python 我可以将lp文件读入plup.LpProblem对象吗,python,pulp,Python,Pulp,我有一个非常大的LP问题保存为LP文件。有没有一种方法可以将该文件作为LpProblem对象来读取?构建这个问题花了很多时间(大约7个小时),我只想使用一个代码,我必须给它添加更多约束。据我所知,不支持在纸浆中读取文件 文档显示有一个writeLP方法(这是所有这些解算器所需的核心功能;pulp似乎主要基于write lp->call solver on lp file),但没有读取/加载方法 一个可能的原因是,尽管有许多用户不会使用的额外工作,人们可能会使用它来加载任何lp文件。这将是一个问题

我有一个非常大的LP问题保存为LP文件。有没有一种方法可以将该文件作为LpProblem对象来读取?构建这个问题花了很多时间(大约7个小时),我只想使用一个代码,我必须给它添加更多约束。

据我所知,不支持在纸浆中读取文件

文档显示有一个writeLP方法(这是所有这些解算器所需的核心功能;pulp似乎主要基于write lp->call solver on lp file),但没有读取/加载方法

一个可能的原因是,尽管有许多用户不会使用的额外工作,人们可能会使用它来加载任何lp文件。这将是一个问题,因为不同的解算器使用不同的标准(即使格式的核心思想是相同的)

请记住,lp格式可能会强制执行一些需要转换约束的假设。这意味着,某些基于lp文件的读取方法永远无法返回您的原始公式,而只能返回等效的内容。这进一步增加了这项任务的复杂性


可能会使用Python的内置序列化(如pickle)来存储一些问题(不同的方法:从Python的角度保存内部状态)。但这有点取决于实现,在您的用例中也不会有帮助。

据我所知,不支持读取纸浆中的文件

文档显示有一个writeLP方法(这是所有这些解算器所需的核心功能;pulp似乎主要基于write lp->call solver on lp file),但没有读取/加载方法

一个可能的原因是,尽管有许多用户不会使用的额外工作,人们可能会使用它来加载任何lp文件。这将是一个问题,因为不同的解算器使用不同的标准(即使格式的核心思想是相同的)

请记住,lp格式可能会强制执行一些需要转换约束的假设。这意味着,某些基于lp文件的读取方法永远无法返回您的原始公式,而只能返回等效的内容。这进一步增加了这项任务的复杂性


可能会使用Python的内置序列化(如pickle)来存储一些问题(不同的方法:从Python的角度保存内部状态)。但这有点取决于实现,在您的用例中也不会有帮助。

在遇到了同样的问题(以及许多其他问题)后,Freewheel的一组线性解决、开源的工程师已经开始开发Flipy,一个专门从事线性编程的Python包。一些关键特性:运行时性能和读取LP函数。请随意在

上查看,因为在纸浆上遇到了同样的问题(以及许多其他问题),Freewheel的一群线性解决、开源的工程师已经开始开发Flipy,这是一个专门从事线性编程的Python包。一些关键特性:运行时性能和读取LP函数。请随意在

上查看,我发现这是用Python读取LP文件的一个很好的解决方案。它也能正确读取整数/二进制变量,而flipy则不能。它也比IBMCPlex或Gurobi的Python API更易于使用。

我发现这是用Python读取LP文件的一个很好的解决方案。它也能正确读取整数/二进制变量,而flipy则不能。它也比IBM CPLEX或Gurobi的Python API更易于使用。

谢谢。这完全有道理。看来我必须按照你的建议去做:再次生成LpProblem(另外7个小时!),并在构建过程中存储它。但是,先用一些较小的示例来尝试一下,看看pickle是否认为它是可拾取的。是的,从lp文件构建模型会很困难。我建议您在这里查找有关如何缩短构建时间的提示。非常感谢。这完全有道理。看来我必须按照你的建议去做:再次生成LpProblem(另外7个小时!),并在构建过程中存储它。但是,先用一些较小的示例来尝试一下,看看pickle是否认为它是可拾取的。是的,从lp文件构建模型会很困难。我建议您在这里查找有关如何缩短构建时间的提示。