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