最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python二次規(guī)劃和線性規(guī)劃使用實例

 更新時間:2019年12月09日 10:56:41   投稿:yaominghui  
這篇文章主要介紹了Python二次規(guī)劃和線性規(guī)劃使用實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了Python二次規(guī)劃和線性規(guī)劃使用實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

對于二次規(guī)劃(quadratic programming)和線性規(guī)劃(Linear Programming)問題

MATLAB里是有quadprog函數(shù)可以直接用來解決二次規(guī)劃問題的,linprog函數(shù)來解決線性規(guī)劃問題。Python中也有很多庫用來解決,對于二次規(guī)劃有CVXOPT, CVXPY, Gurobi, MOSEK, qpOASES 和 quadprog; 對于線性規(guī)劃有Gurobi,PuLP, cvxopt。

目前發(fā)現(xiàn)quadprog進(jìn)行pip install quadprog不成功,而cvxopt成功了,就先說cvxopt的使用。

安裝

conda install -c conda-forge cvxopt

安裝非常順利

使用

cvxopt有自己的matrix格式,因此使用前得包裝一下

對于二次規(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],))

對于線性規(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

cvxopt.org

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

沂水县| 高邑县| 福建省| 阿瓦提县| 句容市| 道真| 嘉义市| 蓬安县| 玉田县| 彭山县| 乌恰县| 德州市| 玛曲县| 临高县| 白玉县| 无为县| 哈密市| 马龙县| 阳山县| 阳曲县| 松桃| 诸城市| 神池县| 赤城县| 盐池县| 雷山县| 万安县| 疏勒县| 河间市| 兴安盟| 乌兰县| 威宁| 阿拉善右旗| 潼关县| 留坝县| 额济纳旗| 专栏| 静安区| 仪征市| 巴青县| 白城市|