我有以下问题要解决:
设 H 是一组投资组合。对于其中的每个投资组合i
,H
让作为此解决方案(ri,vi)
的(return,risk)
值。
对于每个i
inH
如果存在j
in H
( j
is different from 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()
是一万量级,那么需要花费大量时间来移除占主导地位的投资组合。
提前感谢您的帮助!
克里斯托斯