内功方面,可以回忆金庸风格的武侠对于内功的描述:内息在人体的经脉网络里流转,搬运一个周天之后内力便强上一分;那么问题就在于,为什么会有那么多种类的内功?既然都是搬运一个周天,内功不都应该是类似的么?为什么会有绝世神功和平庸内力的分别么?
既然是算法江湖,我们完全可以补充设定。人体的经脉网络由人体的那么多的穴位和一些特殊的部位组成(比如丹田)。这些穴位就是网络上的节点。那么由某个穴位到另外一个穴位的内息会产生特殊效果:穴位的不同和方向的不同可以产生的特殊效果是不一样的,而内功心法的性能和所要达成的效果就是这些内息在这些穴位之间流走然后最终循环一周所造成的特殊增益。同样,如果内息流经其他的穴位,可能会造成其他的效果。追加设定,如果内息访问的路线太长,那么在同样的时间内搬运一周天所花费的时间比其他的内功要长,那么这个内功心法的效率就比那些搬运时间短的内功心法的效率要低。这样,我们就完全可以将内功心法归化成一个旅行推销员问题:我们需要访问某些特定的穴位,请问在经脉网络里怎样安排内息的流向可以达到最优的路径呢?显然这个问题是非多项式复杂的!在武林的几千年发展史以来,无数高手大家对这个问题提出了他们自己的解,显然没有一个人能够给出一个通用的内功的算法来发展出最高水平的内功;绝世神功无非就是在某个特殊的约束下达成的近最优解。如果量子计算机成功实现了,那么旅行推销员问题有多项式时间的解法,大家就可以设计出顶级的神功了,武林就此戛然而止。
外功方面,同样的,武林高手大家设计出了一门武功,那么如何破这门武功同样可以看做是一个NP问题:不存在一个多项式时间的算法来解决这个问题。然而,令狐冲向我们证明了,我们可以在多项式时间内验证某个解的正确性。所以他在思过崖后面的山洞里看见那些邪派高手耗尽心力想出来的对华山剑法的破法,一眼就看出了这些破法是非常有效的,针对五岳剑派的武功而来;而那些邪派高手则花了毕生精力来思考这些破法。那么对于某种兵器的通用破法则可以看做是NP完全问题:这种兵器的任何一种武功都可以归约到这个破法来。
所以我们可以合理的认为,独孤九剑其实是武学上对于NP=P的证明;它的九招的每一招都是对一种兵器的NP完全问题的多项式时间算法,令狐冲掌握了之后可以在实战这个时间尺度上给出任意一种武功的破法。
从后面令狐冲实战的表现上来看,打冲虚道长的问题在于虽然是多项式时间的破法,但是P太大;而打东方不败的失败原因是P之前的系数太大,所以虽然是多项式时间,但是绝对时间尺度上还是比东方不败的出招要慢,所以对付东方不败独孤九剑并没有太有效。
泰山派的岱宗如何同样是对于其他招数的破法,但是相当于Brute Force Search,是NP复杂的,所以在实战中的实用程度太低。