2017-04-25 103 views
0

我正在尋找制定具有二次約束的CVXOPT二次編程問題的明確指南。這裏有提供了良好的文檔:使用CVXOPT進行Python二次編程

的問題陳述我處理的是相同的問題here:什麼是矩陣應該看起來像

enter image description here

?我制定了一個線性方程組的系統,但看看這些例子看起來不正確?

我發現的最好的資源是https://courses.csail.mit.edu/6.867/wiki/images/a/a7/Qp-cvxopt.pdf,但最後的鏈接已經死了更多的閱讀。

我有一個IPython的筆記本電腦嘗試使用這種編程方法,但它不斷地失敗:https://gist.github.com/jaredvacanti/62010beda0ccfc20d2eac3c900858e50

編輯:我編輯的數據源文件中的筆記本電腦提供進入這個優化問題中使用的真實數據。

+0

第一個鏈接告訴你G應該是什麼樣子。究竟是什麼問題?另外:如果您沒有使用cvxopt的經驗,並且您不需要定製解決方案(cvxopt的優點之一)選項,則可以使用cvxpy,它更易於使用(高級方法)。 – sascha

+0

當我向解算器提供P,q,A和b時,我得到一個類似於我試圖擬合樣條的樣本數據的最佳解決方案,但是當我提供G和h時,我會得到廢話/無最優解。由於這個原因,我認爲G和h的表述出了問題。 – Jared

回答

0

你已經發布的筆記本似乎已經明白了。我遇到的問題是數據的源文件不可用。

現在你的問題:

什麼是矩陣G應該是什麼樣子的?我已經制定了一個 線性方程的系統,但是看看例子,這看起來不正確?

重寫你 「線性方程」 到矩陣形式,即

2x + 2y = 4 
x - y = 1 

相當於

matrix([[2,2],[1,-1]]) * matrix([[x],[y]]) = matrix([[4],[1]]) 

其中matrix是從cvxopt

+0

我已經更新了筆記本以包含數據,因此示例應該能夠精確運行。在運行解算器時,如果僅提供P,q,A和B,則可以很好地解決問題。當還提供G和h時,解算器不會終止。這是我的問題 - 它必須是G和h的表述。 – Jared