個體為本模型

**個體為本模型**（英文簡稱  或者 ），或者簡稱**個本模型**，係電腦模擬上會用到嘅一種模型。個體為本模型會建立一大群虛擬個體，每個個體都按某啲法則行事，而研究者做呢種模擬嘅目的，就係想解答「如果啲個體按噉噉噉嘅法則行事，佢哋整體會出現點樣嘅現象？」噉嘅研究問題。

舉例說明，想像有位生物學家想研究蜜蜂之間嘅互動，佢寫個程式，程式會
#設若干（n）隻虛擬嘅蜜蜂個體；
#設定好每個個體會按某啲法則（用符號 L 代表；呢啲法則係由個體嘅角度睇嘅）行事，個體之間可以有差異；
#行若干時間，睇吓喺噉嘅情況下，蜜蜂群整體會唔會出現佢預想中嗰種規律，
#如果會，佢就可以話「法則 L 能夠可以解釋呢種蜜蜂相關嘅現象」。

個體為本模型呢種研究方法，常用於生態學同社科：呢啲領域嘅研究成日都會研究一大拃個體－包括人或者第啲動物呀噉－分別做決策，仲有係研究呢啲個體決策點樣引致整體嘅現象，事實係個體為本模型造就咗唔少重大發現，例如係重複監犯困境同埋些靈分居模型相關嘅討論噉。而且就算係物理學同化學等領域嘅研究，都有機會用到個本模型。

要學實際郁手編寫個本模型，一般都要識程式編寫嗰啲基本概念先。

## 基礎概念

個本模型早喺一九七〇年代初嗰陣已經存在。而到咗廿一世紀初，喺互聯網上有唔少源碼公開嘅個本模型，好似 ChatGPT 等嘅大型語言模型亦都識編寫源碼行個本模型，由淺至深嘅模型都得。

個本模型係抽象模型一種，用嚟「代表」某啲現實物體並且提供資訊。喺最基本上，行個本模型嘅程式做嘅運算，界定總體有 N 個個體，當中 N > 1，電腦要做嘅運算可以用以下呢幾個步驟概括：
#初始化，設定啲**個體**（參見，近似），i = 1,..., N ，當中每個個體都有 m = 1,..., M 咁多個內在特質所以數學化噉講，是但搵一個時間點 t = 1,..., T 個總體可以描述為一個 N × M 咁大嘅矩陣 **S<sup>t</sup>**
#:\mathbf{S^{t}} = 
\begin{bmatrix}
s^{t}_{11} & s^{t}_{12} & \cdots & s^{t}_{1N} \\
s^{t}_{21} & s^{t}_{22} & \cdots & s^{t}_{2N} \\
\vdots & \vdots & \ddots & \vdots \\
s^{t}_{M1} & s^{t}_{M2} & \cdots & s^{t}_{MN}
\end{bmatrix}
 
#將 t 設為 0。呢個變數代表時間。
#喺時間點 t，同每個個體，抽取總體嘅子集，個體會同呢個子集入便嘅個體有所互動，主宰個體行動以及互動嘅法則（設 **K<sup>t</sup>** 為互動矩陣，N × N 咁大，表示邊啲個體間有互動），會決定 **S<sup>t</sup>** 跟住落嚟會點樣改變；當中改變法則可以係好多唔同類嘅函數；
#如果個模型涉及一啲整體嘅變數，就要按啲個體嘅新狀態嚟計呢啲整體變數嘅新值；
#`t = t + 1`（t 數值上升 1）；
#係噉重複步驟 3 至 5，直至結束條件達到為止。
研究者仲可以使用蒙地卡羅方法，將個模型行若干次，再計算（例如）行完之後出嘅結果嘅平均值。

