問題タブ [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.

0 投票する
1 に答える
166 参照

python - エントロピー最小化のための Python CVXOPT

私はページ上の例を見ています:

http://cvxopt.org/examples/book/maxent.html

問題文は次のとおりです。

しかし最後の行

実装されていないようです?

0 投票する
1 に答える
345 参照

scipy - 半明確な制約を伴う非線形最適化のための適切なパッケージ/ソフトウェア

次の(一般的な)形式の最適化問題を数値的に解くのに苦労しています。

F(x) を最小化する

そのような:

___(1): 0 < x < 1

___(2): M(x) >= 0。

ここで、M(x) は要素が x の二次関数である行列です。最後の制約は、M(x) が正の半正定行列でなければならないことを意味します。さらに、F(x) は呼び出し可能な関数です。より好奇心旺盛な方のために、同様の最小限の作業例を次に示します

いくつかのオプションを試しましたが、成功しませんでした。

  1. PICOSCVXPYおよびCVX -- 最初の 2 つのケースでは、私のようなミニマックス問題をエンコードする方法が見つかりません。MATLAB で実装されている 3 番目のものでは、半正定制約に含まれる行列はアフィンでなければなりません。したがって、私の問題はこの基準から外れています。
  2. fmincon -- マトリックス ポジティブ制約をどのようにエンコードできますか? 1 つの方法は、行列 M(x) の固有値を解析的に計算し、それぞれが正になるように制約することです。しかし、固有値の解析式は恐ろしいものになる可能性があります。
  3. MOSEK -- 目的関数は標準形式で表現可能でなければなりません。ユーザー定義の目的関数の例が見つかりません。
  4. scipy.optimize -- 目的関数と制約に加えて、これらの関数の導関数も提供する必要があります。特に私の場合、それは目的関数にとっては問題ありません。しかし、固有値の解析式を使用して行列の正の制約 (およびその導関数) を表現するとしたら、それは非常に面倒な作業になる可能性があります。

上記の各パッケージ/ソフトウェアでの私の試みを説明するために MWE を提供していないことをお詫びします。

最適化の問題を解決するのに役立つパッケージ/ソフトウェアを誰か提案してもらえますか?

0 投票する
3 に答える
12149 参照

python - CVXOPT QP Solver: TypeError: 'A' は 1000 列の 'd' 行列でなければなりません

CVXOPT qp ソルバーを使用して、サポート ベクター マシンのラグランジュ乗数を計算しようとしています。

Xこれは1000 X 2行列でY、同じ数のラベルがあります。ソルバーは次のエラーをスローします。 $ python svm.py (1, 1000) Traceback (most recent call last): File "svm.py", line 35, in <module> svm(X, Y, 50) File "svm.py", line 29, in svm sol = solvers.qp(P, q, G, h, A, b) File "/usr/local/lib/python2.7/site-packages/cvxopt/coneprog.py", line 4468, in qp return coneqp(P, q, G, h, None, A, b, initvals, options = options) File "/usr/local/lib/python2.7/site-packages/cvxopt/coneprog.py", line 1914, in coneqp %q.size[0]) TypeError: 'A' must be a 'd' matrix with 1000 columns

A の形状を印刷しました。これ(1,1000)は、ベクトルから再形成した後の行列です。このエラーの正確な原因は何ですか?

0 投票する
1 に答える
1193 参照

python - GFORTRAN_1.4' が見つかりません

gfortran がインストールされていることを確認します

次に、インポートが次のように見えるpythonプログラムを試します

エラーが発生する

編集1