TOPIC 11 · PHASE B

可预测性的两种极限TWO LIMITS OF PREDICTABILITY

一堵墙是测不准,另一堵墙是没有捷径(One wall is measurement; the other is that no shortcut exists)

2026-07-29 · 动力学与不可预测性

你大概以为预测不准是因为仪器不够好、数据不够多。有一半是这样。另一半完全不是——有些事情算不出来,不是因为你知道得太少,而是因为除了让它原速发生一遍,没有别的办法。

明天的天气报得挺准,下周末的就未必,两周以后的基本等于瞎猜。这条界线不是技术水平的界线——把超级计算机再快一百倍,也推不远多少。它是一堵墙。

反直觉的地方在于:这样的墙不止一堵,而且两堵墙长得完全不一样。第一堵叫测不准:系统对初始状态极度敏感,你的测量误差会指数放大,于是预报期被误差长大的速度锁死。这一堵,花钱能撬开一点。第二堵是另一回事:假设你把初始状态知道得分毫不差,规则也精确到没有一丝含糊,仍然可能没有任何办法比"让它一步一步跑完"更快地知道结果。这一堵撬不开——它不关于你知道多少,它关于捷径存不存在。

本站讲不可预测性有三期,分工不同:第 8 期讲混沌(chaos)本身(确定论不等于可预测),第 9 期讲一个参数怎么把系统一路推进混沌。本期只问一件事:既然预测不了,那"预测不了"具体是哪一种,以及各自还剩下什么能做。两种极限必须对着看——因为它们的补救措施几乎正好相反,诊断错了,钱就全花在没用的地方。

01误差有个倍增时间(The Doubling Time of Error)

1961 年,气象学家爱德华·洛伦兹想接着跑一段已经算过的预报,就从打印稿上把中间结果抄回机器里 → 参考 · 洛伦兹系统。打印稿只保留了三位小数,机器里存的是六位。抄进去的数和原来的数差了不到千分之一——跑出来的天气却完全是另一副样子。

要紧的不是"差一点点会变很多"这句话本身,而是差多少、多久变多少。在这类系统里,两条起点几乎重合的轨迹,它们之间的距离大致按指数拉开:每过一段固定的时间就翻一倍。这段时间叫误差倍增时间(error doubling time);它对应的增长速率叫李雅普诺夫指数(Lyapunov exponent),而误差从"可以忽略"长到"不能忽略"所需的时间,叫李雅普诺夫时间(Lyapunov time)。

指数增长有一个残酷的后果,要反过来算才看得出:你想多买一个倍增时间的预报期,就得把初始误差砍掉一半。想多买十个倍增时间,得把误差砍到千分之一(2 的 10 次方大约是 1000)。测量精度的投入是乘法级的,换回来的预报期是加法级的。这就是为什么天气预报的进步是"每十年往前多推进一天左右"这种速度,而不是随算力一起翻番。

现代天气预报里,天气尺度的误差倍增时间大约是一天半。2019 年有一组人(Zhang 等)用 9 公里和 3 公里分辨率的模式专门估过这件事:现在能用的预报期大约 10 天,而把当前的初始误差整体降低一个数量级,最多再往前推 5 天——之后就撞上一条大约两周的线,那是假设模式完美时的上限,不是当前水平。天气报到两周就没了,这不是气象学家不努力。

误差按指数长大 — 纵轴是对数刻度 0 7 14 21 预报提前期(天)→ 两条轨迹的偏差(对数) 饱和:预报与随便猜一样好 内在极限 ≈ 两周 再精 10 倍也过不去 ≈10 天 只多买 4–5 天 今天的观测误差 初始误差降到 1/10 精度是乘法,预报期是加法 — 而加到某处,有一条线过不去
纵轴是对数刻度,所以指数增长画出来是直线。把测量精度提高十倍,只是把整条线往下挪一小截、往右挪四五天。
🎯 决策线

把"重新规划的周期"按误差倍增时间来定,不要按日历定。做法:翻出你过去 20 次预测(工期、销量、容量、故障恢复时间),按"提前多久做的预测"分组,看偏差从哪个提前期开始失控——那个时间就是你这件事的倍增时间,复查周期设成它的一半。要停掉的动作:为了"一次算准"把估算会开成两小时。