好似噉嘅模擬有好多用途。設 L 為主宰個體行動同互動嘅法則。假設模型嘅運作規律唔會隨時間變化，L 就係主宰 **S<sup>t</sup>** 同 **K<sup>t</sup>** 等會點變化嘅函數。假如模擬結果係會出現研究者想要嘅某種現象，或者產生近似實際觀察到嘅數據嘅規律，噉研究者就有理由作出論證，話 L 嗰啲法則同特性可以解釋到目標現象點解會發生」，亦即係話個本模型嘅一個重要用途係理解宏觀層面嘅現象點樣由微觀（個體）層面嘅行為嗰度創發出嚟，而呢啲創發出嚟嘅現象可以好違反直覺。因此，個本模型係科研上嘅有力工具，有助探究複雜現象嘅形成以及成因。

## 模型實例
### 生物學

生物學係研究生命嘅自然科學，成日都會用到個本模型。生物學個本模型通常都會將一隻生物當做一個個體，行個本模型，當中**一隻生物**可以係一隻細菌、一樖植物以至一隻動物等等；生物學個本模型有陣時甚至可以將成個種群當做個體噉分析。

有關生物學個本模型嘅例子，可以睇埋生物學入便嘅個本模型。

#### 群動模型

群動係生物學個本模型嘅出名例子，想像有一大堆個體一齊移動，途中每個個體都會守三條規則：
***分隔**－唔好撞到隔離嘅其他個體；
***順向**－將自己方向對準周圍其他個體嘅平均；
***凝聚**－將自己置於周圍其他個體嘅平均嘅位置。

個程式類似噉：
  設 n 件物件同埋設好佢哋嘅初始位置
  設 t（時間）= 0
  While t 未到某個值，
    Foreach 物件
      計算如果呢件物件跟嗰三條法則郁，佢嘅新位置會响邊；
    顯示出每件物件嘅新位置；
    t 上升 1；
於是研究者就能夠知道，如果群動嗰三條法則（微觀定律）正確，啲物件郁起上嚟望落會係點嘅樣（宏觀現象）。而事實表明，群動模型會引起類似某啲自然現象嘅規律，例如某啲物種嘅雀鳥成群一齊飛嗰陣個雀群成嘅形態噉，就被指望落好似群動出嘅規律（想解釋嘅現象）－於是研究者就可以提出主張，話嗰三條法則能夠解釋雀群嘅形態點解會係噉。

#### 生態模型

生態模型成日都會用到個本模型：生態模型會將生態系統想像成抽象化嘅數學模型；本質上，生態系統就係由大量個體生物組成嘅，所以自然有可能用個本模型，將每隻生物當做一個個體噉模擬，進階啲嘅研究仲有可能將成個種群當做一個個體。

例如喺二〇〇四年，有一班英格蘭科學家針對稻麥蚜（其中一種最常見嘅蚜蟲，英格蘭都唔少）做咗份研究。蚜蟲係一個超科嘅昆蟲，包含多個唔同物種。佢哋鍾意蛀食植物，會對好多農作物造成破壞。因為噉，唔少從事昆蟲同農業相關研究嘅科學家都致力研究蚜蟲，想透過理解蚜蟲嚟研究點樣有效防治蚜蟲。二〇〇四年嗰班科學家用 Java 呢隻物件導向程式語言寫咗個程式，段虛擬碼大致係噉：
  設 n 件物件，每件物件表示一隻蚜蟲，每隻蟲有以下呢啲數值：
    3D 嘅位置值（position）、
    年紀值（age），數值係 0.00-2.00，當中 1.00 算係成年、
    佢過往嘅行為紀錄、
    佢獨有嘅 ID 值，方便部電腦監察住佢哋邊隻打邊隻
  設 t（時間）= 0；
  設定風向同氣溫等嘅環境變數；
  
  While 場模擬行緊，
    將氣溫等嘅環境變數，設做數據庫紀錄咗嘅數值；
    Foreach 蚜蟲個體
      age 數值升；
      if age >= 2.00
        隻蟲就死；
      隻蟲有若干機率會死；  
      if age >= 1.00
        隻蟲有若干機率會遷徙； 
        隻蟲有若干機率會繁殖，繁殖會產生新個體，呢啲個體 age 冚唪唥係 0.00； 
      
        
    t 上升 1；（5）

