【转】简单规则如何在复杂系统里发挥作用

现代复杂系统理论不断得到超出我们直觉和常识的结论,下面介绍一个简单明了的复杂系统行为模式超出直觉和常识的例子。


一、现象


我们都知道一个现象:蚁群各个蚂蚁在没有事先告诉他们食物在什么地方的前提下开始寻找食物。当一只找到食物以后,它会向环境释放一种信息素,吸引其他的蚂蚁过来,这样越来越多的蚂蚁会找到食物。有些蚂蚁并没有象其它蚂蚁一样总重复同样的路,他们会另辟蹊径,如果他们开辟的道路比原来的其他道路更短,那么,渐渐,更多的蚂蚁被吸引到这条较短的路上来。最后,经过一段时间运行,可能会出现一条最短的路径被大多数蚂蚁重复着。

二、问题

为什么蚂蚁能够找到食物?他们显然没有智能,那么他们找到食物的算法是什么呢?行为模式或行为规则是什么呢?
如果让一个程序员来设计这个搜索食物的算法,一般会做如下考虑:
首先,要让蚂蚁能够避开障碍物。所以必须根据适当的地形给蚂蚁编进指令让他们识别障碍物,判断是否能够穿越,不行就得寻找其他路径避开障碍物;
其次,要让蚂蚁找到食物,就需要给他们遍历空间上的所有点的指令;
再次,如果要让蚂蚁找到最短的路径,那么需要计算所有可能的路径并且比较它们的大小,并进行优化算法。
有编程常识的人大概知道当蚂蚁数量超过一个数(例如几万),蚂蚁与食物距离超过一个数(例如几百个单位距离),这个程序就复杂到不可能完成了,因为目前还没有没有这么大的内存的计算机来处理这些海量计算量。
如果你这么想,那你太笨了,比蚂蚁还笨。

三、蚂蚁行为的规则极为简单


实际上蚂蚁寻食程序每个蚂蚁的核心程序编码不过100多行。为什么这么简单的程序会让蚂蚁干这样复杂的事情?答案是:简单规则导致群体行为的叠加,导致出现复杂系统状态突变(涌现)。
实际上每只蚂蚁并不像我们想象的需要知道整个世界的信息,他们其实只关心很小范围内的眼前信息,而且根据这些局部信息利用几条简单的规则进行决策,这样,在蚁群这个集体里,复杂性的行为就会凸现出来。这就是复杂系统解释的规律。

1、范围:
假设蚂蚁观察到的范围是一个方格世界,蚂蚁有一个参数为速度半径VR(一般是3),那么它能观察到的范围就是VR*VR个方格世界,并且能移动的距离也在这个范围之内。

2、环境:
蚂蚁所在的环境有障碍物,有别的蚂蚁,还有信息素,信息素有两种,一种是找到食物的蚂蚁洒下的食物信息素,一种是找到窝的蚂蚁洒下的窝的信息素。每个蚂蚁都仅仅能感知它范围内的环境信息。环境以一定的速率让信息素消失。

3、觅食规则:

(1)、每只蚂蚁在能感知的范围内寻找是否有食物,如果有就直接过去;

(2)、否则就看是否有信息素,并且比较在能感知的范围内哪一点的信息素最多,这样,它就朝信息素多的地方走;

(3)、每只蚂蚁都会以小概率犯错误,从而并不是往信息素最多的点移动。
蚂蚁找窝的规则和上面一样,只不过它对窝的信息素做出反应,而对食物信息素没反应。


4、移动规则:

(1)、每只蚂蚁都朝向信息素最多的方向移;

(2)、当周围没有信息素指引的时候,蚂蚁会按照自己原来运动的方向惯性的运动下去;

(3)、每只蚂蚁在运动的方向有存在一个随机的小的扰动;

(4)、为了防止蚂蚁原地转圈,每只蚂蚁都会记住最近刚走过了哪些点,如果发现要走的下一点已经在最近走过了,它就会尽量避开。\


5、避障规则:


(1)、如果蚂蚁要移动的方向有障碍物挡住,它会随机的选择另一个方向;

(2)、如果在障碍附近有信息素指引的话,它会按照觅食的规则行为。


6、播撒信息素规则:
每只蚂蚁在刚找到食物或者窝的时候撒发的信息素最多,并随着它走远的距离,播撒的信息素越来越少。
根据上述这几条规则,蚂蚁之间并没有直接的关系,但是每只蚂蚁都和环境发生交互,通过信息素这个纽带,各个蚂蚁之间实现关联,成为一个复杂系统,并发生群体行为,例如当一只蚂蚁找到了食物,它并没有直接告诉其它蚂蚁这儿有食物,而是向环境播撒信息素,当其它的蚂蚁经过它附近的时候,就会感觉到信息素的存在,进而根据信息素的指引找到了食物。

