(フォーマットについて申し訳ありません、私は最善を尽くします)私は解決したい:
x = argmin_x (Ax - p)'(Ax - p)
s.t. x >= b
ここA
で、 はNxH
論理行列 (およそ半分がゼロ、半分が 1)、b
はすべてのエントリが同じである定数ベクトルです Hx1
(たとえば、は確率の定数ベクトルなので、すべてのエントリは にあります。最適は分布でもあるため、すべて実際には は非常に大きく (例: ) 、比較的小さい (例: ) であることに注意してください。b = (0.1,0.1,0.1,...)
p
Nx1
[0,1]
x
[0,1]
H
2 million
N
150
現在、これを解決するために CVX を使用しています。明示的に、私のコードは次のとおりです。
b= 0.1.*ones(H,1)/H;
cvx_begin quiet
variable x(H)
minimize( norm((A*x-p),2))
subject to
x >= b;
cvx_end
これにより、正しい結果が得られます。ただし、H
が大きいとかなり遅くなります。私の最適化プログラムの構造 (論理 A、定数制約、制約がなければ分析解がある問題など) を考えると、これにアプローチするより良い方法はありますか? ここで CVX をお勧めしますか?
ご協力ありがとうございました。