班研究者睇過打前嗰啲研究，知道蚜蟲嘅繁殖率同氣溫等嘅環境因素成咩數學關係。有咗個程式，佢哋就可以教部電腦計出一笪地方每日會有幾多隻蚜蟲，並且將呢啲數值以線噉嘅形式呈現出嚟－好似上圖噉打橫軸做時間打戙軸做生物個體數量；跟住佢哋攞呢啲數值同實際數據對比，發覺模擬得出嘅數值同實際數據吻合，於是佢哋就可以作出噉嘅推論：佢哋用咗嗰啲蚜蟲個體行為定律（微觀定律）可以有效解釋過往嘅蚜蟲數量變化數據（宏觀現象）。打後嘅研究者知個模型係掂（做到準確預測）嘅，就可以放心攞個模型去估計未來嘅蚜蟲數量變化，幫手做防治蚜蟲嘅工作

### 醫療

個本模型喺醫療相關嘅研究上都有用。

流行病學呢個領域隸屬於醫療，專門研究病同第啲健康相關狀態點樣喺群體中分佈。流行病學專家會（例如）剖析傳染病點樣喺人之間傳播，並且用呢啲知識協助醫療工作。運算流行病學就係指專門用電腦模擬等嘅運算方法做流行病學研究：流行病學本質上就會想知人類（個體）嘅行為點樣影響病喺佢哋之間嘅傳播，所以會用到個本模型。

例如喺二〇一一年就有研究者做咗份研究。喺醫療工作者，對疫潮做準備係好緊要嘅；要為疫潮做準備，起碼就要估計應付疫潮需要幾多人力物力資源；而要準備呢啲資源，就要估計有幾多人將會惹到隻病；流行病學專家好興用個本模型作出（簡化講）「如果每個人嘅行為係噉噉噉而隻病嘅傳染力係噉噉噉，最後會有幾多幾多人惹到隻病」嘅估計。二〇一一年嗰班研究者，用二〇〇九年墨西哥 A 型 H1N1 流行性感冒病毒爆發做數據；佢哋指出，傳染病嘅傳播主要取決於人嘅流動同埋人際接觸，並且建立咗個噉嘅個本模型：
  設 n 件物件，每件物件表示一個人，每個人有以下呢啲數值：
    3D 嘅位置值（position）、
    移動模型（mobility model；表示嗰個人傾向喺座城市邊個區活動－包含「喺禮拜日，呢個人會喺 A 區嘅機率」噉嘅資訊）、
    社會網絡（social network；表示嗰個人同邊啲人有密切關係－「有密切關係」表示「成日會喺同區活動，大機率會互相傳病」）、
    佢獨有嘅 ID 值，方便部電腦監察住佢哋邊個打邊個
  設 t（時間）= 0；
  設定隻病嘅特性（disesase model）：
    個體間傳播（transmission）－反映「如果家陣有兩個人密切接觸，當中一個人有隻病，隻病會傳畀另外嗰個人嘅機率」等、
    個體內漸進（progression）－反映「如果個人惹咗隻病，喺幾耐嘅時間會冇症狀、喺幾耐嘅時間會有傳染能力...」噉嘅資訊
  
  隨機揀個人，設定佢惹到隻病
  
  While 場模擬行緊，
    Foreach 人類個體
      按 mobility model 設定佢嘅位置；
    Foreach 地區
      計出佢有冇受感染嘅人喺入面；
    Foreach 有感染力嘅人類個體 i
      搵出佢身處嗰區入面嗰啲可以受感染嘅個體；
      Foreach 可以受感染嘅個體 j
        按社會網絡計出 j 同 i 密切接觸嘅機率；
        按密切接觸嘅機率同 transmission，計出 j 畀 i 惹到嘅機率；
      
      按 progression 更新 i 嘅狀態（例如由「有感染力」演變成「好返嗮」）；
      
    
    t 上升 1；

