尝试线性模型的acipy模块

pull/4/head
JCHPJP 4 months ago
parent ab8bd7dfae
commit 7b70265a0d

@ -0,0 +1,56 @@
from scipy.optimize import linprog
import time
import numpy as np
'''
目标函数
min z= -x1 + 4 x2
约束条件
-3x1 + x2 < = 6
x1 + 2x2 <= 4
x2 >= -3
'''
begin = time.time()
c=[-1,4]
A=[[-3,1],[1,2]]
b=[[6],[4]]
bounds=((None , None),(-3,None))
res= linprog(c,A,b,None,None,bounds)
end= time.time()
print("结果为:",res.fun)
print("x的值位",res.x," ",type(res.x))
print(end-begin,"\n",'----------------------------------------')
'''
线性规划问题
max z = x1 - 2x2 - 3x3
约束条件
-2x1 + x2 + x3 <= 9
-3x1 + x2 + 2x3 >= 4
4x1 -2x2 -x3 = -6
x1 >= -10 ,x2 >=0
'''
'''
scipy标准形式
min w= -x1 + 2x2 + 3x3
约束
-2x1 + x2 + x3 <= 9
3x1 - x2 - 2x3 <= -4
'''
c= (-np.array([1,-2,-3])).tolist()
A=[[-2,1,1],[-3,1,2]]
A[1]= (-np.array(A)[1]).tolist()
b= [[9],[4]]
b[1]=(-np.array(b[1])).tolist()
Aeq=[[4,-2,-1]]
beq =[[-6]]
LB =[-10,0,None]
UB = [None]*len(c)
bounds= tuple(zip(LB,UB))
res= linprog(c,A,b,Aeq,beq,bounds)
end= time.time()
print("结果为:",res.fun)
print("x的值位",res.x," ",type(res.x))
print(end-begin,"\n",'----------------------------------------')
print(res)

@ -0,0 +1,23 @@
import time
import numpy as np
from scipy.optimize import linprog
start = time.time()
c = [-110,-120,-130,-110,-115,150]
c = (-np.array(c)).tolist()
A=[[1,1,0,0,0,0],
[0,0,1,1,1,0],
[8.8,6.1,2.0,4.2,5.0,-6],
[8.8,6.1,2.0,4.2,5.0,-3]
]
A[3]=(-np.array(A[3])).tolist()
b=[[200],[250],[0],[0]]
Aeq =[[1,1,1,1,1,-1]]
beq = [[0]]
LB= [0]*len(c)
UB= [None]*len(c)
bounds= tuple(zip(LB,UB))
res = linprog(c,A,b,Aeq,beq,bounds)
end = time.time()
print("最优解:\n",res.x)
print("目标函数最小值:\n",-res.fun)
Loading…
Cancel
Save