algorithm - 可以使用什么算法找到最佳解决方案?

标签 algorithm theory

我的账户有正负余额,有的之间有质押关系。质押使余额为负的账户有权从质押账户中取回资金以弥补损失。

我想找到调用此取款权的最佳顺序。

            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 的最佳解决方案。

这种优化问题怎么称呼,解决它的算法有哪些?

最佳答案

基本上是网络流量问题。我将为您的示例绘制容量图(未标记的弧具有无限容量)。 s 是源,t 是汇。

     >A------->1
1000/ |\       ^\
   /  | \     /  \1000
  /   |  \   /    \
 /    |   \ /  500 v
s     |    /->2--->t
 \     \  /        ^
  \     \/        /
   \    /\       /500
1000\  /  \     /
     >B    --->3

答案不是最大流量;它是使 1、然后 2、然后 3 最大化的流量。一种多时间算法是修改基于扩充路径(简单路径!——否则我们可能会从更高优先级的帐户中获取流量)优先扩充路径的最大流量算法通过 1,然后 2,然后 3。

关于algorithm - 可以使用什么算法找到最佳解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8343062/

相关文章:

C++ 最大公约数

ruby-on-rails - 根据他们的半径和他们之间的距离匹配两个人的最佳算法是什么?

graph - 为什么在查找顶点的度数时自循环计数两次?

regex - 有一种方法可以按特异性对正则表达式列表进行排序吗?

theory - 使用特制的 CPU 查找大数的质因数

algorithm - N-Puzzle with 5x5 grid,理论问题

javascript - 理解和实现基于力的图形布局算法

algorithm - 如何在 SPARC 汇编中计算除法余数?

c++ - N位有符号整数的最大保证范围是多少?

algorithm - 移除外部头引用后,ARC如何处理循环链表?