班研究者睇過打前嗰啲研究，知道如果有兩個人密切接觸而當中一個人有隻病，隻病會傳畀另外嗰個人嘅機率。然後佢哋就攞咗二〇〇九年墨西哥爆 H1N1 期間嘅數據嚟睇，用手機數據估計啲人嘅移動模型同社會網絡，並且進行模擬，計喺每點時間，會有幾多人惹到隻病－想像畫幅圖，打橫軸做時間打戙軸做惹到隻病嘅人嘅數量。佢哋嘅模擬顯示，政府下令限制啲人嘅流動令惹到隻病嘅人數下降咗 10% 咁多。喺呢個過程裏面，班研究者做到考慮個體人嘅流動同埋人際接觸（微觀因素）估計個群體入面有幾多 % 嘅人惹咗隻病（整體現象）。

### 社科

個體為本社會模擬係指用個本模型嚟研究社會：社會科學係研究人類社會嘅科學，包括心理學、社會學同經濟學呀噉，所以會關注個體人類嘅活動，會點樣引致社會現象。社會科學當中嘅個本模型通常會係用個體人類做模型中嘅個體，亦有部份模型會將成個組織當係一個個體噉分析。例子可以睇吓重複監犯困境相關嘅研究，或者有關工作團隊嘅管理學個本模型研究。

緊急疏散方面嘅研究可以用個本模型嚟做。緊急疏散係唔少社會科學家關注嘅課題，主要思考以下嘅問題：當一笪地方有危險嘢（例如火燭或者有毒氣體泄漏呀噉）嗰陣，笪地方嘅人要點先可以有咁快得咁快移去安全地方？緊急疏散相關嘅思考，對建築設計等嘅領域嚟講好重要。喺呢啲研究中，社會科學家可以將每個人視為個體，當呢啲個體傾向按某啲法則郁動，並且行個本模型，睇吓如果啲人按預想中嘅法則郁動，佢哋走起火警上嚟會出現點嘅情況。例如喺二〇一八年，有班科學家就做咗研究，模擬建築物火燭嗰時啲人嘅疏散情況，用 GAMA 平台嚟模擬，個模型大致係噉嘅：

  設 n_1 個人（evacuee），每個都具有：
    位置值
    行為模型，個模型包括「聽到火警鐘響就會開始疏散」等嘅多條法則，仲有搵路演算法教佢郁動
    個值表示生命（potency），如果佢掂到火或者濃煙，生命值會跌，生命值變 0 佢就會死
    個值表示佢走得有幾快（speed）
    如果個人離開咗棟建築物，佢就算係安全
  設 n_2 個火頭，每個都具有：
    （初始化嗰陣係隨機設定嘅）位置值
    個值表示佢擴散得幾快（propagation speed）
  設 n_3 股濃煙，每個都具有：
    位置值
    會由火度產生出嚟
  設 n_4 個火警鐘，每個都具有：
    位置值
    一個範圍，一旦有火或者濃煙進入佢嘅範圍，佢就會響
    個持久值，表示個鐘會響幾耐
  
  設 t（時間）= 0；
  
  While 場模擬行緊，
    Foreach 個體（包括人、火頭、濃煙同火警鐘）
      按個個體啲法則，更新佢嘅狀態
    t 上升 1；

有咗上述噉嘅模型，研究者就可以攞好多唔同建築物嘅平面圖，試行模型，解答「如果棟建築物嘅設計係噉噉噉，假設啲人冚唪唥都會跟住啲預想法則疏散，火燭嗰陣會有幾多人死」噉嘅問題。然後佢哋仲會同建築師等嘅人員合作：譬如想像有班建築師要設計建築物，佢哋諗咗好幾個方案出嚟，需要決定採用邊個方案；佢哋可以同每個方案都行一次模擬，模擬嗰套方案有幾安全，於是就可以幫手決定邊套方案比較好。

## 哲學思考

由科學哲學嘅角度思考，個本模型可以用嚟處理好幾種重要嘅研究問題。

### 解釋能力