🌀 工程与技术史 · 深空探测的中途修正 探测器从来不是把轨道一次算准就撒手,而是预先在飞行途中排好若干次修正机动。原因正是这一节的机制:定轨误差随飞行放大,越晚修正,要抵消的偏差越大、烧的推进剂越多。于是真正的设计变量不是初始定轨有多准,而是修正窗口排得有多密。这条推论换到任何计划上都成立:当误差按指数长,缩短复查间隔比提高初始估计精度便宜得多——而人的本能恰好相反,总想着"这次一定要想周全"。

EN In a chaotic system the gap between two nearby trajectories doubles every fixed interval — the error doubling time, roughly a day and a half for synoptic weather. Buying one more doubling time of forecast horizon costs a halving of initial error: precision is multiplicative, horizon is additive. Zhang et al. (2019) estimate today's useful range at about 10 days, with a further order of magnitude in initial precision buying at most 5 more, against an intrinsic ceiling near two weeks.

02别预测轨迹,预测分布(Ensembles, and the Weather/Climate Split)

撞上第一堵墙之后,气象学家做的不是放弃,是换了交付物。这一步值得所有做预测的人抄。

1990 年代起,主要预报中心不再只跑一次模式。它们把初始状态微微扰动几十次——每一次扰动都在观测误差允许的范围之内,所以每一个扰动版本都同样"有资格"是真实的当前状态——然后并行跑几十条预报。欧洲中期天气预报中心(European Centre for Medium-Range Weather Forecasts,缩写 ECMWF)的做法是 51 条:1 条控制预报,加 50 条扰动成员。这套东西叫集合预报(ensemble forecasting)。

它交付的不是一个数,是一群数。而这群数散得有多开,本身就是最重要的那个产品:如果 51 条都说周六下雨,你可以相当有信心地说会下雨;如果 30 条说下、21 条说不下,正确的输出就是"降雨概率六成",而不是硬挑一个。你手机上那句"明天降水概率 70%",背后就是这么来的。

同样的 12 条成员 — 散开程度本身就是产品 ① 成员挤在一起 ② 成员散开 下雨的阈值 下雨的阈值 12/12 在阈值以上 → 直说「会下雨」 左端小圈 = 观测误差之内的初始状态 7/12 在阈值以上 → 「概率约六成」 硬挑一条当答案,等于把信息扔了
两个面板的初始状态一样不确定,跑出来的可说程度完全不同。集合窄的时候你有权直说,集合宽的时候你只有概率。

注意这不是把不确定性打包成一句免责声明。概率预报是可检验的:把一年里所有报了"70%"的日子拉出来,真正下雨的天数应该接近七成。这叫校准(calibration),是一个能打分的量。点预测没有这个性质——单独一次"明天下雨"报错了,你分不清是模型差还是运气差,于是谁也不必负责。

🎯 决策线

把交付物从"一个数"换成"一个区间加一个概率",并且给区间打分。具体:每次报数字都带 80% 区间;每季度统计真值落在区间里的比例,目标就是 80%——落进去太多说明你把区间报宽了在偷懒,落进去太少说明你在自欺。被问责的对象从"猜没猜中"换成"区间的校准率"。这一步不需要任何新模型,只需要换一张表。

🌀 经济与制度 · 央行的扇形图 1990 年代中期起,英格兰银行的通胀报告开始用"扇形图"取代单一预测值:一片越往后越宽的阴影,标出各个概率带。这看起来像是把话说含糊了,实际正相反——它把校准变成了可以被追责的东西:如果 90% 的带子只兜住了六成的实际结果,这件事能被算出来并被质问。推论有点反直觉:给区间比给点值更容易被证伪,因此更负责,而不是更滑头。那些只报一个目标数字的机构,恰恰把自己放在了无法被检验的位置上。

EN Ensemble forecasting perturbs the initial state within observational error and runs many forecasts — ECMWF runs 51 members. The deliverable becomes a distribution, and its spread is the product: a tight ensemble licenses a statement, a wide one licenses only a probability. Crucially, probabilities are testable through calibration, while a single-point forecast can never be scored on one occasion.

