闲话建模
在项目开发前期,通常需要提出一系列的模型,这些模型的作用是什么,应该如何评价这些模型?
简而言之,模型的目的是力求最简洁地对现实进行描述并解释清楚现实中的某些关系。我们对现实的认知中有太多无关紧要的细节,它们常常误导我们的工作,因此,我们需要模型去简化现实。
建模的本质是谨慎地做出适当的假设,对现实细节进行省略以实现一定程度的简化,从而可以有效地描述现实。一般的,我们在建模时考虑更多的是需要省略哪些细节,而不是哪些细节应该包含到模型中。这需要确定一个合适的简化水平,我们因此需要在通用性和稳健性之间做出一种折衷。一方面,我们不会需要一个包含所有现象的模型,而另一方面,只能解释很单一的一个问题的模型也没有太大的价值。
想象一下地图,我们可以将其视为某一地理区域的模型。同一城市会有许多种不同的地图,有些地图标出了城市内的旅游景点,有些地图标出了城市中各主要建筑、单位的名称和位置,而有些则标出了公交车和地铁路线,等等。你会发现没有一张地图是无所不包的,理由很显然,你不会去使用这样一张无法阅读的地图—它丧失了建模的价值,比如简洁。
这些地图提供了同一地理区域现状的不同模型,每一类地图都是通过省略地理区域上的许多细节从而达到一定程度的简化。一方面,使用地图的具体目的限制了其通用性,每一地图都只是为若干目标服务,没有一种地图可以完全代替其他的地图。而另一方面,需要保持一定的通用性,我们不可能为了标注1路公交车路线而绘制一张地图,为了标注2号公交车路线而又绘制另一张不同的地图。
我们应该如何评价这些不同的模型?一个基本的事实是:没有任何一种科学方法可以绝对的判断包含了公交车路线的地图一定比包含了旅游景点的地图要好。显然,这取决于你的目的,只有建模者的建模目标可以决定哪种模型更好。因此,对模型的评价首先要明确建模的目标,正是这些目标告诉我们应该如何简化现实,应该省略哪些细节。