高层与底层描述

3 minute read

这篇博文稍微谈谈建模中的高层与底层描述。这个话题在神书 GEB 中已经有所涉及(系统的复杂性),当然自己通过几年的力学建模也开始有相关的一些想法。本来以为《复杂》这本书能带来一个系统化体系,但结果也只是介绍了各个领域上类似的例子,并没有一个统一的理论,看来系统复杂性的研究还有一段路需要走。这里当然也仅限于自己的一些粗旷理解,算作泛科普吧。

电视看电视吗?

为引出讨论,让我们先来回答如下问题

电视看电视吗?

在给出答案之前,我们得先想想何为看电视。为简化问题,我们把声音去掉,那么看电视无非是看一系列连贯的图片。继续简化,貌似在很短时间内看很多连贯的图片有点困难,所以获得如下简化后的问题

电视看图片吗?

我们知道,就算是现在最高清的电视(源),也只是一个像素化之后的图像,比如 4K 电视就能展现用 4096 × 2160 以上个像素点的图片。这些图像被称作位图,比如摄像机拍摄的图片。很明显,总像素越高,所带来的细节就越多,图片也就越清晰。每个像素点可以用一个数字去描述该点的颜色,于是一张图片就能通过一个数学矩阵去描述。电脑或者电视就是通过这种对图片的低层描述进行图像的传播和展现。

可是每次你打开电视,你看的不是那 800 多万个像素点,而是这些像素点所代表的人脸、服饰、树木、花瓣。你关心的不是这些像素点的亮度与颜色的空间分布和时间演化,而是它们所代表的物体的空间分布和时间演化。每次我们谈论图片内容,我们不会说“从左上起水平第 238192 到第 348491 像素点、垂直第 12390 到第 90398 像素点好有意思”,而是说“这张人脸”好有意思,因为我们所谓的看图片,看的是图片的高层描述。

所以很可惜,(就目前而言,)就算是再“智能”的电视也不看电视。

从这个问题可以衍生出其他类似的有意思的问题,这里就不一一讨论了。比如很容易可以得到音响不听音乐的结论1,但如下问题可能需要一段时间的思考

交响乐团听交响乐吗?

力学中的高低层描述

大致对高低层描述有点感性的概念之后,这边稍微说说在力学中的一些高低层建模。通过「电视看不看电视」这个例子,我们对日常用语中所指的高低层可以定义如下

  • 高层:宏观描述;
  • 低层:微观描述。

需要添加的是,高低层是相对于两种描述之间的。B 可以是 A 的一种低层描述,那么同样可以有另外一个 C 是 B 的低层描述。在上述看电视的例子中,人与物是离散化后所有像素的高层描述。再往上一层,这些人与物所传递的故事、情感则是更高一层的描述了。电视看不了图片,当然更无法理解图片所蕴含的喜怒哀乐或国家兴衰。

在物理建模中,同样存在类似的嵌套的(可能还不一定是线性的)高低层描述。一个简化的建模层次高低顺序表现在下图。

我们如果想描述一个物体的运动,存在很多「运动学」理论

  • 我们可以选择描述组成这个物体所有微观原子的运动,然后去建立这些原子(应该说粒子)运动的方程,比如标准模型、量子力学啥的。这个层次再往左就是所谓的大统一理论,能够再从低层分割这些粒子(比如通过)。这个层次的理论通过微观上各个粒子之间的关系,帮助我们理解宏观上的各种力(重力、电磁力等)。
  • 或者站在宏观的角度,将物体描述为一个三维的连续体,物体的运动用一个三维位移矢量函数去描述,这就是连续介质力学。这个层次的描述是大多数工程师(也就是我)工作的层次,可以从中理论分析或者通过实验去测量物体任意点的应力和应变,而应力和应变之间的关系(本构关系)就刻画了组成这个物体的材料的宏观力学性能。
  • 在工程中,存在很多壳、梁结构。当物体一个方向(厚度方向)上的尺寸远小于其他两个方向上的尺寸时,它被称作为壳,比如说鸡蛋壳。当物体两个方向上的尺寸远小于另外一个方向(长度方向)上的尺寸时,它被称作梁或者杆,取决于它的受力方向。在力学建模中,我们可以选择简化那些相对尺寸较小的方向,用一个二维几何或者一个一维几何去刻画其运动,这就是壳梁理论。相对于三维理论,这些低维理论能够更好地从“高层次”告诉我们这些物体的运动。三维理论能够告诉我梁的端点截面上每个点的运动(下图右侧),但可能我并不关心这个截面上那么细节的运动(因为截面相对于梁的长度太小了),我只关心这个梁这个端点的平均宏观位移,如下图左边。参考「电视看不看电视」的例子,我可能并不关心每一个像素的颜色变化,而是这些像素代表的人物的变化。

