简介
本书是美国奥林工程学院Allen B. Downey教授以20世纪80年代兴起的复杂性科学这一领域的前沿研究成果为载体,在近十几年教学科研过程中积累而成的本书。本书内容主要分三部分:壹部分主要对复杂性科学概念、范式和科学模式,以及复杂工程和复杂性思维等方面进行了介绍;二部分主要从图论、小世界图、无标度网络、元胞自动机等方面对其经典算法及其实现进行了介绍;三部分主要从物理建模、自组织临界性、智能体模型、兽算法、进化和合作进化等方面进行了介绍和实现。通过阅读本书,你将更加深入地理解图、算法分析、无尺度网络与细胞自动机,使用Python这种强大的语言所提供的特性。作为Python编程与算法的理想教材,本书还有助于自学者掌握关于他们可能未曾谋面的主题与想法的宝贵经验。
作者介绍
艾伦·B.唐尼(Allen B.Downey),是欧林工程学院的计算机科学教授,曾任教于韦尔斯利学院、科尔比学院和加州大学伯克利分校。他是加州大学伯克利分校的计算机科学博士,并拥有MIT的硕士和学士学位。
部分摘录:
复杂性科学 复杂性科学是一门相对较新的科学。在20世纪80年代,这一领域开始为人所知,并被赋予这样一个名字。但它的新颖并不是因为它将科学的工具应用于一个新的学科,而是因为它使用不同的工具,便于不同种类的工作,最终改变了我们所说的“科学”。
为了阐述这种差异,我们将以一个经典科学的例子开始:假设有人问你为什么行星轨道是椭圆的。你可能会引用牛顿万有引力定律,并编写一个微分方程来描述行星的运行。然后,你可以解微分方程并证明所得行星轨道是椭圆的。证明完毕!
大多数人认为这种解释令人满意。它包括一个逻辑严谨的数学推导,并通过运用万有引力这一普遍原理来解释具体观测的椭圆轨道。
让我用另一种解释来对比一下。假设你来到像底特律这样一个种族隔离的城市,你想知道为什么会这样。如果你做一些研究,你可能会发现Thomas Schelling的一篇论文“Dynamic Model Segregation”,它提出了一个简单的种族隔离模型:
以下是我对Thomas Schelling提出的种族隔离模型的描述,来自本书第9章:
Schelling城市模型是一组单元格,每个单元格代表一座房子。房子由两类“智能体”所占据,分别标识为红色和蓝色,其数量大致相等,大约10%的房子是空的。
在任何时间点,一个智能体可能高兴或不高兴,这取决于邻近的智能体状态。在模型的一个版本中,如果至少有两个像自己一样的邻居,智能体就会感到高兴,如果只有一个或没有这样的邻居,就会感到沮丧。
模拟的过程通过随机选择一个智能体来运行,并检查它是否高兴。如果是高兴的,没有任何反应;如果不是,智能体随机选择一个未占用的单元格并移动。
如果你从一个完全未隔离的城市开始模拟,并在很短的时间内运行模型,类似的智能体就会聚集形成簇。随着时间的推移,簇会不断增长和合并,直到出现少量的大型社区,并且大多数智能体都生活在同质的社区中。
很明显,Schelling模型是高度抽象的,也就是说它是不现实的。我们很容易假设,你可能会说人比行星更复杂,但那是错的。至少仔细想想,行星其实与人一样复杂,特别是有人居住的行星。
这两个系统都很复杂,这两个模型都是简化而来的。例如,在行星运动模型中,我们考虑了行星和太阳之间的引力,而忽略了行星之间的相互作用。在Schelling的模型中,我们包括了基于局部信息的个人决策,忽略了其他方面的人类行为。
但万事皆有性质上的差异,对于行星运动来说,我们可以认为忽略的引力要小于考虑的引力,从而来支持这个模型。我们可以将模型扩展到包含其他交互作用,进而说明这种影响是很小的。对于Schelling的模型来说,很难证明这种简化是正确的。
另一个不同之处是Schelling的模型未使用到任何物理定律,它只使用简单的计算而非数学推导。诸如Schelling之类的模型与经典科学并不一样,很多人觉得它们不那么引人注目,至少一开始是这样。但是,我会尝试说明,这些模型做了有用的工作,包括预测、解释和设计。本书的目标之一就是解释如何做到这一点。