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

Algorithm 计算给定路径成本下的最大利润,algorithm,graph,dynamic-programming,graph-algorithm,Algorithm,Graph,Dynamic Programming,Graph Algorithm,给出了有根图。在这里,节点是包含一些有价值的项目的“主节点”。给出了入口节点,即图的根 还提供了从一个节点移动到另一个节点的成本,即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]

给出了有根图。在这里,节点是包含一些有价值的项目的“主节点”。给出了入口节点,即图的根

还提供了从一个节点移动到另一个节点的成本,即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

  • 我认为这个问题可以通过在每个节点中加入一些状态,利用原始图生成特殊图来解决
  • 第二种方法是动态规划
    我认为你不会为这个问题找到一个简单的解决办法

    考虑一个仅由一个根节点连接到N个叶子构成的图。每个叶的值为1,边的成本为c1、c2、。。。中国


    正如您所看到的,这个图形问题将背包问题作为一个特例。

    这不是一个家庭作业解决方案站点。如果您尝试了一些东西,但无法找出它不起作用的原因,请发布您的代码,我们可以帮助您突出不足之处。@程序员:这不是我的家庭作业。在开始编写代码之前,我试图构建具体的算法。但我失败了。请检查编辑1。提示:您听说过旅行推销员问题吗[?这只是它的一个变种。@诺玛德,我无法将此问题与推销员问题联系起来。请详细说明。您在解决方案中谈论的路径是什么?
    0->2->0->1->4
    ?您是否支付了0-2倍的边缘(一次去一次回来)?我理解你的意思,但这里也有内部节点。你如何处理?内部节点只会使问题更复杂,但不会更难。无论你是否有内部节点,决策版本(你能获得至少X数量的贵重物品)都是NP完全的。