令Q={Q1,Q2,Q3……Qn}表示待查詢的變量,E={E1,E2,E3……En}為證據變量,已知其取值為e={e1,e2,e3……ek}。目標是計算后驗概率P={Q = q | E = e},其中q={q1,q2,q3……qn}是待查詢變量的一組取值。以西瓜問題為例,待查詢變量為Q={好瓜,甜度},證據變量E={色澤,敲聲,根蒂}并且已經知道甜度為e={親綠,濁響,蜷縮},查詢的目標值是q={是,高},即這是好瓜并且甜度高的概率有多少
輸入:貝葉斯網 B={G,誰他}采樣次數 T證據變量 E 以及取值 e待查詢的變量 Q 以及 取值q過程:nq=0q0對Q隨機賦予初始值for t =1,2……T dofor Qi 屬于 Q doZ = E ∪ Q \ {Qi}z = e ∪ q^(t-1) \{qi(t-1)}根據 B 計算分布 PB(Qi | Z =z)qit = 根據 PB(Qi | Z =z)采樣所獲得Qi取值qt = 將q^(t-1) 中的 qi(t-1) 用 qi(t)代替end forif q^t =q thennp=np+1end if end for
輸出:P( Q =q | E = e)= nq / T
吉布斯采樣算法先隨機產生一個與證據 E= e 一致的樣本 q0 作為初始點,然后每部從當前樣本出發產生下一個樣本。具體來說,在第t次的采樣中,算法先假設 q^t = q^(t-1),然后對非證據變量逐個進行采樣來改變其取值,采樣概率根據貝葉斯網路B 和其他變量的當前取值(Z = z))進行計算獲得,假設經過 T 次采樣得到與 q一致的樣本共有n q個,則可以近似的估算出 后驗概率
P (Q = q | E = e) = nq / T
實質上,吉布斯采樣是在貝葉斯網所有變量的聯合狀態空間與證據 E =e一致的子空間的隨機漫步,每一步僅僅依賴于前一步的狀態,這是一個馬爾科夫鏈。在一定的條件下,無論從什么初始狀態開始,馬爾可夫鏈第t步的狀態分布在 t -> ∞ 必定收斂于一個平穩分布,對于吉布斯采樣來說,這個分布恰好是 P(Q | E = e)。因此,當T 很大的時候,吉布斯采樣相當于是根據 P(Q | E = e)采樣,從而保證了 P(Q =q | E= e)收斂于nq / T