03同一个系统,有些问题能答(Trajectory Versus Statistic)

第二件事更重要,也最容易被漏掉:可预测性不是系统的属性,是问题的属性。

明年 3 月 17 日北京的气温,问不出来。明年 3 月北京的平均气温、以及大概有几天会超过 25 度,能答得相当好。同一个大气,同一套方程,同一堆测量误差——差别只在于前者问的是轨迹上的一个点,后者问的是这条轨迹长期落在哪儿、以什么频率落

这正是天气和气候的分别。气候不是"很久以后的天气",气候是天气的统计。用第 7 期的语言说:轨迹在吸引子(attractor)上乱走,走到哪一点问不出来,但吸引子的形状是稳的,稳到你换一段时间重新统计,画出来的分布几乎重合。→ 参考 · 相空间与吸引子

同一段模拟 — 左边问不出来,右边稳得能当依据 轨迹:下一步在哪儿 分布:落在各处的频率 走了上千步都在这两片翅膀里, 但下一步偏左片还是右片 — 答不出 青柱 = 早先一段(30 万步) 金线 = 很久以后一段(30 万步) 换一段时间重新数一遍,形状几乎重合 — 这就是「气候可测而天气不可测」的意思
混沌毁掉的是轨迹的长期预测,没毁掉统计量的预测。而多数真正要做的决策要的恰好是统计量。

所以"这个系统是混沌的,预测不了"这句话是不完整的,甚至常常是偷懒。要修多高的堤、备多少冗余、下多大仓位——这些问题问的全是统计量。改问法比改工具便宜得多,而且往往是唯一有效的一步。

🎯 决策线

听到"这个算不出来"时,先追问一句:你要算的是轨迹(某个时刻的具体状态)、终态(最后停在哪儿),还是统计量(长期的分布、频率、比例)?三者的可算性完全不同。凡是能改写成统计量的问题就改写——把"下季度哪一周会出故障"换成"下季度大概几次故障、最长一次多久",后者可答,而且它才是你排班和备冗余真正需要的数。

🌀 生物医学 · 一次心跳测不出来,心律测得出来 心电图上逐拍的间隔是变化的,而且这种变化不是噪声——健康的心脏,逐拍间隔本身就带着不规则性。想预测下一拍精确落在第几毫秒,做不到;但把几百拍的间隔做成分布(临床上叫心率变异性),它的宽窄稳定到可以当预后指标用:变异性异常降低与心血管风险升高相关,是一个反复被复制的发现。同一颗心脏,逐拍问不出来、分布问得出来——而正是分布那一层携带了临床信息,逐拍那一层携带的是幻觉。

EN Predictability belongs to the question, not the system. Tomorrow's temperature on a named date is a trajectory question and is unanswerable at long range; next March's mean and the count of days above 25 °C are statistics of the attractor and are answerable. That is the entire difference between weather and climate — and most real decisions (how high to build, how much redundancy, how large a position) ask for the statistic.

04第二堵墙:没有捷径(Computational Irreducibility)

现在把第一堵墙彻底拆掉,看看后面还有什么。

假设你的系统是离散的:格子、整数、精确的规则,没有小数,没有测量误差,没有舍入。初始状态你知道得分毫不差。这时还有什么能挡住你?

试一个最朴素的系统:一维元胞自动机(cellular automaton)。一排格子,每格黑或白;每一步所有格子同时更新,新颜色只由它自己和左右两个邻居的旧颜色决定。三个格子的黑白组合一共八种,每种指定一个结果,于是一共 256 条可能的规则,编号 0 到 255。→ 参考 · 生命游戏与元胞自动机

