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