Algorithm 图中使值最大化的最佳路径

Algorithm 图中使值最大化的最佳路径,algorithm,graph,dynamic-programming,mathematical-optimization,Algorithm,Graph,Dynamic Programming,Mathematical Optimization,我正试图为这个问题提出一个合理的算法: 假设我们有很多地点。我们知道每对位置之间的距离。每个位置也有一个点。目标是在不超过给定距离的情况下,使从起点到终点的行程中的点数总和最大化 下面是一个简单的例子: 出发地点:C,目的地:B,给定距离:45 解决方案:9点C-A-B路线 我只是好奇,对于这类问题是否有某种动态算法。对于这个问题,什么是最好的,或者说是最简单的方法 非常感谢您的帮助 编辑:不允许您多次访问同一位置。编辑:在新增加的每个节点只能访问一次的限制下,通过简化为Hamilton路径,

我正试图为这个问题提出一个合理的算法:

假设我们有很多地点。我们知道每对位置之间的距离。每个位置也有一个点。目标是在不超过给定距离的情况下,使从起点到终点的行程中的点数总和最大化

下面是一个简单的例子: 出发地点:C,目的地:B,给定距离:45

解决方案:9点C-A-B路线

我只是好奇,对于这类问题是否有某种动态算法。对于这个问题,什么是最好的,或者说是最简单的方法

非常感谢您的帮助


编辑:不允许您多次访问同一位置。

编辑:在新增加的每个节点只能访问一次的限制下,通过简化为Hamilton路径,问题肯定是NP难的:对于一般无向、无权图,将所有边权重设置为零,将每个顶点权重设置为1。如果原始图中有一条Hamilton路径,则最大可达分数为n iif

因此,研究解算器可能是一个好主意,例如,没有专门构造为困难的族

下面的解决方案假设一个顶点可以访问多次,并利用节点权重由常数限定的事实


设p(x)为顶点x的点值,w(x,y)为边{x,y}或w(x,y)=∞ 如果x和y不相邻


如果我们被允许多次访问一个顶点,如果我们可以假设p(x)有14个点的CDA不是更好吗?对不起,我只是指路径C->D->a。我指的是原来的帖子提到C->a->B是最优的。与你的工作无关comment@Hzyf您对金额的值有任何限制吗?@NikunjBanka没有任何限制。请将节点数、边数和有效点范围上的边界以实际数添加。这看起来是一种合理的动态规划方法,假设您可以多次访问同一地点,每次都可以得分。我认为如果你只能从每个位置收集一次点,问题就会变得更加困难。@mcdowella是的,如果路径必须是NP难的,那么这个问题肯定是NP难的(我很确定,如果节点和边的权重都不是多项式有界的),我没有指定它。您不允许多次访问同一位置。@Hzyf在这种情况下,问题是NP难的,不可能有有效的算法。如果我们能快速求解,我们就可以用算法来求解一般图中的哈密顿路径
只能访问两次
?你不是说“不能被访问两次”吗?