在家安装 PuLP

PuLP 是一个用 Python 编写的免费开源软件。它用于将优化问题描述为数学模型。PuLP 可以调用众多外部 LP 求解器(如 CBC、GLPK、CPLEX、Gurobi 等)来求解该模型,然后使用 Python 命令来操作和显示解决方案。

安装

请注意,要安装 PuLP,您必须首先有一个正常工作的 Python 安装,如 installing python 中所述。

PuLP 需要 Python >= 2.7 或 Python >= 3.4。

最新版本的 PuLP 可以从 github 免费获取。

Pip 和 pypi 安装

到目前为止,安装 pulp 最简单的方法是通过使用 pip

  • 在 Windows 中(请确保 pip 在你的路径中):

    c:\Python34\Scripts\> pip install pulp
    
  • 在 Linux 中:

    $ sudo pip install pulp
    $ sudo pulptest             #needed to get the default solver to work
    
  • 然后按照以下说明测试您的安装

要访问示例和pulp源代码,请使用以下说明从源代码安装。

从源代码安装 Windows

  • 安装 Python (安装 Python)

  • 下载 PuLP zipfile

  • 将压缩文件解压到合适的位置(例如桌面:安装后将不再需要该文件夹)

    • 通过点击开始菜单中的“运行”打开命令提示符,然后在窗口中输入’cmd’并按下回车键。

    • 导航到包含安装文件的解压文件夹。[通过在提示符下输入 ‘cd foldername’ 来完成此操作,其中 ‘cd’ 代表当前目录,’foldername’ 是要在路径中打开的文件夹名称,该路径已经列在提示符左侧。要返回到根驱动器,请输入 ‘cd C:']

    • 在命令提示符下输入 ‘setup.py install’。这将把所有 PuLP 函数安装到 Python 的 site-packages 目录中。

PuLP 函数库现在可以从任何 Python 命令行导入。前往 IDLE 或 PyDev 并输入

>>> from pulp import *

加载函数。(每次关闭GUI后,您需要重新导入函数)PuLP是用一种名为Python的编程语言编写的,要使用PuLP,您必须编写Python代码来描述您的优化问题。

Linux 安装

  • PuLP zipfile 文件夹解压到合适的位置(例如您的家目录 - 安装后将不再需要该文件夹)

  • 打开命令行,导航到包含安装文件的解压后的zip文件夹中。[通过在提示符下输入’cd foldername’来完成此操作]

  • 在命令提示符下输入以下内容。这将把所有 PuLP 函数安装到 Python 的可调用模块中。

$ sudo python setup.py install
  • 为 pulp 安装一个求解器以使用任一

    • 使用包含的 64 或 32 位二进制文件 cbc-32 和 cbc-64

    • 安装 glpk 基于 Debian 的发行版可以使用以下命令

    $ sudo apt-get install glpk-utils
    
    • 安装 gurobi (免费学术许可证)

    • 安装 cplex (学术版也需许可证)

测试你的 PuLP 安装

要测试您的 pulp 安装是否正常工作,请在 Python 解释器中输入以下内容,并注意输出应与此类似。如果您没有安装其他求解器,并且 pulp 自带的 CBC 求解器工作正常,则输出如下所示。

>>> import pulp
>>> pulp.pulpTestAll()
         Testing zero subtraction
         Testing continuous LP solution
         Testing maximize continuous LP solution
         Testing unbounded continuous LP solution
         Testing Long Names
         Testing repeated Names
         Testing zero constraint
         Testing zero objective
         Testing LpVariable (not LpAffineExpression) objective
         Testing Long lines in LP
         Testing LpAffineExpression divide
         Testing MIP solution
         Testing MIP relaxation
         Testing feasibility problem (no objective)
         Testing an infeasible problem
         Testing an integer infeasible problem
         Testing column based modelling
         Testing dual variables and slacks reporting
         Testing fractional constraints
         Testing elastic constraints (no change)
         Testing elastic constraints (freebound)
         Testing elastic constraints (penalty unchanged)
         Testing elastic constraints (penalty unbounded)
* Solver pulp.solvers.PULP_CBC_CMD passed.
Solver pulp.solvers.CPLEX_DLL unavailable
Solver pulp.solvers.CPLEX_CMD unavailable
Solver pulp.solvers.CPLEX_PY unavailable
Solver pulp.solvers.COIN_CMD unavailable
Solver pulp.solvers.COINMP_DLL unavailable
Solver pulp.solvers.GLPK_CMD unavailable
Solver pulp.solvers.XPRESS unavailable
Solver pulp.solvers.GUROBI unavailable
Solver pulp.solvers.GUROBI_CMD unavailable
Solver pulp.solvers.PYGLPK unavailable
Solver pulp.solvers.YAPOSIB unavailable