假设我们有一个有向图,每个边包含一个元组 (d,p),其中 d 是必须行进的距离,p 是您穿过该边时将获得的利润,在穿过一条边后,其利润设置为 0 。我的问题是,给定起始节点和最大距离 D (使得所有经过的边上的 Σd<D ),解决最大利润的问题,其中利润定义为 Σp 经过所有边缘。
您可以访问节点并重新遍历边缘。
我已尝试修改迪杰斯特拉算法,但没有成功,因为迪杰斯特拉不知道何时停止其泛洪填充,据我所知,在检查所有可能性之前,无法保证使用迪杰斯特拉算法得到最佳解决方案。 我也研究了TSP的变化,而这个问题似乎更多地与路径查找相关。任何参考资料、伪代码或已经理解的算法都将不胜感激。当然,我不想要暴力算法。