喺理論層面，個本模型最大用途係可以用嚟剖析由多個有自主能力嘅個體組成嘅複雜系統：响廿一世紀初，好似個本模型噉嘅電腦模擬技術，成日會用嚟應對複雜系統；如果想像成數學模型（用數學方程式表示啲變數之間嘅關係）嘅話，複雜系統特徵係變數多。而家想像一個得三個變數 x_1,x_2,x_3 嘅簡單系統，研究者淨係需要計
:`time 1: x<sub>1</sub>, x<sub>2</sub>, x<sub>3</sub>`
:`time 2: x<sub>1</sub>, x<sub>2</sub>, x<sub>3</sub>`
:`time 3: x<sub>1</sub>, x<sub>2</sub>, x<sub>3</sub>`
... 如此類推，當中 `time n` 係指**第 n 點時間**，就做到可以大致想像個系統跟住會點變化；但想像如果變數嘅數量係（例如）10,000 個咁多，條數就撈絞到冇可能靠人手計－因此科學家要研究複雜系統嗰陣，就要用電腦幫手計數，而個本模型正正可以用嚟研究由好多個體組成嘅複雜系統，包括生態系統同社會呀噉。

視乎研究緊乜嘢現象以及用緊乜嘢理論模型，個本模型裏便嘅個體可以有呢啲特性：
*決策：個本模型入便嘅個體，識得各自噉做資訊處理，再按某啲法則做獨自決策，啲個體識得做（例如）「如果聽到火警鐘聲就疏散，否則繼續做自己嘢」噉樣嘅決策，或者係按預期效用理論做嘅決策呀噉；進階嘅模型仲可以教啲個體跟更複雜嘅法則行事，例子可以睇吓電子遊戲人工智能方面嘅內容；
*個體差異：個本模型入便嘅個體可以好似現實世界嘅生物噉有個體差異－喺現實世界，人之間可以喺好多方面有差異，例如模擬火燭嗰陣，研究者可以設成唔同人行路速度唔同，而模擬火燭嘅模型需要考慮埋呢點，思考「多數人嘅行路速度最低係 x 咁多，但如果有啲人（因為殘障等嘅原因）行路速度慢過呢個數值，佢哋嚟唔嚟得切疏散呢？」。
*學習能力：個本模型中嘅個體，可以好似現實嘅生物噉識得學習，譬如假設某個個體從來未學過有關火警鐘嘅嘢，例如想像幼稚園嘅小朋友，佢可能唔知聽到火警鐘響就要疏散，而模擬火燭嘅個本模型有陣時要考慮埋啲人係咪個個都識火警鐘表示乜嘢。詳情可以睇睇複雜適應系統嘅概念。
等等。假如研究者行咗個本模型，發現個模型能夠產生出實證上觀察到嘅規律，就可以提出話自己個模型可以用嚟解釋研究緊嘅現象。

### 思考因果

假如一個學科研究嘅係複雜系統，確定現象之間嘅因果關係往往唔容易。噉係因為呢啲系統之中唔同嘅因素會互相影響，啲關係唔成線性，而且仲可能會有混沌嘅情況出現。研究者唔可以淨係睇住一兩個變數間嘅關係，就能夠清楚講清係邊個影響緊邊個。就算數據上見到有相關都唔等於有因果關係。生物學以至社會科學，都成日要面對呢種問題。

响呢種情況之下，好似個本模型噉嘅電腦模擬方法就好有用。個本模型會模擬大量虛擬嘅個體，每個個體都會跟簡單嘅規則行事，然後研究者就睇整體現象會點樣演化。假想研究者由反事實角度嚟理解因果，反事實因果觀係對因果關係嘅其中一派理解，佢哋最基本嗰個諗法如下：
*如果話 A 係 B 嘅成因（A **導致** B），意思即係話
*如果 A 冇發生，B 就唔會發生。
呢種諗法喺哲學、心理學、經濟學甚至公共衛生研究入便都好常見。而個本模型就可以提供有力見解：個本模型可以模擬只改變一個因素嗰時，系統會出現咩變化，相當於構造反事實場景。因此，個本模型最低限度可以用嚟做輔助證據，支撐嚟自其他來源嘅因果證據。

