淺談城市模擬的兩種方法論: CA與ABM
來自專欄 Programmable City44 人贊了文章
城市模擬是一種有一定年頭的預測和指導城市發展的「工具」,雖然我個人認為它對於物質空間預測和決定的執著在某種程度上已經落後於城市治理與規劃的發展趨勢,但是其方法論仍然對今日的新規劃師有一定借鑒意義。(關於什麼是「舊」規劃師,可以參見:傳統城市規劃師的死與生)
預警:這篇文章主要是文字(主要是懶得找圖),如果沒有耐心看乾巴巴的文字可以直接跳到第三節的TL;DR版本:)
0. 基本定義
城市模擬是指對城市空間的發展進行預測的模型,其核心功能和目的在於對城市的規模,機能和結構在多要素影響下在時間維度的變遷進行預測,從而為城市建設、管理和經營的策略提供決策支持甚至決策本身。在今天的語境下說到城市模型是離不開「大數據」的,那麼在此嘗試給出城市大數據、城市模型和兩者關係的粗略定義:
城市大數據是指經由廣泛分布於城市中的數據獲取設備收集並或集中或分布存儲的、動態更新的、描述城市靜態物質空間和動態活動的數據;各類與城市發展相關的歷史數據;以及在城市中生活的人類所留下的可以反映城市特徵和狀態的現實或網路空間的痕迹數據;
城市模型是指,以數學語言描述作為內核,以可執行的二進位數據文件(程序)及其集合(系統)為外延和載體,以解決城市的物質層面或非物質層面的問題為目的的一種假設。
其兩者的關係是指,城市模型是一種以城市大數據為依據,對城市系統的物質空間演變和功能客觀運行機制規律的一種大致擬合。一個模型既然是一種假設,那麼它只是在假設空間中眾多可能性的一種,其準確度取決於發現假設的演算法性能,但是其方差和偏差總是存在此消彼長的關係。
本文主要介紹歷史上眾多模型中的兩種:CA和ABM。
1. CA
CA是指元胞自動機(cellular automation),其起源在於通過設定一個全局性的規則對生物群落的演變進行模擬。城市規劃引入這一方法基本沿用了其在生態學模擬中的演算法規則,即在方法論上仍然以全局性的規則作為單元演變的指導,只是具體之設定帶入城市規劃的語境進行了微調。譬如,在原版的元胞自動機中,每個單元的狀態只有兩種:生或死;判斷生死的標準為其臨近八個單元的生死情況,每個單元或因密度過大資源匱乏而死,或因密度過小而死於孤獨。只有當周圍的生存的單元處於恰當的數值時,才會存活。在城市規劃中的應用對其進行細節上的改動,譬如考慮周圍單元(格子)的數量從8擴展為更多;各自的狀態可能只有在用於判定城市擴展邊界時才具有兩種狀態(增長/衰退),在其他更多的情況下可能其屬性並非二元,亦有使用用地性質作為其狀態的應用。這一方法在理論上的可行性在於,通過制定一個足夠簡單但合理的全局性規則,利用單元之間的狀態判定依賴性(即,一個單元的狀態由若干相鄰單元決定),事實上通過一種類似於卷積的方法將各個單元之間相互依賴關係樸素地還原了出來。這種方法在宏觀大尺度的城市空間預測(邊界增長,功能轉變等)能夠提供一定準確度的預測,但是往往在更長時間尺度和更細空間尺度的預測上面臨挫折。其原因是不難看出的:
首先,從日常經驗上來看,城市的空間是連續而非離散的,因此首先在劃定單元這一步就會出現一些信息損失和錯誤。
其次,元胞自動機演算法在運行中主要依靠兩個規則,其一為全局規則,其二為局部規則,這兩個規則在絕大多數情況下依靠人為設定,設定的依據則是「常識」和「直覺」的混合體(即,經驗)。所謂全局規則,即所有的單元均要遵守的判定規則,譬如「當周圍N單元中有n個表現出性質x時,則當前單元的性質判定為y」。而局部規則是指,某個單元的性質判定,變化預測,僅僅由周邊的單元決定。
這當然是一種非常簡化的規則。首先,全局規則的正確性存疑,且規則空間的大小位置,即可能設定的規則只是全部規律的一個真子集;第二,局部規則對於較遠處的高影響事件的響應較弱,其是否可以在局部規則下,通過臨近單元變化傳導實現等效感知是不定的(或依賴於全局規則的)。
最後,其致命缺陷在於,整個演化過程在初始狀態設定之後就處於一種「自動駕駛」的狀態之中,無法做到根據現實變化修正模型(無反饋)。雖然在操作中,可以人為修改某一個正在演化中的CA模型的若干單元的屬性,可是這樣的操作在理論上缺乏支持,因為這些改變並非依照這一模型的規則生成,這意味著這種干預與模型邏輯是無法自洽的。
總結來講,CA是一種簡略高度簡化的模型,其往往用於宏觀尺度粗精度的概念性推演,在城市規劃這一領域實用性不高。
2. ABM
ABM(Agent-based model)字面上的意思是「基於代理的模型」,這個名字暗示它是一種某種程度上與CA相反的思路。其不採用一個全局性的規則,或者說不存在一個中心化的規則集合,而是採用分散式的思路,即每一類型的單元體(可以存在多種不同的類型,每種類型可以有很多實例,類似於面向對象編程的思路)有一系列應對外界刺激的策略。通過單元自下而上的微觀互動,從而在宏觀尺度湧現出了一種變化的趨勢。這一分散式演算法相對於全局演算法的優勢相對於CA是比較明顯的,分為三個方面。首先,每一種類型的單元擁有其獨特的應對外界變化的反饋規則,而非統一的全局性規則,這樣會防止差異被抹平而造成的信息丟失。其次,ABM在一定程度上削弱了CA局部規則的負面影響,其對外界「刺激」(在城市規劃的語境中,可能是周圍的地塊蓋了一棟新的樓,幾條街外的公園被改成了體育場,等等)的反饋可以不僅僅機械地感受野(即,周圍八個方塊)的限制,而是使用拓撲圖作為相互作用的模型。最後,針對前文提到的CA的致命缺陷,在ABM的模型邏輯下,認為改動某個單元的屬性在邏輯層面的合理性是存在的,因為該模型本來就是基於個體的獨立變化和這些獨立之變化累積所造成的宏觀效應。
這一模型在理論層面是較之CA更為合理和自洽的,然而其仍然存在一些難以規避的缺陷,制約其實際應用中的表現:
首先,從技術的角度上來看性能存在瓶頸。這個模型依賴於對agent進行獨立的模擬,而在進行城市尺度的模擬預測時,agent的數量可以是非常巨大的。一種樸素的實現方法是通過多線程來進行模擬,每個線程表示一個agent的活動:這樣就會對計算資源提出較高的要求。
其次,ABM仍然無法避免人為設定規則的掣肘。譬如當agent數量一定規模時,某種協同的變化其結果是否可能出現規模效應,即「量變引起質變」?這種效應依賴於agent規則設定的完備性,倘若專家經驗在設定規則這一步無法證明其嚴謹性,那麼其推演的規則自然也就是不可靠的。
最後,這一模型在設計上也存在不足。評價一個模型好壞的指標除了預測的準確性之外,就是可解釋性,即我們可以使用這個模型更好地認識和了解研究對象,發現規律。多agent的整體狀態獲取是一件具有難度的事情。舉一個不是特別直接的例子:在分散式計算中,多伺服器的通信和數據備份需要制定同步演算法來確保數據的正確性和一致性,在發生錯誤時需要根據狀態「快照」進行回滾操作。那麼城市空間結構和內部功能結構的演變是一個動態的過程,那麼其在時間序列上的「狀態」應該如何表達?只有當可以表達這些狀態的時候,我們才有可能脫離僅僅是擺弄數據的混沌階段,進入到利用數據幫助進一步認識「城市動力學」規律的良性軌道上。這一目標,ABM實現起來是比較麻煩的。
3. TL;DR(暨小結)
這是一篇沒有什麼配圖的文章,看到這裡的人估計比較少。給一個十秒鐘版本的概括吧:
(1)CA是元胞自動機;
(2)ABM是基於代理的模型;
(3)CA是一種基於全局性規則的模型,可以近似理解為中心化的模型;
(4)ABM是一種基於個體規則的模型,可以近似理解為分散式的模型;
(5)兩種模型各有各的優點和缺點,都遠遠稱不上完美;
(6)我認為這兩種模型都不是未來城市治理的理想工具;
(7)但是為了探索理想模型,我們需要對前人的研究進行學習;
(8)可以近似認為這篇文章就是對這兩種模型批判了一番:)
-1. 預告
下一篇專欄可能會選取某一個城市模擬的框架作為案例進行分析並製作一個小教程,具體發布日期待定。
Reference
Batty, M. (2009). Urban modeling.International Encyclopedia of Human Geography. Oxford, UK: Elsevier.
推薦閱讀: