我知道针对我的这类问题存在一些算法,但是在命名它以及相关的解决方案时遇到了问题。 这是我的问题:
目标:最大化分配我的钱包资金,以便为我的大部分项目提供资金。
我也希望我所有的项目都获得95%的资金,而不是让某个项目获得100%的资金,而其他项目获得0%的资金。
所以我想最小化函数应该是所有(d-(分配给该项目的所有资金))²的总和²,假设我没有足够的资金来资助我所有的项目
示例:
我的第一个钱包有100欧元,我可以在项目1上花费70%,在项目3上花费20%,在项目3上花费10%
我有第二个钱包200欧元,我可以在项目1上花费30%,在项目2上花费50%,在项目3上花费20%。
关于我的项目:
谢谢您的帮助!
答案 0 :(得分:1)
您可以将其公式化为最大流量问题。将源顶点连接到与钱包相对应的顶点,其中每个弧的容量就是钱包中的货币数量。将与项目相对应的顶点连接到汇接点顶点,其中每个弧的容量就是该项目所需的资金量。用弧线将钱包连接到项目,这些项目的容量反映出可以从该钱包中花费的钱数。
处理分段二次目标有些棘手。幸运的是,它是凸的,所以我敢打赌,您可以使用二次程序求解器来达到良好的效果。