非线性、自组织及其它(下):群体的力量

注:本系列文章遵守首页上的CC版权声明,转载请注明作者与出处,谢谢!

问大家一个很简单的问题:大家通常选择什么时候去饭堂吃饭?

通常来说,饭堂刚开门的时候人比较多,所以很多人都会稍微等一等,等到饭堂快关门人比较少的时候再去。可是,如果每个人都这样想的话,饭堂开门的时候就会一个人都没有,而快关门的时候就会有一大堆人涌过去。而如果大家又转念这么一想的话,情况又会倒过来,如此无穷无尽地循环。可是事实上,以上的两种极端情况都没有发生过,饭堂的人流量虽然有轻微波动但是还是相对平均的。这是为什么?

在这个饭堂的例子里边,可能有影响的因素比较多,比如说有人下课比较晚,有人不喜欢排队,有人爱吃热腾腾的饭菜,等等等等。那么,我们来看一个简化一点的例子。在一个小镇里边有一个小酒吧,镇里的人都喜欢晚上去喝一杯,顺便八卦一下小镇时事。但是这个小酒吧的确很小,能容纳的人数有限,如果所有想来喝两杯的人都来了的话酒吧就会异常拥挤。当然,没有人喜欢在太拥挤的酒吧里边喝酒。小酒吧老板也没有办法,买的地皮太小不能再扩建了。为了帮助大家决定来不来酒吧喝酒,老板每天都把昨天晚上来喝酒的人数写在镇里的公告栏,让每个人都能看得到。那么,一个自然的问题就是:如果你也是小镇居民中的一员,你会怎么决定今晚去不去喝一杯呢?

显然你不能知道今晚去的具体人数,你唯一能做的就是根据老板每天写出来的人数来估算今天晚上去的人数。估算方法是多种多样的。你可以多天取平均,或者取加权平均,甚至自己随便随机一个数出来。然后估算完毕之后,将得到的数据和酒吧容纳的人数作一个比较,如果你预计今晚去的人酒吧能容纳得下的话你就去,否则就不去。

同样,每个居民都会像你那样想,而每个人采取的估算方式可能会有很大的不同,比较极端的人甚至就会凭自己今天心情好不好来决定去不去。而大家的决定又影响了今晚酒吧的生意,进而影响明天的决定,然后就是明天晚上的生意,后天的决定,……如此重复,无穷无尽。晚上去酒吧的人数就通过这样的方式出现了自反馈。

初看起来,这样无序的管理似乎只能得到无序的结果,酒吧老板很可能今天门庭若市第二天一个人也没有。但是,经过计算机的模拟实验,我们发现尽管每天去酒吧的人数的确会有波动,但是它的长期平均值竟然越来越趋向于酒吧能容纳的人数,每天的波动也不会太极端,而且小镇人数越多效果越好。这就是自反馈的力量,它不需要明确地指示规则就可以达到想要的结果。

当然,这个例子其实也还不是很本质。你大可以说这本来就是一个方程,人数越多这个方程就越接近连续,那当然解就是一定的了。那么好,我们来看另一个例子:蚂蚁。

很多人小时候都喜欢看蚂蚁玩蚂蚁,那么大家应该会注意到,蚂蚁大队搬运食物的时候通常都是沿着一条最短的路径行走的。蚂蚁的视力根本没有可能看这么远,那么它们是怎么找到最短的路径的呢?美国物理学家费曼就曾经仔细地观察过这个过程。他发现,一开始第一只蚂蚁发现食物以后,回巢的路线并不是笔直的,而是歪歪斜斜的。后面接着的蚂蚁又不会完全按照前面的蚂蚁的路径走,有时候会误入歧途,但很多情况下反而会把原来的路修直。就这样,经过很多蚂蚁的不断调整之后,原来歪歪斜斜的路线就逐渐变得笔直起来了,就像我们不用尺子画直线一样,多画几次就变直了。那么,那些蚂蚁是怎么通过它们小小的神经系统做到这一点的呢?

蚂蚁在行走的时候会在路径上释放出信息素,而当找到食物的时候放出的信息素更有吸引力。蚂蚁行走的时候倾向于往信息素多的地方走(这里有一个自反馈的过程),但是偶尔也会犯错误。信息素在环境中会消散,所以越经常有蚂蚁往返的路径就会有越多蚂蚁去走,而越短的路径由于往返的时间短所以信息素浓度也会更高(这里是另一个自反馈的过程)。这样的话,蚂蚁就不断通过错误修正和自反馈的过程接近最优路径了。

