很久很久以前,有一个问题困扰着我,那就是这个世界会不会是一秒前形成的,而世界上所有的物品状态人物记忆等都是一秒前形成之初就被赋予的。为此我想了很久,还连带着许多自己奇奇怪怪的想法一起打包成《我眼中的世界》写到了 QQ 空间的日志里。后来发现类似的问题已经有不少人提出过了但却没法给出什么值得思考的说法,直到我在大学的软件工程课上遇到了它,奥卡姆剃刀原则,才让我得以从这个复杂的问题脱身而得以喘息。

奥卡姆剃刀(英语:Ockham’s Razor、拉丁语:Lex Parsimoniae,意为“简约法则”)是由14世纪方济会修士奥卡姆的威廉(William of Occam,约1287年至1347年,英格兰萨里郡奥卡姆 (Ockham)人氏)提出的逻辑学法则。如果关于同一个问题有许多种理论,每一种都能作出同样准确的预言,那么应该挑选其中使用假定最少的。尽管越复杂的方法通常能做出越好的预言,但是在不考虑预言能力(即结果大致相同)的情况下,假设越少越好。

很多人咋一听奥卡姆剃刀原则似乎没印象,但换个说法估计就懂了,它就是 如无必要,勿增实体。很明显这是哲学指导生产生活的又一经典案例,但我不会在此长篇大论探讨软件工程里的原理实践,而是从自己的角度去理解阐述它。我将奥卡姆剃刀的用法分成三个场景,想解释一个现象、想实现一个功能(工程)、想选择一条分歧道路。以下是面对三个场景时的解决方案:

  • 一个现象如果有多种假设成立,则选择假设条件最少的
  • 一个功能如果有多种方案实现,则选择实现代价最小的
  • 一个问题如果有多个分歧,则选择更可被证实为正确的

它是一种方法论,是一柄用于斩断乱麻的快刀。它并没有解决问题本身,而是跳出问题,从另一个角度面对问题。

拿开头提到的问题来说,世界是否是前一秒形成或是前几天形成的,这个问题在目前看来是无证伪的方法的(注意是无证伪方法,而不是简单的无法被证伪),一直纠结这个问题无异于像程序进入了死循环中无法脱身,而奥卡姆剃刀给了这个程序一个恰当的 break:根据解决方案一,如果世界在一秒前形成,那么需要假设多少东西呢?需要用假设去解释世界形成的原因,形成的过程,形成的原理,要假设出这三大块内容那相当于要假设出一套新的宇宙运行逻辑,这里面的假设条件想必用天文数字来形容也不为过。再根据解决方案三,选择更可能被证实为正确的,对于 “世界是前一秒形成的” 这个命题,不仅没有证实或证伪的方法,连组成其说法的各种假设条件也不可能被证实,那么直接用剃刀将这个命题砍掉吧。如果以后有更多条件被证实了,再来确认这个命题的正确性也没关系。这也没有违反原则,毕竟 可被证实为正确 这个条件是与时俱进的。

从这个问题跳出来后回头想想,就算世界是前一秒形成的又怎样,现在的一秒形成的状态和发育了几百亿年的宇宙难道不是等效的吗?

既然是等效的何必再去纠结,保持向前看就好了。

感谢奥卡姆剃刀原则。另外也从使用这个原则的时候悟到:跳出问题本身思考往往能走出迷局。这可能才是奥卡姆剃刀的深层思考逻辑吧。