2017-11-08 9 views
0

すばやくうまくいけば簡単な質問です。私は株式にいくつかのお金を投資しようとしていると思いますが、私は5つを合計したいと思っています。これら5つのうち、私はそれらのすべてに均等に投資したいと思います。株式や希望するポートフォリオのウェイトを購入する際の相違を最小限に抑える

もちろん、それぞれの株価には異なるコストがありますので、私は各株に私が正確に20%を与える株式の組み合わせを購入することはできません。

このような非線形問題を解くためには、すばやい方法があります。つまり、株価を入力してから希望の重量を入力し、最小の合計差?

助けを歓迎します!

答えて

0

MIP(Mixed Integer Programming)ソルバーを使用することができます。絶対値を線形化することができる

min sum(i, abs(target(i) - price(i)*purchase(i))) 
subject to 
    sum(i, price(i)*purchase(i)) <= budget 
purchase(i): integer variable 

:問題は、として処方することができる

min sum(i, (target(i) - price(i)*purchase(i))^2) 
subject to 
    sum(i, price(i)*purchase(i)) <= budget 
purchase(i): integer variable 

これはMIQPソルバーが必要になります。

min sum(i,z(i)) 
-z(i) <= target(i) - price(i)*purchase(i) <= z(i) 

はまた、あなたが二次の目的を使用することができます。

関連する問題