• 沒有找到結果。

NetLogo 模擬場景建構

在文檔中 中 華 大 學 (頁 58-64)

第四章 模式建立與驗證

第二節 NetLogo 模擬場景建構

圖 19 CA 行止邏輯圖

宣告。程式中各子程式以 to 為始、end 為末,加以界定。

3. 程式資訊(Information)令建模者可補充額外之文字說明

4. 介面(Interface)的元件包括了 Button, Chooser, Input, Monitor, Note, Output, Plot, Slider, Switch。

5. Button 可對應程式編碼(Procedures)中其中的一個子程式,為一執行命令之 按鈕。一般習慣上,以「setup」做初始化,再以「go」執行即可(可以設為 一次性或重複性)。

6. Chooser 功能為其一全域變數可透過下拉式清單供使用者選擇。

7. Input 能令使用者能輸入特定類型(如數字、字串等)之資訊供系統使用,。

8. Monitor 用以顯示系統中某一全域變數現值。

9. Note 用以標記介面中文字說明部分。

10. Output 用以顯示系統運算過程。

11. Plot 用以顯示系統內部的某些全域變數值之動態變化歷程。

12. Slider 為一範圍性之全域變數(Global variables),可令使用者藉以調整其變 數之大小,如調整紅燈時段之長短 30~120 秒,並設調整單位為 1 秒。若設 定之全域變數不開放使用者調整,可僅於程式編碼(Procedures)中撰寫。

13. Switch 能對應其一全域變數,選擇將其打開或關閉。

14. 介面部分同時可調整模擬速度(調整速度條)、模擬時間(離散或連續)、模擬 圖像(是否顯示)與模擬場景。

模擬系統部分由模擬場景與模擬主體所組成,詳細說明如後:

1. 模擬場景由瓦片(Patches)組成,模擬主體則為個別定義之主體(Turtles)所組 成。

2. 瓦片(Patches)是一網格(grid)系統,瓦片大小與總數可於介面中調整,而座 標原點可設於中央或其餘四個角落,並可設計邊緣為反彈或循環(如右沒左 出)。

3. 主體(Turtles)為系統中之行為者(Agent),可在瓦片中(Patches)自由移動。

4. 在作業系統無限制資源下,瓦片與主體數原則上並無上限。

模擬系統中之瓦片(Patches)與主體(Turtles)之操作指令不同,可透過程式中 Ask 指令進行驅動,其指令建構概念詳細說明如後:

1. 透過 Ask 指令可改變個別或全體之瓦片(Patches)或主體(Turtles)之屬性或行 為。

2. 個別瓦片(Patch)將依照瓦片中心之座標給定編號;個別主體(Turtle)將由系 統依序自動給定編號。透過編號指定可操作單一或特定族群之瓦片(Patches) 或主體(Turtles)。

3. 介面下方指令中心(Command Center)可透過指令直接操作模擬系統中之瓦 片(Patches)或主體(Turtles),但不影響原本程式編碼。

本研究之程式介面如圖 20 所示,可分為三個區域:上方區域為模擬場景、

左下區域為數據顯示區、右下區域為使用者控制區。

圖 20 程式介面圖

Netlogo 4.0.5 中之模擬場景由眾多 1X1 見方之瓦片所組成,所有瓦片皆對 應單一坐標,該瓦片中央即為坐標點所在。本研究設定每一片瓦片單位大小為 1X1 公尺,模擬場景設計如圖 21 所示。除了實際模擬場景 45X9 大小外,另外

包含左右側之車輛產生區與留白區(各為左右兩側 5X9 大小),坐標原點(0, 0)設 定於左下角瓦片,右上方瓦片為(55, 8),整體場景大小共 55X9 個瓦片。此外,

可透過調整右下方使用者控制區中的道路長度增加場景長度,每次可增加長度 45 公尺,即以實際模擬場景大小之倍數增加,最長可模擬 360 公尺。

圖 21 模擬場景設計

透過點擊圖 20 中右下區域之「初始化」按鍵後,將繪出模擬場景圖,如圖 22 所示。由於 Netlogo 4.0.5 軟體繪圖功能之限制下,模擬場景中所有交通標線 部分僅能以瓦片寬度 1 公尺呈現,其中黃線部分,代表實際道路之雙黃線,模 擬車輛不會行駛於其中;而紅線部分,代表實際道路之路側紅線,模擬車輛亦 不會行駛於其中。道路寬度部分以編號表示,每一編號皆為單一瓦片大小,其 中標號 1、2、3、4 代表實際道路之外側車道,其中編號 4 用來展現機車經常性 行駛於車道分隔線上之行為,同時編號 4 僅包含一部分車道分隔線,因此汽車 亦可直接行駛於上方;另外編號 5、6、7 部分則代表實際道路之內側車道部分。