個本模型能夠提供有關因果嘅資訊，因而可以協助政策同干預措施嘅制定。研究者首先要建立模型：例如佢哋可以收集現實世界嘅數據，例如係嚟自問卷調查或者臨床試驗等研究嘅數據；然後佢哋用迴歸分析等嘅方法搵出變數間嘅關係，用所得嘅知識建立模型，模型入便嘅個體會按照呢啲關係反映嘅法則行動。建立咗模型之後，研究者就可以開始進行虛擬實驗。佢哋可以測試唔同嘅干預措施（郁手改變參數嘅值）而假設模型係正確嘅，呢種測試就會話到俾研究者知，唔同嘅干預措施會造成乜嘢影響。於是制定政策嘅人做決策嗰陣，就可以運用呢種模擬，幫手預測唔同政策嘅成效。

### 協助抽象化

有學者討論可以想像成個本模型嘅系統，預測高層現象往往唔使考慮基層現象：高層現象創發自基層現象，但好多時就算唔理基層個體嘅細節，都可以齋靠整體（高層）特性嚟預測系統整體嘅行為；譬如要理解電子電腦點樣執行電腦程式，呢啲電腦嘅內部運算必定涉及微弱電流（電子嘅流動）但係研究者就算唔考慮個別電子嘅移動軌跡，都理解到部電腦整體嘅行為，甚至根本唔使明呢啲電子學原理。因此個本模型描述嗰種創發強調咗一點，思考者分析系統嗰陣可以忽略好多不必要嘅細節。例如有學者就噉講：

又例如分析氣體嘅壓力嗰陣，唔使考慮個別分子嘅特性（物理學），或者分析經濟體中唔同企業嘅互動，往往可以忽略個別員工嘅特性（經濟學）－好多唔同領域都可以用到呢種思考方式。

順帶一提，有學者指呢點可以用嚟為自由意志作出辯護：有啲思想家提倡硬性嘅還原論，話人腦做親啲乜都係完全由原子同分子掌控嘅，因此人並冇自由意志；但係假設意識、信念同思緒等嘅心靈狀態係由組成腦嘅原子同分子間互動創發出嚟嘅，就表示呢啲心靈狀態無需靠呢啲粒子層面現象嚟解釋，噉呢種還原論觀點就可以輕易推翻。

## 模型評估

建立咗個本模型，就可以郁手做**驗證**（參照）同**確認**（參照）。驗證係想講寫咗出嚟嘅源碼有冇正確噉表達設計師心目中嗰個概念模型，而確認就係講緊個模型出嘅結果，有冇正確噉反映現實。

譬如而家要用個本模型，模擬狼同綿羊之間嘅獵食者與獵物關係。模型整好咗，開始行之後，就可以
*用各種嘅描述統計去概括個模型出嘅數，當中描述統計可以係各變數嘅平均值、變異數（例如狼同羊分別嘅平均數量）呀噉；
*畫趨勢圖（或者其他統計圖），清楚展示唔同變數隨時間嘅變化，就好似時間序列噉；
*進一步嚟講，仲可以用迴歸模型，檢視模型裡便唔同變數之間嘅關係。
靠住呢啲工具，研究者可以得知個模型出嘅數據係點嘅樣，然後佢就可以校正個模型嘅參數，目的係令到誤差函數有咁細得咁細。





有學者喺二〇一一年撰文，講到以下呢啲確認個本模型嘅方法：
*微表面確認：檢查模型裡便每個元件係咪對應現實世界嘅物件。
*宏表面確認：睇模型入面嘅整體過程同規律有冇「表面上」同現實世界嘅相似。
*數據：確保模型用嘅數據係正確嘅，亦要睇吓模型出嘅數據同喺現實世界搵到嘅吻合與否。
*交叉驗證：攞個模型去同一啲已知係準嘅舊模型做比較。
順帶一提，呢個過程有可能用到 debugging 嘅技巧，因為如果個程式寫錯，模型即使概念上啱，實際行出嚟都會有偏差，過唔到驗證工序。

