python批量做线性规划(每次的约束条件参数有变换)
需要用到scipy庫里面的函數(shù)
scipy.optimize.linprog(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None, bounds=None, method=‘simplex’, callback=None, options=None)
代碼
from scipy import optimize as op import numpy as np c=np.array([2,3,-5]) A_ub=np.array([[-2,5,-1],[1,3,1]]) B_ub=np.array([-10,12]) A_eq=np.array([[1,1,1]]) B_eq=np.array([7]) x1=(0,7) x2=(0,7) x3=(0,7) res=op.linprog(-c,A_ub,B_ub,A_eq,B_eq,bounds=(x1,x2,x3)) print(res)c指的應(yīng)該是要求最大值的函數(shù)的系數(shù)數(shù)組,A_ub是應(yīng)該是不等式未知量的系數(shù)矩陣,仔細(xì)觀察的人應(yīng)該發(fā)現(xiàn),為什么第一行里面寫的是[-2,5,-1]而不是[2,5,-1]呢,應(yīng)該要與圖里對(duì)應(yīng)才對(duì)啊,原來這不等式指的是<=的不等式,那如果是>=呢,乘個(gè)負(fù)號(hào)就行了。A_eq就是其中等式的未知量系數(shù)矩陣了。B_ub就是不等式的右邊了,B_eq就是等式右邊了。bounds的話,指的就是每個(gè)未知量的范圍了。我們看一下結(jié)果
fun: -14.571428571428571message: 'Optimization terminated successfully.'nit: 2slack: array([3.85714286, 0.57142857, 6.42857143, 7. , 0. ])status: 0success: Truex: array([6.42857143, 0.57142857, 0. ])批量做線性規(guī)劃,每次約束條件參數(shù)有變化
數(shù)據(jù)部分截圖
這是一道電網(wǎng)經(jīng)濟(jì)優(yōu)化調(diào)度題。這里不講解
更多優(yōu)化算法見鏈接
python求解帶約束目標(biāo)優(yōu)化問題(非線性規(guī)劃,粒子群,遺傳,差分進(jìn)化)
作者:電氣-余登武。寫作不容易,點(diǎn)個(gè)贊再走。
總結(jié)
以上是生活随笔為你收集整理的python批量做线性规划(每次的约束条件参数有变换)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡有钱但余额不足
- 下一篇: 闪电网络代币叫什么