Shared posts

24 Oct 15:35

这不是堵车,这是通过汽车传导的冲击波!

by ccyou

(文/William Beaty)我住在美国的西雅图,每天上下班大约花45分钟(情况好的时候是这样;有时候单程都要2小时)。这给了我大量的时间观察去往来车辆的有趣模式。无聊使我把车流幻想成汩汩流水,而一辆辆的车则是巨大的水分子。很多个月过去了,我渐渐意识到这不是幻想。为什么我从来没有注意到明摆在那儿的“交通流体动力学”呢?就这么着,我开始用我的车去“刺探”车流——观察终究会走向试验,对吧?作为“业余交通动力学家”,能做的事情可多了。不过,先来看一些基本的现象。【编辑的话:“试探”拥堵路况,将在第二篇中发布。】

神秘的拥堵

你有没有遇到过这种情况,你在州级高速路上开着车,突然路就堵起来了,你一寸一寸往前挪,等着看前面出了什么事故,末了还骂上两句那些好从车里探出头来看热闹的人,正是这些家伙造成了堵车。但不一会儿你前面的车辆都飞速向前驶去。车不堵了,没有事故、没来警车,什么都没有。究竟发生了什么事情?啥都没有为什么会堵车?从后视镜里望去,你后面的那些倒霉司机还被困在那里。究竟是什么造成了这一神秘的拥堵呢?

在经历了多次这样的无形事故以后,我得出了下列结论。为了便于理解,不妨想象你正直升飞机上俯瞰整个车流。

图1:出事故以后,车辆在后面排成一列。

在(图1)中,我画了一条单行道,一起事故以及一长串堵在出事车辆后面的车。其他的车从左边开过来后也停下来等着。假设出事故的车(红色表示)只是临时停在那里,它有可能只是在冰上打了一下滑。当红色的车开走以后,会发生什么情况呢?

图2:车流渐渐在后面“聚集”起来

在上面的(图2A)中,障碍物被挪走了。但不是所有的车都能往前,因为大多数车都被困在停止的车后。(图2B)显示的是过了一会儿的路况,(图二C)则是再往后一会儿的。注意(图2A)中橙色的车,看看它是如何在平面中变得不堵,然后开始往前进的。与此同时,(图2A)中红色的车靠近过来,被淹没在堵住的车流里。

移动的拥堵波

事故车辆被移开以后,似乎没有理由会继续堵车。但实际上堵车还会继续。原因很简单:如果我停在一辆停着的车后面,那么我没有办法往前开,等在我后面的车也一样。所有被堵住的车都是这样一个情况。即使造成堵车的障碍物没有了,大家仍然处于静止的状态,因为如果要开车,就得所有车辆在同一时间一同启动。司机不会这么做,因为他们每个人都在等着前面的那辆车启动。如果我被堵在车流里,就算我想往前开,空间也不够,我会撞上前面的那辆车。其他人的想法也跟我一样,所以没有人会动。

当我面前那辆车开走时,我仍然不能瞬间加速,因此我会停上片刻。我必须留出一定的空闲。要是我突然加速,和前面的车就靠得太近,会很不安全。每辆车都会等一会儿再发动,这使得“堵车”从距离事故现场的那端开始,逐渐向下游扩散,直至消失不见。

从(图2A)开始看起,车辆依次脱离拥堵。(图2B)当中,拥堵波已经从事故现场移开,在(图2C)和(图2D)中已经离开很远了。但有意思的是:虽然车是从左往右开,但“蒸发波”的运动方向却是相反的,它从右向左(※此处已更正)逐渐扩散到车流里面。

还有一点很重要。虽然有些车还停着,但是还有更多的车在一辆一辆地在后面拥堵起来。就是移走了事故车辆的残骸,还是会有越来越多的车“聚集”到车流的后面。被堵住的车流就像一个固体,前端在不断蒸发,后端却在不断结晶。汽车是从左往右开的,但是观察静止不动的车辆的这个整体:静止在慢慢往上游挪动,与汽车运动的方向相反。事故没有了,却留下了一串运动的拥堵车流。这不是堵车,而是一个通过“汽车载体”传播的冲击波。它是血管里的交通血栓,不停游走的交通堵塞。

并不是出了事故才出现了拥堵波

