这是笔者学习使用PULP库进行线性规划问题求解的学习笔记,水平有限,错误在所难免,请方家不吝指正。
PULP库简介
PULP是用Python写的一个线性规划(Linear Programming, LP)问题求解库。它的主要作用是将优化问题描述为数学模型,生成MPS或者LP文件,然后调用LP求解器,如CBC、GLPK、CPLEX、Gurobi等来进行求解。
PULP库安装
作为python的库,PULP的安装非常简单了,打开command window,输入以下指令,等待安装完成即可:
pip install pulp
优化问题的求解步骤
通常来说,优化问题的求解可以分为以下五个步骤:
获取问题描述
数学剑魔
求解数学模型
后续分析
根据最优解,提出实施方案
下面逐一进行详述:
获取问题描述
这一步的目的是获得严格无歧义的对问题的描述。在这一步中,需要反复和业务方进行探讨,确保模型和实际业务严密贴合。需要注意模型和数据是紧密联系的,有时哪怕你提出的模型很好,但是业务方无法提供可用的数据,那你也不可能凭空对模型进行求解。因此必须要确认好对方的需求和可用的数据,才能保证模型求解之后作出的决策可以落地。
数学建模
在这一步中,我们需要从问题的描述里抽象出几个关键因素:决策变量、约束和目标函数。这一步又可以分解为四个步骤:
找到决策变量,也就是我们需要改变以在满足约束范围内找到最优目标函数的变量,特别需要注意其单位;