## 模型製作

要編寫個本模型，有多種工具可用。

例如 NetLogo（）就係專門用嚟造個本模型嘅軟件，而且唔使俾錢都可以下載嚟用。NetLogo 有圖像用家介面，同時內建咗特製嘅 NetLogo 程式語言，用嚟描述個本模型中嘅個體嘅行為規則，模型寫好咗就可以即時視覺化。呢隻軟件被指係好易用，就算係編程新手都可以好快學識。除此之外，編寫個本模型仲可以用 Python 等嘅泛用程式語言以至用嚟製作遊戲嘅遊戲引擎。

好似 NetLogo 同 Python 等多人用嘅工具，都有好多現成嘅模型可以用嚟做原本以外嘅用途。想用個本模型嘅研究者，可以靈活改裝配合唔同需要，無需吓吓都由頭編寫自己嘅模型。

設計個本模型嘅時候，可以採用兩種唔同策略：自頂向下同自底向上。自頂向下嘅方法係由整體系統嘅行為做思考嘅出發點，預先知道整體想呈現咩規律或者趨勢，然後先設計每個個體嘅行為規則，務求令大量個體互動後產生預期嘅系統行為；相對嚟講，自底向上係由每個個體嘅行為規則出發，逐步觀察大量個體喺互動過程中會產生咩樣嘅整體結果，研究過程比較傾向探索性質，即係未必會事先作出假說，唔會斷言話預期個模型會出現乜嘢規律。

## 優缺點

個本模型嘅優點（尤其係對比方程為本模型）：
*個本模型其中一個強項，就係能夠考慮個體之間有差異，而呢點係齋靠數學方程式嘅模型難以做到嘅；尤其係社會科學上嘅模型係研究人類，就必定要考慮性格以及其他個體特性嘅影響，事實係社科上嘅個本模型成日都會配合性格心理學方面嘅知識嚟用。
*唔需要事先知道高層整體嘅現象或特性，可以睇到整體現象點樣由基層互動度創發出嚟。
*可以輕易喺模型中加入隨機性。
*實際模擬個體會較真實，唔似得基於方程嘅模型噉當正個體數量係連續變數；例如用方程為本模型模擬生態系統，可以出現「納狼」，即係個模型可能會出噉嘅結果－「呢個狼種群，仲有 0.001 個個體淨，佢哋嘅數目仍然有可能恢復」－但係喺現實，行有性繁殖嘅物種假如個體數量少過兩個，就等如絕咗種；相比之下個本模型就冇納狼呢種問題。
*可以輕易模擬地理因素嘅影響。

個本模型嘅缺點：
*運算複雜度偏高，個體數量大嗰陣要計好耐先計到結果。
*要求研究者事先知道個體層面現象係點運作嘅，呢點有時未必成立。
*個本模型好多時帶有隨機性。因為噉，每次行個模型結果都會有些少唔同咗，引起有關再現能力嘅隱憂。雖然研究者可以同一個模型行好幾次，但原則上仍然唔可以 100% 肯定出嘅結果真係個模型會做嘅平均預測。
等等。

用技術化嘅用語講：假如個體行為有返咁上下複雜、結合性質嘅數據無法清楚界定個體行為，又或者假如研究緊嘅現象比較適合描述成**活動**而非**過程**，個本模型就好可能會比一般嘅理論模型更啱用。

## 人工智能
相關嘅人工智能概念：
*智能體同效益
*多智能體系統
*遺傳算法
*群體智能
*人工生命
等等。

## 睇埋
*羅拔阿塞羅德
*社會網絡分析
*空間分析
*粒子系統
*模擬遊戲
*分散運算

## 文獻
歐美文獻：

