国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python之CVXOPT模塊

LiuZh / 1520人閱讀

摘要:中支持凸規劃的模塊為其安裝方式為卸載原中的安裝的文件,鏈接為安裝的文件,鏈接為之所以選擇這種安裝方式,是因為的和直接的不兼容性。

??Python中支持Convex Optimization(凸規劃)的模塊為CVXOPT,其安裝方式為:

卸載原Pyhon中的Numpy

安裝CVXOPT的whl文件,鏈接為:https://www.lfd.uci.edu/~gohl...

安裝Numpy+mkl的whl文件,鏈接為:https://www.lfd.uci.edu/~gohl...

之所以選擇這種安裝方式,是因為Python的whl和pip直接install的不兼容性。

??CVXOPT的官方說明文檔網址為:http://cvxopt.org/index.html, 現最新版本為1.1.9,由Martin Andersen, Joachim Dahl 和Lieven Vandenberghe共同開發完成,能夠解決線性規劃和二次型規劃問題,其應用場景如SVM中的Hard Margin SVM.

??CVXOPT使用舉例如下:

線性規劃問題

例1:

Python程序代碼:

import numpy as np
from cvxopt import matrix, solvers

A = matrix([[-1.0, -1.0, 0.0, 1.0], [1.0, -1.0, -1.0, -2.0]])
b = matrix([1.0, -2.0, 0.0, 4.0])
c = matrix([2.0, 1.0])

sol = solvers.lp(c,A,b)

print(sol["x"])
print(np.dot(sol["x"].T, c))
print(sol["primal objective"])

輸出結果:

     pcost       dcost       gap    pres   dres   k/t
 0:  2.6471e+00 -7.0588e-01  2e+01  8e-01  2e+00  1e+00
 1:  3.0726e+00  2.8437e+00  1e+00  1e-01  2e-01  3e-01
 2:  2.4891e+00  2.4808e+00  1e-01  1e-02  2e-02  5e-02
 3:  2.4999e+00  2.4998e+00  1e-03  1e-04  2e-04  5e-04
 4:  2.5000e+00  2.5000e+00  1e-05  1e-06  2e-06  5e-06
 5:  2.5000e+00  2.5000e+00  1e-07  1e-08  2e-08  5e-08
Optimal solution found.
{"primal objective": 2.4999999895543072, "s": <4x1 matrix, tc="d">, "dual infeasibility": 2.257878974569382e-08, "primal slack": 2.0388399547464153e-08, "dual objective": 2.4999999817312535, "residual as dual infeasibility certificate": None, "dual slack": 3.529915972607509e-09, "x": <2x1 matrix, tc="d">, "iterations": 5, "gap": 1.3974945737723005e-07, "residual as primal infeasibility certificate": None, "z": <4x1 matrix, tc="d">, "y": <0x1 matrix, tc="d">, "status": "optimal", "primal infeasibility": 1.1368786228004961e-08, "relative gap": 5.5899783359379607e-08}
[ 5.00e-01]
[ 1.50e+00]

[[ 2.49999999]]

例2

Python程序代碼

import numpy as np
from cvxopt import matrix, solvers

A = matrix([[1.0, 0.0, -1.0], [0.0, 1.0, -1.0]])
b = matrix([2.0, 2.0, -2.0])
c = matrix([1.0, 2.0])
d = matrix([-1.0, -2.0])

sol1 = solvers.lp(c,A,b)
min = np.dot(sol1["x"].T, c)
sol2 = solvers.lp(d,A,b)
max = -np.dot(sol2["x"].T, d)

print("min=%s,max=%s"%(min[0][0], max[0][0]))

輸出結果:

     pcost       dcost       gap    pres   dres   k/t
 0:  4.0000e+00 -0.0000e+00  4e+00  0e+00  0e+00  1e+00
 1:  2.7942e+00  1.9800e+00  8e-01  9e-17  7e-16  2e-01
 2:  2.0095e+00  1.9875e+00  2e-02  4e-16  2e-16  7e-03
 3:  2.0001e+00  1.9999e+00  2e-04  2e-16  6e-16  7e-05
 4:  2.0000e+00  2.0000e+00  2e-06  6e-17  5e-16  7e-07
 5:  2.0000e+00  2.0000e+00  2e-08  3e-16  7e-16  7e-09
Optimal solution found.
     pcost       dcost       gap    pres   dres   k/t
 0: -4.0000e+00 -8.0000e+00  4e+00  0e+00  1e-16  1e+00
 1: -5.2058e+00 -6.0200e+00  8e-01  1e-16  7e-16  2e-01
 2: -5.9905e+00 -6.0125e+00  2e-02  1e-16  0e+00  7e-03
 3: -5.9999e+00 -6.0001e+00  2e-04  1e-16  2e-16  7e-05
 4: -6.0000e+00 -6.0000e+00  2e-06  1e-16  2e-16  7e-07
Optimal solution found.
min=2.00000000952,max=5.99999904803

二次型規劃問題

其中P,q,G,h,A,b為輸入矩陣,該問題求解采用QP算法。