到達區為車輛產生之區域,在到達區與停止線之間則為車輛模擬實際行止之區 域,由於本研究不考慮疏解部分,因此消滅區並無功用,僅作為路口示意用。

圖中左上角之 tick 則為模擬之時階。

圖 22 模擬場景圖

程式介面左下區域為數據顯示區,其中到達間隔時間的顯示器(Monitor)設 可依據設定之回報值(Repoter)即時顯示該回報值之數據,顯示名稱則可隨意設 定,並可設計顯示器以及顯示文字大小。在到達間隔時間部分,下一輛汽車內 的回報值為 VAG,其值為程式產生之汽車到達間隔時間值;下一輛機車內的回 報值則為 SAG,其值為程式產生之機車到達間隔時間值。累積時間部分,下一 輛汽車內的回報值為 VAG0,其值為程式針對汽車到達間隔時間之累積時間,

每時階增加 1 單位,當 VAG=VAG0 成立時,即累積時間已滿足到達間隔時間,

將重新產生新的汽車到達間隔時間,並將累積時間歸零以利後續累積時間之動 作;而下一輛機車內的回報值為 SAG0,其邏輯概念同汽車部分,對應值則為 SAG。進入路段數量部分,汽車內的回報值為系統中當次汽車進入數或多次模 擬後之汽車總平均進入數;機車內的回報值為系統中當次機車總進入數或多次 模擬後之機車總平均進入數。停等車輛部分,汽車內的回報值為系統中當次汽 車停等數或多次模擬後之汽車總平均停等數;機車內的回報值為系統中當次機 車總停等數或多次模擬後之機車總平均停等數。平均停等延滯部分,汽車內的 回報值為當次汽車平均停等延滯時間或多次模擬後之汽車總平均停等延滯時間;

機車內的回報值為當次機車平均停等延滯時間或多次模擬後之機車總平均停等 延滯時間。平均混合比部分,則為單次或多次模擬後之機車進入路段數量除以 汽車與機車進入路段數量之總和。

程式介面右下區域為使用者控制區,其中單位時間與模擬次數之設計如圖

24 所示,單位時間設定之全域變數為 times,其意義為調整每一時皆為幾分之一 秒,最小值為 1,最大值為 4(即 1/4 秒),意即將 1 時階分割為 4 時階,增量單 位為 1,預設值為 1(即 1 秒)。模擬次數設定之全域變數為 try,代表模擬多少次 紅燈時段,最小值為 1,最大值為 30,增量單位為 1,預設值為 1,每一紅燈時 段設定為 70 秒,可透過調整使紅燈長度變更,最小 30 秒,最大 120 秒,每次 增量 10 秒。汽車等候車隊預設為最小值 0,最大值為 2,每次增量 1,可調整增 加子車道 23 或子車道隨機 56 或 67 之汽車等候車隊,如圖 23 所示,圖中為 23 子車道與 56 子車道各增加一輛汽車。機車等候車隊預設為最小值 0,最大值為 5,每次增量 1,可調整增加子車道 1~7 之機車等候車隊,如圖 24 所示,圖中 為每一子車道各增加一輛機車。調整到達車輛數部份,汽車可透過調整其到達 間隔時間分配指數分配之平均值,預設為調查結果之 10.1,最小值為 1.1,最大 值為 20.1,每次增量為 1;機車可透過調整其到達間隔時間分配 Gamma 分配之 alpha 值,預設為調查結果之最小值 0.96,最大值為 2.06,每次增量為 1。按鍵 部分,「初始化」按鍵執行主程式「setup」,負責程式之初始化工作,包含第一 次到達間隔時間之產生、基本變數之設定以及模擬場景之產生;「連續執行」與

「執行單次」皆是執行主程式「go」,負責執行所有命令之程式,使程式開始模 擬,而兩者不同之處為前者是連續執行至設定時階上限,後者則是執行單一時 階之動作。

圖 23 增加汽車等候車隊示意圖

圖 24 增加機車等候車隊示意圖

在文檔中 中 華 大 學 (頁 58-64)

相關文件