• 沒有找到結果。

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

日本道路交通法 [3]

第二十条車両は、車両通行帯の設けられた道路においては、道路の左側端 から数えて一番目の車両通行帯を通行しなければならない。ただし、自動 車(小型特殊自動車及び道路標識等によつて指定された自動車を除く。)

は、当該道路の左側部分(当該道路が一方通行となつているときは、当該 道路)に三以上の車両通行帯が設けられているときは、政令で定めるとこ ろにより、その速度に応じ、その最も右側の車両通行帯以外の車両通行帯 を通行することができる。(車輛應靠左行駛)

第二十八条車両は、他の車両を追い越そうとするときは、その追い越され ようとする車両(以下この節において「前車」という。)の右側を通行し なければならない。(超車應從右側)

我們在此須強調,歐盟國家及英國對於所謂「超車」的定義係指:車輛以相對 較快的速率經過另一車道車輛的行為,而並不限於超車前後兩車是否處於同一車 道。如此即可避免以絕對速率來判斷是否可占用左側車道(或中間車道)所造成 的爭議,且確保非對稱模型的運作,雖然本論文討論的非對稱模型所涉及的超車 行為較此種法規鬆散。

5.4 展望

細胞自動機模型提供具彈性的交通微觀模擬方式,例如我們可藉車道的擴充與 變換車道的條件等來設計各類型的管理交通模式。本論文討論的非對稱多車道模 型顯示出最大之交通效益,惟其尚不能完全重製嚴禁右側超車之行為,因此如何 將之修改使之更符合現實應可作為未來研究的課題之一。

鑑於交通微觀模擬的重要性,我們將擴充本論文所開發的程式碼,使之能藉不 同參數及改變各車道功能以廣泛應用於各式交通模型。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

附錄 A

模型變換車道條件程式碼

對稱模型

/* speed_of_car 為 記 錄 車 道 上 車 輛 速 率 之 陣 列 。 */

/* type_of_car 為 記 錄 車 道 上 車 輛 型 式 之 陣 列 。 */

/* direction_of_car 為 記 錄 車 道 上 車 輛 變 換 車 道 方 向 之 陣 列 。 */

/* 變 換 車 道 條 件 */

/* 右 至 左 */

/* lane_token 表 車 輛 所 處 之 車 道 ,lane_token+1 表 其 左 側 之 相 鄰 車 道 。 */

if(lane_token+1<num_of_lanes

&& std::min(speed_of_car[L*lane_token+i]+1,

Vmax[type_of_car[L*lane_token+i]])>pos_diff_current_front-1

&& pos_diff_left_front>pos_diff_current_front

&& speed_of_car[L*(lane_token+1)+i]<0

&& pos_diff_left_behind-1>=Vmax[0]){

left_token=1;

}

/* 左 至 右 */

/* lane_token 表 車 輛 所 處 之 車 道 ,lane_token-1 表 其 右 側 之 相 鄰 車 道 。 */

