問題タブ [cvxopt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 二次計画法と凸ソルバーを使用した markowitz ポートフォリオ最適化
最適化されたポートフォリオを見つけるために、quantopian ブログから取り上げた Python コードを使用しています。
ここで詳しく説明されている演習全体を実行しました: https://blog.quantopian.com/markowitz-portfolio-optimization-2/
optima_portfolio 関数の最後の式まで、すべてが魅力的に機能します。
wt = solvers.qp(opt.matrix(x1 * S), -pbar, G, h, A, b)['x']
非常に厄介なエラーが発生する場所:
C:\Software\Anaconda2\envs\gl-env\lib\site-packages\cvxopt-1.1.8-py2.7-win-amd64.egg\cvxopt\coneprog.py 内qp(P, q, G, h, A, b, solver, initvals, **kwargs)
4466 'residual as dual infeasibility certificate': dinfres}
4467
-> 4468 return coneqp(P, q, G, h, None, A, b, initvals, options = options)
C:\Software\Anaconda2\envs\gl-env\lib\site-packages\cvxopt-1.1.8-py2.7-win-amd64.egg\cvxopt\coneprog.py 内coneqp(P, q, G, h, dims, A, b, initvals, kktsolver, xnewcopy, xdot, xaxpy, xscal, ynewcopy, ydot, yaxpy, yscal, **kwargs)
2241 # lmbdasq = lambda o lambda.
2242
-> 2243 if iters == 0: W = misc.compute_scaling(s, z, lmbda, dims)
2244 misc.ssqr(lmbdasq, lmbda, dims)
2245
C:\Software\Anaconda2\envs\gl-env\lib\site-packages\cvxopt-1.1.8-py2.7-win-amd64.egg\cvxopt\misc.py 内compute_scaling(s, z, lmbda, dims, mnl)
283
284 m = dims['l']
--> 285 W['d'] = base.sqrt( base.div( s[mnl:mnl+m], z[mnl:mnl+m] ))
286 W['di'] = W['d']**-1
287 lmbda[mnl:mnl+m] = base.sqrt( base.mul( s[mnl:mnl+m], z[mnl:mnl+m] ) )
ValueError: ドメイン エラー
負の数の平方根を取得しようとしているようです。これに対処する方法についてのアイデアはありますか?
python - CVXOPT による Python 二次計画法
二次制約のある CVXOPT 二次計画問題の定式化に関する決定的なガイドを探しています。ここに提供されている適切なドキュメントがあります。
私が扱っている問題文は、ここの問題と同じです:
行列Gはどのように見えるはずですか? 一次方程式系として定式化しましたが、例を見ると正しくないように見えますか?
私が見つけた最良のリソースはhttps://courses.csail.mit.edu/6.867/wiki/images/a/a7/Qp-cvxopt.pdfですが、最後のリンクは詳細を読むために死んでいます。
このプログラミング方法を使用しようとしている ipython ノートブックがありますが、継続的に失敗します: https://gist.github.com/jaredvacanti/62010beda0ccfc20d2eac3c900858e50
編集: この最適化問題で使用される実際のデータにアクセスできるように、ノートブックのデータ ソース ファイルを編集しました。
mathematical-optimization - 凸最適化の CVXOPT が収束しない
c'x + f(x)
いくつかのアフィン制約を受ける次の形式の非線形凸最適化問題を解こうとしています。その前に、簡単な問題を なしで解けるようにしたいと思っていましたf(x)
。問題の分析的な一次導関数と二次導関数があるので、それらを使用してより迅速に結果を取得したいと考えています。問題を解決するために cvxopt を使用しようとしています。問題に対して次のコードを書きました。
しかし、cvxopt を使用してこれに対する最適な解決策を達成することはできません。cvxopt のモデリング機能を使えば簡単に解けます。残念ながら、それを使用して分析的な一次導関数と二次導関数を提供できるかどうかはわかりません。
ここに問題のコードがあります
私はおそらくこのコードでいくつかの間違いを犯しています。ヘルプやガイダンスをいただければ幸いです。
python - cvxopt での最適解の表示
以下の例に示すように、pcost、dcost、gap などの反復値を表示せずにcvxoptに最適な値のみを表示する方法はありますか?
出力:
出力の最後の 5 つの値のみを印刷したい。