作品概要

專案名稱

myTransim —— 大眾運輸規劃模擬器

設計者

Zutek 3134

欲解決問題

引言

國立臺灣師範大學 和平校區坐落於 3 座捷運車站中央,分別為古亭站、臺電大樓站、東門站。然而,如此黃金之三角位置,本校恰恰位於無論徒步至何站都相當遙遠之處(8-15 分鐘)。這種不符合高中地理「中地理論」中的「交通原則」現象,是臺北市交通發展史的必然結果,是既有高密度城區及地質限制的相互妥協,也是百年來空間轉變的縮影。

臺北市的城市規劃核心可粗略分為 3 次重大時期。由艋舺大稻埕開始(三市街),演變為圍繞市區的棋盤狀(三線路),最後到戰後西區飽和、政經東移(如 60 年代末「信義計畫區」)。

長期以來,臺北市多將汽機車之權重置於至高地位。以廣建高架通道、刨除重鐵路軌,換取大量行車空間、滿足行駛流量;而忽略大眾運輸工具,放任公車系統混亂,讓捷運前後研擬三年五載仍停留於紙本發想階段,導致了臺北市長達數年的「交通黑暗期」,以及空氣汙染嚴重、塞車問題頻仍。

轉捩點於民國 80 年代起,捷運陸續竣工,確立了以大眾運輸系統為核心導向的發展計畫;80 年代末,大規模公車專用道完成劃設,微笑單車隨後陸續啟用。至此,始有將大眾運輸工具及私家車路權翻轉跡象。時至今日,臺北市新增多處行人專用道,重新劃設路面標線,顯示行人路權正逐步提高,交通靜穩政策陸續上路。期望臺北市之身先士卒,拋磚引玉,能使我國以人為本的交通時代平穩推進,順利來臨。

問題

現代城市正以「人人有車」為預設前提快速擴張,而我國一直深陷「車本主義」迷思,近代更被外媒冠上「行人地獄」之名,沉痾亟待解決。大眾運輸工具之問題在於覆蓋範圍小,多縣市常缺乏或不完善,尤其對多數人而言,更是看不懂、查不到、等不了。此等現象迫使眾人必須擁有私家車方得出行,進而造成聲音、空氣汙染;學生、員工也因無法高效抵達學校、公司而被迫於附近租屋。至於市面上的知名沙盒,目前完全純粹以規劃大眾運輸系統為主的遊戲也是屈指可數。如城市:天際線的主要目標即為解車流量,而運輸業大亨鐵路帝國等遊戲亦專注於物流、產業鏈運輸,於城市居民內部微循環之著墨極少。

設計目標

myTransim 提供了百分之百專注於大眾運輸工具的精簡版個體為本模型(agent-based,又稱基於代理、基於主體模型、多行為體系統)沙盒環境。使用者可於其中直觀體驗交通決策帶來垂直影響。遊戲本質為土地價值、住商密度、經濟健康、交通便宜。其名稱「myTransim」由大眾運輸工具「transit」及模擬系列遊戲「sim」2 單字合成,並冠以我私人專案的命名前綴「my…」。

適用對象

教育工作者與相關興趣愛好者,用於探索此類建模及城市設計,提供直觀視覺化模擬,理解基礎建設與地方經濟及土地價值之牽動。

AI 技術規劃

標題 內容
個體為本模型的人工智慧 此遊戲中所有「市民」皆由有限狀態機(finite-state machine)之自主人工智慧驅動,具備各自行為偏好(如活躍、懶散)、職業傾向、日程安排。
A* 搜尋演算法 使用先進動態加權演算法計算前往辦公處或休閒場所之最高效複合式交通路網(multi-modal routes),即時追蹤公車動態、交通號誌、可租借單車數量等資訊。
文本式人工智慧協同開發 實體模型基石、空間快取陣列、湧現數學迴圈等均採用先進大模型複合式編程,對複雜數學技術進行有效原型規劃、壓力測試、最佳化設計。

使用方式

myTransim 上架於我名下的網域,https://zutek3134.taipei/mytransim/,並由中華電信代管。遊戲迴圈(gameplay loop)如下略:

  1. 使用者繪製 RCI(住宅、商業、工業)區域。

  2. 以自訂複合式交通路網(公車、捷運路網及單車租借站點)連接各區。

  3. 利用市民路徑規劃,評估交通、經濟效益,觀察房地產市場興蕭。

作品架構