if(lane_token-1>=0

&& std::min(speed_of_car[L*lane_token+i]+1,

Vmax[type_of_car[L*lane_token+i]])>pos_diff_current_front-1

&& pos_diff_right_front>pos_diff_current_front

&& speed_of_car[L*(lane_token-1)+i]<0

&& pos_diff_right_behind-1>=Vmax[0]){

if(left_token==1 && right_token==1){

/* 若 相 鄰 左 側 車 道 之 前 車 間 距 較 右 側 大 , 則 變 換 至 左 側 。 */

if(pos_diff_left_front>pos_diff_right_front){

if((double) rand() / (RAND_MAX+1.0) < pc) direction_of_car[L*lane_token+i]=1;

}

/* 若 相 鄰 右 側 車 道 之 前 車 間 距 較 左 側 大 , 則 變 換 至 右 側 。 */

else if(pos_diff_left_front<pos_diff_right_front){

if((double) rand() / (RAND_MAX+1.0) < pc) direction_of_car[L*lane_token+i]=2;

}

/* 若 相 鄰 左 側 與 右 側 車 道 之 前 車 間 距 相 等 , 則 以 機 率 決 定 。 */

else if(pos_diff_left_front=pos_diff_right_front){

if((double) rand() / (RAND_MAX+1.0) < 0.5){

if((double) rand() / (RAND_MAX+1.0) < pc) direction_of_car[L*lane_token+i]=1;

} else{

if((double) rand() / (RAND_MAX+1.0) < pc) direction_of_car[L*lane_token+i]=2;

} } }

/* 僅 滿 足 右 至 左 之 條 件 */

else if(left_token==1){

if((double) rand() / (RAND_MAX+1.0) < pc) direction_of_car[L*lane_token+i]=1;

}

/* 僅 滿 足 左 至 右 之 條 件 */

else if(right_token==1){

if((double) rand() / (RAND_MAX+1.0) < pc)

for(int lane_token=0; lane_token<num_of_lanes-2; lane_token++){

for(int i = 0; i < L; i++){

if(direction_of_car[L*lane_token+i]==1

&& direction_of_car[L*(lane_token+2)+i]==2){

direction_of_car[L*lane_token+i]=0;

for(int lane_token=0; lane_token<num_of_lanes; lane_token++){

for(int i=0; i<L; i++){

/* 右 至 左 */

if(lane_token+1<num_of_lanes && direction_of_car[L*lane_token+i]==1){

std::swap(speed_of_car[L*lane_token+i],

else if(lane_token-1>=0 && direction_of_car[L*lane_token+i]==2){

std::swap(speed_of_car[L*lane_token+i],

&& (std::min(speed_of_car[L*lane_token+i]+1,

Vmax[type_of_car[L*lane_token+i]])>pos_diff_current_front-1

|| (type_of_car[L*lane_token+i]==0

&& type_of_car[L*lane_token+(i+pos_diff_current_front)%L]==1

&& Vmax[0]>pos_diff_current_front-1))

&&(pos_diff_left_front>pos_diff_current_front)

&&(speed_of_car[L*(lane_token+1)+i]<0)

&&(pos_diff_left_behind-1>=Vmax[0])){

if((double) rand() / (RAND_MAX+1.0) < pc) direction_of_car[L*lane_token+i]=1;

}

/* 左 至 右 */

/* lane_token 表 車 輛 所 處 之 車 道 ,lane_token-1 表 其 右 側 之 相 鄰 車 道 。 */

else if(lane_token-1>=0

&& (pos_diff_right_front-1>=speed_of_car[L*lane_token+i])

&& (speed_of_car[L*(lane_token-1)+i]<0)

&& (pos_diff_right_behind-1>=Vmax[0])

&& (type_of_car[L*lane_token+i]==1

|| (type_of_car[L*lane_token+i]==0

&& !(type_of_car[L*(lane_token-1)+(i+pos_diff_right_front)%L]==1

&& Vmax[0]>pos_diff_right_front-1)))){

if((double) rand() / (RAND_MAX+1.0) < pc) direction_of_car[L*lane_token+i]=2;

}

/* 避 免 側 向 碰 撞 */

for(int lane_token=0; lane_token<num_of_lanes-2; lane_token++){

for(int i = 0; i < L; i++){

if(direction_of_car[L*lane_token+i]==1

&& direction_of_car[L*(lane_token+2)+i]==2){

for(int lane_token=0; lane_token<num_of_lanes; lane_token++){

for(int i=0; i<L; i++){

/* 右 至 左 */

if(lane_token+1<num_of_lanes && direction_of_car[L*lane_token+i]==1){

std::swap(speed_of_car[L*lane_token+i],

else if(lane_token-1>=0 && direction_of_car[L*lane_token+i]==2){

std::swap(speed_of_car[L*lane_token+i],

&& (std::min(speed_of_car[L*lane_token+i]+1,

Vmax[type_of_car[L*lane_token+i]])>pos_diff_current_front-1

|| (type_of_car[L*lane_token+i]==0

&& type_of_car[L*lane_token+(i+pos_diff_current_front)%L]==1

&& Vmax[0]>pos_diff_current_front-1))

&&(pos_diff_left_front>pos_diff_current_front)

&&(speed_of_car[L*(lane_token+1)+i]<0)

&&(pos_diff_left_behind-1>=Vmax[0])){

if((double) rand() / (RAND_MAX+1.0) < pc) direction_of_car[L*lane_token+i]=1;

}

/* 左 至 右 */

/* lane_token 表 車 輛 所 處 之 車 道 ,lane_token-1 表 其 右 側 之 相 鄰 車 道 。 */

else if(lane_token-1>=0

&& (pos_diff_right_front-1>=speed_of_car[L*lane_token+i])

&& (speed_of_car[L*(lane_token-1)+i]<0)

&& (pos_diff_right_behind-1>=Vmax[0])

&& (type_of_car[L*lane_token+i]==1

|| (type_of_car[L*lane_token+i]==0

&& !(type_of_car[L*(lane_token-1)+

(i+pos_diff_right_front)%L]==1

&& Vmax[0]>pos_diff_right_front-1)))){

if((double) rand() / (RAND_MAX+1.0) < pc) direction_of_car[L*lane_token+i]=2;

&& std::min(speed_of_car[L*lane_token+i]+1,

Vmax[type_of_car[L*lane_token+i]])>pos_diff_current_front-1

&& pos_diff_left_front>pos_diff_current_front

&& speed_of_car[L*(lane_token+1)+i]<0

&& pos_diff_left_behind-1>=Vmax[0]){

left_token=1;

}

/* 左 至 右 */

/* lane_token 表 車 輛 所 處 之 車 道 ,lane_token-1 表 其 右 側 之 相 鄰 車 道 。 */

if(lane_token-1>=0

&& std::min(speed_of_car[L*lane_token+i]+1,

Vmax[type_of_car[L*lane_token+i]])>pos_diff_current_front-1

&& pos_diff_right_front>pos_diff_current_front

&& speed_of_car[L*(lane_token-1)+i]<0

&& pos_diff_right_behind-1>=Vmax[0]){

right_token=1;

}

/* 若 同 時 滿 足 右 至 左 與 左 至 右 之 條 件 */

if(left_token==1 && right_token==1){

/* 若 相 鄰 左 側 車 道 之 前 車 間 距 較 右 側 大 , 則 變 換 至 左 側 。 */

if(pos_diff_left_front>pos_diff_right_front){

if((double) rand() / (RAND_MAX+1.0) < pc) direction_of_car[L*lane_token+i]=1;

}

/* 若 相 鄰 右 側 車 道 之 前 車 間 距 較 左 側 大 , 則 變 換 至 右 側 。 */

else if(pos_diff_left_front<pos_diff_right_front){

if((double) rand() / (RAND_MAX+1.0) < pc) direction_of_car[L*lane_token+i]=2;

}

/* 若 相 鄰 左 側 與 右 側 車 道 之 前 車 間 距 相 等 , 則 以 機 率 決 定 。 */

else if(pos_diff_left_front=pos_diff_right_front){

if((double) rand() / (RAND_MAX+1.0) < 0.5){

if((double) rand() / (RAND_MAX+1.0) < pc) direction_of_car[L*lane_token+i]=1;

} else{

if((double) rand() / (RAND_MAX+1.0) < pc) direction_of_car[L*lane_token+i]=2;

} } }

/* 僅 滿 足 右 至 左 之 條 件 */

else if(left_token==1){

if((double) rand() / (RAND_MAX+1.0) < pc) direction_of_car[L*lane_token+i]=1;

}

/* 僅 滿 足 左 至 右 之 條 件 */

else if(right_token==1){

if((double) rand() / (RAND_MAX+1.0) < pc) direction_of_car[L*lane_token+i]=2;

} }

/* 避 免 側 向 碰 撞 */

for(int lane_token=0; lane_token<num_of_lanes-2; lane_token++){

for(int i = 0; i < L; i++){

if(direction_of_car[L*lane_token+i]==1

&& direction_of_car[L*(lane_token+2)+i]==2){

direction_of_car[L*lane_token+i]=0;

for(int lane_token=0; lane_token<num_of_lanes; lane_token++){

for(int i=0; i<L; i++){

/* 右 至 左 */

if(lane_token+1<num_of_lanes && direction_of_car[L*lane_token+i]==1){

std::swap(speed_of_car[L*lane_token+i], speed_of_car[L*(lane_token+1)+i]);

std::swap(type_of_car[L*lane_token+i],

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

type_of_car[L*(lane_token+1)+i]);

}

/* 左 至 右 */

else if(lane_token-1>=0 && direction_of_car[L*lane_token+i]==2){

std::swap(speed_of_car[L*lane_token+i], speed_of_car[L*(lane_token-1)+i]);

std::swap(type_of_car[L*lane_token+i], type_of_car[L*(lane_token-1)+i]);

} } }

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

參考文獻

[1] 高速公路及快速公路交通管制規則.

http://law.moj.gov.tw/LawClass/LawSingle.aspx?Pcode=

K0040019&FLNO=8.

[2] 違反道路交通管理事件統一裁罰基準及處理細則.

http://law.moj.gov.tw/LawClass/LawSingle.aspx?Pcode=

D0080029&FLNO=12.

[3] 道路交通法.

http://law.e-gov.go.jp/htmldata/S35/S35HO105.html.

[4] Code de la route.

http://www.legifrance.gouv.fr/affichCode.do?cidTexte=

LEGITEXT000006074228.

[5] Highway Code.

https://www.gov.uk/guidance/the-highway-code/motorways-253-to-273#lane-discipline-rules-264-to-266.

[6] Nagel-Schreckenberg-Modell.

https://de.wikipedia.org/wiki/Nagel-Schreckenberg-Modell.

[7] Reglement verkeersregels en verkeerstekens 1990 (RVV 1990).

http://wetten.overheid.nl/BWBR0004825.

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

[8] Regulation No 39 of the Economic Commission for Europe of the United Nations (UN/ECE) — Uniform provisions concerning the approval of vehicles with regard to the speedometer equipment including its installation.

[9] Straßenverkehrs-Ordnung.

http://www.gesetze-im-internet.de/stvo_2013/.

[10] 林品亨, 林信賢. 速率計檢測介紹.

https://www.artc.org.tw/upfiles/ADUpload/knowledge/tw_

knowledge_m073_05.pdf, 12 2009.

[11] Biroli, G. Jamming: A new kind of phase transition? Nature Physics 3, 4 (2007), 222–223.

[12] Chowdhury, D., Kertész, J., Nagel, K., Santen, L., and Schad-schneider, A. Comment on “Critical behavior of a traffic flow model”. Phys.

Rev. E 61 (3 2000), 3270–3271.

[13] Chowdhury, D., Wolf, D. E., and Schreckenberg, M. Particle hop-ping models for two-lane traffic with two kinds of vehicles: Effects of lane-changing rules. Physica A: Statistical Mechanics and its Applications 235, 3-4 (1997), 417–439.

[14] Csányi, G., and Kertész, J. Scaling behaviour in discrete traffic models.

Journal of Physics A: Mathematical and General 28, 2 (1995), L427–L432.

[15] Eisenblätter, B., Santen, L., Schadschneider, A., and Schrecken-berg, M. Jamming transition in a cellular automaton model for traffic flow.

Phys. Rev. E 57, 2 (1998), 1309–1314.

[16] Gerwinski, M., and Krug, J. Analytic approach to the critical density in cellular automata for traffic flow. Physical Review E 60, 1 (1999), 188.

[17] Hinrichsen, H. Non-equilibrium critical phenomena and phase transitions

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

[18] Iannini, M. L. L., and Dickman, R. Traffic model with an absorbing-state phase transition. Phys. Rev. E 95 (2 2017), 022106.

[19] Krauss, S., Wagner, P., and Gawron, C. Continuous limit of the Nagel-Schreckenberg model. Physical Review E 54, 4 (1996), 3707.

[20] Nagel, K. Particle hopping vs. fluid-dynamical models for traffic flow, 1995.

[21] Nagel, K. Particle hopping models and traffic flow theory. Phys. Rev. E 53 (5 1996), 4655–4672.

[22] Nagel, K., and Paczuski, M. Emergent traffic jams. Phys. Rev. E 51 (4 1995), 2909–2918.

[23] Nagel, K., and Schreckenberg, M. A cellular automaton model for freeway traffic. Journal de Physique I 2, 12 (1992), 2221–2229.

[24] Nagel, K., Wolf, D. E., Wagner, P., and Simon, P. Two-lane traffic rules for cellular automata: A systematic approach. Phys. Rev. E 58, 2 (1997), 1425–1437.

[25] Neumann, J. v., and Burks, A. W. Theory of self-reproducing automata, 1966.

[26] Rickert, M., Nagel, K., and Schreckenberg, M. Two lane traffic simulations using cellular automata. Physica A: Statistical Mechanics and its

Applications 231 (1996), 534–550.

[27] Roters, L., Lübeck, S., and Usadel, K. Critical behavior of a traffic flow model. Physical Review E 59, 3 (1999), 2672.

[28] Schadschneider, A. Modelling of transport and traffic problems. In Cellular

Automata. ACRI 2008. Lecture Notes in Computer Science, vol 5191. (2008),

U. H., M. S., N. K., K. T., and B. S., Eds., Springer, Berlin, Heidelberg.

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

[29] Souza, A. M. C. d., and Vilar, L. Traffic-flow cellular automaton: Order parameter and its conjugated field. Physical Review E 80, 2 (2009), 021105.

[30] Sugiyama, Y., Fukui, M., Kikuchi, M., Hasebe, K., Nakayama, A., Nishinari, K., ichi Tadaki, S., and Yukawa, S. Traffic jams without bot-tlenecks—experimental evidence for the physical mechanism of the formation of a jam. New Journal of Physics 10, 3 (2008), 033001.

[31] Vilar, L. C. Q., and De Souza, A. Cellular automata models for general traffic conditions on a line. Physica A: Statistical Mechanics and its Applications

211, 1 (1994), 84–92.

相關文件