这些运动的拥堵波在交通高峰时很常见。并不一定要有事故了才会出现,有时候只是很小的摩擦——超一下车、在施工现场合并车道,或者只是从匝道上开进来一辆车——都有可能形成这样的波。用交通工程学的行话说,这些都可以造成高速公路上的“事件”。你为了看热闹而把速度放慢一点,可能制造这样一个波。每次你为了从下一个出口离开高速公路减速并道时,也会制造这样的波。

有时,它们完全是凭空出现。像海风吹起的海浪,或是飘荡的旗帜上的波纹,就这么从穿行的交通中“冒出来”。这就是非线性动力学当中所谓的“自发现象”。

在事故现场清理以后,“拥堵波”还会持续多久?它的生命周期取决于车流量的大小和被困在拥堵里的车辆数量,但有时这些东西可以持续上很多个小时。当车流量较小的时候,拥堵可能一会儿就衰减不见了。但如果车流量一直很大,那么拥堵波根本就不会消失。此外,如果条件适当(“结晶”的速度比“蒸发”快),那么哪怕只是一个很小的波,也有可能越变越大。这有点像往一瓶过饱和溶液中滴一滴晶种。当车流量大且不怎么稳定时,一个司机就可能导致整个交通都冻结。

所以,下次你上下班遇到堵车时,把它想象成一股向你的汽车袭来并将其吞没的压力波。把堵车看成是一个简单的生物,由汽车而非分子构成。不要气馁,期待这条结晶变形虫过会儿就把你的车从它里面拉出去。

更正说明:“蒸发波”的运动方向是从右向左,而不是原文发布之初描述的“从左向右”。经读者 @冰火梦幻 指出后更正。特此说明。(2013-10-24,14:45)
 

编辑的话:在业余交通动力学家的下一篇中,作者将开着车,对静止的拥堵车流进行试验,得到第一手的拥堵波刺探数据!不过,这等行为有相当大的风险,请不要模仿。遵守交通规范,注意行车安全!
 


编译自:SmartMotorist.com,The Physics Behind Traffic Jams
文章小图:Shutterstock友情提供

相关的果壳网小组

你可能感兴趣

  1. 堵车?你自找的!
  2. 公路列车让司机们更加享受旅途
  3. MoD,改变未来的交通方式
  4. 自动驾驶汽车:能否驶过法律这道坎?
  5. 帕萨特+iPad=无人驾驶出租车
  6. 路修多了也堵车
  7. 疯狂的车子:它们居然可以上路
  8. 为什么车不多时也会堵?
  9. 你在不在疲劳驾驶?防瞌睡系统知道
  10. Superstreet:堵城的希望
  11. 胖子更容易在车祸中死亡
  12. 太阳能无人驾驶车,用三个月时间横跨欧亚大
24 Oct 15:25

分享 IT 类电子书(37本)

by 编程随想

★关于"IT类"电子书


  定期分享电子书一年多了,上传的电子书已经涵盖了几个不同的领域,但居然一直没有"IT类"的。实在对不起俺"编程随想"这个网名。
  主要是因为 IT 领域发展太快,发展太快意味着大多数书籍的生命周期变短。所以俺比较犹豫,到底要不要把那些短周期的书籍分享出来。
  经过考虑,决定只分享那些生命周期较长,不太容易过时的 IT 类电子书。一来可以降低工作量(俺比较懒),二来可以避免电子书清单过于冗长。
  另外,生命周期较长的书籍,通常也意味着更高的价值。这样的书籍也更加有分享的意义。



  按照惯例,上传的电子书都放到 "编程随想的收藏" 这个站点。

  要下载的话,请用鼠标猛击"电子书清单"(需翻墙)

★IT类 / 软件开发 / 软件工程


Frederick Brooks:《The Mythical Man-Month
(人月神话)
作者是IT领域的大牛,曾获图灵奖。
关于此书,俺的书评在"这里"。
此书最早出版于1975年,网盘上的是20周年纪念版(1995年版)。可见此书历久不衰。

Gang of Four:《Design Patterns——Elements of Reusable OO Software
(设计模式——可复用面向对象软件的基础)
"设计模式"俺就不用介绍了吧,不了解的同学先看维基百科。
此书是第一本关于"设计模式"的书,堪称奠基之作。
Gang of Four 分别是:Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

