pulp是用python编写的lp建模器。纸浆可以生成MPS或LP文件,并调用GLPK、硬币CPL/CBC、CPLEX和GUROPI来解决线性问题。
pulp-or的Python项目详细描述
#版权所有J.S.Roy(js@jeannot.org),2003-2005 #版权所有Stuart A.Mitchell(stu@stuartmitchell.com) #有关版权信息,请参见许可文件。
pulp是用python编写的lp建模器。pulp可以生成mps或lp文件 并调用glpk[1]、coin clp/cbc[2]、cplex[3]和gurobi[4]来求解线性 问题。
有关示例,请参见示例目录。
纸浆需要python>;=2.5。
这些示例至少需要路径中的解算器或共享库文件。
文档位于https://www.coin-or.org/PuLP/。 全面的wiki可以在https://www.coin-or.org/PuLP/
使用lpvariable()创建新变量。创建变量0<;=x<;=3 >;gt;gt;x=lpvariable(“x”,0,3)
创建变量0<;=y<;=1 >>>gt;y=lpvariable(“y”,0,1)
使用lpproblem()创建新问题。创建“myproblem” >>>prob=lpproblem(“myproblem”,lpminimize)
组合变量以创建表达式和约束,并将它们添加到 问题。 >>>问题+=x+y<;=2
如果添加表达式(而不是约束),则 成为目标。 >>>>问题+=-4*x+y
选择一个解决方案并解决问题。前任: >>>>状态=问题解决(glpk(msg=0))
显示解决方案的状态 >;gt;gt;lpstatus[状态] “最佳”
可以使用value()获取变量的值。前任: >>>gt;值(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-or-discuss@googlegroups.com
参考文献: [1]http://www.gnu.org/software/glpk/glpk.html [2]http://www.coin-or.org/ [3]http://www.cplex.com/ [4]http://www.gurobi.com/