一个系统的高低层描述可以互相转换。

  • 从高层走向低层,实际上是一个具现的过程。再回到「看电视」这个例子,导演的最终目的其实是想表示一种观点、情怀,于是他可以使用电视剧或电影的具体方式(也就是写剧本、设计对话、挑合适的演员),尝试带给观众他想要表现的东西。继续往下走,为了能够从技术上把电视剧、电影表现出来,必须通过计算机将图像、声音离散化,用底层的数字、矩阵对其进行再次具现。
  • 从低层走向高层,实际上是一个简化的过程。这个词同样可以翻译成「还原」,但我都不喜欢这两个翻译。可能更适合的词是「萃取」,因为我们要从低层更细节的描述中,提取一部分我们所需要的高层描述。通过对所有像素的分析,我们可以从中发现某像素团代表了某人某物某事,于是获得图片所描述的表层故事。再通过思考,获得表层图片背后所蕴含的含义。

高低层模型

介绍了某一系统的「高低层描述」之后,很容易就可以引入作用在系统上的「高低层模型」的概念。很简单,高(或者低)层模型就是一系列数学方程式,通过高(或者低)层描述的语言,来刻画系统的运动和演绎。

可以发现,使用建模方法预测一个系统高层次的运动,存在两种方法:

  1. 直接建立高层次模型,用高层次的语言来制约高层次描述的各种物理量,进而预测系统的变化;比如为了预测梁的位移,我们可以直接使用 Timoshenko 梁理论,通过力矩、转动惯量等刻画梁的高层次语言来计算出梁的运动情况。
  2. 或者先建立高层描述的一个低层具现化,然后通过建立低层模型进行求解。在上述例子中,我们可以用三维连续体来对梁建模,显性地将两个较小的维度也考虑进来,然后用最一般的连续介质力学方程预测梁的运动。这时我们算出的结果仍然使用梁的低层描述,所以需要通过「具现」的逆运算「简化」,获得我们感兴趣的梁的运动。

我们可以问,为什么存在高层模型的情况下有时候还需要去建立低层模型,反之亦然。下面给出一点我自己的看法。

  • 从高层模型走向低层模型,可以帮助我们从微观定义或者验证、加深和完善高层模型。数学中的集合论,就可以算作是数学体系的一个基础,从中可以衍生出其他所有理论。集合论的诞生充满着屈折,引发了一系列数学危机,也帮助我们更好地了解数学的本质。在集合论这个体系下,所有数学概念都具现成集合(比如函数),通过规范集合间的操作,保证数学本身的相容性。这就是数理逻辑的范畴,在低层研究所有数学理论,比如哥德尔定理。在力学中,各种各类的梁理论的有效性就需要通过低层次的三维连续体理论来验证,因为在很多情况下高层理论模型只是低层理论模型的一个近似简化。有时候高层模型甚至不能很好地预测系统高层描述下的运动。我的博士就通过建立一个稍微低层的裂纹模型(将高层的几何离散裂纹,通过一个低层的损伤连续函数来具现),最终来预测高层裂纹的扩散和运动。这个低层模型很方便地解决了高层裂纹模型很难模拟的裂纹分叉等理论问题。
  • 从低层模型走向高层模型(上图中那个问号),是为了帮助我们理解低层模型在高层描述下的含义,更好地获得感性的宏观动力学。通过研究三维连续体理论运用在特殊几何上的情况(比如梁、壳),推导出相应的梁壳理论(比如这个博士,我在某次研讨会上认识的),从理论的角度来区分梁壳结构与一般三维结构的特殊之处。「温度」也是一个高层的宏观概念,是微观粒子运动的一个简化。为了研究一个房间内温度场的变化,当然可以通过建立微观粒子振动模型,然后通过统计方法计算出温度场。这种方法当然可以实际地预测具体问题,可是并不能帮助我们对温度场在宏观上的演绎方程有任何理解,而且一般建立和求解微观模型也需要很多计算资源。所以更好的方法是研究低层模型在高层描述下的运用,直接简化找到运用高层语言(温度场,传导接触面、对流)书写的高层模型2。对于温度这个例子当然我不是这个方面的专家,具体可以看这个维基百科。在我博士这个例子下,我们的低层模型描述的是损伤场的变化,而不是宏观裂纹的运动。所以我这篇这篇文章就研究了这个低层的模型运用裂纹的高层语言之后的简化,结果发现我的模型重现了目前通用的裂纹模型,同时也加强了裂纹复杂空间分叉的预测能力。

最终引用下 Alain Connes 的一句话

Si on résout un problème sans le comprendre c’est pas intéressant !!

运用在这里就是说,就算你成功用一个低层模型能够求解出实际的一个高级层次的问题,如果它对于我们从理论上理解高层次问题没有帮助的话,那还是没什么意思的。

  1. 音乐进行频率采样之后同样可以变成一串数据。 

  2. 这就是困难的地方! 

Comments