元胞自动机,第一次听到这名字感觉很高大上,然后查了下,这是一类模型,而不是具体的某个模型,具体的模型还得自己来,元胞自动机提供的只是一个方法的框架。
一、元胞自动机
下面的东西摘自维基百科:
细胞自动机,又称格状自动机、元胞自动机,是一种离散模型,在可算性理论、数学及理论生物学都有相关研究。它是由无限个有规律、坚硬的方格组成,每格均处于一种有限状态。整个格网可以是任何有限维的。同时也是离散的。每格于t时的态由 t-1时的一集有限格(这集叫那格的邻域)的态决定。 每一格的“邻居”都是已被固定的。(一格可以是自己的邻居。)每次演进时,每格均遵从同一规矩一齐演进。
就形式而言,细胞自动机有三个特征:
-
平行计算(parallel computation):每一个细胞个体都同时同步的改变
-
局部的(local):细胞的状态变化只受周遭细胞的影响。
-
一致性的(homogeneous):所有细胞均受同样的规则所支配
更多介绍可以直接查看维基百科“细胞自动机”页面,或者Wolfram的元胞自动机页面。
这次接触它主要是用来解决交通流问题。也就是这次2014年的数学建模美国赛A题。要求衡量右行规则的交通流量和安全性以及其他因素,那么首先就得把交通模拟出来。我查了下也有现成的交通模拟软件比如Vissim,但是对于数学建模来说显然不是这么解决问题的。那么最好的方法就是通过元胞自动机了。
二、NS模型
初等元胞自动机共有256种更新规则,我们可以利用规则184来模拟交通流。
车辆行驶规则为:黑色元胞表示被一辆车占据,白色表示无车,若前方格子有车,则停止。若前方为空,则前进一格。
如图:
1992年,德国学者Nagel和Schreckenberg在第184号规则的基础上提出了一维交通流CA模型,即,NS 模型(或NaSch模型)。
CA模型最基本的组成包括四个部分:元胞(cell )、元胞空间(lattice)、邻域(neighbor)及更新规则(rule)。
NS模型是一个随机CA交通流模型,每辆车的状态都由它的速度和位置所表示,其状态按照以下演化规则并行更新 :
NS模型的演化规则:
1)加速: 司机总是期望以最大的速度行驶
2)安全刹车: 为避免与前车碰撞
3)随机慢化(以随机慢化概率p):由于不确定因素
- a) 过度刹车
- b) 道路条件变化
- c) 心理因素
- d) 延迟加速
4)位置更新:车辆前进
在NS 模型的基础上,又陆续地提出了一系列一维CA交通模型,如TT、BJH、VDR、FI等模型。
三、多车道CA模型
然后,进一步的,在此基础上提出多车道CA模型,也就是解决此次美赛A题的交通流模拟的模型框架。
与单车道模型相比,多车道模型增加了换车道规则。
Nagel 等在单车道NS模型的基础上,又提出了多车道模型。在该模型中,在各条车道上行驶的车辆要遵守NS规则,在进行车道变换时还要满足车道变换规则(lane-changing rules)。
该模型的车道变换规则如下:
(1) 如果vmax>gap,且gapleft≥gap,则从右车道变换至左车道。
(2) 如果 vmax<gap-voffset,且 vmax<gapright-voffset,则从左车道变换至右车道。
(3) 如果vback<gapback (保证后车不会与本车发生碰撞),则在满足以上条件的情况下,车辆以概率Pchange,进行车道变换,并规定以下限制条件:
如果vright>gapleft,则vright=gapleft(禁止右车道的车辆超过左车道车辆)。
以上内容部分参考自《第6章_元胞自动机交通流模型》。
至于具体的模型,明天应该能出来,到时候再用Matlab实现。
本文章与我的个人博客文章《元胞自动机交通流模型》同步。
来源:oschina
链接:https://my.oschina.net/u/4284954/blog/4498395