线性优化(Python SciPy)

在这篇文章中,我将在下面展示如何建模和线性优化问题:

我可以使用函数来建模和解决这个简单的线性优化问题。为此,我将以矢量和矩阵符号的形式进行陈述,并将其转化为最小化问题:

在Python中,我可以如下解决此问题:

# 用成本函数系数值设置清单 
c = [-2,-3]

#  建立约束系数矩阵A 
A_ub = [[1,1],
        [2,1]]

# 上限的约束列表(小于或等于约束) 
b_ub =[10,15]

#  另外,我需要为每个优化变量准备一个边界元组,并将它们汇总为一个列表 
x1_bounds = (0,None)
x2_bounds = (0,None)

#  现在我使用SciPy.optimize.linprog建模并解决手头的问题 
from scipy.optimize import linprog
model_linear = linprog(c=c,
                      A_ub=A_ub,
                      b_ub = b_ub,
                      bounds = [x1_bounds,x2_bounds])

#  输出模型解决方案 
print(str(model_linear))
     fun: -30.0
 message: 'Optimization terminated successfully.'
     nit: 1
   slack: array([ 0.,  5.])
  status: 0
 success: True
       x: array([  0.,  10.])

最佳解是x1 = 0,x2 = 10

最佳值为30

第一个约束它绑定

第二个约束条件是没有约束力

Leave a Reply

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Close

功能