给定有向图,起点,终点和时间限制。 在每个顶点处,都有一个“值”,表示该位置的吸引力。从顶点到另一个顶点的旅行费用也很高。
我需要的是找到一个在时间限制内并具有最大“值”的路径。
答案 0 :(得分:0)
要部分回答这个问题,请注意所考虑的问题是NP
- 很难,因为它包含Knapsack问题作为使用以下缩减的子问题。
鉴于由利润n
和权重p_1,...,p_n
定义的w_1,...,w_n
项目和目标容量C
给出的背包问题实例,请按如下方式定义图表。 / p>
左侧有一个源节点s
和一个终端节点t
。对于i
项,定义两个节点yes_i
和no_i
,这对应于选择而不是选择相应的项目。 yes
- 节点的吸引力为p_i
,no
- 节点的吸引力为零。
可以将节点对想象为在源和终端之间的列中排列。每个节点都有前两列的两个入边(除了第一个列,它连接到源)。当且仅当它们是w_i
- 节点的边缘时,这些边缘的权重为yes
,如果它们是no
- 节点的边缘,则为零。最后一列连接到终端。
从s
到t
的每条路径都必须按列顺序决定是否选择相应列的项目;同样,任何项目选择都对应于从s
到t
的路径。通过定义边缘权重,路径的总权重等于项目选择的总权重,而所选yes
- 节点的总权重等于所选项目的总权重
总的来说,我们获得了Knapsack实例的可行解和所描述的路径问题的构造实例的双射。总的来说,这意味着问题中的问题是NP
- 很难,因为它包含背包问题(已知为NP
- 硬)作为子问题。
或者,通过将完整图表中所有位置的吸引力设置为1,可以看出NP
- 硬度;这个问题的特殊情况是Hamiltonian Path问题的决策版本,已知为NP
- 完整。