我有正余额和负余额的帐户以及某些人之间的承诺关系。质押给负余额账户提供从认捐账户中取钱以弥补损失的权利。
我想找到调用这种取钱权的最佳顺序。
1 2 3
A 1000 | -1000 -500 -500
B 1000 | -1000
在给定的示例中,帐户A和B具有1000的正余额,并且帐户1,2,3被优先级覆盖(1> 2> 3)。我希望通过在1,2,3上分配A和B的资金来支付尽可能多的账户,同时尊重优先权。
在这个特殊的例子中,选择A1作为我的第一对将导致仅覆盖1000但如果我选择B1,A2,A3我有覆盖2000的最佳解决方案。
如何调用此类优化问题以及解决此问题的算法是什么?
答案 0 :(得分:4)
这基本上是一个网络流量问题。我将为您的示例绘制容量图(未标记的弧具有无限容量)。 s
是来源,t
是接收器。
>A------->1
1000/ |\ ^\
/ | \ / \1000
/ | \ / \
/ | \ / 500 v
s | /->2--->t
\ \ / ^
\ \/ /
\ /\ /500
1000\ / \ /
>B --->3
答案不是最大流量;它是最大化1,然后是2,然后是3的流量。一个多时间算法是基于增广路径(简单路径! - 另外我们可能从优先级较高的帐户流出)修改最大流量算法优先增加路径经过1,然后是2,然后是3。
答案 1 :(得分:2)
我的协会说,如果'包装问题'(在几何领域之外应用),您可以在该区域找到信息
由于不是该领域的专家,我发现以下相关主题:
或许甚至相关: