我有一个完全连接的图(无向),有500个顶点.这导致一个包含250,000个条目的矩阵(因为它的无向性,只需要125,000个条目).
每个边缘都有一个特定的重量.如果我只能访问n< 500可以找到哪个起始顶点和哪个路径将导致最高总权重. 这可以在任何合理的时间内解决吗? 谢谢!
最佳答案 你所描述的问题最终是NP难的(通过从
longest path problem减少),所以除非P = NP,否则不会有任何算法在所有输入上都是正确的并且在所有输入上都是有效的.您可能需要愿意接受并非总是正确的答案(但可能近似接近),或者需要考虑在某些情况下速度快但在其他情况下速度很慢的算法.
只要路径不太长,有些算法可以很好地解决这个问题.例如,如果最大路径长度不是太长,color-coding algorithm可以很好地工作,但是我担心这里长度500会变得太大.快速谷歌搜索出现了this paper,其中包含一个用于在图表中查找合理长路径的算法,可能适用于此处.但除此之外,你可能需要做一些随机抽样,并希望一切顺利.
如果您对图表有更多了解 – 例如,如果边缘服从三角形不等式,或者边缘都有一些小的有限范围内的值 – 您可能可以使用其他方法.但除此之外,我担心你不会有很多选择.
对此感到抱歉,但希望这会有所帮助!