作者:禅与计算机程序设计艺术
1.简介
20世纪80年代末到90年代初期,随着计算机科学技术的飞速发展,系统结构变得越来越复杂,使得复杂系统的分析、设计和控制变得非常困难。即使是系统中的一个微小的子系统也可能出现故障,使得整个系统瘫痪。这一事件促使科学家们反思并提出了以下两个观点:
- 一、复杂系统不能简单地被建模;
- 二、复杂系统在运作时会产生许多微小但共同影响的因素,这些因素都需要被考虑到。
1987年,IBM工程师乔治.沃森(George Wolsey)曾经提出“不可预测性(Unpredictability)”假设,认为由于自然原因导致系统行为的不确定性,使得系统构建者必须能够容忍系统出现各种行为模式,因此可以从系统本身的行为中学习和发现规律,以便正确理解和控制系统。但是沃森后来发现,这种“可预测性”理论并不能完全解释系统的行为,因为复杂系统不仅表现出高度的不确定性,而且还会由许多微小的错误或局部失误导致整体失效。
1995年,美国计算机科学教授罗伯特.库恩(Ruth C. Kernighan)为解决这个问题提出了著名的“复杂性科学”(Complexity Science)理论。他指出,复杂系统的行为模式通常不是由一个集体意志所决定,而是由许多不同个体因素共同作用、