在电影《泰坦尼克》中,总设计师解释了该船重要的安全保障之一:水密隔舱。
如下图,泰坦尼克号有16个单独的水密隔舱,舱与舱之间的水密门用电动开关控制,即使有4个隔舱同时进水,也会安然无恙。
比泰坦尼克号更早一千年,唐代的泉州已经掌握了“水密隔舱”技术。
《马可·波罗游记》描述的中国南方海船的船壳是多层板结构,还有水密隔舱十三个:“若干最大船舶有内舱到十三所,互以厚板隔之,其用在防海险,如船体触礁或触饿鲸而海水渗入之事”。
与上述“水密隔舱”技术相关的主要原因是:泰坦尼克号的水密隔舱并不是封顶的。
如上图,当海水漫进第几个隔仓之后,假如导致船体出现较大倾斜,水会蔓延到下一个隔舱,如多米诺骨牌般引起连锁反应,直至更大倾斜、解体、沉没。
这个设计缺陷,恰是对“水密隔舱”技术的数学原理的破坏。
“水密隔舱”技术,是利用了概率上的独立性。
关于“随机事件的独立性”,书中对其的解释是:
举例说:你将一枚标准硬币扔两次,每次都朝上的概率是多少?
假如第一次扔硬币是随机事件A,第二次扔硬币是随机事件B,因为两次的结果互不影响,可以认为是独立的,所以两次都朝上的概率是:
1、这是一艘很大的船,假设一次意外事件只破坏一个独立的隔舱;
那么连续发生四次“独立的、导致破坏一个隔舱的意外事件”的概率是多少呢?
5%×5%×5%×5%=0.000625%,也就是约为百万分之六的概率。
简单来说,这个概率要小于“一个人在一年中被雷劈”的概率。
1、泰坦尼克号的“水密隔舱”技术,并没有让每个隔舱漏水成为“独立事件”;
一个牢不可破的神话,被意外的黑天鹅事件击破了。
船员提前用肉眼看见了“两个东西”。因为船上的超远距离望远镜居然被锁住了,所以等亲眼望见时,已经离冰山很近。
这是一个专业并且本能的反应。
然而,据说舵手执行错误,向右转了。--这还不是关键。
更糟的是,大副试图避开冰山的判断根本就是错的。
假如只是减速,让最坚固的船头撞上冰山,水密隔舱的设计可能会发挥作用,泰坦尼克号也许不会沉没。
选择转向,将脆弱的船腰暴露给了冰山,船身被划开一个93米长的大口子,一连损坏了 5 个水密隔舱。
本来是概率极低的5个独立事件,突然变得不独立了。
概率不再保护这艘原本只有百万分之一可能性沉没的巨轮,2小时40分钟后,泰坦尼克号百分之百地没入冰海。
利用“随机事件的独立性”,来实现概率上的“保护系统”,是非常高明的做法。
例如,狡兔三窟。假如一个兔子洞的安全程度是80%,兔子想要更安全,有两种做法:
2、有三个安全程度都是80%的兔子洞。
第二种做法,三个兔子洞都被捣毁的概率是(0.2×0.2×0.2=0.008),所以兔子的安全程度达到了(100%-0.8%=99.2%)。
传统载人飞船搭载的星载计算机和控制器,为了实现高性能和高可靠性,要使用昂贵的宇航级器件,整套成本高达约1.4亿人民币。
而SpaceX的龙飞船主控系统的芯片组,却只用了2.6万人民币。
“他们使用了Intel的X86双核处理器,将双核拆成了两个单核,分别计算同样的数据。每个系统配置3块芯片做冗余,也就是6个核做计算。”
对比起机械时代的“水密隔舱”,多个相对独立的芯片不仅构成冗余,又通过数据同步和系统纠错整合在一起。
“如果其中1个核的数据和其他5个核不同,那么主控系统会告诉这个核重新启动,再把其他5个核的数据拷贝给重启的核,从而达到数据一直同步。周而复始,不让一个核掉队。”(参见下图)
不是不让意外发生,也不是只增加冗余,还能通过适应性纠错,实现系统的主动安全。
不仅计算机系统可以如此,连火箭的发动机系统也不例外。
“猎鹰”系列火箭梅林发动机应用“简单即可靠”的新理念,将结构设计得非常简单,以消除复杂结构带来的不稳定隐患。
2012年10月,“猎鹰”火箭发射“龙”飞船向国际空间运送货物时,第一级的一台发动机出现故障停机,其他8台发动机立即自动补偿了推力损失,最终成功将“龙”飞船送入预定轨道。
对比起单独追求单一系统或者硬件的牢靠性,通过多系统和多硬件来构成冗余,不仅成本低,出错概率小,还能够主动纠错,有更强的健壮性和适应力。