Mô tơ suy diễn InferenceEngine/ motor Bởi: Khoa công nghệ thông tin Đại học phương đông Nhập môn Động cơ, mô tơ hay máy suy diễn gồm 2 bộ phận chính: • Cơ chế suy diễn Processor gồm: • C
Trang 1Mô tơ suy diễn (Inference
Engine/ motor)
Bởi:
Khoa công nghệ thông tin Đại học phương đông
Nhập môn
Động cơ, mô tơ hay máy suy diễn gồm 2 bộ phận chính:
• Cơ chế suy diễn (Processor) gồm:
• Cơ chế cổ điển (control unit):
(nhìn thấy cái nào không cần thiết thì loại, xác định cái nào được chọn trước)
Phân rã CSTT
Trang 2• Đỉnh : tập các sự kiện
• Cung: (a,b)∈ A ⇔ ∃ r: left →b ∈ R ; a∈ left
D:
1 a → b
2 b → c
3 c → e
4 c → d
5 d ? e → f
6 b → h
7 f ? h → g
Tập sự kiện:
F = { a, b, c, d, e, f, g, h} tách ra hai sự kiện:
F1= { a, b, c} R1= { a → b, b → c}
F2= { e, d, f, g, h} R2= { d ? e →→ f, f ? h → → g}
R0= {c → e, c → d, b → h}
F0= {b, c, d, b, h}
Trang 3Đây là một cách phân rã CSTT eval({F1, F2}) min
Mô hình star
Nếu phân rã dựa trên tập luật làm gốc thì dẫn đến full condition
Phân rã theo tập sự kiện → hình sao
Mô tơ suy diễn
Suy diễn tiến, lùi (nhắc lại)
Suy diễn tiến ≡ tìm kiếm
1 a → b
2 b → c
3 c → e
4 c → d
5 d ? e → f
6 b → h
Trang 4SUY DIỄN TIẾN ĐỒ THỊ SUY DIỄN TIẾN
2 Thời gian (SK đã chứng minh) Nút
Thời gian → Thời gian {q} Thời gian (→r ) thờigian
r ∈ thỏa
Thời gian ⊇ KL
Nếu SDT theo vét cạn → độ phức tạp tương ứng với quá trình tìm kiếm trên đồ thị SD
CSD trên(vecan)≈ Ctìm kiếmVC = 0(BH)
B: Branching (độ phân nhánh) và H là chiều cao của cây
Trang 5Suy diễn lùi ≡ tìm kiếm
⇒ Suy diễn lùi ≡ tìm kiếm theo chiều sâu
CSDlùi≈ CTKsâu= 0 (BH')
Trong trường hợp suy diễn lùi mà có chu trình :
* Prolog
1 r1A ? B → c
2 r2A ? C → B
3 r3B ? C → A
4 r4a ? hc → A
5 r5b ? hc → A
GT = {a,b,hc}
KL = {c}
Chỉ số max:
Trang 6Chọn hướng SD
BT= max BT(GT, KL, R)
Giả thiết:
1 ước lượng BT
1 a ? b ? C → c
2 a ? b ? ma → c
3 a ? b ? mb → c
4 A ? B → C
5 a ? hc → B
6 b ? hc → A
7 a ? R → A
8 b ? R → B
9 a ? b →c P
10 a ? b ? c → P
11 a ? b ? c → mc
12 a ? ha → S
13 a ? b ? C → S
14 a ? b ? c ? P → S
15 b ? S → hb
16 S ? p → r
F1= {a, b, C} ⇒ R1= {r1, r2}
Trang 7F2= {a, b, ma} ⇒ R2= {r2}
F3= {a, b, mb} ⇒ R3= {r3}
F4= {A, B} ⇒ R4= {r4}
F5= {a, hc} ⇒ R5= {r5}
F6= {b, hc} ⇒ R6= {r6}
F7= {a, R} ⇒ R7= {r7}
F8= {b,R} ⇒ R8= {r8}
F9= {a, b, c, p} ⇒ R9= {r9, r10, r11, r14}
F10= {a, ha} ⇒ R10= {r12}
F11= {b, S} ⇒ R11= {r15}
F12= {S, p} ⇒ R12= {r16}
Ước lượng:
B
T
m= max (2, 1, 4) = 4
B T= 1612 = 1,33
• Ước lượng BL
c có 3 luật
Trang 8Luật (Meta Knowlegde)
1 If BT> BLThen chọn Lùi
2 If BT< BLThen chọn Tiến
3 If BT> BL#GT > # KL Then Chọn Lùi
#GT < KL Then Chọn Tiến
4 If user thích Then chọn
Chọn luật trong quá trình SD (Bài toán đụng độ luật - Rule Conflict)
Suy diễn tiến
Tại 1 thời điểm nào đó trong quá trình SD tiến chúng ta có thể dùng nhiều luật cùng một lúc:
TGian = {sự kiện f đã CM}; TG = {GT}
(Mở) THOẢ = {r: left → q/ left ∈ TGian} tập luật có thể áp dụng
(Đóng) VET = {r1… rk} tập những luật đã dùng
Khi # THOA 2 → chọn r∈thoả ?
Trang 9→ Độ phức tạp 0 (Bh)
→ Để chọn theo mềm dẻo hàm h ?(r) (heurestic)
→ Max/ min (extremum)
Đánh giá:
• # VET → min (càng ít càng tốt)
• Dư → min
(*)
Gt = {a, b, R}, KL = {p}
Nên theo CS Min VET = {r7, r8, r4, r1, r9, r10, r11} (2)
CS Max VET = {r8, r7, r4, r13, r11} (1)
FIFO VET = {r7r8r4r11r13r9r10r11} (3)
LIFO VET = {r8r7r4r13r15r1r9r10r11} (4)
Vậy có cách nào để Dư = 0 ?
• Đồ thị FPG (Fact Precedence Graph)
Sử dụng để miêu tả mối tương quan giữa điều này với điều khác
(*)
Trang 10◦ f g FPG thì f được dùng trực tiếp để suy ra G (r: left → g, f → left)
◦ Có đường đi P: f → …… → g thì được dùng gián tiếp để suy ra g
#VET +Complexity hˆ x m
Trang 11Trong đó R: Tập các đỉnh
A: là tập các cạnh sao cho:
Xây dựng đồ thị RPG cho ví dụ trên ta có:
RKL={r:left → q/q ∈ KL} ∈ R
Xét ví dụ sau:
GT={a b R}, KL={r}
Trang 12Suy diễn lùi
• Đồ thị FPG
Tình huống đụng độ khi suy diễn lùi:
Goal= Tập những sự kiện cần chứng minh; ban đầu Goal=KL
Xét f →Goal Có nhiều luật suy ra f Ta chọn luật bằng các thử sai và quay lui
Để tránh phải quay lui ta cần chọn luật như thế nào
Nhắc lại các cách chọn có quay lui:
GT={a b R}
{S}12,13,14←{a b c p} ←{a b mbp} ←……
Trang 13GT={a b R}, KL={S}
• Đồ thị RPG
RGT={r: left →q/left ∈GT}
GT={a b R} KL={S}
Trang 14Hạn chế các ứng viên trong quá trình suy diễn
Suy diễn tiến
Giả sử xét tại một thời điểm trong quá trình suy diễn :
Suy diễn lùi
Xét 1 sự kiện thuộc Goal
Kết luận: Nâng cao hiệu quả quá trình suy diễn
Biểu diễn TRI THỨC bằng LOGIC vị từ và SUY DIỄN
Luật riP1(…) P2(…) …… Pn(…) → q (…)
Các định lý hình học
Trang 15Suy diễn tiến
Giả thiết:
Kết luận { SS (PS, BC)
• B
1
': TG0= GT
THOA = {(r1,Φ1), (r1,Φ2), (r1,Φ3), (r1,Φ4)}
Φ1= {A/X; B/Y; C/Z; P/U; Q/V}
Φ2= {C/X; Q/Y; P/Z; E/U; J/V}
Φ3=
Trang 16Chọn (r1,Φ1)
TG1= TG0∪ {SS (UV, YZ),Φ1} = TG0∪ {SS (PQ, BC)}
• B
2
': TG1=
THOA = {(r1,Φ2), (r1,Φ3), (r1,Φ4)
…
Vấn đề: Làm như thế nào để xác định (ri,Φi)
Suy diễn lùi
Nói chung suy diễn tiến và suy diễn lùi đều giống như nhau trong logic mệnh đề vì đều
là quá trình hợp nhất (Unification)
Để rõ hơn ta hãy xét ví dụ sau:
Ta áp dụng thủ tục suy diễn lùi, nhưng co khó khăn là khi không tiếp tục được ta lại phải quay lui.Từ đây ta có thể đưa ra nhận xét sau:
Sự giống và khác nhau giữa suy diễn lùi của logic vị từ và suy diễn Prolog
• Giống nhau: cả trong prolog cvà logic vị từ đều có phép hợp nhất và quá trình thử sai
• Khác nhau: Tính chất trong prolog là chúng minh suy ra điều vô lý, còn suy diễn lùi là suy ra goal=0 Cơ chế của prolog là theo chỉ số min và đi từ trái sang phải Còn trong logic vị từ thì có thể áp dụng hất mọi cacchs đi thông thường: Trai, phải và ngược lại hay là trên duới và ngược lại