問題タブ [convex-optimization]
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.
optimization - 関数の凸性とその最適化
関数は x と y を合わせて凸ですか? 最小二乗を最小化するパラメーター x と y の両方を推定したいです。関数が x と y の両方で共に凸である場合、技術的には、次の 2 つの手順を繰り返すことで x と y を見つけることができます。
明らかに、複数のレベルで間違っている可能性があることはわかっています。複数のサドルポイントがあるため、関数は非凸に見えます。すべて x=0 および y=0。しかし、y>0 という制約がある場合、この問題はなくなります。さらに、関数が凸であっても、反復アルゴリズムが機能して収束するかどうかはわかりません。
matlab - Matlab の凸最適化
次の最小化問題を matlab で解決する方法を知りたいです。
A は半正定行列です。(すべての固有値は 0 より大きいか等しい) F=F(x_1,...,x_n,y_1,y_2) = (F_1,...,F_2n) は線形関数です。
私は (x_1,...,x_n,y_1,y_2) を見つけたいので:
F*A*F' は最小です。変数に制限はありませんが、ベクトルの長さよりかなり短いことに注意してください。
統計的距離を最小限に抑えようとしています。使用する関数を Web で見つけることができません。
前もって感謝します。
matlab - matlab cvx を使用した最小カット
ユーザーのグラフでバイナリ最小カットを使用してコミュニティを検出しようとしています。この目的のために、この論文に示されているように、フィードラー法の変形を使用しようとしています。これは彼らがそれを形式化した方法です:
現在、matlab の CVX パッケージを使用してこれを実行しようとしています。これが私のコードです:
しかし、次のエラーが表示されます。
ここで、A1 は次のように定義された行列です。
同様に、A2 = A1 です。
そして pi1 は行列であり、値がその特定の行の A1 のすべての値の合計に等しい対角行列です。そうすることで私は得ます
同様に、pi1 = pi2 です。
また、tou1 = pi1 - A1、tou2 = pi2 - A2 です。
誰かが私が間違っていることを正確に指摘できますか。それは大いに役立つでしょう。前もって感謝します !
matlab - YALMIP は、プログラムが実行不可能であるのに実行不可能であると返しています。
YALMIPを使用しようとすると問題が発生します。私は何かばかげたことをしていると思うので、誰かがそれが何であるかを指摘していただければ幸いです。
いくつかの SDP を解決しようとしています。目標を定義しない場合、YALMIP は解決策を返します (問題が実行可能であることを意味します)。しかし、目標を添付すると、YALMIP は問題が実行不可能であると返し、少し戸惑いました。
上記が発生する、私が調理できる最も単純なSDPのコードを次に示します。変数の宣言と制約の設定は次のとおりです。
今、YALMIPに実行可能な解決策を見つけるように頼むだけなら
それは返す
そしていくつかの実行可能な M と y (実際にそうであることを確認しました)。ただし、目的の「y(3) を最小化する」(または実際には y のエントリの任意の線形結合) を追加すると、
問題が実行不可能であることを返します。
y と M は "NaN" トークンでいっぱいです。
よろしくお願いします。
matlab - 関数ハンドルを可能にする Matlab 二次コーン ソルバー
Matlab で次の SOCP を解決する必要があります。
argmin_x ||R*x||_2 st s^H * x = 1 かつ ||x||_2 < d,
ここで、x は Nx1 ベクトル、R は MxN 行列です。
CVX は、この種の問題を解決できます。ただし、CVX では R を指定する必要があり、代わりに R*x を返す関数ハンドルを指定することはできません。これは、R が大きくなると R*x を直接計算するのに時間がかかりすぎるため、私にとっては問題です。私が利用したい R*x を計算するための効率的なアルゴリズムが存在するので、使用できる別の SOCP ソルバーがあることを願っています。
r - linprog パッケージで設定された R 線形計画法は、solveLP を使用して制約 (以下) を無視します
単純な線形計画法の問題を解決するために、linprog R パッケージの solveLP を使用しています。
二重の同等物があります:
問題を原始形式で述べると、正しい結果 (5,2,0,0) が得られます。しかし、双対形式で問題を説明すると、最初の 2 つの制約は単純に無視されます。明らかに (2*y1+y2 <= -1 および y1+2*y2 <= -1) に違反する結果 (0,0) が得られましたが、不足している追加の設定またはパラメーターはありますか? 以下のコードを見て、ご意見をお聞かせください。
正の空間では、双対問題は正しい答え (1/3,1/3) を与えます。