假设我有一个加权的无向图。每个边缘都具有正重量。我想从给定的源节点到目标节点(t)找到一条简单的路径(路径中没有顶点出现两次),目标节点(t)的权重总和接近给定值(P)。
即使这听起来像是一个研究得很好的问题,但我找不到令人满意的解决方案。许多图算法旨在找到最短路径(在步骤或成本的意义上),而不是找到“匹配的”成本路径。
一个天真的解决方案是找到从s到t的所有路径,计算每条路径的权重之和,并选择接近P的路径。但是,查找图中两个节点之间的所有路径都是#P -hard。
可能的解决方案可以修改A *算法,以便对于边界中的每个节点,我们获得从根到该节点的成本(g),并估计从该节点到目标的成本(h)。然后,我们选择一个具有最小| P - (g + h)|的节点,而不是选择具有最小g + h的节点。但是,我不确定这是否是最佳解决方案。
另一个想法是受到线性规划的启发,因为这个问题的目标函数是sum(从s到t的路径的权重) - P = 0.我知道最短路径问题可以形成为线性编程任务但是不确定如何将此问题表述为一个。
请提前帮助,谢谢!