目标函数
maxz=[A1,A2,...,An]⋅[x1,x2,...,xn]T(1)
约束不等条件
⎡⎣⎢⎢⎢B11B21...Bm1B12B22...Bm2............B1nB2n...Bmn⎤⎦⎥⎥⎥⋅[x1,x2,...,xn]T≤[VB1,VB2,...,VBn](2)
约束相等条件
⎡⎣⎢⎢⎢C11C21...Cp1C12C22...Cp2............C1nC2n...Cpn⎤⎦⎥⎥⎥⋅[x1,x2,...,xn]T=[VC1,VC2,...,VCn](3)
取值范围
x1∈(a1,b1),x2∈(a2,b2),...,xn∈(an,bn)(4)
求解代码
from scipy import optimize as op
import numpy as np
# 线性规划为 z = np.array([A1, A2, ..., An])
# 不等参数矩阵(左边)为 B
# 不等系数矩阵(右边)为 VB
# 相等参数矩阵(左边)为 C
# 相等参数矩阵(右边为VC)
# 取值范围为二维元组 b =((a1,b1), ..., (an, bn))
res = op.linprog(-z, B, C, VB, VC, bounds = b)
max = -res['fun']