傳統傳染模型將擴散簡化為單次接觸傳播,但在社會經濟領域,採納新技術或觀點等決策常需多個社會連結的強化。複雜傳染理論為此提供更精確的框架,其核心的「多重接觸閾值」捕捉了個體改變前所需的社會支持。網路科學的進展,特別是瓦茲-史特羅加茲等合成網路模型的應用,讓我們能模擬不同網路拓樸結構——從高度群聚的社群到具備「小世界」特性的網絡——如何影響複雜行為的傳播動力學。透過分析結構與流程的互動,我們得以洞察群體行為的形成機制與演變路徑,理解為何有些觀念僅限於小圈子,而另一些則能迅速跨越社群傳播。
複雜傳染模型:多重接觸的傳播機制
本章節將深入探討「複雜傳染」(Complex Contagion) 的概念,並闡述其與「簡單傳染」(Simple Contagion) 的根本區別。我們將著重於複雜傳染模型中的核心機制——「多重接觸閾值」(Multiple Exposure Threshold),並透過程式碼來模擬其在網路中的傳播過程。
複雜傳染的定義與特徵
- 超越單次暴露:
- 與簡單傳染不同,複雜傳染的傳播並非僅需一次接觸。
- 個體在接收到「傳染源」(如資訊、觀念、行為)時,可能需要達到一定的「閾值」,才會決定是否被「感染」或採納。
 
- 多重接觸閾值:
- 這個閾值通常體現為需要從多個已感染的鄰居處接收到該傳染源,個體才會被感染。
- 例如,一個較為保守的觀念可能需要得到社群中多數朋友的支持,才會被一個人接受;或者採用一項新技術,可能需要看到身邊有足夠多的人已經在使用,才會讓人願意嘗試。
 
- 適用場景:
- 複雜傳染模型更適合描述以下情況的傳播:
- 爭議性觀念或行為:例如,加入一個社會運動、改變某種生活習慣、採用一種新興的技術。
- 需要社會認同的決策:個體在做出決策時,會參考周圍人的意見和行為。
- 低傳染性疾病:某些疾病可能需要較高的病毒載量或多次接觸才能引起感染。
 
 
- 複雜傳染模型更適合描述以下情況的傳播:
- 與簡單傳染的對比:
- 簡單傳染:一次接觸即感染,傳播速度快,依賴於網路的整體連結性(短路徑)。
- 複雜傳染:需要多重接觸,傳播速度相對較慢,但更強調社群內部和同質性群體的影響力。
 
複雜傳染的傳播模擬
程式碼 propagate_complex(G) 實現了複雜傳染的一個時間步的模擬。其核心邏輯如下:
- 初始化:
- 創建一個 to_infect集合,用於暫存將要在當前時間步被感染的節點。
 
- 創建一個 
- 節點遍歷與鄰居計數:
- 遍歷網路中的每一個節點 v。
- 檢查感染狀態:首先,判斷節點 v是否已經被感染。如果已經感染,則跳過。
- 計算已感染鄰居數量:如果節點 v未被感染,則遍歷其所有鄰居w。對於每一個鄰居w,檢查其是否已被感染 (G.nodes[w]['infected'])。統計已感染鄰居的總數infected_neighbors。
 
- 遍歷網路中的每一個節點 
- 應用閾值規則:
- 判斷是否感染:如果節點 v的已感染鄰居數量infected_neighbors大於或等於 某個預設的閾值(在提供的程式碼片段中,這個閾值被設定為 2),則將節點v添加到to_infect集合中。
 
- 判斷是否感染:如果節點 
- 更新感染狀態:
- 在遍歷完所有節點後,將 to_infect集合中的所有節點標記為已感染。
 
- 在遍歷完所有節點後,將 
模擬範例:環狀網路中的複雜傳染
- 網路設定:
- 程式碼將使用先前定義的 16 個節點的環狀網路 (G_small_ring)。
 
