假设这是我们要解决的线性规划问题
首先将其变换为标准形式
使用cvxopt求解:
from cvxopt import solvers, matrix
# define the optimization parameters
A = matrix([
[-1., -1., 0., 1.],
[1., -1., -1., -2.]
])
B = matrix([1., -2., 0., 4.])
C = matrix([2., 1.])
# print the result of solver
ret = solvers.lp(C, A, B)
print(ret['x'])
输出:
pcost dcost gap pres dres k/t
0: 2.6471e+00 -7.0588e-01 2e+01 8e-01 2e+00 1e+00
1: 3.0726e+00 2.8437e+00 1e+00 1e-01 2e-01 3e-01
2: 2.4891e+00 2.4808e+00 1e-01 1e-02 2e-02 5e-02
3: 2.4999e+00 2.4998e+00 1e-03 1e-04 2e-04 5e-04
4: 2.5000e+00 2.5000e+00 1e-05 1e-06 2e-06 5e-06
5: 2.5000e+00 2.5000e+00 1e-07 1e-08 2e-08 5e-08
Optimal solution found.
[ 5.00e-01]
[ 1.50e+00]
得到最终的结果