Python二次規(guī)劃和線性規(guī)劃使用實(shí)例
這篇文章主要介紹了Python二次規(guī)劃和線性規(guī)劃使用實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
對(duì)于二次規(guī)劃(quadratic programming)和線性規(guī)劃(Linear Programming)問(wèn)題
MATLAB里是有quadprog函數(shù)可以直接用來(lái)解決二次規(guī)劃問(wèn)題的,linprog函數(shù)來(lái)解決線性規(guī)劃問(wèn)題。Python中也有很多庫(kù)用來(lái)解決,對(duì)于二次規(guī)劃有CVXOPT, CVXPY, Gurobi, MOSEK, qpOASES 和 quadprog; 對(duì)于線性規(guī)劃有Gurobi,PuLP, cvxopt。
目前發(fā)現(xiàn)quadprog進(jìn)行pip install quadprog不成功,而cvxopt成功了,就先說(shuō)cvxopt的使用。
安裝
conda install -c conda-forge cvxopt
安裝非常順利
使用
cvxopt有自己的matrix格式,因此使用前得包裝一下
對(duì)于二次規(guī)劃:
def cvxopt_solve_qp(P, q, G=None, h=None, A=None, b=None): P = .5 * (P + P.T) # make sure P is symmetric args = [cvxopt.matrix(P), cvxopt.matrix(q)] if G is not None: args.extend([cvxopt.matrix(G), cvxopt.matrix(h)]) if A is not None: args.extend([cvxopt.matrix(A), cvxopt.matrix(b)]) sol = cvxopt.solvers.qp(*args) if 'optimal' not in sol['status']: return None return np.array(sol['x']).reshape((P.shape[1],))
對(duì)于線性規(guī)劃:
def cvxopt_solve_lp(f, A, b): #args = [cvxopt.matrix(f), cvxopt.matrix(A), cvxopt.matrix(b)] #cvxopt.solvers.lp(*args) sol = cvxopt.solvers.lp(cvxopt.matrix(f), cvxopt.matrix(A), cvxopt.matrix(b)) return np.array(sol['x']).reshape((f.shape[0],))
參考:
Quadratic Programming in Python
Linear Programming in Python with CVXOPT
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
django為Form生成的label標(biāo)簽添加class方式
這篇文章主要介紹了django為Form生成的label標(biāo)簽添加class方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05解決Python中回文數(shù)和質(zhì)數(shù)的問(wèn)題
今天小編就為大家分享一篇解決Python中回文數(shù)和質(zhì)數(shù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11Python3加密解密庫(kù)Crypto的RSA加解密和簽名/驗(yàn)簽實(shí)現(xiàn)方法實(shí)例
這篇文章主要介紹了Python3加密解密庫(kù)Crypto的RSA加解密和簽名/驗(yàn)簽實(shí)現(xiàn)方法實(shí)例,需要的朋友可以參考下2020-02-02Python獲取系統(tǒng)默認(rèn)字符編碼的方法
這篇文章主要介紹了Python獲取系統(tǒng)默認(rèn)字符編碼的方法,涉及Python中sys模塊getdefaultencoding方法的使用技巧,需要的朋友可以參考下2015-06-06一文詳解測(cè)試Python讀寫(xiě)xml配置文件
這篇文章主要介紹了一文詳解測(cè)試Python讀寫(xiě)xml配置文件,xml也是常用的配置文件格式之一,Python中的xml.etree.ElementTree模塊支持解析和創(chuàng)建xml數(shù)據(jù)2022-09-09pycharm使用matplotlib.pyplot不顯示圖形的解決方法
今天小編就為大家分享一篇pycharm使用matplotlib.pyplot不顯示圖形的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10Python實(shí)現(xiàn)上傳Minio和阿里Oss文件
這篇文章主要介紹了如何通過(guò)Python上傳Minio和阿里OSS文件,文中的示例代碼介紹得很詳細(xì),對(duì)我們的工作和學(xué)習(xí)都有一定的價(jià)值,感興趣的小伙伴可以了解一下2021-12-12