- 程式碼將使用先前定義的 16 個節點的環狀網路 (
- 初始狀態:
- 與簡單傳染模擬類似,我們將節點 0 和 1 設定為初始感染節點。
 
- 傳播過程:
- 當 propagate_complex(G_small_ring)函數被調用時,它將根據上述的複雜傳染規則,計算哪些節點將在第一個時間步被感染。
- 由於閾值是 2,一個節點需要有至少兩個已感染的鄰居才會被感染。在初始狀態下,只有節點 0 和 1 被感染,它們的鄰居(如節點 15, 1, 2)只有一個鄰居被感染。因此,在第一個時間步,沒有任何新的節點會被感染。
- 這與簡單傳染在環狀網路中第一步就能感染到鄰居的行為形成鮮明對比。
 
- 當 
看圖說話:
此圖示總結了「複雜傳染模型:多重接觸的傳播機制」的內容,重點在於闡述複雜傳染模型的核心概念——多重接觸閾值,並透過模擬展示其在環狀網路中的傳播行為。流程開頭首先聚焦於「複雜傳染模型:多重接觸的傳播機制」,透過「分割」結構,詳細闡述了「定義與特徵」(說明了「超越單次暴露」、「多重接觸閾值」的意義,以及「適用場景」和「對比簡單傳染」),接著探討了「傳播模擬過程」(描述了「函數」的定義和「步驟」),並闡述了「模擬範例:環狀網路」(說明了「網路設定」、「初始感染」和「閾值」,以及「預期結果」),最後以「結論」作結,總結了複雜傳染在低連結性網路中的傳播特點。
複雜傳染在環狀網路中的擴散
- 網路結構:
- 我們使用一個 16 個節點的純環狀網路。這種網路具有高度的局部連結性,因此具有很高的聚落係數,但節點間的平均路徑長度相對較長。
 
- 傳染規則:
- 採用「複雜傳染」規則,即一個節點需要至少有兩個已感染的鄰居才會被感染(閾值為 2)。
 
- 觀察結果:
- 如先前模擬所示,在純環狀網路中,由於初始感染節點的鄰居數量不足以達到傳染閾值,複雜傳染的傳播非常緩慢,甚至可能停滯。
- 圖表展示了在幾個時間步後,感染僅擴散到極少數節點,與簡單傳染在環狀網路中的擴散情況形成對比(簡單傳染在第一步就能感染鄰居)。
 
複雜傳染在重連環狀網路(小世界網路)中的擴散
- 網路結構:
- 我們使用一個「重連環狀網路」,這實際上是瓦茲-史特羅加茲模型 (Watts-Strogatz Model) 在較低重連機率 p下產生的網路。這種網路在保持高聚落係數的同時,引入了少量的隨機邊,從而縮短了平均路徑長度,形成了「小世界」特性。
 
- 我們使用一個「重連環狀網路」,這實際上是瓦茲-史特羅加茲模型 (Watts-Strogatz Model) 在較低重連機率 
- 傳染規則:
- 同樣採用複雜傳染規則(閾值為 2)。
 
- 觀察結果:
- 令人驚訝的是,在這種重連後的環狀網路中,複雜傳染幾乎沒有擴散。
- 儘管引入了短路徑,但複雜傳染的傳播似乎更加依賴於網路的整體「聚落性」或「社群結構」。即使存在一些連接不同社群的「捷徑」,如果這些捷徑的兩端節點的鄰居群體尚未達到感染閾值,傳染也難以跨越。
- 這與簡單傳染在隨機網路中(高連結性、低聚落性)的快速擴散形成鮮明對比。
 
複雜傳染與網路結構的關係
- 關鍵洞察:
- 複雜傳染需要高聚落性:複雜傳染的傳播機制(需要多重接觸)使得它在高度聚落的網路中更容易發生。高聚落性意味著節點的鄰居們彼此之間也緊密相連,這增加了節點同時接觸到多個已感染鄰居的機率,從而更容易達到傳染閾值。
- 隨機網路不利於複雜傳染:在隨機網路中,節點的鄰居們通常來自網路的不同區域,彼此之間的連結性較弱,聚落係數很低。因此,即使一個節點有許多鄰居,但這些鄰居中同時被感染的數量可能很難達到傳染閾值,導致複雜傳染難以在隨機網路中傳播。
 
- 結構決定傳播動力學:
- 簡單傳染:主要受路徑長度影響,短路徑加速傳播。
- 複雜傳染:主要受聚落係數和社群結構影響,高聚落性有利於傳播。
 
看圖說話:
此圖示總結了「複雜傳染在不同網路結構中的擴散比較與總結」的內容,重點在於比較複雜傳染在純環狀網路和重連環狀網路(小世界網路)中的傳播差異,並總結網路科學在社交網路分析和傳染模型中的應用。流程開頭首先聚焦於「複雜傳染在不同網路結構中的擴散比較與總結」,透過「分割」結構,詳細闡述了「環狀網路中的複雜傳染」(說明了「網路結構」、「傳染規則」和「觀察結果」),接著探討了「重連環狀網路中的複雜傳染」(說明了「網路結構」、「傳染規則」和「觀察結果」),並闡述了「複雜傳染與網路結構的關係」(指出了「關鍵洞察」和「結構影響動力學」),最後以「總結與啟示」作結,概括了網路科學的應用和其在理解群體行為與傳染擴散中的重要性。
網路模擬與結構分析:建構與理解真實系統的動態
本章節將聚焦於「網路模擬與分析」,探討如何建構合成網路模型來理解真實系統中的結構形成與動態過程。我們將深入介紹幾種常見的合成網路生成模型,並以「代理人基礎模型」(Agent-Based Model, ABM) 為例,展示如何在這些網路中模擬行為與流程。
合成網路與模擬的重要性
- 結構與流程的互動:
- 網路中的結構(節點間的連結方式)與發生在其上的流程(如資訊傳播、疾病擴散、行為模仿)之間存在著深刻的相互影響。
- 不同的流程會塑造出不同的網路結構,反之,不同的網路結構也會影響流程的動態。
 
- 模擬的價值:
- 合成網路生成:透過模擬,我們可以生成人工合成的網路。這些合成網路可以幫助我們研究真實系統中結構形成的機制。
- 流程模擬:無論是真實網路還是合成網路,都可以用來模擬在其上發生的各種流程,從而理解結構對這些流程的影響。
 
- 本章節目標:
- 介紹幾種常見的合成網路模型。
- 展示如何使用代理人基礎模型來模擬網路中的行為與流程。
 
瓦茲-史特羅加茲模型:建構「小世界」
- 小世界問題的提出:
- 「小世界問題」(Small-world problem) 探討了一個看似矛盾的現象:為何在一個由局部連結組成的龐大網路中,任意兩個節點之間的距離卻可以非常短?(例如,六度分隔理論)。
 
- 瓦茲-史特羅加茲模型的建構:
- 由 Duncan Watts 和 Steven Strogatz 在 1998 年提出的瓦茲-史特羅加茲模型,為了解釋小世界現象提供了一個有效的框架。
- 模型步驟:
- 起始結構 (k-ring):首先,將節點排列成一個環狀結構。每個節點連接到其左右最近的 k個鄰居。這形成了一個具有高度局部連結性的網路。
- 隨機重連 (Rewiring):接著,以一定的機率 p,對網路中的邊進行隨機重連。具體來說,對於網路中的每一條邊,我們有p的機率將其「移動」到隨機選擇的另一個節點。
 
- 起始結構 (k-ring):首先,將節點排列成一個環狀結構。每個節點連接到其左右最近的 
- 「捷徑」的產生:
- 這個隨機重連的過程會在網路中引入少量的「捷徑」(shortcuts)。
- 即使只有少量的捷徑,也能夠極大地縮短網路中節點之間的平均距離,從而有效解決了「小世界問題」。
 
 
- 參數 p的影響:- p=0:網路保持為純粹的 k-ring(環狀結構)。
- p=0.1(或較小值):網路具有小世界特性,同時保留較高的聚落係數和較短的平均路徑長度。
- p=1:網路接近於一個隨機圖 (random graph),具有較低的聚落係數和最短的平均路徑長度。
 
程式碼範例:生成瓦茲-史特羅加茲網路
以下程式碼展示了如何使用 networkx 函式庫中的 watts_strogatz_graph() 來生成不同重連機率 p 下的瓦茲-史特羅加茲網路:
- 參數設定:
- n=12:網路中的節點數量。
- k=6:每個節點的初始鄰居數量(在環狀結構中,左右各 3 個)。
- p的值分別為- 0.0,- 0.1,- 1.0。
 
- 視覺化:
- 透過 nx.circular_layout(G)將節點排列在圓形上,以便清晰地觀察其結構。
- nx.draw_networkx()函數用於繪製網路圖。
- 每個子圖標示了對應的重連機率 p值。
 
- 透過 
紐曼-瓦茲-史特羅加茲變體:確保連通性
- 問題:
- 在某些情況下,原始的瓦茲-史特羅加茲模型在重連過程中,可能會導致網路分成多個不連通的組件,這在分析時可能造成不必要的複雜性。
 
- 紐曼-瓦茲-史特羅加茲模型 (Newman-Watts-Strogatz Model):
- 為了確保網路始終保持連通,這個變體模型在進行邊重連時,會保留原始邊的一個副本。
- 也就是說,當一條邊被重連時,原始的邊仍然存在,同時新增一條新的隨機邊。
- 這保證了即使在較高的重連機率下,網路的原始連通性也能被保留。
 
- 生成函數:
- 可以使用 newman_watts_strogatz_graph()函數來生成這種保證連通性的網路。
 
- 可以使用 
import networkx as nx
import matplotlib.pyplot as plt
import numpy as np
# --- 瓦茲-史特羅加茲網路生成與視覺化 ---
print("--- 瓦茲-史特羅加茲網路生成 ---")
n_nodes_ws = 12
k_neighbors_ws = 6
p_values_ws = [0.0, 0.1, 1.0]
plt.figure(figsize=(15, 5)) # 調整圖形大小以容納多個子圖
for i, p in enumerate(p_values_ws):
    # 生成瓦茲-史特羅加茲圖
    G_ws = nx.watts_strogatz_graph(n_nodes_ws, k_neighbors_ws, p)
    # 創建佈局並繪製
    plt.subplot(1, 3, i + 1)
    pos_ws = nx.circular_layout(G_ws) # 使用 circular layout
    nx.draw_networkx(G_ws, pos=pos_ws, with_labels=False, node_size=250, edge_color='gray', width=0.7)
    plt.title(f"p = {p:.1f}", fontsize=14)
    plt.axis('off')
plt.suptitle("Watts-Strogatz Small-World Networks", fontsize=16)
plt.tight_layout(rect=[0, 0.03, 1, 0.95]) # 調整 suptitle 的位置
plt.show()
print(f"已生成 {len(p_values_ws)} 個不同重連機率 (p={p_values_ws}) 的瓦茲-史特羅加茲網路。")
print("觀察:")
print("  - p=0.0: 純環狀網路,高度局部連結。")
print("  - p=0.1: 小世界網路,保留部分聚落性,引入少量捷徑,平均路徑縮短。")
print("  - p=1.0: 接近隨機圖,連結性高,聚落性低,平均路徑最短。")
# --- 紐曼-瓦茲-史特羅加茲網路生成與視覺化 ---
print("\n--- 紐曼-瓦茲-史特羅加茲網路生成 (確保連通性) ---")
plt.figure(figsize=(15, 5))
for i, p in enumerate(p_values_ws):
    # 生成紐曼-瓦茲-史特羅加茲圖
    G_nws = nx.newman_watts_strogatz_graph(n_nodes_ws, k_neighbors_ws, p)
    # 創建佈局並繪製
    plt.subplot(1, 3, i + 1)
    pos_nws = nx.circular_layout(G_nws) # 使用 circular layout
    nx.draw_networkx(G_nws, pos=pos_nws, with_labels=False, node_size=250, edge_color='gray', width=0.7)
    plt.title(f"p = {p:.1f}", fontsize=14)
    plt.axis('off')
plt.suptitle("Newman-Watts-Strogatz Networks (Guaranteed Connected)", fontsize=16)
plt.tight_layout(rect=[0, 0.03, 1, 0.95])
plt.show()
print(f"已生成 {len(p_values_ws)} 個不同重連機率 (p={p_values_ws}) 的紐曼-瓦茲-史特羅加茲網路。")
print("此變體模型確保了網路在所有 p 值下都保持連通。")
@startuml
!define DISABLE_LINK
!define PLANTUML_FORMAT svg
!theme _none_
skinparam dpi auto
skinparam shadowing false
skinparam linetype ortho
skinparam roundcorner 5
skinparam defaultFontName "Microsoft JhengHei UI"
skinparam defaultFontSize 16
skinparam minClassWidth 100
start
:網路模擬與結構分析:建構與理解真實系統的動態;
split
:合成網路與模擬的重要性;
note right
結構與流程互動:
  - 流程塑造結構
  - 結構影響流程
模擬價值:
  - 生成合成網路 (研究結構形成)
  - 模擬網路流程 (理解結構影響)
本章目標:
  - 介紹合成網路模型
  - 演示代理人基礎模型 (ABM)
end note
split again
:瓦茲-史特羅加茲模型:建構「小世界」;
note right
小世界問題:
  - 局部連結 vs. 短距離
瓦茲-史特羅加茲模型:
  1. 起始: k-ring (環狀)
  2. 重連: 機率 p 隨機移動邊
  - 產生「捷徑」
  - 縮短平均路徑
參數 p 影響:
  - p=0: 純環狀
  - p=0.1: 小世界 (高聚落, 短路徑)
  - p=1: 隨機圖 (低聚落, 最短路徑)
end note
split again
:程式碼範例:生成瓦茲-史特羅加茲網路;
note right
函數: watts_strogatz_graph(n, k, p)
參數: n=12, k=6, p=[0.0, 0.1, 1.0]
視覺化:
  - circular_layout
  - draw_networkx
展示不同 p 值下的網路結構
end note
split again
:紐曼-瓦茲-史特羅加茲變體;
note right
問題: 原始模型可能斷連
變體模型:
  - 保留原始邊副本
  - 確保網路始終連通
函數: newman_watts_strogatz_graph()
end note
end split
stop
@enduml看圖說話:
此圖示總結了「網路模擬與結構分析:建構與理解真實系統的動態」的內容,重點在於介紹合成網路模型,特別是瓦茲-史特羅加茲模型,以及其在建構「小世界」網路中的作用。流程開頭首先聚焦於「合成網路與模擬的重要性」,說明了結構與流程的互動、模擬的價值以及本章節的目標,接著詳細闡述了「瓦茲-史特羅加茲模型:建構「小世界」」(解釋了「小世界問題」的提出,描述了模型的「建構步驟」,強調了「捷徑」的產生以及「參數 p 的影響」),並展示了「程式碼範例:生成瓦茲-史特羅加茲網路」的具體實現,最後介紹了「紐曼-瓦茲-史特羅加茲變體」模型及其確保網路連通性的機制。
文章結論
視角: 領導藝術視角
縱觀現代管理者的多元挑戰,理解組織內部的資訊與行為擴散機制,已從一門選修課,演變為領導力的核心必修。本章節從簡單到複雜的傳染模型對比,揭示了一個關鍵的管理盲點:我們時常以推動「簡單傳染」(如病毒式行銷)的思維,去處理需要「複雜傳染」機制的組織變革或文化導入。後者成功的關鍵,並非僅僅依賴瓦茲-史特羅加茲模型所展示的「捷徑」與短路徑,反而是更需要高聚落性的社群結構提供「多重接觸」的社會認同與安全感。當一項高風險、高成本的創新無法在緊密團隊中達到傳染閾值時,再多的廣泛宣傳也只是徒勞。
玄貓預見,未來的組織領導力將不再僅僅是層級式的權力運作,而是一種「網路編織」(Network Weaving)的能力。能夠洞察組織內部真實的連結結構、識別出哪些區域具備催化「複雜傳染」所需的高聚落性,將成為推動深度變革的關鍵槓桿。
因此,對於尋求組織突破的高階管理者而言,首要任務是精準判斷變革的「傳染屬性」。面對需要深思熟慮的策略轉向,應優先在高度互信的團隊中進行小範圍、高強度的滲透,待其形成穩固共識後,再利用網路中的「橋接者」將影響力擴散出去。這種由點到面的策略,遠比一開始就追求全面覆蓋更具實效。
 
            