pulp
PuLP 是一个用 Python 编写的 LP 建模工具。PuLP 可以生成 MPS 或 LP 文件,并调用 GLPK、COIN-OR CLP/CBC、CPLEX、GUROBI、MOSEK、XPRESS、CHOCO、MIPCL、HiGHS、SCIP/FSCIP 来解决线性问题。
安装
安装 pulp 最简单的方法是通过 PyPi
如果 pip 在你的系统中可用:
python -m pip install pulp
否则,请按照 PyPi 页面上的下载说明进行操作。
如果你想从github安装最新版本,你可以运行以下命令:
python -m pip install -U git+https://github.com/coin-or/pulp
在Linux和OSX系统上,必须运行测试以使默认求解器可执行。
sudo pulptest
示例
请参阅示例目录以获取示例。
PuLP 需要 Python 3.7 或更新版本。
这些示例使用默认的求解器(CBC)。要使用其他求解器,它们必须可用(已安装并可访问)。有关如何操作的更多信息,请参阅 配置求解器指南。
文档
文档可以在 https://coin-or.github.io/pulp/ 找到。
使用 LpVariable() 创建新变量。要创建一个变量 0 <= x <= 3:
x = LpVariable("x", 0, 3)
要创建一个变量 0 <= y <= 1:
y = LpVariable("y", 0, 1)
使用 LpProblem() 创建新问题。创建“myProblem”:
prob = LpProblem("myProblem", LpMinimize)
将变量组合以创建表达式和约束,然后将它们添加到问题中:
prob += x + y <= 2
如果你添加一个表达式(不是约束),它将成为目标:
prob += -4*x + y
使用默认包含的求解器来解决:
status = prob.solve()
使用另一个求解器来解决问题:
status = prob.solve(GLPK(msg = 0))
显示解决方案的状态:
LpStatus[status]
> 'Optimal'
你可以使用 value() 获取变量的值。例如:
value(x)
> 2.0
导出的类:
LpProblem
– 线性规划问题的容器类LpVariable
– 添加到 LP 约束中的变量LpConstraint
– 一种一般形式的约束a1x1+a2x2 …anxn (<=, =, >=) b
LpConstraintVar
– 用于在列式建模中构造模型的一列
导出的函数:
value()
– 查找变量或表达式的值lpSum()
– 给定一个形式为 [a1*x1, a2x2, …, anxn] 的列表,将构造一个线性表达式,用于约束或变量lpDot()
–给定两个形式为 [a1, a2, …, an] 和 [x1, x2, …, xn] 的列表,将构造一个线性表达式,用于约束或变量
构建文档
PuLP 文档是使用 Sphinx 构建的。我们建议使用 虚拟环境 在本地构建文档。
要在终端窗口中构建,请在 PuLP 根目录下运行以下命令
cd pulp
python -m pip install -r requirements-dev.txt
cd doc
make html
将在 build/
目录内创建一个名为 html 的文件夹。文档的主页是 doc/build/html/index.html
,可以在浏览器中打开。
欢迎提供评论、错误报告、补丁和建议。
补丁: https://github.com/coin-or/pulp/pulls
版权所有 J.S. Roy, 2003-2005 版权所有 Stuart A. Mitchell 查看 LICENSE 文件以获取版权信息。