來源 | 得到APP
轉自 | 段永朝讀書
你肯定聽說過一個詞,「蝴蝶效應」,形容的是一件微小的事情,可能會帶來很大的風險。但萬老師說,當人們在談論「蝴蝶效應」的時候,基本上都說錯了。
這是為什麼呢?我們一起來聽聽萬老師的講解。
「蝴蝶效應」是人們經常談論的一個科學典故,說巴西的一隻蝴蝶震動翅膀,有可能在幾周之後,在美國德克薩斯州,導致一場颶風。人們經常用蝴蝶效應形容微小的事情可能帶來很大的影響。
而這一講我想說的是,當人們談論蝴蝶效應的時候,基本上都說錯了。而這個認知錯誤更體現了一個重要的觀念錯誤。
咱們先說說「蝴蝶效應」是怎麼來的。
1961年,美國數學家愛德華·洛倫茲(Edward Lorenz)在用計算機模擬天氣變化的時候,發現一個有意思的現象。我們知道計算機模擬都有輸入的參數和輸出的結果。本來有個輸入參數的數值應該是 0.506127,有一次模擬中洛倫茲為了省事,就把它給來了個四捨五入,用 0.506 代替。其實我們平時工作中經常這麼幹,誤差不到萬分之二,對吧?
可是洛倫茲發現,計算機輸出的結果,不是相差萬分之二,也不是相差百分之二,也不是相差百分之二十 —— 而是變成了一個完全不同的天氣狀況。
這就相當於說,你測量某地大氣壓數值如果有萬分之二的誤差,你預測出來的天氣就從晴天變成下雨了。
這是一個令人絕望的發現。如果是這樣的話,請問誰能保證測量的參數都無比準確呢?那所謂的天氣預測還有什麼意義呢?
不過數學家們可不是第一次遇到這種情況。數學家早就知道,對於「非線性系統」,結果有時候就是會對初始值非常敏感 —— 初始值差一點點,結果就會相差很大。這也是「混沌」這個概念的起源。比如著名的「三體問題」就是一個非線性系統。三個臨近的星球在引力作用下會如何運動?開始的位置差一點點,後面的結果就會很不一樣。反過來說,「線性系統」就簡單了,輸入差一點,輸出也差一點。
洛倫茲有感於非線性系統這個性質實在太不好對付,就打了個誇張的比方,說這簡直就是說巴西的蝴蝶震動翅膀,帶來了德克薩斯的一場颶風啊……
請注意,洛倫茲說的只是一個誇張的比喻而已。蝴蝶不會導致颶風。
非線性系統並不是完全不可控的系統。今天我們的天氣預報是相當準確的,氣象局能夠很好地預測下雨、下雪、颶風和颱風。氣象局是通過衛星雲圖和地面氣象數據的觀測來預測天氣,他們並不需要關注地球上所有的蝴蝶 —— 事實上他們根本就不考慮蝴蝶的事兒。
洛倫茲當初可能正好用了一個特別敏感的模型。事實上並不是所有的非線性系統對所有的輸入參數都那麼敏感。天氣系統並不是一個特別誇張的變化多端的系統。人們經常把股市描寫成混沌系統,有些看起來很無害的小波動也有可能帶來股市比較大的波動,但是小波動不會導致股災之類的大事件。
人們經常用蝴蝶效應形容小事導致了大事,但這個觀念是錯誤的。如果你對「導致」這個動詞的理解跟我一樣,我就要說服你,小事不會「導致」大事。
咱們先看看什麼叫「導致」。
下面這張圖,大概是人心目中蝴蝶效應的一個形象寫照 ——
從小到大的一堆多米諾骨牌排在一起,最大的一塊有一個人那麼大,最小的一塊比指甲蓋還小,只能用鑷子拿。放倒最小的一塊,骨牌就會連鎖反應,最終把最大的一塊也推倒。
這不就是蝴蝶效應嗎?這不就是小骨牌導致了大骨牌的倒下嗎?
不是。
是這些骨牌的排列方式,導致了大骨牌的倒下。這是一個極其危險的系統。就算最小的骨牌不倒,中間任何一個骨牌倒下,都會導致後面所有的骨牌倒下。
如果要追責的話,你要問的不是誰推倒了最小的骨牌 —— 最小的骨牌有權做它想做的事情 — 而是誰把骨牌排列成這個樣子!這就好比說如果你把一堆炸藥堆放在一起,只要一個火星就能引起爆炸,那如果真的爆炸了,你不應該埋怨那個火星,你應該反思的是為什麼炸藥這麼危險的東西不好好管理。
火星總會來的。小骨牌總要倒下。蝴蝶總要震動翅膀。你應該怪罪的是系統,而不是導火索。
那什麼樣的系統容易出危險呢?1979 年,美國賓夕法尼亞州的三裡島核電站,發生了一次嚴重的反應堆融毀事故。事故沒有造成直接或者間接的人員傷亡,但是光是清理費用就超過了 10 億美元。當時美國政府請了一位叫查爾斯·佩羅(Charles Perrow)的社會學家幫著分析事故原因。佩羅的研究,從此改變了人們對大事故的看法 [1]。
跟一般公眾的觀點相反,核電站,其實是一種非常不容易出毛病的東西。車諾比核電站是完全沒經驗的設計,才出了那麼大的災難。三裡島核電站是老式的設計,安全性能跟今天的新型核電站不能比,但就是這樣,它也沒那麼容易出問題。佩羅發現,三裡島事故,是由三個原因同時起作用導致的 ——
第一,反應堆有個給水系統,正常情況下應該供水,但是出現故障沒用供水。本來這個可能性在設計方案中就考慮到了,還有兩個備用系統可以自動供水 —— 但不巧的是,備用系統在之前維護的時候被關閉了,沒有按規定打開。
第二,因為沒有水,反應堆溫度就上升,這時候有個洩壓閥就自動開啟降低溫度。等到溫度降下來,按理說洩壓閥應該自動關閉,可是因為故障它沒有關上,於是導致反應堆的冷卻劑往外流。
第三,如果工作人員能正確判斷發生了什麼,也能立即採取有效措施。可是工作人員看到的指示燈顯示洩壓閥已經關閉了。這是因為指示燈的設計是顯示是否已經「命令 」洩壓閥關閉,而不是顯示洩壓閥的真實狀態。工作人員被誤導了。
這三件事只要有一件不發生,大事故就不會發生。英文中有個詞叫「完美風暴(perfect storm)」,意思是幾個因素恰好一起發生了,導致一個劇烈的後果 —— 三裡島核事故,就是一場完美風暴。
那請問,這個事故裡誰是蝴蝶呢?應該指責誰呢?人們本能反應是指責當時負責操作的工作人員,可是三件事是在 13 秒內發生的!工作人員根本來不及反應!
佩羅說,我們真正應該指責的是系統。
從三裡島事故出發,佩羅總結,現代幾乎所有重大事故 —— 包括飛機墜毀、化工廠爆炸等等 —— 都有兩個共同特徵。
第一個特徵是「複雜」。中文的「複雜」對應到英文有兩個詞,一個是 complex,一個是 complicated。後者的意思差不多是「很麻煩、不容易理解」,而前者的意思是系統的各個部分互相關聯,不是簡單的連接。我們說的這個複雜是 complex。
以前我們專欄說過「系統思維」,我們知道系統裡有正反饋和負反饋迴路 [2]。正反饋迴路會讓系統不穩定,負反饋迴路會讓系統回歸穩定。核電站這種系統實在太複雜了,其中有各種反饋迴路,有些部分之間的關聯還是隱藏的,可能設計者都想不到。那麼如果有一個正反饋關聯迴路是你沒想到的,在事故中開啟了,就會很麻煩。
第二個特徵是「緊緻耦合(tight coupling)」。所謂緊緻耦合,就是這個系統缺少緩衝地帶,錯一點都不行,沒有餘閒。
出現這個情況往往是系統過於追求效率,搞得什麼東西都一環套一環可丁可卯,結果錯一步就導致後面全錯。
比如大橋就是一個不複雜、耦合也不緊的系統。哪個橋墩有問題,不至於馬上波及別的橋墩,大橋對付著還能用上一段時間。道路交通也不複雜,但是耦合比較緊,一條路上任何一個地方出事故,整條路都得堵車。大學系統很複雜,但是耦合不緊,教授們就算搞搞政治鬥爭也翻不了天。可是像核電站和化工廠這種東西,如果又複雜耦合又緊,那就容易出大事故。
當人們強調「安全」的時候,總愛說什麼要狠抓「安全意識」,什麼「年年講月月講天天講」,什麼「警鐘長鳴」。可是安全意識有用嗎?
安全意識關注的是蝴蝶。如果颶風真的是由蝴蝶引起的,那你就應該好好教育蝴蝶們,不要隨便震動翅膀。如果事故真的是因為工作人員疏忽,那你就應該給員工天天講。
其實「天天講」是個不好的教育方法,重複的信息會被人腦自動忽略。如果一個煙霧報警器有事兒沒事兒動不動就叫,你會直接關掉它了事。
更重要的是,真正的大事故不是蝴蝶引起的。我們需要的不是安全意識,而是安全系統。
經常與蝴蝶效應共同出現的一句話是「XX無小事」,這也是一個錯誤的觀念。無小事 = 無大事。
如果一個領導只會籠統地說什麼「這很複雜啊!這很重要啊!千裡之堤毀於蟻穴啊!核電站無小事!」,我認為這領導啥也不懂。做事得善於分清輕重緩急。敢於忽略小事,你才能做好大事。
把系統搞好了,有緩衝區有餘閒有穩定迴路,我們就可以有恃無恐。反過來說如果系統不行,人就算整天戰戰兢兢也難保不出事兒。
凡夫畏果,菩薩畏因,我們有現代化管理知識的人還要再加一句:佛畏系統。
注釋:
[1] 此事詳情見於 Meltdown: Why Our Systems Fail and What We Can Do About It, by Chris Clearfield and András Tilcsik, 2018.