Martin Fowler & Kent Beck 等 :《Refactoring——Improving the Design of Existing Code
(重构——改善既有代码的质量)
此书有多位作者,头两个在软件工程领域名气很大(接触过敏捷开发的同学,应该听说过这俩)。
此书与前面那本《设计模式》,号称是软工领域双雄。

Steve McConnell:《Code Complete
(代码大全)
此书号称是"软件开发人员必备工具书"。
书中涵盖了编写代码的各种基本功(真的是非常基本)。
如果缺乏这些基本功,你就写不出像样的代码。

Tom Demarco & Timothy Lister:《Peopleware——Productive Projects and Teams
(人件)
Tom Demarco是编程界的元老,曾在70年代提出"结构化分析方法"。
此书偏重管理方面。书名想表达的意思是:软件开发过程中,不光要注重软件和硬件,还要注重"人件"。
非技术出身的软件公司高管,一定要看此书。

Tom Demarco:《The Deadline——A Novel about Project Management
(最后期限)
Tom Demarco是编程界的元老,曾在70年代提出"结构化分析方法"
此书很独特——以小说的形式,来介绍项目管理。

★IT类 / 软件开发 / 编程语言 / C++


Bjarne Stroustrup:《The C++ Programming Language
(C++程序设计语言)
作者是C++之父。光凭作者的角色,足以说明此书的份量。
在C++社区,此书简称 TCPPPL

Scott Meyers:《Effective C++——55 Specific Ways to Improve Your Programs and Designs
(Effective C++——改善程序与设计的55个具体做法)
作者是知名的C++写手,出版过好几本畅销的C++读物(包括"Effective"系列)。
此书列举了C++编程中的55个注意事项,可以帮新手避开各种陷阱。

Scott Meyers:《More Effective C++——35 New Ways to Improve Your Programs and Designs
(More Effective C++——35个改善编程与设计的有效方法)
作者是知名的C++写手,出版过好几本畅销的C++读物(包括"Effective"系列)。
此书是对《Effective C++》的补充,列举了35个注意事项。

Herb Sutter & Andrei Alexandrescu:《C++ Coding Standards——101 Rules, Guidelines, and Best Practices
(C++ 编程规范——101 条规则、准则与最佳实践)
两位作者都是C++社区的大牛。
Herb Sutter是C++标准委员会主席(光看头衔就知道有多牛了)。
Andrei Alexandrescu是C++领域的牛人,另一本名著《Modern C++ Design》的作者。
此书不局限于编码规范,还涉及其它几个方面(比如类设计、性能、等)

Nicolai Josuttis :《The C++ Standard Library——A Tutorial and Reference
(C++标准库——自修教程与参考手册)
作者是C++领域的牛人,另一本名著《C++ Templates——The Complete Guide》的作者。
此书对想要深入了解STL的同学很有帮助。
顺便说一下,此书中文版的译者是侯捷(能让侯捷出手翻译,必定是好书)

Stanley Lippman 等:《C++ Primer
第一作者Lippman是C++标准委员会成员,C++领域的牛人。
虽然书名叫"Primer",不过俺觉得此书内容覆盖面太广,更适合"进阶"而不是"入门"。

Stanley Lippman:《Inside the C++ Object Model
(深度探索C++对象模型)
作者是C++标准委员会成员,C++领域的牛人。
此书着重介绍底层(编译器层面)的运作机制,适合于进阶。
顺便说一下,此书中文版的译者是侯捷(能让侯捷出手翻译,必定是好书)

★IT类 / 软件开发 / 编程语言 / Python


Mark Pilgrim:《Dive into Python
(深入Python)
这大概是影响力最大的一本Python入门读物。
作者把该书以GPL方式发布,大伙儿可以任意复制此书。
缺点是出版的时间有点早,那时Python2刚发布没多久。
后来作者出了更新的版本《深入 Python3》。

Mark Pilgrim:《Dive into Python3
(深入Python3)
这是专门针对Python3的入门教程。
书中花了不少笔墨来介绍如何从Python2迁移到Python3。

Mark Lutz:《Learning Python
作为入门教程,此书已经出到第5版。
该版本是2013年新鲜出炉的,(从版本上)覆盖了Python2.7和Python3.3。

David Beazley:《Python Cookbook
此书的第3版也是2013年新鲜出炉的。
此书定位入门之后的"进阶",面向已经有一定经验的Python程序猿。

