一个垂死的父亲对剥离他的财产很感兴趣。他有这样一个投资组合:
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个受益人等之间返还股票的最优分配
在最初垂死的父亲的投资组合中只剩下很少的剩余——如果知道每一个受益人的股票需求类型和该类型股票的数量限制?
最佳答案
这可以通过某种形式的linear programming来解决。
它完全符合线性规划问题的定义:你有一组非负变量:每个人的股票数量,包括“剩余”部分对它们有一组约束:一个分数可以容纳一个类型的最大个数。你有一个目标函数最大化!剩余股票的数量应该尽量减少,也就是说,它的负数应该最大化。
我不是财务人员,但我想你不可能有零星股份在这种情况下,问题变得更加困难,因为所有的数字都必须是整数这就是所谓的“整数线性规划”(ILP)在许多实际解决方案中,这可能是NP-hard但是,如果你的数字不太奇怪,那么你的实例很有可能被有效地解决ILP解算器也得到了很好的研究,因为很多问题都可以映射到ILP解算器上同时检查this answer等。
关于algorithm - 使用标准集优化资源分配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13350182/