為什麼會堵車 頻繁減速惹的禍!

2021-08-19 21:31:29 字數 2886 閱讀 7502

一條平直的公路上,為什麼會堵車?上世紀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)

Windows 7頻繁假死 都是特效惹的禍

windows 7頻繁假死 都是特效惹的禍 相信大家都遇到過windows7開機進入歡迎介面後會黑一下屏,然後1秒鐘後進入桌面就出現假死狀態 桌面半白 幾秒鐘後又恢復。開啟ie瀏覽器的時候 聊qq的時候 玩遊戲的時候 這到底是誰惹的禍呢?大家知道,windows 7桌面特效全部開啟會使系統效能降低,...

Scrum為什麼不喜歡「來自客戶的頻繁變更」?

scrum 是一種流行的敏捷開發模式,倡導團隊開發的理念,重視團隊的整體協作,團隊成員包括客戶方的代表,所以本文標題中的 客戶 並不是通常意義上的外部客戶,這有點像乙個集團公司中的不同子公司之間的關係,但這並不是說,可以容忍 來自客戶的頻繁變更 為什麼呢?下面的文字來自 scrum節外生枝 二 從m...

棋牌遊戲為什麼會這麼的「火」

現如今,棋牌遊戲 已經成為人們茶餘飯後的娛樂消遣方式之一,無論何時何地,你都能在路邊,小巷口或者是居民房內看到有人在打牌或者打麻將。這也就是為什麼街上到處都能看見棋牌室和麻將館了,這就是市場跟廣大群眾的需求。棋牌遊戲 已經漸漸成為人們生活娛樂必不可少的一部分。那麼這時,問題就出現了。不管是二人棋牌,...