問題タブ [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 に答える
4585 参照

python - cvxopt は単純な線形最適化を解くことができません

私はこのモデルを持っています

ここcで、 は係数の 16x1 numpy 配列で、G12 x 16モデルの制約を表す行列で、 1 のh12x1 配列です。

cvxopt のドキュメントから、モデルは線形プログラムとして実装し、lp ソルバーで解決する必要があると思います。

しかし、私はこのエラーが発生します:

cvxopt の glpk インターフェイスを使用すると、実際にはスムーズに動作し、良い解決策が得られます。

この問題に対して cvxopt で lp ソルバーを機能させるにはどうすればよいですか?

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

python - Python での確率的最適化

cvxopt(最適化ソルバー) とPyMC (サンプラー) を組み合わせて、凸確率最適化問題を解決しようとしています。

参考までに、両方のパッケージをインストールするのpipは簡単です:

両方のパッケージは独立して完全にうまく機能します。を使用して LP 問題を解く方法の例を次に示しますcvxopt

ただし、PyMC で使用しようとすると (たとえば、係数の 1 つに分布を配置することによって)、PyMC はエラーを返します。

次の PyMC エラーが発生します。

なんで?cvxoptとうまく遊ぶ方法はありますPyMCか?

バックグラウンド:

誰かが不思議に思うかもしれませんが、PyMC を使用すると、選択した任意の関数からサンプリングできます。この特定のケースでは、サンプリングする関数は、LP 問題を解にマッピングする関数です。LP問題には確率係数が含まれているため、この関数からサンプリングしているため、市販のLPソルバーをそのまま適用することはできません。

より具体的には、この場合、単一の PyMC 出力サンプルは単純に LP 問題の解決策です。LP 問題のパラメーターは (選択した分布に従って) 変化するため、PyMC からの出力サンプルは異なるため、事後分布を取得することが望まれます。

上記のソリューションは、この回答に触発されたものです。唯一の違いは、真の一般的なソルバーを使用することを望んでいることです (この場合cvxopt)

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

python - canopy python での CVXOPT のインポート

Canopy python エディターで使用するために CVXOPT 機能をインポートしたいと考えています。私の知る限り、CVXOPT は正常にダウンロードされました。これを考える理由は、CVXOPT サイトに「インストールが成功したことをテストするには、examples ディレクトリに移動してサンプルの 1 つを試してください」と書かれており、コマンド ラインでエラーなしでこれを実行できるからです。

ただし、私のpythonコードでは、

「CVXOPT という名前のモジュールがありません」というエラーが表示されます。問題は単純に違いないと思いますが、しばらくいじっても問題は解決しません。何か案は?

0 投票する
2 に答える
8106 参照

python - cvxopt ソルバーをサイレントにする方法 [Python]?

ターミナルで Python cvsopt ソルバーを実行すると、次のように出力されます。

このメッセージをサイレントにすることはできますか? ありがとうございました!

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

python - いくつかのブロックを変数 CVXPY として対角ブロック行列を構築する

CVXPY で (対角) ブロック行列 (できればスパース) を生成したいと考えています。

一部のブロックは、eye(m)または何でもかまいませんが、次のブロックがあります。

W_diag次に、たとえば次のようにして、ブロック対角行列をブロックとして形成しようとしました。

次のエラーが発生しました。

TypeError: タイプの変換がサポートされていません: (dtype('float64'), dtype('O'))

私に何ができる?他の方法?T後で CVXPY の制約でマトリックスを使用したいと考えています。

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

python - CVXOPT 二次計画法インターフェース

提供されている CVXOPT 用の QP ソルバーは、次の形式の問題を解決します ( http://cvxopt.org/userguide/coneprog.html#quadratic-programmingを参照)。

これは問題なく動作しますが、問題の制約を両側の不等式で解決したい場合は少し厄介です。

2 番目の問題を最初の問題として再定義できます。次元の数を 2 倍にし、をそれ自体の上に積み重ねることを要求するnew_xことによってです。old_x

の適切な形式を見つけることで、上記の条件を強制できると思いますAh1次に、とh2不等式の両方を にエンコードして、スタックするようにnew_G * new_x <= new_h設定し、対角線上に連続した s とそれに続く連続した sを持つ対角行列にします。new_hh1h2new_Gn1n-1

とにかく、上記は非常に不器用です。私の問題の次元が2倍になり、うまくいかないかもしれません。

CVXOPT の 2 番目の問題をより適切に表現する方法はありますか?

0 投票する
0 に答える
1716 参照

python - Python での L1 ノルム正則化最小二乗

L1 ノルム正則化問題は、次のように定義されます。

しかし、私の場合、この通常の L1 ノルム正則化最小二乗問題の代わりに、次の形式の問題を解決したいと考えています。

テーブル W と G の次元が同じではないため、AI は変数を変更してこのような問題を解決できません。

インターネットで入手できるソルバーの 1 つを使用できるようにします。そこで、前述の L1 平方問題を解く方程式を次のように見つけました。

-u <= W G x <= uiを使用すれば理解できる限り、問題を解決できます。しかし、コードに正確に適応するものを取得できません。誰でも助けることができますか?コードは次のとおりです (CVXOPT から取得)

誰でも助けることができますか?前もって感謝します

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

python - CVXPY でのカーネル マッチングの追求

カーネル マッチングを追求するためのコードを書いています。その中で、凸最適化のために cvxpy を使用しました。次の目的を最小限に抑える必要があります。 arnumber=6815769 で、コードは次のとおりです。

しかし、コードが機能せず、次のエラーがスローされます。2 つの非定数を乗算できません。これは、'epirk' で 3 つの項を乗算する問題だと思います。しかし、これに関する解決策はありません。助けてください。

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

python - CVXOPT または CVXPY による凸プログラミング

Python で CVXOPT または CVXPY を使用して最適化の問題を解決する必要がありますが、問題が発生しました。目的関数は

以下の制約を受ける

ここで、vectorxは最適化変数で、ベクトルabは指定され、Tは指定されたスカラーです。