現在、以下の機能を最小限に抑えるために、Simulated Annealing パッケージ GenSA を使用しようとしています。
efficientFunction <- function(v) {
t(v) %*% Cov_Mat %*% v
}
ここで、Cov_Mat は 4 つのアセットから取得された共分散行列で、v は次元 4 の重みベクトルです。
この方法でマーコウィッツの資産配分アプローチを解決しようとしています。すべての係数の合計が 1 に等しくなければならないなどの数学的制約を導入する方法を知りたいです。
sum(v) = 1
さらに、GenSA関数に依存するつもりなので、制約で次のようなものを使用したいと思います:
v <- c(0.25, 0.25, 0.25, 0.25)
dimension <- 4
lower <- rep(0, dimension)
upper <- rep(1, dimension)
out <- GenSA(v, lower = lower, upper = upper, fn = efficientFunction)
私はこの論文で見つけました:http ://citeseerx.ist.psu.edu/viewdoc/download ?doi=10.1.1.97.6091&rep=rep1&type=pdfシミュレーテッドアニーリングアルゴリズム内でそのような制約を処理する方法ですが、わかりませんRでどのように実装できますか。
アドバイスをいただければ幸いです。SO を使用するのは初めてなので、質問の仕方が間違っている場合は遠慮なく教えてください。