文章预览
Scipy是Python中一个强大且广泛使用的科学计算库,内置了许多优化算法,可以方便地解决线性规划、非线性规划和整数规划等常见的规划问题。 线性规划 线性规划即目标函数、约束条件均为线性的规划问题。使用Scipy中的linprog函数可方便求解: import scipy.optimize c = [2, 3, -5] #目标函数系数 2x1+3x2-5x3 A_ub = [[-2, 5, -1], [1, 3, 1]] ##约束矩阵系数 b_ub = [-10, 12] ##约束条件右值 A_eq = [[1, 1, 1]] ###约束矩阵等式系数 b_eq = [7.12] ###约束等式右值 bounds = [(0, 3.5), (0, 3.6), (0, 100.1)] #变量区间 res = scipy.optimize.linprog(c=c, A_ub=A_ub, b_ub=b_ub, A_eq=A_eq, b_eq=b_eq, bounds=bounds) print (res) print (res.get( 'x' )) A_ub和b_ub分别指定约束条件矩阵和右值。以上建模写成了矩阵形式,方便读入参数建模。求解结果如下: message: Optimization terminated successfully. (
………………………………