★IT类 / 软件开发 / 编程语言 / Java


Bruce Eckel:《Thinking in Java
(Java 编程思想)
作者是知名的IT专栏作家,出版过C++、Java、Python的"Thinking in"系列。
不同于很多庸俗的Java入门书仅仅介绍语法,此书还介绍Java更深层面的东西。

★IT类 / 软件开发 / 算法和数据结构


Thomas Cormen & Charles Leiserson & Ronald Rivest & Clifford Stein:《Introduction to Algorithms
(算法导论)
此书出自MIT,是最经典的算法类教材,被各国的很多大学采用。
俺上传的是最新的是第3版(另上传了教师手册)。

Jon Bentley:《Programming Pearls
(编程珠玑)
这又是名气很大的一本算法书,不亚于《算法导论》。
书中内容大都来自作者在《Communications of the ACM》杂志上的"Programming Pearls"专栏文章。
所以此书在内容组织上跟《算法导论》迥异,各个章节相对独立。

★IT类 / 软件开发 / 操作系统相关 / UNIX 和 Linux


Eric Raymond(埃里克·雷蒙德) :《The Art of UNIX Programming
(UNIX编程艺术)
作者是知名黑客,开源运动的旗手。
这是他的代表作,书名简称"TAOUP"。
此书重点不在"编程",而是介绍UNIX的哲学、设计思想、理念(俺觉得这些更重要,也更持久)。
他的另一个代表作是《五部曲》(俺也上传了)。

Richard Stevens(理查德·史蒂文斯) & Stephen Rago :《Advanced Programming in the UNIX Environment
(UNIX环境高级编程)
第一作者是UNIX领域和网络领域的大牛,著有多部畅销的技术书籍。
此书被誉为"UNIX编程的圣经"。
第2版是2005年出的,补充了一些新的技术。
今天时间仓促,过几天把中文版也放上来。

Kay Robbins & Steven Robbins:《UNIX Systems Programming——Communication, Cocurrency, and Threads
这本主要是讲UNIX环境下的并发编程和进程间通讯。

★IT类 / 软件开发 / 操作系统相关 / Windows


Jeffrey Richter:《Windows核心编程
(Programming Applications for Windows)
在Win32系统编程中,这可能是影响力最大的一本。
当年俺也是看这本书,从Win16编程转型到Win32编程。
今天时间仓促,过几天把中文版也放上来。

★IT类 / 软件开发 / 网络相关


Richard Stevens(理查德·史蒂文斯) :《UNIX Network Programming》(共两卷)
(UNIX网络编程)
作者是UNIX领域和网络领域的大牛,著有多部畅销的技术书籍。
今天时间仓促,先上传卷1。

Douglas Schmidt:《C++ Network Programming》 (共两卷)
(C++网络编程)
这两卷主要讲如何用ACE(Adaptive Communication Environment)进行网络编程。
ACE是一个很老牌的C++通讯库,既可以用来做主机间的网络通讯,也可以用于本机的IPC。
本书的作者也是ACE的主要开发者。

★IT类 / 软件开发 / (其它)


Andrew Hunt & David Thomas:《Pragmatic Programmers——From Journeyman to Master
(程序员修炼之道——从小工到专家)
如果一个新手程序员想要成长,强烈建议看此书。
此书不限于"编码"范畴,还涉及到其它几个方面。

★IT类 / 黑客文化


(考虑到"黑客"一词已经被严重误解,俺单独放一个目录介绍黑客文化。希望大伙儿搞清楚:"黑客"与"骇客"是有天壤之别的)

Paul Graham(保罗·格雷汉姆) :《Hackers and Painters
(黑客与画家)
作者是知名Lisp黑客,和Robert Morris(另一个牛黑客)共同创办了Viaweb(该公司被 Yahoo 高价收购,成为Yahoo Store)。
他成立的风投(Y Combinator)在硅谷很有影响力,资助了大批技术型创业公司。

Eric Raymond(埃里克·雷蒙德) :《五步曲
作者是知名黑客,开源运动的旗手。
这是他的代表作,分别是:《黑客简史》《大教堂与市集》、《如何成为一名黑客》、《开拓智域》、《魔法大锅炉》。
他的另一个代表作是《UNIX编程艺术》(俺也上传了)。

