使用标准集优化资源分配

时间:2012-11-12 19:27:56

标签: algorithm sorting greedy

一个垂死的父亲在剥离他的财产时很有意思。他有这样的投资组合:

AAPL : 5,000
MSFT : 10,000
AMZN : 6,000 and etc 

我们知道不同类型股票的数量是有限的,持有的股票总数是有限的

他有许多遗产受益人,我们不知道这个数字,但我们知道它是有限的。 每个受益人都有不同的要求,我们知道,要求的数量是有限的。

例如:

Case 1:
    Charity X can only take 3,000 shares of AAPL and 6,000 share of MSFT
    Leftover  : 2,000 shares of AAPL, 4,000 shares of MSFT, 6,000 shares of AMZN

Case 2:
    Charity X can only take 3,000 shares of AAPL and 6,000 share of MSFT
    Charity Y can ony take 1,000 shares of AAPL
    Leftover  : 1,000 shares of AAPL, 4,000 shares of MSFT, 6,000 shares of AMZN

是否有能够执行以下操作的算法:

  • 返回1个受益人,或2个受益人或3个受益人等的最佳股份分配

  • 原始垂死父亲的投资组合中剩余的最小剩余 - 如果知道每个受益人的股票要求类型和该类型股票的数量限制?

1 个答案:

答案 0 :(得分:0)

这可以通过某种形式的linear programming来解决。

它完全符合线性规划问题的定义:你有一组非负变量:每个股票的数量,包括"剩余的"分数得到。您有一组约束:一个分数可以容纳的最大份额数。你有一个目标函数来最大化!剩余份额的数量应尽量减少,即其负值应最大化。

我不是财务人员,但我想你不能拥有分数份额。在这种情况下,问题变得更加困难,因为所有数字都需要是整数。然后将其称为"整数线性编程" (ILP)。在许多实际解决方案中,这可以是NP-hard。但是,如果您的数字不是太奇怪,那么您的实例可能会得到有效解决。 ILP求解器也经过深入研究,因为可以将很多问题映射到它们。同时在SO上查看this answer