㈠ 核心引擎與資料架構
  1. 網格空間快取

    此模擬器運行於 160×160 網格矩陣。系統預先快取空間資料,如道路距離、已啟用車站、遮罩圖層等,而非時時循環計算查找鄰近物體,實現遊戲 O(1) 即時影格速率查找。

  2. 種子碼地圖生成

    利用非整數布朗運動(Fractional Brownian Motion,fBM)及平滑噪點演算法(Smooth Noise algorithms)映射隨機種子碼,並於加載時非隨機式地生成自然海岸線、沙灘、森林、山脈等地形。

  3. 位元打包序列化

    為保持地圖匯出之檔案羽量,匯入時得以快速解析,本遊戲資料存儲使用位元運算進行序列化。如將馬路、行人穿越道、天橋、車站等,壓縮為單一整數。

    架空簡易範例參考:以 2 進位字串 0000 為例,由右而左的每個「位元(Bit)」分別映射為某種狀態,如第 1 位元為馬路(數值 1),第 2 位元為行穿道(數值 2),第 3 位元為天橋(數值 4),第 4 位元為公車站(數值 8)。由於位元為 2 進位,每位數只能有 0 或 1 此 2 種狀態。

    當某網格鋪上馬路時,2 進位為 0001,轉為 10 進位等於 1;若再加上行穿道,則 2 進位為 0011,10 進位換算得 1+2=3。由此可得,當所儲存之資料中,某網格對應之 10 進位數字為 9 時,則可逆推為 2 進位 1001,也就是 8+1;映射後得知該網格擁有馬路及公車站。此打包方法大幅減少資料大小占用,實現輕量資料存儲。

  4. 解耦渲染循環(Decoupled Render Loop)

    遊戲基底邏輯(如市民、交通等)以固定影格速率運行,而 HTML5 Canvas 渲染器(所呈現的畫面)則完全獨立運行。靜態元素(如小地圖)被置於快取緩衝區,只有當建築發生變化時方重新繪製,從而節省大量的 GPU 資源。

㈡ 個體為本模型與基於需求的調度
  1. 有限狀態機

    每位市民都是由內部有限狀態機驅動的,他們擁有獨特個性及職業偏好。這會影響他們在城市中的行為、意向。

  2. 動態時間與輪班邏輯

    遊戲模擬現實生活中 1 週 7 日,1 日 24 小時的作息。市民會自行決定上日班、夜班或遊手好閒。他們的有限狀態機將根據不同時間觸發不同的行為,如出門上班、去餐廳用餐、去公園放鬆、去商場逛街等。

  3. 耐心與挫敗機制

    市民會追蹤等待時間及所錯過的班次。若等待時間過長,或公車多次客滿,他們會將此次通勤記錄為「失敗」。隨後絕望地步行賸下路程,並懲罰該城市的交通指標分數。

㈢ 多模式路徑規劃演算法
  1. A* 路徑規劃

    所有市民、運具皆使用高度客製化後的 A* 演算法於網格中自行導航。詳如下列:

    市民出門後即為行人,且被要求優先行走於人行道上。除非逼不得已,他們不會走在草地上。過馬路時也會優先選擇有行穿道的地方,同樣除非逼不得已,否則堅決不違規橫穿馬路。過馬路時,會試圖尋找紅綠燈配合;否則會在路口停看聽,確認安全才會跨越。相比於天橋,行人更想使用平面的行穿道。

    單車可騎行於人行道及馬路上,但會試圖先走馬路。行人會導航至單車租借站,並騎行至距離目的地最近之租借站還車,再步行離開。

    公車沿著使用者設定好的路線行駛。但發車與收車時,會計算機廠及首末站之最佳路線。

  2. 複雜行程鏈

    市民會將行程拆為多段劃分,從數學角度比較不同方案。如步行至單車租借站,騎車穿過城鎮,步行完成路程的成本,以及步行至車站、候車、乘車的成本等,「貨比三家」,選擇最佳路程。

  3. 路側偏移處理

    單車及公車於雙線道上共同行駛,故遊戲中還有四線道選項,將不同車種分流,使用額外的計算防止不同線道車輛互相干擾,並正確繪製車輛偏移點位。

㈣ 車輛運動學與交通物理
  1. 子網格浮點移動(Sub-Tile Floating-Point Movement)

    車輛並非一格一格移動,而是使用公式計算速率後轉成浮點座標一點一點「行駛」,並搭配加減速曲線自然過渡時速。

  2. 類蝙蝠回聲定位

    單車及公車使用數學之點積投射作為他們的「視錐」以偵測前方車輛。若前方車輛速度較慢,則後車動態計算距離並平滑減速,避免碰撞;同時偵測前方車種,拉開安全距離。如公車於單車後方時,安全距離較大。所有車輛都會確保不會因塞車而困在十字路口處癱瘓交通。

  3. 禮讓行人

    車輛會利用上述方式偵測實際已在馬路上的行人。如果即將發生碰撞,則啟動緊急減速讓行,直至行人清空前方行駛空間。車輛接近無號誌行穿道時,會稍微減速,並確定是否有行人欲穿越馬路之意向;配合每位市民的個性,選擇性禮讓,單車因更易減速,故禮讓意願較公車高。若行人欲違規穿越馬路,單車也有低機率讓行,公車則否。

  4. 路口與交通號誌同步

    所有路上移動的人車都會遵守鄰近號誌燈,目前尚未添加刻意犯法份子。紅燈停,綠燈行,黃燈時行人快速步行通過,車輛依自身位置評估是否加速離開路口,或開始減速煞車。