★IT类 / 信息安全 / 社会工程学


Kevin Mitnick(凯文·米特尼克) :《The Art of Deception——Controlling the Human Element of Security
(欺骗的艺术)
作者号称"头号黑帽黑客",其经历极具传奇色彩,比如15岁就侵入北美防空指挥系统。
此书是社会工程学领域最经典的著作(没有之一)。
没听说过"社会工程学"的同学,可以看俺博客的扫盲教程(在"这里")

★IT类 / 信息安全 / 密码学


Douglas Stinson:《Cryptography——Theory and Practice
(密码学原理与实践)
此书是密码学领域的经典教材。
第2版稍微有点老,目前最新的是第3版。
阅读此书需要一定的数学基础。

Bruce Schneier :《Applied Cryptography——Protocols, Algorithms, and Source Code in C
(应用密码学——协议、算法与C源程序)
这本也是经典的密码学著作,还是第4届Jolt大奖获奖图书。
此书附带大量源代码(光压缩包就5兆)
阅读此书需要一定的数学基础。

★IT类 / 操作系统 / UNIX 和 Linux


Maurice Bach :《The Design of the UNIX Operating System
(UNIX 操作系统设计)
作者长期在AT&T公司贝尔实验室(UNIX发源地)工作。
此书的内容主要来自作者在80年代讲授的一门课程
此书有助于了解UNIX内核的运作机制(进程调度、内存管理、文件系统、等等)。

Daniel Bovet & Marco Cesati :《Understanding the Linux Kernel
(深入理解 Linux 内核)
此书有助于了解Linux内核的运作机制(进程调度、内存管理、文件系统、等等)。
此书的第3版对应Linux内核2.6版本。

★IT类 / 网络 / 网络协议


Richard Stevens(理查德·史蒂文斯) :《TCP-IP Illustrated》 (共三卷)
(TCP-IP详解)
作者是UNIX领域和网络领域的大牛,著有多部畅销的技术书籍。
关于TCP-IP协议族的书籍中,这三卷大概是影响力最大的。
今天时间仓促,过几天把后面两卷也放上来。

★IT类 / IT 公司


吴军:《浪潮之巅
此书每一章介绍一家名垂IT史的公司,从中可以了解信息产业的发展史及其特色文化。
作者貌似在写第2版,还没写完。
等第2版完成,俺也上传到网盘。

李维:《Borland 传奇
此书介绍了 Borland 的传奇经历,也可以从此书一窥微软的发家史。
90后的程序员可能对Borland所知不多。但是俺这个年龄的程序员对Borland可是如雷贯耳。

★补充说明


如果你想找某本电子书,可以翻墙到俺博客留言,或者翻墙电子书清单留言。俺有的话,会分享到网盘。

俺博客上,和本文相关的帖子(需翻墙)
(2013年11月)分享政治类、IT类电子书(29本)

版权声明

本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者"编程随想"和本文原始地址。

学习翻墙

用国外邮箱发信给help_gfw@yahoo.com即可收到翻墙教程
如有其它问题,用program.think@gmail.com联系俺
21 Oct 15:05

央视曝光:垃圾短信屡禁不止 运营商主动配合

共同打造高质量的生活,欢迎收看《每周质量报告》。北京的一位手机用户从移动公司花高价购买了一个靓号,然而让他没有想到的是,在用了这个靓号一年左右的时间里,他的手机竟 然收到了大约6万条垃圾短信,平均每天将近200条,垃圾短信让他觉得非常苦恼又十分无奈。或许我们的手机收到的垃圾短信条数没有这么多,但是垃圾短信给 手机用户带来的困扰可能都是大同小异的。那么这些恼人垃圾短信到底是谁发的呢,来看我们记者的调查。


    


22 Sep 15:22

微信支付覆盖北京地铁自助售货机 开启1元购活动

使用微信支付完成线下消费正在成为一种新的购物体验。自9月12日至10月12日期间,北京地区用户在地铁站里的友宝自助售卖机上,采用微信支付作为购买方式,就可以1元钱买到售卖机上任意一瓶饮料。让产品更贴近用户的线下消费模式是微信支付目前首要解决的问题之一。通过和友宝售货机合作,微信支付将覆盖北京地区国贸、西直门、奥体中心等人流量较大的地铁站内300台自助售卖机。