计算复杂性中的NP类与NP完全性问题解析
在计算复杂性理论中,我们常常会遇到各种不同复杂度的问题。有些问题可以通过避免暴力搜索,在多项式时间内找到解决方案;然而,对于另一些问题,尽管我们做了很多尝试,但至今仍未找到多项式时间的算法。
1. NP类问题的引入
在很多问题中,我们可以避免使用暴力搜索,从而获得多项式时间的解决方案。但对于某些有趣且实用的问题,避免暴力搜索的尝试并未成功,目前也不清楚是否存在能解决这些问题的多项式时间算法。我们不清楚找不到这些问题的多项式时间算法的原因。也许这些问题存在尚未被发现的、基于未知原理的多项式时间算法;或者,其中一些问题本质上就无法在多项式时间内解决。
一个显著的发现是,许多问题的复杂性是相互关联的。如果存在一个针对某类问题的多项式时间算法,那么就可以用它来解决一整类问题。下面我们通过哈密顿路径问题(HAMPATH)来具体说明。
2. 哈密顿路径问题(HAMPATH)
在有向图 $G$ 中,哈密顿路径是一条恰好经过每个节点一次的有向路径。我们考虑测试有向图是否包含连接两个指定节点的哈密顿路径的问题。设 $HAMPATH = {⟨G, s, t⟩| G$ 是一个有向图,且存在从 $s$ 到 $t$ 的哈密顿路径 $}$。
我们可以通过修改定理 7.14 中给出的路径问题(PATH)的暴力算法,轻松得到 HAMPATH 问题的指数时间算法。只需添加一个检查步骤,验证潜在路径是否为哈密顿路径即可。但目前还没有人知道 HAMPATH 问题是否能在多项式时间内解决。
HAMPATH 问题具有多项式可验证性这一重要特征。即使我们不知道快速(即多项式时间)确定图中是否存在哈密
超级会员免费看
订阅专栏 解锁全文

749

被折叠的 条评论
为什么被折叠?



