II. MộT Số SƠ Đồ CƠ BảN Để XĐY DựNG MÂY SUY DIễN
b. BACKDIAGRAM− 3: sơ đồ mây suy diễn kiểu Prolog
Sơđồ mây BACKDIAGRAM−3 sử dụng câc tri thức kiểu suy diễn lùi vă ưu tiín theo độ
sđu. Sơđồ năy không thiết lập câc sự kiện mới mă chỉđơn giản lă biến đổi PBS, danh sâch có thứ tự câc sự kiện đang còn phải thiết lập. Do không bao giờ lấy ra câc sự kiện đê thiết lập, nín câch hoạt động của mây lă đơn điệu. Mặt khâc, do câc trạng thâi trước của PBS có thể được khôi phục (quay lui), mây hoạt động theo chếđộ thăm dò.
Giai đoạn SELECTION/RESTRICTION nhằm tập trung sử dụng câc tri thức (luật vă sự
kiện) đối với phần tửđầu tiín của PBS. Tuỳ theo sự quay lui của mây, trạng thâi của PBS có thể xâc định được.
Ngôn ngữ thể hiện tri thức cho trong hình 3.16 vă được sử dụng trong sơ đồ mây BACKDIAGRAM−3 tương tự ngôn ngữ Prolog. Câc biểu thức biểu diễn tri thức lă những «mệnh đề Horn». Chú ý rằng thông thường, câc hệ chuyín gia chỉ thừa nhận câc biến trong
(GRANDFATHER (u, pierre)) (1)
(FATHER (x, z) FATHER (z,pierre))
(2) (4) (6)
(FATHER(jean, pierre)) (FATHER (pierre, pierre)) (FATHER (renĩ, pierre))
(3) (5) (7)
(SON(pierre, jean)) (SON (pierre, pierre)) (FATHER (pierre, renĩ)) thất bại thất bại thất bại (8)
(SON (z, x) FATHER (z, pierre)) (9)
(FATHER (marc, pierre)) (10)
câc luật, mă không thừa nhận câc biến trong câc sự kiện như trong hai ví dụ trín.
Việc tạo sinh câc kết quả hợp giải ưu tiín theo độ sđu có thể dẫn đến vòng lặp, nhưng có thể trânh được trong chiến lược ưu tiín theo chiều rộng. Chẳng hạn, vòng lặp gđy ra bởi chiến lược ưu tiín theo độ sđu : nếu ta thím phần tử C9 văo cuối danh sâch câc tri thức KNOWLEDGESBASE như sau :
C9 : SON (x, y) ← FATHER (y, x)
Vă nếu xĩt lại băi toân GRANDFATHER (u, pierre) ở ví dụ 2, mây sẽ âp dụng vô hạn lần câc luật C6−C9−C6−C9−...
Procedure JUSTIFY (PROBLEMSTACK, REMAININGBASE, aproblem,
aknowledge, theconclusion, substitu1, substitu2, theproblems) 1. if PROBLEMSTACK = ∅ then return danh sâch rỗng
2. if REMAININGBASE = ∅ then ‘failure’
3. APROBLEM ← phần tửđầu tiín của PROBLEMSTACK 4. AKNOWLEDGE ← phần tửđầu tiín của REMAININGBASE
(tuỳ theo phĩp hợp nhất tín biến có thể thay đổi)
5. THECONCLUSION ← phần kết luận của AKNOWLEDGE
6. SUBSTITU1 ← UNIFICATION (APROBLEM, THECONCLUSION) 7. if SUBSTITU1 ≠ ‘failure’ then
7.1 begin
7.2 THEPROBLEMS ←đặt có thứ tự câc phần tử của PROBLEMSTACK khâc APROBLEM văo cuối danh sâch câc tiền đề của AKNOWLEDGE với việc âp dụng liín tiếp câc phĩp hợp nhất của danh sâch có thứ tự SUBSTITU1 cho biểu thức trước đó của THEPROBLEMS
7.3 SUBSTITU2 ← JUSTIFY (THEPROBLEMS, KNOWLEDGESBASE)
7.4 if SUBSTITU2 ≠ ‘failure’ then return danh sâch nhận được bằng câch thay thế câc phần tử của SUBSTITU2 theo thứ tự văo cuối của SUBSTITU1
7.5 end
8. REMAININGBASE ← REMAININGBASE − {AKNOWLEDGE} 9. JUSTIFY (PROBLEMSTACK, REMAININGBASE)