例1:

Python程序代碼:

from cvxopt import matrix, solvers

Q = 2*matrix([[2, .5], [.5, 1]])
p = matrix([1.0, 1.0])
G = matrix([[-1.0,0.0],[0.0,-1.0]])
h = matrix([0.0,0.0])
A = matrix([1.0, 1.0], (1,2))
b = matrix(1.0)

sol=solvers.qp(Q, p, G, h, A, b)
print(sol["x"])
print(sol["primal objective"])

輸出結果:

     pcost       dcost       gap    pres   dres
 0:  1.8889e+00  7.7778e-01  1e+00  2e-16  2e+00
 1:  1.8769e+00  1.8320e+00  4e-02  0e+00  6e-02
 2:  1.8750e+00  1.8739e+00  1e-03  1e-16  5e-04
 3:  1.8750e+00  1.8750e+00  1e-05  6e-17  5e-06
 4:  1.8750e+00  1.8750e+00  1e-07  2e-16  5e-08
Optimal solution found.
[ 2.50e-01]
[ 7.50e-01]

例2:

Python程序代碼:

from cvxopt import matrix, solvers

P = matrix([[1.0, 0.0], [0.0, 0.0]])
q = matrix([3.0, 4.0])
G = matrix([[-1.0, 0.0, -1.0, 2.0, 3.0], [0.0, -1.0, -3.0, 5.0, 4.0]])
h = matrix([0.0, 0.0, -15.0, 100.0, 80.0])

sol=solvers.qp(P, q, G, h)
print(sol["x"])
print(sol["primal objective"])

輸出結果

     pcost       dcost       gap    pres   dres
 0:  1.0780e+02 -7.6366e+02  9e+02  0e+00  4e+01
 1:  9.3245e+01  9.7637e+00  8e+01  6e-17  3e+00
 2:  6.7311e+01  3.2553e+01  3e+01  6e-17  1e+00
 3:  2.6071e+01  1.5068e+01  1e+01  2e-17  7e-01
 4:  3.7092e+01  2.3152e+01  1e+01  5e-18  4e-01
 5:  2.5352e+01  1.8652e+01  7e+00  7e-17  3e-16
 6:  2.0062e+01  1.9974e+01  9e-02  2e-16  3e-16
 7:  2.0001e+01  2.0000e+01  9e-04  8e-17  5e-16
 8:  2.0000e+01  2.0000e+01  9e-06  1e-16  2e-16
Optimal solution found.
[ 7.13e-07]
[ 5.00e+00]

20.00000617311241

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41416.html

相關文章

  • Python 機器學習 SVM 預測買賣(標的物:比特幣)

    摘要:入門簡單策略機器學習庫的使用什么是支持向量機。就是試圖把棍放在最佳位置,好讓在棍的兩邊有盡可能大的間隙。現在即使魔鬼放了更多的球,棍仍然是一個好的分界線。魔鬼看到大俠已經學會了一個,于是魔鬼給了大俠一個新的挑戰。 Python入門簡單策略 sklearn 機器學習庫的使用 什么是 SVM ? 支持向量機/support vector machine (SVM)。 當然首先看一下wik...

    andong777 評論0 收藏0
  • Python標準庫系列模塊介紹

    摘要:的模塊其實就是封裝了一個或者多個功能的代碼集合,以便于重用,模塊可以是一個文件也可以是一個目錄,目錄的形式稱作包。已經導入的模塊會保存在字典中。 Python的模塊其實就是封裝了一個或者多個功能的代碼集合,以便于重用,模塊可以是一個文件也可以是一個目錄,目錄的形式稱作包。 模塊分類 內置模塊 內置模塊可以理解成當你安裝好python環境之后,直接可以使用import導入的就是內置模塊,...

    v1 評論0 收藏0
  • 首次公開,整理12年積累的博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時間永遠都過得那么快,一晃從年注冊,到現在已經過去了年那些被我藏在收藏夾吃灰的文章,已經太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • Python 3 學習筆記——變量作用域、模塊和包

    摘要:局部變量只能在其被聲明的函數內部訪問,而全局變量可以在整個程序范圍內訪問。調用函數時,所有在函數內聲明的變量名稱都將被加入到作用域中。 1. 變量作用域 Python 中,程序的變量并不是在哪個位置都可以訪問的,訪問權限決定于這個變量是在哪里賦值的。變量的作用域決定了在哪一部分程序可以訪問哪個特定的變量名稱。Python 的作用域一共有4種,分別是: L (Local) 局部作用...

    lijinke666 評論0 收藏0
  • Python基礎(一)基本數據類型

    摘要:但是在轉化中,浮點數轉化為二進制后,不會精確等于十進制的。一般情況下,只要簡單地將最終顯示的結果用四舍五入到所期望的十進制位數,就會得到期望的最終結果。四舍五入內建函數。在中的第二個數,表示要保留的小數位數,返回值是一個四舍五入之后的數值。 數字 基本類型 首先,進入Python交互模式中: //整數 >>> 3 3 //長整數 >>> 3333333333333333333333...

    yagami 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<