本文会介绍怎么用python解决线性规划问题,为什么要用python而不是matlab和lingo呢?因为matlab的函数写法不太符合正常的思维方式,编起来很复杂。而lingo虽然编写容易,但报错不详细,一旦有错很难查出来。而python就没有这些问题。
关于python的语法就不再介绍了,主要介绍pulp库的用法。
以此题为例:计算6个生产点8个销售点的最小费用运输问题。产销单位运价如下表。
先建模,很容易得到以下模型:
现在开始编程:
引入头文件是必须的:
#-*- coding: UTF-8 -*-
importnumpyasnp
frompulpimport*
step1先新建一个问题,随便取名为prob:
prob = LpProblem("test1", LpMinimize)
step2然后定义变量为x,每个x代表了对应的A点卖到B点的数量:
foriinrange(1, 49, 1):
exec('x%s= LpVariable("x%s", 0, None, LpInteger,[])'%(i,i))
x = [[x1,x2,x3,x4,x5,x6,x7,x8],[x9,x10