P ≠ NP
以前我对 P ≠ NP 理解是有点偏感性的,以为就是描述只能被暴力搜索求解的问题是否能够被快速求解。
实际上 NP(Nondeterministic Polynomial time)这个词是描述了一类特殊的问题,这些问题的解可以被迅速证实,但是不能够被快速求解。
比如一副拼图,拼好后你可以短时间内验证拼图是否正确,最差情况下你挨个看一遍也足够了(多项式时间内)。但是没有一个简单的办法让你去从头完成一副拼图。P ≠ NP 描述的就是,能够在多项式时间内被证实的问题,是否也能够在多项式时间内被求解?
另一个经典的 NP 问题就是旅行家问题(Traveling Salesman Problem),找到一条路径,能够不重复地遍历所有的城市并回到起点。你可以很容易地验证某个路径的正确性,却很难找到这个路径。
不同的 NP 问题有不同的求解难度。其中最难的一些 NP 问题被称为 NP-completeness。这些最难的 NP 完备问题互相等价,预示着 NP 问题的一些核心本质,一旦有任何一个 NP 完备问题被破解,就意味着所有的 NP 问题都能被迅速求解。
以前我对 P ≠ NP 理解是有点偏感性的,以为就是描述只能被暴力搜索求解的问题是否能够被快速求解。
实际上 NP(Nondeterministic Polynomial time)这个词是描述了一类特殊的问题,这些问题的解可以被迅速证实,但是不能够被快速求解。
比如一副拼图,拼好后你可以短时间内验证拼图是否正确,最差情况下你挨个看一遍也足够了(多项式时间内)。但是没有一个简单的办法让你去从头完成一副拼图。P ≠ NP 描述的就是,能够在多项式时间内被证实的问题,是否也能够在多项式时间内被求解?
另一个经典的 NP 问题就是旅行家问题(Traveling Salesman Problem),找到一条路径,能够不重复地遍历所有的城市并回到起点。你可以很容易地验证某个路径的正确性,却很难找到这个路径。
不同的 NP 问题有不同的求解难度。其中最难的一些 NP 问题被称为 NP-completeness。这些最难的 NP 完备问题互相等价,预示着 NP 问题的一些核心本质,一旦有任何一个 NP 完备问题被破解,就意味着所有的 NP 问题都能被迅速求解。