提交 5ebd0b2a 编写于 作者: W wizardforcel

10

上级 8866b2f1
# 十、兽群、鸟群和交通堵塞
> 原文:[Chapter 10 Herds, Flocks, and Traffic Jams](http://greenteapress.com/complexity2/html/thinkcomplexity2011.html)
> 译者:[飞龙](https://github.com/wizardforcel)
> 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
> 自豪地采用[谷歌翻译](https://translate.google.cn/)
本章的代码位于`chap10.ipynb`中,它是本书仓库中的 Jupyter 笔记本。使用此代码的更多信息,请参见第?节。
## 10.1 交通堵塞
......@@ -110,7 +118,7 @@ class Driver:
在下一个时间步骤(右),两辆汽车会与已停车的汽车碰撞,我们可以看到最初形成的交通堵塞。 一旦堵塞形成,它就会持续下去,其它汽车从后面靠近并碰撞,而前面的汽车加速离开。
在某些情况下,堵塞本身会向后传播,如果你观看本章的笔记本中的动画,可以看到它。
在某些情况下,堵塞本身会向后传播,如果你观看本章的笔记本中的动画,可以看到它。
## 10.2 随机噪声
......@@ -130,11 +138,11 @@ class Driver:
即使有少量噪音,高速路的容量也会从 25 降至 20(“容量”是指可以达到并保持速度限制的最大车辆数量。 如果有 1% 的误差,容量会下降到 10。
作为本章结尾的练习之一,您将有机会设计出更好的驾驶员; 也就是说,您将在`choose_acceleration`中尝试不同的策略,并查看您是否可以找到可提高平均速度的驾驶行为。
作为本章结尾的练习之一,你将有机会设计出更好的驾驶员; 也就是说,你将在`choose_acceleration`中尝试不同的策略,并查看你是否可以找到可提高平均速度的驾驶行为。
## 10.3 Boids
1987 年,Craig Reynolds 发表了《兽群,鸟群和鱼群:分布式行为模型》(Flocks, herds and schools: A distributed behavioral model),描述了一个基于智能体的兽群行为模型。 可以从 <http://www.red3d.com/cwr/papers/1987/boids.html> 下载他的论文。
1987 年,Craig Reynolds 发表了《兽群,鸟群和鱼群:分布式行为模型》(Flocks, herds and schools: A distributed behavioral model),描述了一个基于智能体的兽群行为模型。 可以从 <http://www.red3d.com/cwr/papers/1987/boids.html> 下载他的论文。
这种模型中的智能体被称为“boids”,既是“bird-oid”的缩写,又是“bird”的口音发音(虽然 boids 也用于模拟鱼类和集中的陆生动物)。
......@@ -155,7 +163,7 @@ class Driver:
Boid 只根据局部信息做出决定;每个 boid 只能看到(或注意)其视野范围内的其他 boid。
在本书的仓库中,会发现`Boids7.py`,它包含我的 boids 实现,部分基于《Flake, The Computational Beauty of Nature》(雪花:自然的计算之美)中的描述。
在本书的仓库中,会发现`Boids7.py`,它包含我的 boids 实现,部分基于《Flake, The Computational Beauty of Nature》(雪花:自然的计算之美)中的描述。
该程序定义了两个类:`Boid`,实现了 boid 算法,和`World`,包含`Boid`列表和吸引`Boid`的“胡萝卜”列表。
......@@ -230,3 +238,46 @@ def move(self, mu=0.1):
许多参数影响鸟群行为,包括每个行为的范围,角度和权重以及可操作性`mu`
这些参数决定了 boids 形成和维持鸟群的能力,以及鸟群中运动和组织的模式。 对于某些设置,boids 类似于一群鸟;其他设置类似于鱼群或一片飞虫。
## 10.4 涌现和自由意志
作为一个整体,许多复杂的系统具有它们的组件不具有的属性:
+ 细胞自动机规则 30 是确定性的,控制其演化的规则是完全已知的。 尽管如此,它会生成一个序列,统计上与随机无法区分。
+ 谢林模型中的智能体不是种族主义者,但他们互动的结果就好像他们是。
+ 糖域中的智能体形成对角移动的波浪,尽管智能体不能。
+ 即使汽车正在向前行驶,交通堵塞会向后移动。
+ 兽群和鸟群的行为来自其成员之间的局部互动。
这些例子提出了一个途径,用于解决几个古老而富有挑战性的问题,包括意识和自由意志的问题。
自由意志是做出选择的能力,但是如果我们的身体和大脑受到确定性物理规律的支配,我们的选择就会是确定的。 自由意志的争论无数;我只会提到两个:
+ 威廉·詹姆斯(William James)提出了一个两阶段模型,其中可能的行为由随机过程产生,然后由确定性过程选择。 在这种情况下,我们的行为基本上是不可预测的,因为生成它们的过程包含随机元素。
+ 大卫休谟(David Hume)认为,我们对于做出选择的感知是一种幻觉;在这种情况下,我们的行为是确定性的,因为产生它们的系统是确定性的。
这些论点以相反的方式调解冲突,但他们同意冲突是存在的:如果这些部分是确定性的,那么系统就不会有自由意志。
本书中的复杂系统提出了另一种选择,在选择和决策层面的自由意志,相当于神经元层面的(或更低层次)的决定论。 就像汽车向前行驶时,交通堵塞后退的方式一样,即使神经元没有,人也可以有自由意志。
## 10.5 练习
练习 1
在交通堵塞的模拟中,定义一个类,`BetterDriver`,它继承`Driver`并覆盖`choose_acceleration`。 查看你是否可以定义一个驾驶规则,比`Driver`中的基本实现更好的。 你可能会尝试到达更高的平均速度,或者更少的碰撞。
练习 2
注意:为了做这个练习,你必须安装 VPython,一个用于 3D 显示和动画的库。 如果你使用 Anaconda(我在第?节中推荐过),你可以执行:
```
conda install -c vpython vpython
```
然后运行本书仓库中的`Boids7.py`。 阅读代码来查看,程序开始时定义的参数如何控制 boid 的行为。 试验不同的参数。 如果通过将权重设置为 0 来“关闭”其中一种行为,会发生什么?
为了生成更多类似鸟类的行为,Flake 建议增加第四种行为来保持清晰的视线;换句话说,如果在正前方有另一只鸟,那么它就应该从侧面移开。 你认为这个规则对鸟群的行为有什么影响? 实现它来看看。
练习 3
<http://en.wikipedia.org/wiki/Free_will> 上深入了解自由意志。 自由意志与决定论相容的观点被称为相容论。 相容论最大的挑战之一是“结果论证”(consequence argument)。 什么是结果论证? 根据你在本书中读到的内容,你对结果论证有什么样的反应?
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册