|
发表于 2009-5-6 00:53:08
|
显示全部楼层
刚写完了DynaCASTIM(DynaCHINA)用户指南的介绍部分,贴出来给感兴趣的网友参考。软件的测试版过段时间上传。
一、简 介
DynaCHINA(Dynamic Consistent Hybrid Information based on Network Assignment)是一套用于动态网络交通流分析和实时路况预测的软件系统。其英文名的“望文生义”解释为“动态中国”,表明该系统完全由中国人制造;名字组成中的各英文单词则具有相当专业的学术含义,下文逐一解说。期望仅通过对名字的详尽阐释,您就能对系统的技术原理有比较深入的了解并发掘可能的应用价值。
1. 动态 (Dynamic):系统的输入、输出、处理过程均是动态的。
最重要的输入包括动态OD矩阵,散布在路网中(未来可能还包括在天空里)的若干固定、移动检测器提供的随时间变化的流量、速度、行程时间等各类数据,交通信号控制器的配时参数,随时间、天气、光照等条件变化的典型路段的饱和流量,以及出行者知悉交通信息后如何选择出行时间、出行方式、出行路径的离散选择行为模型的参数等等。众所周知,准确的静态OD矩阵已属难得,更不必说动态OD矩阵了。没有准确的动态OD,相当多的实际交通仿真项目有“自欺欺人”之嫌(不同意的看官可以扔作者砖头)。要基于动态OD矩阵做路况预测,显然是十分经典的“垃圾进去、垃圾出来”。但请您赏一点时间继续读下去。经过笔者的大量仿真测试,发现有若干种动态OD流模式加载到同一个路网上均可产生完全相同的路况(速度、密度、流量),而交通预测关心的是道路交通状况却非动态OD流本身,起点(O)与终点(D)的定义甚至可以是为了处理问题的方便而纯粹人为的假定。对于具有明显早晚高峰特征的网络动态OD需求,一些OD估计和预测算法有可能获得相当接近真实值的结果,比如递推最小二乘法(RLS),在无任何历史OD数据并且交通不十分拥堵的情况下,只要路段检测器位置分布满足一定条件(实际中较易满足),其估计结果不受先验数据的影响,如可以将所有先验OD流量设为0,估计的动态OD矩阵具有唯一性且仿真输出可较好的拟合实际检测数据。但这种方法的缺陷在于只能利用检测的流量,而无法应用速度等其他众多形式的检测信息来推算动态OD。有一种叫作”SPSA”的随机优化算法能够克服这个缺陷,但由于离线计算量较大,其满意答案仍有些“千呼万唤死出来”的味道,尽管在同类优化算法中已经是鹤立鸡群了。对此,下文另有解说。
系统输出当然是各检测器位置和任意指定位置的速度、密度、流量,各路段考虑下游不同转弯方向时的行程时间,各条路径的行程时间等等。基本上,可以获得用户感兴趣的任何输出。基于动态OD流量(矩阵)和交通分配技术来估计和预测路况的优点之一显然是可以很自然的获得没有安装任何检测器的道路上的交通状况,这一点是数据驱动(统计、神经网络等智能信息处理技术)的模型与算法不能并驾的;优点之二则是动态OD需求相比实际的路况,受干扰而严重波动的程度要小得多;通常一起交通事故很少会改变OD需求,却可能对一些相关道路的交通状况有致命的影响,利用历史和实时检测的路况数据来预测路况的方法至今也未考虑预测信息本身就可以改变实际的路况,不能不说是一个遗憾。当然了,方法还是百家争鸣的好,智者见智。
处理过程当然也是动态的,更是相当复杂的。将动态OD需求加载到专门设计的中观交通仿真器上,借助道路交通流模型模拟车流在路网中的传播过程,可以得到任意想要的输出数据。动态OD矩阵的估计误差、车流传播过程中的误差、建模者对出行者信息响应行为理解的偏差,统统通过实际检测器获得的现场数据与相应仿真输出数据之间的偏差来做修正。学过自动控制原理的人自然会想到PID调节器,但这种方法对复杂的交通系统却不大管用,经典的连续平均算法(MSA)或者稍作改进的MSADR算法(尚不知中文的翻译是什么)在这里可以有用武之地。其中,复杂的交通需求建模技术(包括信息对交通需求的影响、随机动态OD矩阵波动的估计)用于估计和预测感兴趣的时间段内的动态OD流量和出行者个性特征分布情况(如时间价值观念、对出行路径的偏好、是否愿意花银子买道路通行权等等),这里就不再多谈,足够写篇网络小说了。而中观仿真器的目标是期望既能够体现出行者的个性特征(以便刻画交通信息对广大人民出行选择行为的影响),又能有较高的仿真效率和较小的标定难度(不像微观交通仿真器那样啰嗦,标定参数那样麻烦,对参数变化那样敏感),当然更要有可以接受的建模准确度。所以,麻省理工学院的大牛和小牛们对道路交通流模型是这样做的:一条道路的上游端点和下游端点速度必须要在仿真器中控制住、估计准,因为这两点也是跟其他相邻道路的接口,否则偏差一点则牵动整个路网;两点间其它位置处的车流速度则可以自由联想,例如依据两个端点的速度和该位置到端点的距离而做线性插值。DynaCHINA的中观模型有所不同,每一辆车的速度是根据其下游一段距离内的车流密度来计算的,有点像微观的跟车模型,不过其跟车“激励”是下游密度而不是速度差和距离差等。作者在DynaCHINA中也实现了麻省理工的模型,供客官自由选择。
2. 一致 (Consistent):系统的交通估计与现场检测数据要一致,更要紧的是实时路况预测与用户实际旅行体验要符合。
天气预报是越来越准了,难能可贵,因为据说一只蝴蝶扇动一下翅膀,就可以导致数千里外的一场风暴。由于混沌效应的存在,天气预报结果对初值高度敏感,但幸运的是明天是否刮风下雨跟今天的天气预报却无关系。然而不幸的是,实时路况预报却会改变未来的路况。如果相当多的出门者知道30分钟后某一条要经过的道路会堵车,并且其中相当一部分人选择绕行,结果是那条路30分钟后其实很畅通,因为有不少本要经过那条路的人选择了事先分流;30分钟后原先预报不堵的道路却被分流过去的车辆给堵住了。看一看,路况预报是多么的麻烦,因为需要去考虑有多少人会相信预报信息、会接受交通诱导系统的建议、会如何改变自己的出行路径;更有甚者,在出门前就知道未来路况的话,甚至会选择其它的交通工具或者干脆取消出行计划。麻省理工学院智能交通实验室的老大Moshe Ben-Akiva教授穷大半生的功力研究这个问题,他的著作“离散选择…”是该研究领域的学者必读之作。其早期搭档McFadden教授更是以在离散选择和计量经济学领域的卓越贡献而获得了2000年诺贝尔经济学奖。DynaCHINA的开发者在这个方向上只能学习,把麻省理工开发的类似系统DynaMIT中的相关模型照搬进了DynaCHINA中,尚处于半消化状态。
尽管尚未完全消化相关模型,但作者仍试图解释如何实现“一致性”的交通预测和诱导。在DynaCHINA生成实时路况预测信息后,不是立即发布给交通网络中的实际用户,而是先发布给交通仿真器里虚拟的用户使用,根据行为模型,模拟他们对预报的路况的响应行为,并评估未来的路网交通状况和虚拟用户在仿真器中的体验情况,如果不一致,通过一套算法修正预测的路况并不断迭代,直到仿真器中的虚拟用户“满意”为止。此时,才正式发布给实际路网中的用户使用。也就是说,真正发布的交通预测信息是有“先见之明”的,是在知道出门者对这些预测信息有何不同反应的基础上来制定的。听起来有点“玄”,但理论上至少说得通,实际中是否会挨用户的砖头完全取决于这些行为模型准确与否了。值得一提的是,为了保证系统能够进行“实时的”交通预测,也就是说为了预测未来1小时的路况,不能让计算机花两小时才能算出结果从而导致“黄花菜都凉了”,需要采用一套快速迭代修正算法,瑞士洛桑工学院一位博士开发的“逆向广义正切法(iGSM)”被用到了DynaCHINA中。一般来说,3次迭代后就可以发布预测信息给实际用户体验了。
3. 混合 (Hybrid):除了修饰下一个单词”information”外,还有其他相对独立的含义。
意指DynaCHINA采用了混合交通模型、混合仿真方法、混合优化技术,生成混合信息等,总之是一个“大杂烩”。优秀的“厨师”是否可以把“大杂烩”做成经典名肴,取决于对各种主料、辅料的合理搭配和对从生到熟整个物理化学反应过程的出神入化的控制。DynaCHINA的开发者远未达到这种“厨艺”,却一直是努力的方向。兹举几个例子阐释“混合”的含义。
微观的需求仿真模型,根据个体的社会经济属性模拟他们对交通信息的响应行为,例如不同的人往往会有不同的时间价值观念,从而决定他们是否愿意为收费道路买单。微观层次的需求仿真除了可以更有效的刻画对交通诱导信息的响应行为外,还可用于分析评估许多交通政策法规对交通网络性能的影响。中观交通模型用于刻画路段上的车流如何传播,这是一个明显的混合模型:车速由密度决定,像宏观流体模型;却跟踪每辆车的大致运动轨迹,像微观模型;其它还有容量和排队模型等等。这样做的一些原因已“隐藏”在前文中。混合仿真是指微观的需求仿真和中观的供给仿真(中观交通仿真)混在一起并有机的结合。混合优化技术中包括稀疏最小二乘算法、稀疏非负最小二乘算法、连续平均算法(MSA)和改进的连续平均算法(MSADR)、逆向广义正切法、平方根卡尔曼滤波、同时扰动随机近似(SPSA)、SPSA卡尔曼滤波等优化或者滤波技术等。作者完全采用C++语言实现这些算法,摆脱了对Matlab大哥的依赖。
4. 信息 (Information):当然是与出行相关的各种交通信息。加上“混合”的前缀就是指信息多种多样,交织在一起了。
例如,到达目的地的时间最短路径、预测的时间最短路径、包含交叉口最少的路径、左转弯最少路径、快速路所占比例最高路径,当然还有根据个人的社会经济特征和偏好的推荐最佳路径等。此外,也有各条道路上当前和未来一段时间内动态交通状况的具体描述等等。
5. 网络分配 (Network Assignment):两个单词放在一起解释了。DynaCHINA用于分析“网络”而不仅仅是单个或者少数几个路口的动态交通流特性;而且不太严格的说,是基于动态交通分配原理的系统。
当然了,DynaCHINA可以用来分析单个路口或者10几个路口组成的交通干线的动态交通流,特别有用的是可以根据部分路段的线圈检测器流量方便的反推出动态的OD需求来。这对于交通信号控制工程师更合理的调节信号机配时参数可能相当有用,能够可靠的评价各种固定配时、多时段固定配时甚至协调控制方案的性能。而在以前,准确的估计和预测干线动态OD需求是很难实现的任务,所以作者也不大相信微观仿真器能够针对不同的信号控制方案给出真正有效的评价结果来,除非认真的做过OD调查。
回到正题上来。之所以说DynaCHINA是不太严格的遵守动态交通分配原理。原因在于其优化准则不是DUO(动态用户最优),DSO(动态系统最优),只是近似于SUO(随机用户最优)。因为DynaCHINA采用了许多Logit模型(包括MNL, PS-Logit, C-Logit, Nested Logit)描述出行选择行为,类似于SUO中的随机网络加载模型,并且实现的是个体出行者出行费用的随机优化。显然,每个出行者对出行费用的理解是不同的,具有随机性,取决于其社会经济特性和个人偏好等因素。同时,OD间的可选路径是离线产生,在线周期性更新路径阻抗,不同于SUO的随机加载过程。这一点与DynaMIT相似,而类似的动态交通分配系统DynaSmart则更加严格的遵循动态交通分配原理。不过,作者的想法是贴近实际去分析问题,同时作为实时的系统,需要考虑计算效率。例如,DynaSmart中的时变最短路径计算就很费时间,用于交通规划可行,但用于实时交通流预测可能需作特殊设计才行。同时,时变的k短路径算法产生的不少路径往往太多重叠,未必比离线产生路径的方法好多少。
此外,如前文所述,采用网络分配技术的交通预测系统可以很自然的产生覆盖整个考察路网的动态交通流数据,即使是未安装任何检测器的路段。
终于写完了简介部分的初稿。原意是不想用严肃刻板的文字来做介绍,但啰嗦了一大堆,不知道把问题说清楚了多少。 |
|