Xét một mạng Bayes dạng chuỗi (chain) gồm ba biến ngẫu nhiên rời rạc A→B→C, nghĩa là C phụ thuộc B, B phụ thuộc A, và C độc lập có điều kiện với A khi biết B: P(C∣A,B)=P(C∣B).
Quan sát được C=c (một giá trị cụ thể, 1≤c≤l). Hãy tính xác suất hậu nghiệm P(A=i∣C=c) với mọi i=1,…,m, bằng cách suy luận chính xác (exact inference), lấy tổng (marginalize) qua biến ẩn B:
P(C=c∣A=i)=∑j=1kP(B=j∣A=i)⋅P(C=c∣B=j),P(A=i∣C=c)=∑i′=1mP(A=i′)⋅P(C=c∣A=i′)P(A=i)⋅P(C=c∣A=i).
Đảm bảo tổng ở mẫu số (xác suất của bằng chứng C=c) luôn dương.
Ví dụ: m=2,k=2,l=2; P(A)=(0.5,0.5); P(B∣A=1)=(0.8,0.2), P(B∣A=2)=(0.3,0.7); P(C∣B=1)=(0.9,0.1), P(C∣B=2)=(0.2,0.8); quan sát C=1. Kết quả: P(A=1∣C=1)≈0.649573, P(A=2∣C=1)≈0.350427.
Dòng đầu tiên chứa ba số nguyên m k l (1≤m,k,l≤200).
Dòng thứ hai chứa m số thực — phân phối tiên nghiệm P(A=1),…,P(A=m).
m dòng tiếp theo, dòng thứ i chứa k số thực — hàng i của bảng P(B=⋅∣A=i).
k dòng tiếp theo, dòng thứ j chứa l số thực — hàng j của bảng P(C=⋅∣B=j).
Dòng cuối cùng chứa số nguyên c (1≤c≤l) — giá trị quan sát được của C.
In ra m số thực trên một dòng, cách nhau bởi một khoảng trắng: P(A=1∣C=c),…,P(A=m∣C=c), mỗi số làm tròn tới đúng 6 chữ số thập phân.
Ví dụ:
Đầu vào:
2 2 2
0.5 0.5
0.8 0.2
0.3 0.7
0.9 0.1
0.2 0.8
1
Đầu ra:
0.649573 0.350427
Đầu vào:
3 2 3
0.2 0.3 0.5
0.7 0.3
0.4 0.6
0.5 0.5
0.1 0.5 0.4
0.4 0.3 0.3
2
Đầu ra:
0.218905 0.283582 0.497512
Đang tải editor...