*Bazzan, A. L., & Klügl, F. (2014). A review on agent-based technology for traffic and transportation. *The Knowledge Engineering Review*, 29(3), 375-403，呢篇綜述文講有關「用 ABM 分析交通現象」嘅研究。
*Bonabeau, E. (2002). Agent-based modeling: Methods and techniques for simulating human systems. *Proceedings of the national academy of sciences*, 99(suppl_3), 7280-7287.
*Carley, Kathleen M. "Smart Agents and Organizations of the Future". In Lievrouw, Leah; Livingstone, Sonia (eds.). *Handbook of New Media*. Thousand Oaks, CA: Sage. pp. 206-220.
*Crooks, A. T., & Heppenstall, A. J. (2012). Introduction to agent-based modelling (PDF). In *Agent-based models of geographical systems* (pp. 85-105). Springer, Dordrecht，呢篇文由地理學嘅角度介紹 ABM 嘅基礎。
*DeAngelis, D. L., & Diaz, S. G. (2019). Decision-making in agent-based modeling: A current review and future prospectus. *Frontiers in Ecology and Evolution*, 6, 237.
*Di Clemente, R., & Pietronero, L. (2012). Statistical agent based modelization of the phenomenon of drug abuse. *Scientific Reports*, 2(1), 532，分析物質濫用行為嘅 ABM。
*Grether, D., Fürbas, S., & Nagel, K. (2013). Agent-based modelling and simulation of air transport technology. *Procedia Computer Science*, 19, 821-828.
*Kiesling, E., Günther, M., Stummer, C., & Wakolbinger, L. M. (2012). Agent-based simulation of innovation diffusion: a review (PDF). *Central European Journal of Operations Research*, 20(2), 183-230，呢篇文講用 ABM 剖析創新滲透嘅現象。
*Naldi, G., Pareschi, L., & Toscani, G. (Eds.). (2010). *Mathematical modeling of collective behavior in socio-economic and life sciences*. Springer Science & Business Media.
*O'Sullivan, D., & Haklay, M. (2000). Agent-based models and individualism: is the world agent-based? (PDF). *Environment and Planning A*, 32(8), 1409-1425.
*Rand, W., & Rust, R. T. (2011). Agent-based modeling in marketing: Guidelines for rigor. *International Journal of research in Marketing*, 28(3), 181-193，呢篇文提供咗一系列嘅 guideline 教市場學研究者點樣正確使用 ABM。
*Resnick, M. (1996). Beyond the centralized mindset. *The journal of the learning sciences*, 5(1), 1-22，呢篇文討論一種現象，就係好多人都理解唔到個體各自行動可以引致整體規律。當中講到呢句："In trying to understand patterns in the world, people often assume centralized control where none exists (e.g., assuming that a "leader bird" guides the rest of the flock)."
*Valogianni, K., & Padmanabhan, B. (2022, July). Causal abms: Learning plausible causal models using agent-based modeling. In *The KDD'22 Workshop on Causal Discovery* (pp. 3-29). PMLR，呢篇文提到運用遺傳演算法嚟逐步改良手上嘅個本模型。
*Wilensky, U., & Rand, W. (2015). *An introduction to agent-based modeling: modeling natural, social, and engineered complex systems with NetLogo*. MIT press，以學生為對象嘅教科書，教用 NetLogo 嚟行 ABM。

## 參考
註解：

篇文用咗嘅行話或者專有名詞，英文名如下：

篇文引用咗以下呢啲文獻同網頁：

## 拎

公開模型：
* Multi-agent Meeting Scheduling System Model（譯：多個體約時間開會系統）
* Multi-firm market simulation（譯：多公司市場模擬）

其他資源：
* 用個體為本模型模擬嚟應對社會面對嘅挑戰，香港大學
* NetLogo，用嚟整個本模型嘅工具，唔使俾錢都用得。
* 社會網絡嘅個本模型，java applets
* 反事實考量嘅因果概念，史丹福哲學百科全書：呢度講到反事實因果觀，可以用嚟思考複雜系統下嘅因果關係。