从正中间一个黑格子出发。规则 90 长出一个谢尔宾斯基三角(Sierpiński triangle),规整得像织出来的。规整到什么程度呢:第 n 行第 k 格是黑还是白,有闭式答案——它等于杨辉三角(Pascal's triangle,也就是二项式系数)对 2 取余数,你把 n 和 k 代进去直接算,一步都不用跑。这叫可约(reducible):存在一条捷径。

规则 30 只差几个比特,长出来的东西却像撒了一把沙:左半边还有些条纹,中间那一大片至今没人找出任何规律。Wolfram 拿它当伪随机数发生器用了几十年;2019 年他还悬赏三万美元,问的是三个很基础的问题,其中一个是"中间那一列会不会最终变成周期性的"——奖金至今没人拿走。要知道第一百万步中间那格是什么颜色,目前唯一的办法就是把一百万步跑完。这个性质叫计算不可约性(computational irreducibility)。

规则 90 — 可约 规则 30 — 不可约 第 n 行第 k 格 = 杨辉三角 mod 2 中间那列至今没人找出规律 同一个起点:一个黑格子 想知道第 100 万行:代公式,一步 想知道第 100 万行:跑 100 万步 规则只差几个比特,且两边都没有任何测量误差 — 这堵墙与精度无关
两边的规则都只有八行、都精确、都无噪声。区别只在于「有没有比过程更短的路」。

请把它和第一堵墙的区别看清楚,这是本期最要紧的一句:不可约不是因为你测不准(这里没有测量),不是因为规则复杂(八行写完),也不是因为噪声被放大(这里没有噪声)。它说的是这个过程本身就是它自己最短的描述。你想跳到结果,得找到一条比过程更短的路;对绝大多数这样的规则,那条路不存在。

还有更硬的一层:规则 110 已经被证明是图灵完备的(Turing-complete,即能模拟通用计算机;Matthew Cook,2004)——任何计算机能算的,它都能算。于是"这条规则长远会怎样"这类一般性问题,就和停机问题(halting problem)同级:不是难算,是不可判定,不存在一个算法能对所有输入给出答案。

🎯 决策线

判定出面前是个不可约的过程之后,别再往"算得更准"上投钱——那笔钱换不回东西。改投三件事:让跑一步更便宜(缩短一次真实试验的周期)、让一步的结果可回滚、让两步之间的观测更密。在没有捷径的世界里,唯一的加速是提高试验吞吐量,不是提高预测精度。这也是"小步快跑"真正的理由——它不是文化偏好,是被这堵墙逼出来的。

🌀 数学 · π 的第 n 位其实有捷径 "只能原速跑完"从来不是可以先验断言的结论。1995 年 Bailey、Borwein 和 Plouffe 找到一个公式,能直接算出 π 的第 n 位十六进制数字,不必先把前面 n−1 位算出来——在那之前这被普遍认为不可能。所以"没有捷径"描述的是一个尚未找到反例的状态,而反例偶尔真的会冒出来。推论很实际:谁说某件事"只能硬跑",举证责任在他身上;而找捷径的努力,回报是跳跃式的,不是线性的。

EN Strip away measurement error entirely: discrete cells, exact rules, exact initial state. Rule 90 grows a Sierpiński triangle whose cell at row n, column k has a closed form (Pascal's triangle mod 2) — reducible. Rule 30, a few bits away, has no known shortcut: to know the millionth step you run a million steps. That is computational irreducibility, and Rule 110's Turing-completeness (Cook 2004) pushes general questions about such systems up to undecidability.

05分辨你撞的是哪一堵墙(Which Wall Are You Hitting)

两堵墙的补救措施几乎正好相反,所以诊断是全部。三个问题就够。

第一问:把测量精度提高一个数量级,预报期会变长吗?会 → 精度墙,那么买观测、买数据、买传感器是有回报的(回报只是加法级的,但确实有)。不会 → 别买了,那笔预算换个地方花。

第二问:把算力提高一个数量级,能看得更远吗?精度墙下:能,因为算力让你跑得起更大的集合、更细的网格。不可约墙下:算力只让你把同样的过程跑快一点——本来要一百万步,快十倍还是一百万步,只是花的时间少了。它压缩的是常数,不是墙。

第三问:我要的是轨迹、终态,还是统计量?这一问能一次废掉很多"预测不了"的哀叹,而且它对两堵墙同时有效:混沌系统的吸引子形状是稳的;不可约的元胞自动机,它的黑格子密度往往也是稳的、能估的。问题换一个问法,墙就可能不在路上了。

① 精度墙 · 测不准 ② 计算墙 · 没有捷径 更精的测量:有用(加法级) 更多算力:有用(跑更大集合) 再多等待:不解决问题 对策:集合预报 + 报区间    按倍增时间定重规划周期 更精的测量:没用(无测量误差) 更多算力:只压缩常数 逐步跑完:唯一的办法 对策:让「跑一步」更便宜    只走可回滚的那一步 共同出路:把问题从轨迹换成统计量
诊断决定处方。同一句「我们需要更好的预测」,在左边意味着买数据,在右边意味着别买数据。

还有一个组合情形要小心:现实里的系统常常两堵墙一起撞。经济、生态、组织都是既测不准又不可约的。这时候顺序是固定的——先问第三问(能不能换成统计量),再问第一问(值不值得买精度),最后才认第二堵墙。反过来做,你会先掏钱,再发现掏错了地方。

🎯 决策线

在任何"我们需要更好的预测"的会上,把这三问过一遍,并把结论写进文档:我们撞的是哪堵墙、因此不再投什么。少了最后半句,预测预算会永远沿着"买更多数据"这一条路加下去——而那条路只在第一堵墙前面有回报。

🌀 东方思想 · 佛典里的「置答」 《增支部》有一段把提问分成四类答法:可以直答的、须分解才能答的、要先反问对方的、以及应当搁置不答的。最后一类不是回避,是判定这个问题的形式本身有毛病。这一节做的是同一件事,但多了一样它没有的东西:判据。"不可知"在这里被拆成三种互不相同的东西——测不准、没有捷径、问错了对象——每一种指向一个不同的下一步。有分类而无判据,分类就只能靠权威来做;这也是为什么"这事儿说不清"在会议室里永远是位子最高的那个人说的。

EN Three questions separate the walls. Does an order of magnitude more measurement precision extend the horizon? Does an order of magnitude more compute? Am I asking for a trajectory, an end state, or a statistic? Under the precision wall, data and compute both pay (additively); under the computation wall, precision pays nothing and compute only shrinks a constant. Real systems often hit both, so ask the third question first.

06这套说法在哪儿不成立(Where This Breaks Down)

现在说反面。上面每一条都有它站不住的地方,用之前得知道。

第一,李雅普诺夫指数是个平均量,实际可预测性一天一变。"每一天半翻一倍"是沿轨迹长期平均出来的。真实大气里有些天气形势非常结实,误差长得慢,报十天都靠得住;有些形势一碰就散,三天就崩。业务预报里管这个叫流依赖的可预测性(flow-dependent predictability),而集合的离散度正是用来当场测它的。所以别把"两周"当成每天都成立的硬线,它是个量级上的天花板,不是日程表。

第二,模式误差和初值误差是两回事,而本期的框架只覆盖了后者。集合预报扰动的是初始状态;如果模式本身把物理写错了,五十个成员会一起错向同一边,而离散度看着还很小——你会得到一个自信而错误的概率。气候预测面对的主要就是这一类误差。它不是混沌问题,是结构性问题:加成员没用,得改模型。窄区间不等于可靠,这是集合预报最常被误读的一点。

第三,"计算不可约性"目前不是一条定理。Wolfram 把它挂在一个更大的猜想上(他称之为计算等价性原理,principle of computational equivalence):几乎所有非平凡的规则在计算能力上彼此等价。这个说法有大量案例支持,但它没有被证明。规则 110 的图灵完备性是严格结果,"因此任何具体问题都不可预测"却不是——图灵完备的系统里依然可以有大量具体问题是可判定的、甚至有闭式解。把"不可约"当成"所以算不出来"的通用挡箭牌,是本期最容易犯的错,也是复杂性科学被批评得最多的用法之一。

第四,也是最要紧的:这两堵墙都不为"所以别做决定"背书。可预测性的极限限制的是"说出未来某个具体状态",它不限制你去改变分布。你依然可以让坏的尾巴变薄、让恢复变快、让下注规模扛得住整条分布。放弃点预测不等于放弃干预——恰恰相反,把预测的野心收回来,干预的预算才腾得出来。

EN Four limits. Lyapunov exponents are long-run averages, so real-world predictability is flow-dependent and varies day to day. Ensembles perturb initial conditions and are blind to model error — a narrow spread is not reliability. Computational irreducibility is a conjecture resting on the principle of computational equivalence, not a theorem, and Turing-completeness does not make every specific question about a system unanswerable. And neither wall licenses fatalism: giving up point prediction is what frees the budget for changing the distribution.

🎒 场景 · BigCat

  1. 工程与系统设计故障处理中最反复出现的一句话是"大概多久能恢复"。你给一个时间点,然后一路顺延,每次顺延都比上一次更伤信任。换个交付物:给两个数加一个时刻——"乐观 20 分钟、悲观 2 小时,下次更新在 20 分钟后",并且把"下次更新"的间隔设成上一次估计误差翻倍所需的时间(前两次估计差得越远,间隔就该越短)。要停掉的那句话是"我再看看,大概 X 分钟"。事后统计一件事就够:你报的区间兜住了几成实际恢复时间。
  2. 修行与心性反复发生的情境是:给自己的功课定一个"到什么时候该有什么进展"的时间表,没到就判定方法无效、换一个方法。这里问错了对象——单日的状态是轨迹(今天坐得住不住,受睡眠、天气、一封邮件影响,问不出来),可测的是分布。把记录从"今天怎么样"改成"过去 30 天里,坐够时长的天数占几成",并且只在这个比例上做判断。停掉逐日自评:它测的是噪声,而且会让你根据噪声换方法——换方法这个动作本身,又把统计量清零重来。
  3. 育儿孩子出现一个你看不懂的变化时,第一反应通常是收集更多信息:问老师、问同学家长、翻手机。这是在默认自己撞的是精度墙。判据在动手之前就能用上:先写下"如果答案是 A 我下一步做什么,如果是 B 我做什么"——两个答案一样,就别收集了,那笔精力属于陪着跑完的那一边,不属于测量的那一边。真正值得买的信息只有一种:能改变你下一步的信息。

🌀 越界 · 跨学科的联想(Crossings)

深入思考(Going Deeper)

如果统计量可测而轨迹不可测,为什么"长期"反而常常更让人不安?

因为统计量可测有一个前提:产生这些数据的规则在这段时间里没变,吸引子的形状是稳的。气候变化恰恰是吸引子本身在动的情形,市场的结构也在动。这时"用历史统计估未来分布"这一招失效,而它正是本期给出的替代方案。判据很朴素:这段时间里,规则变了吗?变了的话,你手上的分布是过去那个系统的分布。

一个不可约的系统,能不能有可约的子问题?

能,而且这是最有实用价值的一类发现。整条轨迹算不出来,但某个守恒量、某个平均密度、某个"最终会不会灭绝"的判定,可能有闭式答案。规则 90 与规则 30 的差别提醒的正是这一点:可约性是问题的属性。所以比抱怨"整体不可预测"更值得做的事,是去找那些恰好可约的子问题。

集合预报能不能骗人?

能,方式很具体:如果扰动的方式选错了(只扰动了不重要的自由度),成员会挤在一起,给出一个假的高信心。所以离散度只有在扰动方案本身被检验过之后才有意义。看到很窄的区间时,第一个该问的不是"结论是什么",而是"这个区间是怎么生成的"。

「计算不可约」和「NP 困难」是同一件事吗?

不是,混起来会得出错的结论。NP 困难说的是求解代价随问题规模增长得多快,而且通常伴随着"答案容易验证"这个性质。不可约说的是即使规模固定,也没有比逐步执行更快的路径,而且答案往往容易验证——你没法在不跑完的情况下检查它对不对。两者可以同时成立,但不是同一堵墙,对应的补救也不同。

如果预测的野心必须收回来,那"预测能力"作为一种个人能力,还剩下什么?

剩下三样能训练的:判断一件事属于哪堵墙、把问题改写成可答的形式、以及给自己的区间做校准。这三样都可以被打分,也都会随练习变好。而"猜中具体结果"这项,在很多领域里练不出来——它的上限由系统定,不由你定。

延伸阅读(Further Reading)