这就是自反馈的威力。它可以把微小的优势放大,从而使蚂蚁这个整体自动在试错的过程中找到最好的路径,而不需要每个蚂蚁个体有复杂的行动规则。事实上,蚂蚁的这种觅食方式已经启发出了著名的蚁群算法。蚁群算法就是模拟蚂蚁的觅食方式和最优路径的搜寻方式来进行组合优化问题的解的搜索。蚁群算法模拟了遵循简单规律的个体(蚂蚁)在外环境(解空间)中寻找最优路径(最优解)的过程,而信息素则用在解空间中转移的概率类比。蚁群算法在很多组合优化问题中得到了很广泛的应用,最著名的一个例子就是旅行推销商问题(Travelling Salesman Problem,简称TSP)。尽管TSP问题是NP-完全的,在现在还没有找到得出最优解的多项式时间算法(科学界的主流意见是这种算法可能根本不存在),但蚁群算法可以在可以接受的时间内找出质量相当好的与最优解相差不大的解,所以蚁群算法是属于现在很受欢迎的近似算法之一,对其的研究也很热门。对于一个1992年提出的算法来说这实属不易。

类似的带有自反馈内容的近似算法还有和声搜索算法(Harmony Search)。和声搜索算法则是模拟人类合唱的时候找调子的过程。在合唱的时候,大家会先自己试着唱,然后根据集体的音调来调整自己的音调,最后达到所有人都一起唱同一个和音的结果。这里我们也看到了每个人音调的自反馈。和声搜索算法也是这样,先在解空间随机选择几个解向量作为初始值,然后根据这几个解向量用随机选取分量和生成分量的方法得到一个新的向量,最后,最差的向量会被舍去。如此循环往复更新向量库,最后和声搜索算法就能得到一个能接受的解。和声搜索算法是一个更新颖的算法,它的首次提出是在7年前的2001年,国内还没有这方面的报道,但是它已经在许多领域获得了不俗的成功,包括TPS、谱曲、解数独,还有一系列的实际问题。它的变种也是层出不穷。从这个算法我们也可以看出自反馈的力量。

跟自反馈密切相关的另一个现象就是自组织,也就是说一些个体按照一定的个体与个体之间的简单规律组合起来,最终在宏观上呈现出整体复杂规律的现象。在蚂蚁的例子中,蚂蚁正是通过个体与个体之间通过外界信息素的交流而在宏观上达到选取从巢到食物的最佳路径这一对于蚂蚁个体来说无法达到的目的的。而自组织的相关例子中,互联网恐怕是被人研究最多的。

互联网自从从CERN的工作网络演化为世界性的网络以来,就不断有科学家来研究它的结构,希望得到在互联网上行动的最好方法。长期以来科学家都是利用Erdos等提出的随机网络模型来研究互联网的结构的。这种随机网络有一个特征就是顶点的度符合泊松分布,只有几条边的点很少,而且几乎没有点可以链接很多边。但是,对互联网的实测表明,如果以网站为顶点的话,很多个人网站只有几个链接,而有些服务器可以有上百万的链接,这显然和随机网络的特点不一致。其实想一想就很容易明白这个道理。随机网络的边的建立是一瞬间完全随机地建立起来的,而互联网则是从CERN那个小小的工作网络逐渐扩张到现在的世界规模的。而在逐个结点添加的过程中,原本就比较多链接的网站就会更加受青睐,也会有更多的结点会添加向其的链接,而个人的小网站得不到什么关注的话可能永远就只能有几个链接了。就是这种链接的自反馈形成了互联网的这种“贫富分化”的现象。不单是互联网是这样,连普通人的交际网络也有这样的特点。这就给了公共卫生专家一个控制疫情的方法:当疫情发生时,重点对那些生活中会与很多人接触的人进行免疫。通过这样对图的“重量级结点”进行监控和免疫,疫情也会变得难于在人群中广泛传播。同样的道理也可以用到互联网上的病毒防治中。

我们甚至可以在生活中找到自组织的例子。厦门市民走上街头散步抗议某污染项目的上马就是一种市民通过社交网络自组织的现象。各种社交网站(比如说国外的facebook和国内的校内网)也都是通过社交网络自组织产生的结构。就更别说自然界食物链这种例子了。

其实生活中,非线性、自反馈、自组织都是无处不在的,它们对于我们对复杂世界的理解将会起到重要的作用。

文章链接:

非线性、自组织及其它(上):从化学振荡说开去
非线性、自组织及其它(中):远离平衡的结构
非线性、自组织及其它(下):群体的力量
非线性、自组织及其它(补):一点补充和说明
Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s