为什么会堵车:频繁减速惹的祸!

为什么会堵车:频繁减速惹的祸!

为什么会堵车:频繁减速惹的祸!

最新推荐文章于 2021-07-23 22:29:23 发布

转载

最新推荐文章于 2021-07-23 22:29:23 发布

·

340 阅读

·

0

·

0

文章标签:

#堵车模型

本文通过Nagel-Schreckenberg交通流量模型探讨了公路上堵车的原因。该模型假设了环形公路、单车道等条件,并通过Python模拟了不同初速度及减速概率对堵车的影响。

一条平直的公路上,为什么会堵车?上世纪90年代美国科学家提出了Nagel Schreckenberg交通流量模型,这是一个使用了很多假设的简化模型,类似于自动元胞机。后来,该模型的扩展版本被应用于美国的实际道路交通, 并取得了较好的成果。

Nagel Schreckenberg交通流量模型的假设:

1、环形公路、单车道,无交通信号灯

2、道路长度为N,随机放置n辆车,每辆车按不同的速度形式

3、对于某一个时刻的每一辆车,速度为v,距离前车位置为d:

(1)如果v小于d, 则下一秒的速度增加为v+1,直到达到最高限速

(2)如果v大于或等于d, 则下一秒速度减为d-1

4、每辆车以概率P随机减速为v-1

下面用python模拟了这个过程:

1、不同初速度对堵车的影响:

图中,颜色比较深的地方说明发生了堵车。可以看出,在随机减速概率为0.3的情况下,无论初始速度多少,都会引起堵车。

2、不同减速概率的影响

可以看出,随着减速概率的增加,堵车会越来越重。不随机减速则不会堵车,当减速概率达0.8的时候,堵车已经非常严重了。

这说明啥问题呢?开车不要随便减速哦~

附代码:

import matplotlib as mpl

import matplotlib.pyplot as plt

import numpy as np

mpl.rcParams['font.sans-serif'] = [u'SimHei']

mpl.rcParams['axes.unicode_minus'] = False

np.random.seed(0)

def go(path=5000,n=100,v0=60,ltv=120,p=0.3,times=3000):

'''

path = 5000.0 # 道路长度

n = 100 # 车辆数目

v0 = 60 # 初始速度

ltv = 150 # 最大限速

p = 0.3 # 减速概率

times = 3000 # 模拟的时刻数目

'''

# x保存每辆车在道路上的位置,随机初始化

x = np.random.rand(n) * path

x.sort()

# v保存每辆车的速度,初速度相同

v = np.ones(n) * v0

plt.figure(figsize=(5,4),facecolor='w')

# 模拟每个时刻

for t in range(times):

plt.scatter(x, [t]*n, s=1, c='k',alpha=0.05)

# 模拟每辆车

for i in range(n):

# 计算当前车与前车的距离,注意是环形车道

if x[(i+1)%n] > x[i]:

d = x[(i+1)%n] - x[i]

else:

d = path - x[i] + x[(i+1)%n]

# 根据距离计算下一秒的速度

if v[i] < d:

if np.random.rand() > p:

v[i] += 1

else:

v[i] -= 1

else:

v[i] = d-1

# 对速度进行限制

v = v.clip(0,ltv)

# !!!一秒后,车辆的位置发生了变化

x += v

# 注意是环形车道

x = x % path

# 画图

plt.xlim(0,path)

plt.ylim(0,times)

plt.xlabel('车辆位置', fontsize=14)

plt.ylabel('模拟时间', fontsize=14)

plt.title('交通模拟(车道长度%d,车辆数%d,初速度%s,减速概率%s)' % (path,n,v0,p), fontsize=14)

#plt.tight_layout(pad=2)

plt.show()

if __name__ == '__main__':

go(v0=0)

go(v0=20)

go(v0=40)

go(v0=60)

go(p=0.0)

go(p=0.1)

go(p=0.3)

go(p=0.5)

go(p=0.8)

尊享推荐

365彩票网app安卓官方下载 韩昊霖在哪个学校上学成绩好吗?他和张若昀好像对比图
365怎么查看投注记录 中國古代第一美男潘安到底有多美?他最終為何被滅三族?
365怎么查看投注记录 推荐十款个人录音常用的声卡,帮你避坑“交学费”
365怎么查看投注记录 360一键root需要多久(360一键root还能用吗)