1936年,24岁的艾伦·图灵坐在剑桥宿舍里,压根没想着要发明什么计算机科学。他只是想解决一个边缘数学问题——结果顺手定义了“什么是可计算”,并证实了一件事:有些问题,任何算法穷尽宇宙的算力都解不出来。这套理论的第一颗钉子,就是停机问题。一个程序到底会不会在某天停下来?图灵证明,没有计算机能判定所有程序的行为。你写的每行代码,背后都藏着这个补不上的漏洞。
计算机科学的发展史,就是一边承认“永远算不出”,一边猛找“至少能算得快”的故事。蒂姆·拉夫加登把这门课的起点放在一个狡猾的追问上:能算的问题里,哪些可以快速求解?答案往往藏在算法捷径里。你手机地图用迪杰斯特拉算法找最短路径,不是把所有路都试一遍,而是沿着最短候选边走,像极了精明的打车司机。卡拉楚巴的乘法技巧更是赤裸裸走偏门——把大数拆几瓣,用三次乘法代替四次,硬生生跑赢你小学学的竖式。这些捷径会让人产生幻觉,以为所有难题背后都藏着类似的花招。
![]()
旅行商问题一巴掌扇醒了这种幻想。它和最短路问题外观几乎一样:一个推销员想走遍所有城市一次且总路程最短。结果却是个无底洞。几十年来,全球最聪明的脑袋都没挖出快速算法。更扎心的是,拉夫加登引出的NP完全理论干脆撕掉这张遮羞布:成千上万个看似无关的问题——排课表、解数独、优化网络——竟然全是同一个问题的换皮版本。要是有谁能给任何一个NP完全问题找到快速解法,就等于把这一整族一起端掉。反过来,只要有一个是真·硬骨头,那所有都只能干瞪眼。
![]()
问题的戏肉在P与NP上。这是计算机科学最重要的未解之谜,也是数学界悬赏的那类难题。拉夫加登没打算上来就给结论,而是沿着希尔伯特、哥德尔、冯·诺依曼这些巨人的脚印,把两条研究路线焊到一块儿:一条盯着算法能跑多快,另一条盯着算法的天花板。这两股势力撞在同一个问题上:究竟快速可解的问题(P)和快速可验证的问题(NP)是不是一回事?一旦答案揭晓,密码学会地震,人工智能可能重排路标,量子计算也会换个活法。但直到今天,谁也不知道P等于还是不等于NP。
![]()
整门课不需要计算机学位,也不用啃数学公式。拉夫加登只是把计算当成一种比物理更基本的“元问题”来拆解:先告诉你机器也有天生的盲区,再甩出一堆反直觉的算法岔路,最后揭示整个近代计算机科学都悬在P与NP那根细线上。你听完不会马上涨薪,但再看任何一个“解决不了”的技术难题,会先问一句:它是停机问题那种不可解,还是NP完全那种能验证却算不明白?这个区分,恰恰是图灵1936年埋下的地基。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.