按持续时间将绑定分配到存储区的算法

时间:2014-06-05 06:53:34

标签: algorithm

我试图寻找解决方案,但很难定义我的问题。

问题:

  1. 我有一个债券清单,每个债券都有一个当前的市场价值'和持续时间,例如20000和3.25; 46000和1.13;等
  2. 我有四个组或桶,我需要分配债券。
  3. 三个桶具有预定义的市场价值'和持续时间。第四桶可能剩余的债券未分配给其他三个,并且可能有任何持续时间。
  4. 目标是以这样的方式分配债券,用债券填充所有桶,使加权平均债券持续时间尽可能接近桶持有时间,并且该桶中的债券市场总价值尽可能接近尽可能达到桶市场的价值。
  5. 规则:

    1. 所有债券必须分配到桶中
    2. 债券不得拆分,也不得分配给多个桶
    3. 对于前3个桶,桶中债券的总市值允许比桶市值更大(但不小),但差异应该最小化
    4. 桶中债券的总持续时间允许小于桶持续时间,但应尽量减少差异。

      • 计算桶中债券的总市值:总和(市场价值)
      • 计算桶中债券的总持续时间:总和(市场价值*持续时间)/总和(市场价值)
    5. 我可以知道如何做这个暴力,即尝试每个桶中的每个组合,并计算最佳组合,但我希望有一个更有效率方式。

      我将使用excel和VBA。

      鉴于我正在最小化两个值,即持续时间和价值,我想我需要将单个度量作为持续时间和市场价值的组合来最小化?

      算法可能是近似算法,因为如果找到的解决方案不是绝对最佳解决方案,它将不会产生重大差异。

      非常感谢

1 个答案:

答案 0 :(得分:0)

这不仅仅是Knapsack problem

的变体