2 希尔伯特划定有解问题的边界
1900年希尔伯特在国际数学大会上提出了23个著名的数学问题,其中第十问是:“任意一个(多项式)不定方程,能否通过有限步运算,判定它是否存在整数解。”所谓不定方程(也称丢番图方程),指有两个或更多未知数的方程,它们的解可能有无穷多个,为了方便理解看三个特例。例一:,这个方程有三个未知数,有很多正整数解,每一组解其实是一组勾股数,构成直角三角形的三条边。例二:
,这些方程都没有正整数解,这就是费马大定理。例三:
,很难直观看出是否有整数解,我们也没办法一步步判定是否存在整数解,即使判定有整数解,也未必找得到。
如果对希尔伯特第十问题普遍的答案是否定的,说明很多数学问题上帝也不知道答案是否存在,因为不定方程求解问题还只是数学中的一小部分,对于连答案存在与否都无法判定的问题,我们也不用费心找答案了。希尔伯特对边界的思考使图灵明白了计算的极限所在。
图灵自己没有解决第十问题,只是隐约觉得大部分数学问题没有答案,二战后很多欧美数学家挑战第十问并取得了一些进展,20世纪最著名的女数学家朱莉罗宾逊就是其中之一,不过她没有迈出最后几步。在纯粹数学领域通常是英雄出少年,1970年,苏联天才数学家尤里马蒂亚塞维奇在毕业后不久解决了第十问,因此这个问题的结论表述也称为马蒂亚塞维奇定理。他严格证明,除了极少数特例,在一般情况下无法通过有限步运算判定一个不定方程是否存在整数解。
第十问的解决对人类认知的冲击更甚于数学上的影响,它表明很多问题根本无从得知是否有解,更不可能通过计算解决。更重要的是,这种无法判定是否有解的问题在数量上远远多于有答案的问题。可以用下图总结上述各种问题之间的关系:
如图所示,世界上只有一部分问题可转化为数学问题,其中只有一部分能判定是否有解,对可判定问题有两种情况:答案存在或不存在,只有答案存在的问题,我们才有希望找到答案,而这只占所有问题的沧海一粟。
那么有答案的问题是否都能用计算机解决呢?这要看计算机是如何设计的。1936年,图灵提出了一种抽象的计算机数学模型,即图灵机,这种数学模型在逻辑上非常强大,任何可以通过有限步逻辑和数学运算解决的问题,理论上都能遵循一个设定的过程在图灵机上完成。今天的计算机只是图灵机模型的一种具体实现方式,目前还没实现的计算机(如基于量子计算的计算机)在逻辑上也没有超出图灵机的范畴。因此在计算机领域,人们把能用图灵机计算的问题称为可计算的问题。
可计算的问题是有答案问题这一集合的子集,它是否等于“有答案问题”的全集仍有争议:一方面人们可以构建出类似悖论的数学问题,这种问题显然无法用图灵机解决;另一方面,这种问题在现实世界是否存在(或者是否有意义),很多人认为暂时没必要考虑。不管怎样,根据丘奇和图灵对可计算问题的描述(即丘奇-图灵论题),有明确算法的问题都是可计算的,没有明确算法的问题也谈不上计算。
对理论上可计算的问题,实际工程未必能实现,因为可计算是指能用图灵机在有限步内解决,但有限可以是一个很大的值,计算时间可以很长(长到宇宙毁灭都行),比如一个计算复杂度是NP完全的问题,可能永远算不完,但却是可计算的。此外图灵机没有存储容量的限制,在现实中是不存在的。
由此我们可得出人工智能的边界。下图可见,理想状态图灵机可解决的问题(可计算问题)是有答案问题的一部分,而今天和未来,工程上可解决的问题不会超出这个范畴。另外,很多可以用工程方法解决的问题并非人工智能问题,因此今天人工智能能解决的问题只是有答案问题的很小一部分。
今天我们要担心的不是人工智能有多么强大,因为它们的边界已经被数学的边界划定了。我们要担心的是不知道怎么把一些应用场景转化为计算机能解决的数学问题。对人工智能而言,还有很多尚未解决的问题,比起杞人忧天人工智能失控,不如设法解决现有问题。对非计算机从业者而言,世界上还有很多需要人解决的问题,应该关注怎样利用人工智能工具更有效地解决属于人的问题。