㈤ 公車車隊管理
  1. 智慧調度

    機廠全程控管所屬公車路線之乘客後車情形,並根據即時客流需求,按照使用者的設定動態部署車隊。

  2. 路線編輯

    使用者編輯公車路線後,系統會先暫緩使用這些更新,確保舊有行駛中車輛先完成當前任務並返回機廠,再發出新的車輛。

  3. 即時線路效率

    路線詳細內容均顯示於介面,方便使用者瞭解所規劃之路線利用率(含捷運)。

㈥ RCI 成長與土地價值
  1. 宜居性矩陣

    交通易達性、鄰近嫌惡鄰避設施或福利迎臂設施等都是影響土地價值的變數。市民更傾向於地價高的地方居住或開店,親近公園、捷運站,避開工廠、機廠。

  2. 精準投餵之房地產業務與投機遠見建設

    市民依據 RCI(住宅、商業、工業)需求標準,決定搬入並開業,或歇業並搬出。惟若使用者成功打造極高級交通樞紐,令建商發現商機,則其將繞過前述需求標準,「投機性地」於附近建設高密度公寓、購物中心,期抓住未來的經濟繁榮。要是使用者沒有成功利用該樞紐或妥善規劃,這些新建設終將紛紛倒閉。

  3. 升級過程

    建築物會隨著土地價值提而自然升級。如一般住家升級為公寓,或商鋪升級為商場。

㈦ 經濟衰退之骨牌效應
  1. 新手保護期

    新建築落成時,系統將給予其 2 工作日之保護期,吸引住戶、員工、顧客,並讓使用者有時間更新交通網絡。

  2. 降級過程

    保護期結束後,經濟效益極低或土地價值不夠高者,將進入下坡路階段。低於一定閾值後,開始規模降級,最終破產,留下一片空地。

  3. 連鎖反應

    公司倒閉後,其正在該建築物內的員工及訪客將被強制驅逐,而他們只能悻悻然返家。若市民搬走,公司就會缺工缺客;若這些市民恰好原先是機廠員工或公車司機,公車系統就會癱瘓。無法吃飯、休憩等,都會影響城市幸福指數,決定市民是否願意繼續住下去。

㈧ 視覺化與資料完整性
  1. 即時視覺反饋圖層

    遊戲建有 3 種圖層供使用者直觀瞭解城市發展狀態,包含行人步行熱力圖、候車時間熱力圖、鄰避/迎臂影響範圍圖。

  2. 翻譯支援(L10n)

    遊戲完整支援英式英文及正體中文語系。

  3. 統計數據顯示

    遊戲右側提供整體分數(優甲乙丙丁劣)、人口就業及移動狀況、通勤時間、市民陳情、車輛運輸效率等介面。使用者可善用這些資料完善自己的模擬城市,力拚提高都市分數。

作品擷圖呈現

淺綠色為自然草地;深綠色為住宅區,黃色為商業區,紅色為工業區;綠色點點為行人。

圖一 圖二
圖㈠
遊戲初始畫面。
圖㈡
左上角選單開啟,介面為正體中文。
圖三
圖㈢
建築物傾向圍繞馬路及人行道等步行易達之處。
由於工業區之捷運站位址設在沒有道路銜接的地方,故無工廠出現。
市民寧願沿著人行道走,也不願乘坐捷運後,在一片荒蕪中試圖找到目的地。
圖四
圖㈣
一輛藍線公車準備進站,而車站的行人由綠點轉黃,顯示已等待一段時間,稍微不耐煩。
因游標懸浮於小地圖上,故小地圖轉半透明,方便觀看遊戲畫面。
右側為路線面板。
圖五 圖六
圖㈤
行人因無人行道而在地圖上任意移動。
圖㈥
行人、單車、公車各自行走行駛於各自之專用道上,實行分離。
遊戲時間已進入晚間。
圖七
圖㈦
左上方工業區為鄰避設施,具有強大的推力,故無房子出現。
右方轉角處具有鄰近 2 公車站及單車租借站優勢,已發展出進化版的住宅。
稍下方出現距離馬路 4 格之遠的房子,因有公園這種親近自然的迎臂設施吸引入住。
已開啟該相關圖層。
圖八
圖㈧
多條路線併發之動態欄顯示每輛運具概況。