四、算法——蚂蚁究竟是怎么找到食物的呢?


在没有蚂蚁找到食物的时候,环境没有有用的信息素,那么蚂蚁为什么会相对有效的找到食物呢?这要归功于蚂蚁的移动规则,尤其是在没有信息素时候的移动规则。
首先,蚂蚁能尽量保持行动惯性,这样使得蚂蚁尽量向前方移动(开始,这个前方是随机固定的一个方向),而不是原地无谓的打转或者震动;
其次,蚂蚁行为有一定的随机性,虽然有了固定的方向,但它也不能像粒子一样直线运动下去,而是有一个随机的干扰。这样就使得蚂蚁运动起来具有了一定的目的性,尽量保持原来的方向,但又有新的试探,尤其当碰到障碍物的时候它会立即改变方向,这就是一种选择的过程,也就是环境的障碍物让蚂蚁的某个方向正确,而其他方向则不对。这就解释了为什么单个蚂蚁在复杂的诸如迷宫的地图中仍然能找到隐蔽得很好的食物。
当有一只蚂蚁找到了食物的时候,其他蚂蚁会沿着信息素很快找到食物。
蚂蚁如何找到最短路径的?这一是要归功于信息素,另外要归功于环境,具体说是计算机时钟。信息素多的地方显然经过这里的蚂蚁会多,因而会有更多的蚂蚁聚集过来。假设有两条路从窝通向食物,开始的时候,走这两条路的蚂蚁数量同样多(或者较长的路上蚂蚁多,这也无关紧要)。当蚂蚁沿着一条路到达终点以后会马上返回来,这样,短的路蚂蚁来回一次的时间就短,这也意味着重复的频率就快,因而在单位时间里走过的蚂蚁数目就多,洒下的信息素自然也会多,自然会有更多的蚂蚁被吸引过来,从而洒下更多的信息素……;而长的路正相反,因此,越来越多地蚂蚁聚集到较短的路径上来,最短的路径就近似找到了。
也许有人会问蚂蚁群体行为是局部最短路径还是全局最短路径,实际上蚂蚁群体是逐渐接近全局最短路径的。因为源于蚂蚁会犯错误,也就是它会按照一定的概率不往信息素高的地方走而另辟蹊径,这可以理解为一种创新,这种创新如果能缩短路途,那么根据刚才叙述的原理,更多的蚂蚁会被吸引过来。
实验也发现,从a出发到b有两条路,左边的较长,右边的较短,开始的时候蚂蚁选择两条路的机会是均等的,当时间流逝以后,更多的蚂蚁聚集到右边的较短的路上来。

五、感悟

通过上面的原理叙述和实际操作,我们发现蚂蚁之所以具有智能行为,完全归功于它的简单行为规则,而这些规则综合起来具有下面两个方面的特点:

1、多样性

多样性保证了蚂蚁在觅食的时候不置走进死胡同而无限循环。

2、正反馈

正反馈机制则保证了相对优良的信息能够被保存下来。

我们可以把多样性看成是一种创造能力,而正反馈是一种学习强化能力。正反馈的力量也可以比喻成权威的意见,而多样性是打破权威体现的创造性,正是这两点结合才使得蚂蚁的智能行为涌现出来。
引申来讲,大自然的进化,社会的进步、人类的创新实际上都离不开这两样东西,多样性保证了系统的创新能力,正反馈保证了优良特性能够得到强化,两者要恰到好处的结合。如果多样性过剩,也就是系统过于活跃,这相当于蚂蚁会过多的随机运动,它就会陷入混沌状态;而相反,多样性不够正反馈机制过强,那么系统就好比一潭死水。这在蚁群中来讲就表现为,蚂蚁的行为过于僵硬,当环境变化了,蚂蚁群仍然不能适当的调整。


既然复杂性、智能行为是根据底层规则涌现的,既然底层规则具有多样性和正反馈特点,那么也许你会问这些规则是哪里来的?多样性和正反馈又是哪里来的?
目前复杂系统理论认为:规则来源于大自然的进化。而大自然的进化根据刚才讲的也体现为多样性和正反馈的结合。而这样的结合又是为什么呢?为什么在你眼前呈现的世界是如此栩栩如生呢?答案在于环境造就了这一切,之所以你看到栩栩如生的世界,是因为那些不能够适应环境的多样性与正反馈的结合都已经死掉了,被环境淘汰了。

最近更新的专栏

全部专栏