Python中使用pulp进行线性规范计算

Pulp,用python来做线性规划

入门程序:

1
2
3
4
5
max: 2 * x1 + 5 * x2
约束:
1.  2 * x1 - x2 <= 4
2.  x1 + 2 * x2 <= 9
3.  -x1 + x2 <= 3

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from pulp import *
prob = LpProblem( 'lptest' , LpMaximize)
 
x1 = LpVariable( 'x1' , lowBound = 0 )
x2 = LpVariable( 'x2' , lowBound = 0 )
 
prob + = 2 * x1 + 5 * x2
 
prob + = 2 * x1 - x2 < = 4
prob + = x1 + 2 * x2 < = 9
prob + = - x1 + x2 < = 3
 
GLPK().solve(prob)
 
for v in prob.variables():
     print v.name, '=' , v.varValue
 
print 'objective =' , value(prob.objective)

计算结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
GLPSOL: GLPK LP/MIP Solver, v4.45
Parameter(s) specified in the command line:
  --cpxlp /tmp/3624-pulp.lp -o /tmp/3624-pulp.sol
Reading problem data from `/tmp/3624-pulp.lp'...
3 rows, 2 columns, 6 non-zeros
8 lines were read
GLPK Simplex Optimizer, v4.45
3 rows, 2 columns, 6 non-zeros
Preprocessing...
3 rows, 2 columns, 6 non-zeros
Scaling...
  A: min|aij| =  1.000e+00  max|aij| =  2.000e+00  ratio =  2.000e+00
Problem data seem to be well scaled
Constructing initial basis...
Size of triangular part = 3
*     0: obj =   0.000000000e+00  infeas =  0.000e+00 (0)
*     2: obj =   2.200000000e+01  infeas =  0.000e+00 (0)
OPTIMAL SOLUTION FOUND
Time used:   0.0 secs
Memory used: 0.0 Mb (40571 bytes)
Writing basic solution to `/tmp/3624-pulp.sol'...
x1 = 1.0
x2 = 4.0
objective = 22.0

来一发算法书上的单纯形法执行过程,备忘。
simplex

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值