Python二次規(guī)劃和線(xiàn)性規(guī)劃使用實(shí)例
這篇文章主要介紹了Python二次規(guī)劃和線(xiàn)性規(guī)劃使用實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
對(duì)于二次規(guī)劃(quadratic programming)和線(xiàn)性規(guī)劃(Linear Programming)問(wèn)題
MATLAB里是有quadprog函數(shù)可以直接用來(lái)解決二次規(guī)劃問(wèn)題的,linprog函數(shù)來(lái)解決線(xiàn)性規(guī)劃問(wèn)題。Python中也有很多庫(kù)用來(lái)解決,對(duì)于二次規(guī)劃有CVXOPT, CVXPY, Gurobi, MOSEK, qpOASES 和 quadprog; 對(duì)于線(xiàn)性規(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ì)于線(xiàn)性規(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)文章
python rolling regression. 使用 Python 實(shí)現(xiàn)滾動(dòng)回歸操作
這篇文章主要介紹了python rolling regression. 使用 Python 實(shí)現(xiàn)滾動(dòng)回歸操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
Python 生成短8位唯一id實(shí)戰(zhàn)教程
這篇文章主要介紹了Python 生成短8位唯一id實(shí)戰(zhàn)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01
初步介紹Python中的pydoc模塊和distutils模塊
這篇文章主要介紹了Python中的pydoc模塊和distutils模塊,本文來(lái)自于IBM官方開(kāi)發(fā)者技術(shù)文檔,需要的朋友可以參考下2015-04-04
Flask框架的學(xué)習(xí)指南之用戶(hù)登錄管理
本文是Flask框架的學(xué)習(xí)指南系列文章的第三篇,主要給大家講述的是制作flask的登陸管理模塊,有需要的小伙伴可以參考下2016-11-11
Python 內(nèi)置函數(shù)globals()和locals()對(duì)比詳解
這篇文章主要介紹了Python globals()和locals()對(duì)比詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Python 解決OPEN讀文件報(bào)錯(cuò) ,路徑以及r的問(wèn)題
今天小編就為大家分享一篇Python 解決OPEN讀文件報(bào)錯(cuò) ,路徑以及r的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
python將圖片文件轉(zhuǎn)換成base64編碼的方法
這篇文章主要介紹了python將圖片文件轉(zhuǎn)換成base64編碼的方法,涉及Python操作base64編碼的技巧,需要的朋友可以參考下2015-03-03
Jupyter notebook無(wú)法導(dǎo)入第三方模塊的解決方式
這篇文章主要介紹了Jupyter notebook無(wú)法導(dǎo)入第三方模塊的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
Python OpenCV 使用滑動(dòng)條來(lái)調(diào)整函數(shù)參數(shù)的方法
這篇文章主要介紹了Python OpenCV 使用滑動(dòng)條來(lái)調(diào)整函數(shù)參數(shù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07

