如何应对复杂网络的高成本?
沙漠蚂蚁需要外出采集水分来源,但是在炙热的阳光下在沙漠中奔走本身也会耗费大量水分。冒着酷热搬回来一些含水的食物之后它们便能够从中摄取水分。蚁群会评估成本,它们会比较得失,如果外出的水分成本耗费太高,那么反馈机制将让它们放弃外出,将食物就留在地面上不去理会,直到空气中的湿度条件稍稍合适之后才会触发前往采集。
和这种做法相似,人类社会在计算机TCP数据传输协议中也能找到类似的做法:当缺乏足够带宽时,协议会阻止额外数据包的发送,因为如果带宽不足,你所发送的信息有可能会丢失,因此总一开始就不应当进行发送,除非可以确认其可以抵达目的地。
在过去的25年间,一个研究小组一直致力于了解蚂蚁网络的算法技术是否会随着时间或环境等条件的改变而发生相应的变化。他们对超过300个蚂蚁群落进行跟踪观察,并使用基因技术观察哪些蚁群最终能够产生最多的后代(发展的最成功)。
蚁群会在它们的蚁巢里储备食物作为一种生存策略。25年的研究结果显示,那些每到天气太热就会放弃外出转而在蚁巢里避暑的一群获得了更大的成功。因此规避便成了一种蚁群层面的最佳策略——那就是,在沙漠地区的蚁群中间,要想获得长期的生存,蚂蚁们的做法并不是去改变或优化它们的系统网络,而是选择在合适的时机外出而不额外浪费资源。
当面对食物匮乏等不利条件时,蚂蚁系统的解决方案精髓是最小化运行成本,而不是立即寻求加大食物的储备。这种做法对于任何一个体系而言都是最可以持续的方案——不管具体的对象是沙漠蚂蚁群落还是计算机网络中的数据包发送,即达成长期意义上的稳定性,并避免造成不必要的浪费。
大型和小型系统
但是如果系统的规模扩大之后,将会怎样?正如人类的计算机网络系统一样,蚂蚁群落系统也必须面对群落规模扩大之后的管理问题,这一系统必须可以接受局部的失效。
由于大规模系统必须允许出现一些偏差和错误,因此最佳的解决方案便是,让群体中每一个个体产生的贡献超过其自身对群体造成的损失以及抚养一个新生个体所要付出的成本。因此,在一个大规模系统中非常关键的一点便是冗余设计以及最小化信息量——在巨大的蚁群中,这种极高效率的选择是通过这样一种方式实现的,即大量的交流是通过两只互相陌生的蚂蚁个体之间简单的触须碰触实现的,非常迅速,没有额外的信息交流。
在工程领域我们同样在寻找方法确保产出的可靠性,随着网络规模的扩大,我们不断寻找有效率的,便宜的解决方案,而蚂蚁群落的做法给我们的启示是,有时候容忍某些不完美可能却恰恰是通往最佳解决方案的途径。
上一篇:乾隆墓神秘女尸为何尸身不腐