次の問題を解決する必要があります。
H を一連のポートフォリオとします。の各ポートフォリオについて、このソリューションの値をとi
します。H
(ri,vi)
(return,risk)
それぞれi
にH
が存在する場合j
(H
とj
は異なるi
) などのが存在しrj>=ri
、からvj<=vi
削除i
されH
ます。i
によって支配されているためですj
(リスクが少ないため、リターンが高くなります)。
最終H
的には、非支配の効率的なソリューションのセットになります。
linqを使用して上記の問題を解決しようとしました:
H.RemoveAll(x => H.Any(y => x.CalculateReturn() <= y.CalculateReturn() && x.CalculateRisk() >= y.CalculateRisk() && x != y));
しかし、より効率的な方法が存在するかどうかは疑問ですH.Count()
。1 万のオーダーになると、支配されたポートフォリオを削除するのに多くの時間がかかるためです。
助けてくれてありがとう!
クリストス