我正在阅读“ Grokking算法”,并了解Dijkstran和贪婪算法,
但是,当作者将它们与NP完全问题进行比较时
但是很难确定您正在解决的问题是否已完成NP。通常,易于解决的问题与NP完全问题之间的差别很小。例如,在前面的章节中,我谈到了最短路径。您知道如何计算从A点到达B点的最短方法。
但是,如果您想找到连接多个点的最短路径,那就是旅行推销员的问题,这是NP完整的。简短的答案:没有简单的方法可以判断您正在处理的问题是否已完成NP。以下是一些赠品:
句子:
但是,如果您想找到连接多个点的最短路径,
“几点”是什么?
我不知道与基本的迪克斯坦算法问题有什么区别。
答案 0 :(得分:1)
我认为,他的意思是通过图的所有节点的子集的路径。 (想想“最坏的情况”)
请注意,对于任何固定数量的点,例如在n个节点的图上,k = 3或k = 3000,该问题的复杂度与两个点相同。尽管有些人可能认为其中的几个永远不会大于七个,或者可能是七个几十或70亿,但这既不是事实,也不是确切的科学。
尽管有可能,但他不太可能表示旅行商问题的通常表述(连接图中的所有节点/点)。 NP以任何方式完成。