張嘉敏,張嘉銳
(1.山東科技大學 交通學院,山東 青島 266590;2.中國鐵路濟南局集團有限公司青島機務段,山東 青島 266041)
城市軌道交通是國家新型基礎設施建設的七大領域之一。網絡化已成為當今城市軌道交通發展的既成事實,據最新數據統計[1],截至2019年底,世界上共有520座城市開通城市軌道交通,涉及75個國家和地區,總運營里程超過28198km;中國累計有40座城市開通城市軌道交通,總運營里程達6730.27km,線網規模和客流規模均位居全球首位。交通系統仿真技術運用計算機模型再現和分析復雜交通現象,Railsys、Opentrack分別是德國漢諾威大學和鐵路管理咨詢公司、瑞士蘇黎世聯邦理工學院開發的鐵路網絡系統仿真軟件,技術成熟度較高,但針對中國軌道交通系統的具體仿真應用,其可二次開發編程的靈活度具有一定的局限性,NetLogo在一定程度上可以較好彌補這方面的不足。
從物理構成角度考察,城市軌道交通網絡是由線路、車站等行車設備及其之間的關聯關系連接而成的多起訖點的靜態網絡(many-origin-to-many-destination networks),車站、區間、軌道等是網絡結構功能的基礎體系[2],是城市軌道交通列車運行的必要物理支撐。城市軌道交通線路間的關聯關系包括對等關系、主次關系、并行分流、交叉銜接、完全銜接等,換乘站特別是大型換乘站是城市軌道交通網絡的關鍵結合點,線路與換乘點的關聯關系主要指線路通過還是終止于換乘點;交匯于換乘站點的線路,由于線路與換乘站點關系以及線路之間的不同關系,會產生不同的換乘方向個數,進而衍生線網規劃設計與運營管理的復雜性,其中乘客的交換流向稱為換乘方向[3]。
交通運輸網絡的物理統計特征主要包括節點中心性、小世界特性、無標度特征、權重和強度分布、社區結構以及靜態/動態魯棒性。從幾何角度考察,通常交通運輸網絡的規劃設計一般都有特定的形狀,如放射狀、矩形、網格狀、三角形[4];其中網格型(棋盤型)結構和放射型結構是最常見、最基本的城市軌道交通線網的幾何形態結構,在此基礎上,考慮增加環線,又可形成“環線+網格型”和“環線+放射型”等多種演繹形態。早期的一些公共交通系統的網絡結構設計主要著眼于簡單的放射型,然而,從20世紀80年代以來發生了一些變化,對于交通網絡設計大多數方法要么采用更為切合實際的、不規則的網格形狀,要么認為網絡結構對于建模無關緊要而不予以特別指定[5-6]。
文獻[7]綜合應用數學規劃、網絡模型和數據統計分析的方法研究復雜的公共交通網絡。通過對北京地鐵網絡的動態屬性的詳細分析,文獻[8]的研究表明,當考慮客流量時,城市軌道交通網絡的異質性與脆性會隨時間發生變化。作為城市公共交通的一種方式,城市軌道交通網絡的形式化表示可以有兩種類型,即基于頻率(frequency-based)的表示方法和基于時刻表(schedule-based)的表示方法[9]。在基于頻率方法的表達模型中,根據網絡中邊與節點的關系,一般采用拓撲有向圖(如L型空間或P型空間)或連接矩陣的方式架構城市軌道交通物理網絡。不同規模下城市軌道交通網絡的節點度分布服從冪律分布,其網絡具有典型的小世界特性和無標度特征[10]。綜合來看,城市軌道交通網絡的幾何物理特性主要涵蓋通達性、延展性、可靠性、便捷性、先進性,其中先進性具體表現為面向業務運作層面的數字化建設、信息化/自動化運行與維護、自助式智能化乘客服務等,在技術裝備(如傳感器與視頻監測技術、基于CBTC列車運行控制系統)與管理水平(如車輛自動定位技術AVL、客流自動計數APC)上具備了現代化物理信息系統(CPS)的典型特征,為城市軌道交通網絡的智能化運營提供了硬件基礎。
NetLogo[11]是由Uri Wilensky在1999年發起的,由美國西北大學連接學習和計算機建模中心(CCL)負責持續開發,是一系列源自StarLogo的多主體建模語言的下一代。Net-Logo完全可編程,人在回路,可以在所有主流平臺上(Mac,Windows,Linux等)作為一個獨立應用程序運行;面向對象,移動主體(海龜)在由靜態主體(瓦片)組成的網格上移動;交互性強,主體之間可以創建鏈接,形成聚集、網絡和圖;內置大量原語,特別適合于對隨時間演化的復雜系統進行建模,可用2D或3D模式查看模型,提供對自然和社會現象進行仿真的可編程建模環境,界面構建包括輸出區、開關、按鈕、選擇器、滑動條、監視器、文本框、注解,具有強大靈活的繪圖系統,建模人員能夠向成百上千的獨立運行的“主體”(agent)發出指令,從而使得探究微觀層面上的個體行為與宏觀模式之間的聯系成為可能,因為許多個體之間的交互可能會涌現出宏觀模式。
網絡環境是城市軌道交通系統運行的主要決定因素與基礎載體,城市軌道交通網絡環境具有多元化、交互性等特征,利用NetLogo平臺,可以生成較為真實的城市軌道交通網絡環境,相較于Anylogic[12]仿真軟件,利用NetLogo以代碼方式生成城市軌道交通網絡環境,NetLogo更具靈活性和可實現性。基于NetLogo平臺架設生成城市軌道交通網絡環境,要統籌集成車站節點、軌道線路、列車、乘客這四大要素,及其相互間的非線性復雜交互演化。NetLogo仿真的基本思想是:生成增強現實的城市軌道交通網絡環境場景,將軌道交通系統中的主要要素模擬成計算機中的主體(agents),各要素之間的交互行為模擬成agents的屬性和行為,并引入交互機制,將人/車/路作為一個完整交通系統,設計動態性場景庫,以供各主體agent在感知、分析的基礎上進行決策、控制、優化、執行等活動。交通運輸網絡建模是一項富有挑戰性的任務,城市軌道交通網絡仿真環境的生成是其他相關具體網絡仿真項目環節的依托與載體,如動態路徑選擇規劃、客流分配、出行行為分析、能力計算[13]、運力運量匹配[14]、運輸組織方案與運行圖評估、客流強度自適應性測算、行車調度指揮、網絡規模匡算與可達性分析等。
類似于其它仿真軟件,城市軌道網絡仿真環境可以用NetLogo底圖導入的方式,但是由于相關技術資料獲取的困難性,在沒有底圖的情況下,只能利用NetLogo以代碼方式生成,而且相較于底圖導入,雖然增加了編程技術難度,但更富仿真生成靈活性和界面效果友好性。在明確仿真目的,確定各項仿真技術參數的基礎上,運用智能體建模,城市軌道交通網絡環境生成NetLogo仿真流程如圖1所示。
圖1中各子環節生成代碼示例如下,其中每行代碼雙分號后的文字為注釋語句。
to setup
clear-all ;;將世界重設為初始、全空狀態
setup-nodes ;;建立車站節點
setup-URT-network ;;建立城市軌道交通網絡
setup-trains ;;創建列車主體
setup-OD ;;隨機生成客流需求矩陣
reset-ticks ;;按時間步更新
end
to setup-nodes
set-default-shape circles"circle"
create-circles 6 ;;網絡中創建6個節點
[
ask circle 0[

圖1 城市軌道交通網絡環境生成NetLogo仿真流程
setxy 0 0 ;;將車站0設置在中心位置
set size 4 ;;設置幾何尺寸
set label 0 ;;設置標簽
set station-type center-transfer-station ;;車站0的類型為中心換乘站
set station-capacity 4200 ;;參照地鐵設計規范虛設車站最大容量
set alighting-proportion random 10/10 ;;設置列車在車站的下客率
]
ask circle 1[
setxy-5 10
set size 2
set label 1
set station-type transfer-station ;;車站1的類型為一般換乘站
set station-capacity 3200
set alighting-proportion random 10/10
]
ask circle 2[
setxy 8 10
set label 2
set station-type intermediate-station ;;車站2的類型為中間站
set station-capacity 2500
set alighting-proportion random 10/10
]
ask circle 3[
setxy 12-3
set size 2
set label 3
set station-type transfer-station ;;車站3的類型為一般換乘站
set station-capacity 3200
set alighting-proportion random 10/10
]
ask circle 4[
setxy 6-11
set size 3
set label 4
set station-type larger-transfer-station ;;車站4的類型為較大換乘站
set station-capacity 3600
set alighting-proportion random 10/10
]
ask circle 5[
setxy-4-9
set label 5
set station-type end-station ;;車站5的類型為始發/終到站,即端點站
set station-capacity 2000
set alighting-proportion random 10/10
]
]
End
to setup-URT-network
ask circle 0[create-link-with circle 1];;鏈接車站0與車站1,進而創建紅線
ask link 0 1[
set thickness 1
set color red
set weight 1200 ;;weight的單位為米,即相鄰兩站間的距離
]
ask circle 0[create-link-with circle 3]
ask link 0 3[
set thickness 1
set color red
set weight 700
]
ask circle 1 [create-link-with circle 2];;創建綠線
ask link 1 2[
set thickness 1
set color green
set weight 850
]
ask circle 2[create-link-with circle 0]
ask link 2 0[
set thickness 1
set color green
set weight 1000
]
ask circle 0[create-link-with circle 4]
ask link 0 4[
set thickness 1
set color green
set weight 650
]
ask circle 5 [create-link-with circle 4];;創建藍線
ask link 5 4[
set thickness 1
set color blue
set weight 1100
]
ask circle 4[create-link-with circle 3]
ask link 4 3[
set thickness 1
set color blue
set weight 900
]
end
create-cars num-trains
[
setxy-5 10 ;;設置所有列車初始地理位置
set train-speed 9.72 ;;設置列車速度
set capacity 1000 ;;設置單列車最大載客量
set npob 0 ;;設置初始車上乘客人數
]
to setup-OD
create-persons 15 ;;對稱OD矩陣上半對角設置有15個元素
[
ask person 13 [ ;;person后邊的數字13代表who值
;;person 13-person 17 分別代表OD 01,02,03,04,05
;;任意兩個海龜的who編號都不會重復,此前已創建6個circles和7條links,who值已從0編號到12,故此處person的who值從13開始
set O 0 ;;乘客的O點為車站0
set D 1 ;;乘客的D點為車站1
set label 01 ;;乘客的標簽為01
setxy 0 0 ;;乘客已經位于出發車站0
set color 9
hatch random-poisson 3*60*0.1 ;;OD需求矩陣元素對應同類乘客數量值
]
ask person 14[
set O 0
set D 2
set label 02
set color 15
hatch random-poisson 3*60*0.2
]
ask person 15[
set O 0
set D 3
set label 03
set color 25
hatch random-poisson 3*60*0.2
]
ask person 16[
set O 0
set D 4
set label 04
set color 35
hatch random-poisson 3*60*0.2
]
ask person 17[
set O 0
set D 5
set label 05
set color 45
hatch random-poisson 3*60*0.3
]
ask person 18[ ;;person 18--person 21分別代表 OD 12,13,14,15
set O 1
set D 2
set label 12
setxy-5 10
set color 55
hatch random-poisson 2*60*0.1;;set arr-rt random-poisson 2
]
ask person 19[
set O 1
set D 3
set label 13
set color 65
hatch random-poisson 2*60*0.3
]
ask person 20[
set O 1
set D 4
set label 14
set color 75
hatch random-poisson 2*60*0.4
]
ask person 21[
set O 1
set D 5
set label 15
set color 85
hatch random-poisson 2*60*0.2
]
ask person 22 [ ;;person 22--person 24分別代表 OD 23,24,25
set O 2
set D 3
set label 23
set color 95
hatch random-poisson 2*60*0.3
]
ask person 23[
set O 2
set D 4
set label 24
set color 105
hatch random-poisson 2*60*0.4
]
ask person 24[
set O 2
set D 5
set label 25
set color 115
hatch random-poisson 2*60*0.3
]
ask person 25 [ ;;person 25-person 26分別代表 OD 34,35
set O 3
set D 4
set label 34
set color 125
hatch random-poisson 2*60*0.4
]
ask person 26[
set O 3
set D 5
set label 35
set color 135
hatch random-poisson 2*60*0.6
]
ask person 27[ ;;person 27代表OD 45
set O 4
set D 5
set label 45
set color 107
hatch random-poisson 2*60
]
]
End
在NetLogo仿真平臺依圖1流程運行上述代碼,生成一個具有6個車站節點、3條軌道線路(紅線、綠線、藍線)的城市軌道交通網絡如圖2所示。在該網絡環境生成三條路徑,r1:1-0-4-5,r2:1-2-0-4-5,r3:1-2-0-3-4-5,在該環境下再編制路徑選擇/客流分配代碼并仿真運行500個時間步后,獲得乘客在各條路徑上的分布特征如圖3所示,發現路徑r3吸引了最多乘客,可視為關鍵路徑。

圖2 NetLogo生成的城市軌道交通仿真網絡

圖3 乘客在各條路徑上的分布特征
《中國城市軌道交通智慧城軌發展綱要》[15]明確指出,城軌交通行業應推進城軌信息化,發展智能系統,建設智慧城軌,實現智慧網絡管理,開創“交通強國、城軌擔當”的新局面。在軌道交通數字化、網絡化、信息化、智能化的總體發展趨勢下,NetLogo等仿真技術可以動態地、形象而逼真地模仿/復現軌道交通系統的種種現象,經濟而有效的評估交通問題的相關解決方案[16],是研究復雜交通問題的重要工具,亦是智能交通運輸系統的重要組成部分之一,從而達到探究/解析軌道交通系統智能運營[17]的目的。本文研究了基于NetLogo的城市軌道交通網絡仿真環境生成問題,并進行了實例驗證,為后續進一步深入開展相關仿真研究奠定了基礎與參考。實際軌道交通網絡數據OD對數往往十分龐大(與車站數近似成平方關系),可以考慮在滿足應用需求的前提下歸并部分OD,劃分區域OD,壓縮路網模型規模,再利用NetLogo平臺生成網絡仿真環境。