计算给定路径成本下的最大利润

时间:2014-07-23 18:25:39

标签: algorithm graph dynamic-programming graph-algorithm

给出了Rooted Graph。这里,节点是" home"包含一些有价值的项目。给出了入口节点,即图的根。

也可以从一个节点移动到另一个节点,即Egde重量。

问题 -

您必须收集最大的贵重物品,总费用不应超过给定的费用。

约束 - 1.没有循环。 2.我们也可以使用相邻矩阵。(顶点总数最多为1000)。

示例

在目标节点中显示其权重和值的边缘。

0 1 10 1
0 2 10 15
1 3 50 10
1 4 30 30

给定费用 = 70。

解决方案 - 您将以最大方式收集节点1,2,4的项目。 [1 + 15 + 30 = 46]

我的努力

我认为,这个问题将由DP解决,通过在每个节点维护一些状态。但我无法做出一些算法。请帮忙。

修改1

  1. 我认为这个问题可以通过使用原始图形通过将某个状态添加到每个节点来制作特殊图形来解决。
  2. 第二种方法是动态编程。

1 个答案:

答案 0 :(得分:1)

我认为你不会为这个问题找到一个简单的解决方案。

考虑仅由连接到N个叶子的根节点制作的图表。每个叶子的值为1,边缘的成本为c1,c2,... cN。

正如您所看到的,这个图形问题具有背包问题作为一种特殊情况。