Bài giảng Hệ chuyên gia (Expert System) - Chương 3: Máy suy diễn - Phan Huy Khánh

Hệ thống sản xuất Post

a Hệ thống sản xuất (SX) Post (Post production systems)

V SX Post (production rule, also called condition-action,

or situation-action rules)

V Mỗi có dạng :

< xâu="" tiền="" đề=""> → < xâu="" kết="" quả="">

V Ý tưởng cơ bản của Post là :

™Xuất phát từ một xâu tiền đề (antecedent)

™Sản xuất ra một xâu kết quả mới khác (consequent)

V Dấu mũi tên → chỉ ra rằng :

xâu vào bên trái được chuyển (transformation)

thành xâu kết quả bên phải

pdf 70 trang phuongnguyen 3300
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ chuyên gia (Expert System) - Chương 3: Máy suy diễn - Phan Huy Khánh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Hệ chuyên gia (Expert System) - Chương 3: Máy suy diễn - Phan Huy Khánh

Bài giảng Hệ chuyên gia (Expert System) - Chương 3: Máy suy diễn - Phan Huy Khánh
HHệệ chuyênchuyên giagia ((ExpertExpert SystemSystem))
 PGS.TS. Phan Huy Khánh
 khanhph@vnn.vn 
 Chương 3
 Máy suy diễn
 Chương 3 Máy suy diễn
a Các hệ thống sản xuất Post
a Thuật toán Markov và thuật toán mạng lưới
a Nguyên lý hoạt động của các máy suy diễn
a Một số phương pháp suy diễn thông dụng
 V Phương pháp suy diễn tiến
 V Phương pháp suy diễn lùi
 V Phương pháp hỗn hợp
 2/70
 Nền tảng của công nghệ hệ chuyên gia hiện đại
 (Foundation of Modern Rule-Based Expert System)
 HHệệ chuyênchuyên giagia ddựựaa trêntrên luluậậtt
 LuLuậậtt MáyMáy suysuy didiễễnn SSựự kikiệệnn
LuLuậậtt ssảảnn xuxuấấtt SoSo khkhớớpp HHợợpp gigiảảii SuySuy didiễễnn
 PostPost hihiệệuu ququảả xungxung độđộtt bênbên phphảảii luluậậtt
 ThuThuậậtt toántoán mmạạngng llướướii
 ThuThuậậtt toántoán MarkovMarkov
 3/70
 Foundations of Expert Systems
 Rule-BasedRule-Based ExpertExpert SystemsSystems
 InferenceInference EngineEngine KnowledgeKnowledge BaseBase
 PatternPattern 
 FactsFacts RulesRules
MatchingMatching ConflictConflict 
 ResolutionResolution 
 ReteRete PostPost 
AlgorithmAlgorithm ActionAction ProductionProduction 
 ExecutionExecution RulesRules 
 MarkovMarkov 
AlgorithmAlgorithm 
 4/70
 Hệ thống sản xuất Post
a Hệ thống sản xuất (SX) Post (Post production systems)
 V SX Post (production rule, also called condition-action,
 or situation-action rules)
 V Mỗi có dạng :
 → 
 V Ý tưởng cơ bản của Post là :
 ™ Xuất phát từ một xâu tiền đề (antecedent)
 ™ Sản xuất ra một xâu kết quả mới khác (consequent)
 V Dấu mũi tên → chỉ ra rằng :
 xâu vào bên trái được chuyển (transformation)
 thành xâu kết quả bên phải
 5/70
 Lịch sử các hệ thống SX Post
a First developed by Post (1943), who studied the properties of rule 
 systems based on productions & called his systems canonical 
 systems
 V Production rules are grammar rules for manipulating strings of 
 symbols, in automata theory, formal grammars, programming 
 language design & used for psychological modeling before they 
 were used for expert systems
 V Also called rewrite rules (they rewrite one string into another)
 V He proved any system of mathematics or logic could be written 
 as a type of production rule system
 V Minsky showed that any formal system can be realized as a 
 canonical system
 V Các ngôn ngữ lập trình thường được định nghĩa
 từ dạng chuẩn Backus-Naur Normal Form (BNF)
 6/70
 Example of a Canonical System
a Let the alphabet Σ = {a, b, c} 
 With axioms a, b, c, aa, bb, cc
a Then these production rules will give :
 V all the possible palindromes (and only palindromes) 
 V based on the alphabet, starting from the above axioms
 P1: $ -> a$a
 P2: $ -> b$b
 P3: $ -> c$c
a To generate the string bacab:
 V P1 is applied to the axiom c to get aca ( $ = c )
 V Then we apply P2 to get bacab
 Using a different order gives a different result
 V If P2 is applied to c we get bcb
 V If P1 is applied after we get abcba
 7/70
 Ví dụ 2
a Cho hệ thống SX Post gồm các luậ t SX như sau
 (Chú ý số thứ tự trong dấu ngoặc chỉ dùng để trình bày) :
 1.1. CarCar wonwon’t’t startstart →→ CheckCheck batterybattery
 2.2. CarCar wonwon’t’t startstart →→ CheckCheck gasgas
 3.3. CheckCheck batterybattery ANDAND BatteryBattery badbad →→ ReplaceReplace batterybattery
 4.4. CheckCheck gasgas ANDAND NoNo gasgas →→ FillFill gas gas tanktank
a Nếu đưa vào xâu Car won’t start, thì các luật 1 và 2 có thể được 
 áp dụng để sinh ra các xâu Check battery và Check gas
a Nếu đưa vào xâu Battery bad và Check battery thì luật 3 có thể 
 được áp dụng để sinh ra xâu Replace battery
 8/70
 Họat động của hhệệ ththốốngng SXSX PostPost 
a Hệ thống SX Post : 
 V Không có cơ chế áp dụng đồng thời cả hai xâu vào
 V Chỉ có thể áp dụng được một luật trong hai, hoặc không
 V Không đặt ra thứ tự các luật trong hệ thống
 V Hệ thống giữ nguyên giá trị khi đảo thứ tự các luật
 1.1. CarCar wonwon’t’t startstart →→ CheckCheck batterybattery
 2.2. CarCar wonwon’t’t startstart →→ CheckCheck gasgas
 3.3. CheckCheck batterybattery ANDAND BatteryBattery badbad →→ ReplaceReplace batterybattery
 4.4. CheckCheck gasgas ANDAND NoNo gasgas →→ FillFill gasgas tanktank
 4.4. CheckCheck gasgas ANDAND NoNo gasgas →→ FillFill gasgas tanktank
 2.2. CarCar wonwon’t’t startstart →→ CheckCheck gasgas
 1.1. CarCar wonwon’t’t startstart →→ CheckCheck batterybattery
 3.3. CheckCheck batterybattery ANDAND BatteryBattery badbad →→ ReplaceReplace batterybattery
 9/70
 Nhận xét về hạn chế của SX Post 
a Mặc dù các SX Post được sử dụng trong HCG nhưng không 
 thuận tiện cho việc viết các trình ứng dụng
a Hạn chế chủ yếu của các sản xuất Post :
 V Không có các chiến lược điều khiển (control strategy) để định 
 hướng sử dụng luật
 V Chỉ áp dụng luật cho một xâu vào theo cách tuỳ ý mà không 
 chỉ ra cụ thể làm thế nào để luật được áp dụng
 V Sự lựa chọn luật một cách ngẫu nhiên làm mất nhiều
 thời gian tìm kiếm trong các hệ thống có nhiều luật
 10/70
 Thuật toán Markov
a Thuật toán Markov (Markov Algorithm) :
 V Đề xuất năm 1954 cải tiến cách áp dụng các SX 
 từ một xâu vào
 V Nhóm các sản xuất theo thứ tự độ ưu tiên
 V Nếu SX có độ ưu tiên cao nhất không được áp dụng,
 thì SX tiếp theo sẽ được áp dụng và cứ thế tiếp tục
 V Thuật toán Markov dừng nếu :
 ™ sản xuất cuối cùng không được áp dụng cho xâu, hoặc
 ™ nếu sản xuất đó là cuối một giai đoạn được áp dụng
a A Markov algorithm:
 V is a string rewriting system that uses grammar-like rules to operate 
 on strings of symbols
 V Markov algorithms have been shown to have sufficient power to be
 a general model of computation.
 V Important difference from canonical system: now the set of rules is 
 ordered
 11/70
 Markov Algorithm (MA)
a The basic operation:
 1. Check the Rules in order from top to bottom to see whether 
 any of the strings to the left of the arrow can be found in the 
 Symbol string
 2. If none are found, stop executing the Algorithm
 3. If one or more is found, replace the leftmost matching text 
 in the Symbol string with the text to the right of the arrow in 
 the first corresponding Rule
 4. If the applied rule was a terminating one, stop executing the 
 Algorithm
 5. Return to step 1 and carry on
 12/70
 Áp dụng thuật toán Markov
a Thuật toán Markov có thể áp dụng cho từng xâu con của 
 xâu vào w∈Σ∈ ∗, bắt đầu từ bên trái :
 V Ví dụ : áp dụng luật ab → hij cho xâu vào gabkab
 V Nhận được xâu mới ghijkab
 Tiếp tục nhận được xâu mới ghijkhij
a Ký tự đặc biệt ε biều diễn xâu rỗng. Ví dụ : 
 V A → ε xóa tất cả các xuất hiện của A trong một xâu
 V A x B → B x A nghịch đảo các ký tự A và B
a Các ký hiệu đặc biệt khác có vai trò như biến biểu diễn một 
 ký tự bất kỳ được viết bởi các chữ cái thường a, b, c...
a Các chữ cái Hy lạp α, β ∉Σ∉ , chỉ các dấu đặc biệt của xâu
 13/70
 Ví dụ sử dụng thuật toán Markov
 Thành công (S) Xâu
a Cho các SX có độ ưu tiên giảm Luật
 dần như sau (ký hiệu ε hoạt động hoặcthấtbại(F) kếtquả
 như là một biến trung gian) : 1 F abc
 εxy → yεx
 2 F abc
 ε→ ε
 ε→ε
 3 S εabc
a Cho xâu vào abc, cần di chuyển 
 chữ cái đầu tiên a đến vị trí cuối 1 S bεac
 cùng của xâu
a Quá trình di chuyển được cho 1 S bcεa
 trong bảng
 1 F bcεa
 2 S bca
 14/70
 Another Example of MA
a Rules: a The Symbol string will change in 
 1. "A" -> "apple" the following manner:
 2. "B" -> "bag" R1: "I bought a B of apples from 
 T S." .
 3. "S" -> "shop" 
 R2: "I bought a bag of apples 
 4. "T" -> "the" from T S." 
 5. "the shop" -> "my brother" R3: "I bought a bag of apples 
 6. "a never used" -> from T shop." 
 ."terminating rule" 
 R4: "I bought a bag of apples 
a Symbol string : from the shop." 
 "I bought a B of As from T S." R5: "I bought a bag of apples 
 from my brother." 
 a The algorithm will then terminate
 15/70
 Another Example of MA
 a They rewrite binary numbers to a If the algorithm is applied to the 
 their unary counterparts above example, it will terminate 
 a For example: 101 will be after the following steps
 rewritten to a string of 5 a Execution:
 consecutive bars "0|01" 
 a Rules: "00||1" 
 "|0" -> "0||" "00||0|" 
 "1" -> "0|" "00|0|||" 
 "0" -> "" "000|||||" 
 a Symbol string: "00|||||" 
 "101" "0|||||" 
 "|||||"
a MA chọnápdụng luậtcóđộ ưutiênnhấttheochiếnlược điềukhiểntất định
 (definite control strategy)
a Nếukhôngchọn được, MA tìm luậtkháccóđộ ưutiênthấphơn
a MA thiếutínhhiệuquả trong những hệ chuyên gia có nhiềuluật
 16/70
 Thuật toán mạng lưới (Rete Algorithm)
a Do Charles L. Forgy đề xuất năm 1979 tại trường ĐH Carnegie, 
 Mellon, Hoa Kỳ trong luận văn tiến sĩ của ông về OPS (Official 
 Production System)
a Thuật toán mạng lưới giải quyết vấn đề hiệu suất
 (efficient) của các hệ chuyên gia :
 V Đóng vai trò quan trọng khi giải quyết các bài toán thực tiễn chứa 
 từ hàng trăm đến hàng ngàn luật
 V NSD không phải chờ đợi nhiều thời gian để nhận được câu trả lời
a Cần có thuật toán xử lý hết các luật để chọn ra các luật 
 cần thiết để áp dụng thay vì thử lần lượt các luật
 17/70
 RETE algorithm
a Thuật toán mạng lưới :
 V Cho phép so khớp (pattern mattching) rất nhanh để nhận 
 được câu trả lời tức thời bằng cách lưu giữ thông tin của các 
 luật trong một mạng lưới (network)
 V Thay vì so khớp lặp đi lặp lại các sự kiện mỗi lần áp dụng một 
 luật trong mỗi chu trình nhận thức (recognize-act cycle),
 thuật toán mạng lưới chỉ nhìn những thay đối khi so khớp 
 trong mỗi chu trình
a Activities
 V Creates a decision tree where each node corresponds to a 
 pattern occurring at the left-hand side of a rule
 V Each node has a memory of facts that satisfy the pattern
 V Complete LHS as defined by a path from root to a leaf
 18/70
 The Rete-Algorithm 
a The net encodes the condition parts (IF-parts) of the rules
a The input are the changes of the working memory, i.e.:
 V New elements or deleted elements
 V Modification of elements is simulated by first delete then add 
 modified version) 
a The output is the conflict set (i.e., the applicable rules) 
 19/70
 Rete example
Rules:Rules: IFIF xx && yy THENTHEN pp
 IFIF xx && yy && zz THENTHEN qq
PatternPattern x? y?
 x?x? y?y? x? y? z?z?
NetworkNetwork
JoinJoin NetworkNetwork
 pp
88 nodesnodes
 qq
 (
 20/70
 Rete example
Rules:Rules: IFIF xx && yy THENTHEN pp
 IFIF xx && yy && zz THENTHEN qq
PatternPattern x?x? y?y? z?z?
NetworkNetwork
JoinJoin NetworkNetwork
 pp
88 nodesnodes
 qq
 (
 21/70
 Rete example
Rules:Rules: IFIF xx && yy THENTHEN pp
 IFIF xx && yy && zz THENTHEN qq
PatternPattern x?x? y?y? z?z?
NetworkNetwork
JoinJoin NetworkNetwork
 pp
 88 nodesnodes
 qq
 (
 22/70
 Matching Patterns
a At each cycle the interpreter looks to see which rules have 
 conditions that can be satisfied
a If a condition has no variables:
 V It will only be satisfied by an identical expression in working 
 memory
a If the condition contains variables then
 V It will be satisfied if there is an expression in working 
 memory with an attribute-value pair that matches it in a way 
 that is consistent with the way other conditions in the same 
 rule have already been matched
 23/70
 Rule-Based Production Systems
a A production system consists of
 V a rule set / knowledge base / production memory
 V a rule interpreter / inference engine
 ™ that decides when to apply which rules
 V a working memory
 ™ that holds the data, goal statements, & intermediate results 
 that make up the current state of the problem. 
a Rules have the general form
 IF THEN 
 P1, , Pm → Q1, , Qn
a Patterns are usually represented by OAV vectors
 24/70
 Nguyên lý hoạt động của các máy suy diễn
a Trong các hệ thống dùng luật, khi máy duy diễn (MSD) 
 được khởi động, cơ sở tri thức chứa thông tin liên quan đến 
 phát biểu bài toán cần giải :
 V Các sự kiện đã được xác nhận và các sự kiện sẽ được thiết 
 lập biểu diễn bài toán hay đích
 V Những tri thức thực hành thuộc lĩnh vực tạo nên cơ sở luật 
a Hoạt động suy diễn của MSD :
 V Suy luận bằng cách quyết định xem những luật nào sẽ làm 
 thỏa mãn các sự kiện, các đối tượng
 V Chọn ưu tiên các luật thỏa mãn
 V Thực hiện các luật có tính ưu tiên cao nhất
 25/70
 Một số quy ước 
a Ta quy ước gọi :
 V RB (Rules Base) là cơ sở luật (CSL)
 V FB (Facts Base) là cơ sở sự kiện (CSSK)
a Máy suy diễn họat động theo chu kỳ (cycle),
 mỗi chu kỳ gồm hai giai đoạn (phase) :
 V Giai đoạn đánh giá ( EVALUATION), gồm ba bước (step) :
 ™ Thu hẹp (RESTRICTION. hay SELECTION)
 ™ So khớp (PATTERN−MATCHING, hay FILTERING)
 ™ Giải quyết xung đột (CONFLICT-RESOLUTION)
 V Thực hiện (EXECUTION)
 26/70
 ChuChu kkỳỳ hhọọatat đđộộngng ccơơ bbảảnn ccủủaa MSDMSD 
 Giai đoạn 1 : Giai đoạn 2 : 
 EVALUATION EXECUTION
 RESTRICTION
 R1 chứa trong RB Thực hiện các tiên đề
 F1 chứa trong FB
 Các quy tắc của R3
 PATTERN−MATCHING
 so sánh giữa R1 và F1
 tìm được FB và RB
 R2 chứa trong R1 có thể bị thay đổi
 CONFLICT-RESOLUTION Các kết qu ả kh ác có thể
 tìm được
 R3 chứa trong R2 
Tuỳ theo điều khiển của máy : Tuỳ theo điều khiển của máy :
 dừng hay quay lại dừng hay quay lại
 27/70
Mô hình so khớp luật trong một chu kỳ
 R1 ∈ RB
 F1 ∈ FB
 R3 R2
 Tiếp tục
 28/70
 Bước thu hẹp
a Là bước đầu tiên của giai đoạn đánh giá
a Đầu vào :
 V Một sự kiện f ∈ FB (CSSK) và/hoặc luật r ∈ RB (CSL)
a Đầu ra :
 V Một tập hợp con F1 ⊆ FB 
 V Một tập hợp con R1 ⊆ RB sao cho có thể tiến hành so sánh 
 được trong bước FILTERING tiếp theo
a Nguyên lý làm việc :
 V Ưu tiên cho một nhóm các luật
 hay một nhóm các sự kiện đối với một hoặc nhiều chu kỳ
 Return
 29/70
 Bước so khớp
a Là bước thứ hai của giai đoạn đánh giá
a Đầu vào :
 V Một sự kiện f ∈ FB (CSSK) và/hoặc luật r ∈ RB (CSL)
a Đầu ra :
 V Một tập hợp con các luật R2⊆R1 tương thích với F1,
 nghĩa là những luật r∈R2 có điều kiện khởi động thoả mãn 
 các trạng thái của F1
a Nguyên lý làm việc :
 V Máy suy diễn so sánh phần khởi động của mỗi quy tắc của 
 R1 với tập hợp các sự kiện F1
 V Tuỳ theo hệ thống mà có tiêu chuẩn thoả mãn khác nhau
 V R2 được gọi là tập hợp xung đột hay tập hợp tương tranh
 (conflict set)
 Return
 30/70
 Bước giải quyết xung đột
a Là bước thứ ba của giai đoạn đánh giá
a Đầu vào :
 V Tập hợp các luật trong tập xung đột R2
a Đầu ra :
 V Tập hợp con các luật R3 ⊆ R2 cần được thực hiện
a Nguyên lý làm việc :
 V Nếu R3 rỗng, không thực hiện giai đoạn EXECUTION của chu kỳ
 V Nếu R3≠∅, chọn các luật dựa trên những tiêu chuẩn như sau :
 ™ Hoặc chọn theo thứ tự xuất hiện của luật với giả thiết RB đã 
 được sắp xếp theo một thứ tự nào đó
 ™ Hoặc chọn các luật có mối quan hệ với bối cảnh áp dụng liên 
 quan đến nghĩa (meaning/signification)
 ™ Hoặc chọn ngẫu nhiên : ưu tiên luật ít sử dụng, hoặc ít điều kiện 
 cần kiểm tra, ít biến cần xác định trước khi khởi động, v.v...
 Return
 31/70
 Conflict Resolution
a Selection a rule to fire
 V Production systems have a decision-making step between pattern 
 m ... s
 V Actions such as assert or modify the Working Memory
 35/70
 Nhận xét về chu kỳ cơ bản của MSD
a Trên thực tế, có nhiều cách sắp đặt các giai đoạn trong một 
 chu kỳ cơ bản (hay chu kỳ suy diễn) của MSD
a Khi HCG làm việc, có thể cần đến hàng hàng trăm, thậm chí
 hàng ngàn chu kỳ
a Mỗi chu kỳ cơ bản của MSD :
 V Có liên hệ với chu kỳ lệnh của máy tính
 V Cần những máy tính có tốc độ lớn
 (hàng trăm chu kỳ cơ bản trong một giây)
 V Chẳng hạn dự án máy tính thế hệ 5 của Nhật đề xuất những 
 kiến trúc đặc trưng để đạt được tốc độ hàng triệu hay hàng 
 tỷ lips (Logical Inference Per Second)
 Return
 36/70
 Phương pháp suy luận của các MSD
a Có nhiều phương pháp tổng quát để suy luận trong các 
 chiến lược giải quyết vấn đề của HCG
a Ba phương pháp hay gặp :
 V Phương pháp suy diễn tiến (Foward Chaining/Data-Driven)
 V Phương pháp suy diễn lùi (Backward Chaining/Goal-Driven)
 V Phương pháp phối hợp hai phương pháp này
 (Mixed Chaining)
a Ngoài ra còn một số phương pháp khác :
 V Phân tích phương tiện (means-end analysis)
 V Rút gọn vấn đề (problem reduction)
 V Kiểm tra lập kế hoạch (plan-generate-test)
 V Lập kế hoạch phân cấp (hierachical planning)...
 37/70
 Phương pháp suy diễn tiến
a Suy diễn tiếnlàlập luận từ các sự kiện, sự việc
 để rút ra các kết luận
 V Ví dụ :
 Nếu thấy trời mưa trước khi ra khỏi nhà (sự kiện)
 thì phải lấy áo mưa (kết luận)
a NSD cung cấp các sự kiện
 để MSD tìm cách rút ra các kết luận có thể
 V Kết luận có thể là những thuộc tính được gán giá trị
 V Trong số những kết luận này, có thể có :
 ™ những kết luận làm NSD quan tâm
 ™ một số khác không nói lên điều gì
 ™ một số khác có thể vắng mặt
 38/70
 Các sự kiện trong suy diễn tiến
a Các sự kiện thường có dạng :
 V Atthibute = value
 V Lần lượt các sự kiện trong cơ sở tri thức được chọn
 V Hệ thống xem xét tất cả các luật mà các sự kiện này
 xuất hiện như là tiền đề
 V Khi MSD tìm thấy những luật thoã mãn, MSD lấy ra để gán 
 giá trị cho các thuộc tính thuộc kết luận tương ứng,
 người ta nói rằng các sự kiện đã được thoã mãn
 V Các thuộc tính được gán giá trị sẽ là một phần của kết quả
 chuyên gia
 V Sau khi mọi sự kiện đã được xem xét, kết quả được xuất ra 
 cho NSD
 39/70
 Forward Chaining
a The inference engine works from the initial content of the 
 workspace towards the final conclusion
a Conclude from "A" and "A implies B" to "B"
 AA
 AA →→ BB
 BB
a Example: 
 It is raining
 If it is raining, the dress is wet
 --------------------------------------
 The dress is wet
 40/70
Một ví dụ khác
 41/70
 Palindrome Example
a If we have the following grammar rules
 (P1) $ -> a$a
 (P2) $ -> b$b
 (P3) $ -> c$c
a They can be used Forward Chaining
 to generate palindromes:
 V apply P1, P1, P3, P2, to c:
 ⇒ aca, aacaa, caacaac, ...
a To generate bacab
 V P1 is applied to the axiom c to get aca
 V Then we apply P2 to get bacab
 V Using a different order gives a different result
 V If P2 is applied to c we get bcb
 V If P1 is applied after we get abcba
 42/70
 Example 1
Rule base Workspace
R1: IF A AND B THEN D A,B
R2: IF B THEN C 
R3: IF C AND D THEN E
 43/70
 Forward Chaining Model
FactsFacts RuleRule
 basebase DetermineDetermine 
 possiblepossible 
 rulesrules toto firefire
 WorkingWorking
 memorymemory Conflict set
 SelectSelect ConflictConflict
 FireFire Rule found
 rulerule toto resolutionresolution
 rulerule
 firefire strategystrategy
 No rule found
 ExitExit
 Exit if specified by the rule
 44/70
 Thuật toán suy diễn tiến
a Definitions :
 FB, RB, R1 ⊆ RB, Q : Sự kiện đưa vào xử lý 
a Algorithme :
 Procedure DEDUCE(Q)
 If Q ∈ FB Then Write "Success" ;
 Else Call CYCLE(RB) ; ' Bắt đầu chu kỳ xử lý với r1 ∈RB
 Procedure CYCLE(R1)
 If R1 = ∅ Then Write "Failure" ; Return ;
 r ← CHOIX(r, R1) ; ' Chọn một luật từ R1
 R1 ← R1 – { r } ; ' Loại bỏ luật đã xử lý
 If LHF(r) ∈ FB Then
 If Q ∈ RHF(r) Then Write " Success" ; Return ;
 Else ' Không tìm thấy Q nhưng vẫn tiếp tục áp dụng luật r
 FB ← FB ∪ RHF(r) ; ' Thêm vào FB các sự kiện mới
 RB ← RB – { r } ; ' Loại bỏ luật r đã xử lý 
 Call CYCLE(RB) ;
 Else Call CYCLE(R1) ;
 Return ;
 45/70
Forward chaining algorithm
 46/70
 Forward chaining Example 2.
 WMWM WMWM WMWM WMWM
 A B C D E A B C D E A B C D E A B C D E
 X X L X L Y X L Y Z
Match Fire Match Fire Match Fire Match Fire
 KBKB BKBK BKBK KBKB
 Y ∧ D Z Y Ÿ D Z Y Ÿ D Z Y Ÿ D Z
 X Ÿ B Ÿ E Y X Ÿ B Ÿ E Y X Ÿ B Ÿ E Y X Ÿ B Ÿ E Y
 A X A X A X A X
 C L C L C L C L
 L Ÿ M N L Ÿ M N L Ÿ M N L Ÿ M N
 Cycle 1 Cycle 2 Cycle 3
 47/70
 Example 3. Diagnosing car problems
a Rule 1: 
 IF the engine is getting gas
 AND the engine will turn over
 THEN the problem is spark plugs
a Rule 2:
 IF the engine does not turn over
 AND the lights do not come on
 THEN the problem is battery or cables
a Rule 3:
 IF the engine does not turn over
 AND the lights do come on
 THEN the problem is the starter motor
a Rule 4:
 IF there is gas in the fuel tank
 AND there is gas in the carburettor
 THEN the engine is getting gas
 48/70
a Facts
 The engine is getting gas
 Working space
 RuleRule 11
 RuleRule 22
 RuleRule 33
 RuleRule 44
 Working space
 RuleRule 11
 thethe engineengine RuleRule 22
 turnsturns overover RuleRule 33
 RuleRule 44
 49/70
 Working space
 TheThe engineengine isis RuleRule 11
 gettinggetting gasgas Rule 2
 Rule 2
 ThereThere isis gasgas RuleRule 33
 inin thethe fuelfuel tanktank RuleRule 44
 There is gas
 There is gas 
inin thethe carburettorcarburettor
 The engine
 The engine 
 turnsturns overover
 50/70
 Example 4.
 G ĐồĐồ ththịị VÀ-HOVÀ-HOẶẶCC 
 (And-Or(And-Or Tree)Tree)
aa Rulesbase:Rulesbase: 
 1.1. K,K, L,L, MM →→ II = E D C 
 2.2. I,I, L,L, JJ →→ QQ
 3. C, D, E B H F C H
 3.3. C,C, D,D, EE →→ BB 
 4. A, B Q M L K
 4.4. A,A, BB →→ QQ 
 = = =
 5.5. L,L, N,N, O,O, PP 
 →→ QQ
 B A =
 6. C, H R O N J L J R M
 6.6. C,C, HH →→ RR 
 7. R, J, M S P L 
 7.7. R,R, J,J, MM →→ SS I 
 8.8. F,F, HH →→ BB 
 = = = =
 9. G F = = = =
 9.9. GG →→ FF 
aa Factsbase:Factsbase: 
 A,A, C,C, D,D, E,E, G,G, H,H, KK
 Q S
 51/70
 Example 4. Kết quả suy diễn
a Xây dựng đồ thị con VÀ-HOẶC từ đồ thị VÀ-HOẶC trên đây
 V Tìm được Q khi các sự kiện A, C, D và E được thiết lập 
 G
 E D C 
 =
 = E D C 
 H F C H
 M L K =
 = = =
 B A
 B A = J R M
 O N J L J R M
 P L 
 I 
 = = = = =
 Q
 Q S Q
 52/70
 Exercise 1.
aa Rulesbase:Rulesbase: a Yêu cầu :
 1.1. B,B, D,D, EE →→ FF V Vẽ đồ thị và-hoặc
 2.2. G,G, DD →→ AA V Áp dụng thuật toán suy diễn tiến
 để tìm kết quả H
 3.3. C,C, FF →→ AA
 V Có nhận xét gì ?
 4.4. BB →→ XX 
 5.5. DD →→ EE 
 6.6. X,X, AA →→ HH 
 7.7. CC →→ DD 
 8.8. X,X, CC →→ AA 
 9.9. X,X, BB →→ DD 
aa Factsbase:Factsbase: 
 B,B, CC
 53/70
 Exercise 2.
aa RulesRules Base:Base: aa FactsFacts Base:Base:
R1:R1: IFIF managementmanagement competencecompetence isis goodgood Bank'sBank's creditcredit ratingrating UNKNOWNUNKNOWN
 ANDAND ExternalExternal creditcredit ratingrating isis fairfair
 ANDAND Bank'sBank's creditcredit ratingrating isis Cash/currentCash/current liabilitiesliabilities 0.180.18
 marginalmarginal ExternalExternal creditcredit ratingrating FAIRFAIR
 THENTHEN LoanLoan isis rejectedrejected LoanLoan SEASONALSEASONAL
R2:R2: IFIF LoanLoan typetype isis seasonalseasonal LoanLoan typetype UNKNOWNUNKNOWN
 ANDAND ProfitabilityProfitability ratingrating isis highhigh ManagementManagement competencecompetence UNKNOWN UNKNOWN
 ANDAND SolvencySolvency ratingrating isis lowlow ProfitabilityProfitability ratingrating HIGHHIGH
 THENTHEN Bank'sBank's creditcredit ratingrating isis SolvencySolvency ratingrating UNKNOWNUNKNOWN
 marginalmarginal TentativeTentative solvencysolvency ratingrating LOWLOW
R3:R3: IFIF Cash/currentCash/current liabilitiesliabilities >> 0.10.1 
 ANDAND TentativeTentative solvencysolvency ratingrating isis 
 lowlow 
 THENTHEN SolvencySolvency ratingrating isis lowlow
 54/70
 Example knowledge base contd.
... it is a crime for an American to sell weapons to hostile nations:
 American(X) ∧ Weapon(Y) ∧ Sells(X,Y,Z) ∧ Hostile(Z) → Criminal(X)
Nono  has some missiles, i.e., ∃X Owns(Nono,X) ∧ Missile(X): 
 Owns(Nono,M1) and Missile(M1) 
 all of its missiles were sold to it by Colonel West
 Missile(X) ∧ Owns(Nono,X) → Sells(West,X,Nono)
Missiles are weapons: 
 Missile(X) → Weapon(X)
An enemy of America counts as "hostile“:
 Enemy(X,America) → Hostile(X)
West, who is American  
 American(West)
The country Nono, an enemy of America 
 Enemy(Nono,America)
 55/70
 Forward chaining proof
 Criminal(West)Criminal(West)
 Weapon(M1)Weapon(M1) Sells(West,M1,Nono)Sells(West,M1,Nono) Hostile(Nono)Hostile(Nono)
American(West)American(West) Missile(M1)Missile(M1) Owns(Nono,M1)Owns(Nono,M1) Enemy(Nono,America)Enemy(Nono,America)
 56/70
 Phương pháp suy diễn lùi
a Phương pháp suy diễn lùi :
 V Tiến hành các lập luận theo chiều ngược lại
 (so với phương pháp suy diễn tiến)
 V Đầu vào có dạng một câu hỏi «Cho biết giá trị thuộc tính đích (goal) A ?»
 V MSD suy diễn để đưa ra tình huống trả lời gồm các sự kiện là cơ sở của giả
 thuyết đã cho gồm để gán giá trị cho thuộc tính A
a Ví dụ :
 V Nếu ai đó vào nhà mà cầm áo mưa và áo quần bị ướt (hậu quả)
 thì giả thuyết là trời mưa (nguyên nhân)
 V Để củng cố giả thuyết này,
 ta sẽ hỏi người đó xem có phải trời mưa không ?
 V Nếu người đótrả lời có
 thì giả thuyết trời mưa đúng và trở thành một sự kiện
 V Nghĩa là trời mưa nên phải cầm áo mưa và áo quần bị ướt
 57/70
 Ý tưởng thuật toán suy diễn lùi
a Với mỗi thuộc tính đã cho, người ta định nghĩa nguồn của nó :
 V Nếu thuộc tính xuất hiện như là tiền đề của một luật (phần đầu 
 của luật), thì nguồn sẽ thu gọn thành một câu hỏi
 V Nếu thuộc tính xuất hiện như là hậu quả của một luật (RHS),
 thì nguồn sẽ là các luật mà trong đó, thuộc tính là kết luận
 V Nếu thuộc tính là trung gian, xuất hiện đồng thời như là tiền đề và 
 như là kết luận, khi đónguồn có thể là các luật, hoặc có thể là các 
 câu hỏi mà chưa được nêu ra
 V Nếu mỗi lần với câu hỏi đã cho, người sử dụng trả lời hợp lệ, giá trị
 trả lời này sẽ được gán cho thuộc tính và xem như thành công
 V Nếu nguồn là các luật, MSD sẽ tìm giá trị các thuộc tính thuộc tiền 
 đề (LHS) bằng cách xét lần lượt các luật có thuộc tính đích xuất 
 hiện ở kết luận
 V Nếu các luật thoã mãn, thuộc tính kết luận sẽ được ghi nhận
 58/70
 Backward Chaining
a Conclude from "B" and "A implies B" to "A" 
 BB
 AA →→ BB
 AA
a Example: 
 The dress is wet
 If it is raining, the dress is wet
 --------------------------------------
 It is raining
 59/70
Backward Chaining
 60/70
 Thuật toán suy diễn lùi
a Definitions :
 FB, RB, R1 ⊆ RB
 Q : Sự kiện đưa vào xử lý 
a Algorithme : 
 Procedure DEDUCE (Q)
 If Q ∈ BF Then Write " Success" ;
 Else 
 Push BR, BF ;
 IP ≠ 1; 
 Call CYCLE(BR, BF) ;
 Return; 
 61/70
 Thuật toán suy diễn lùi
Procedure CYCLE(ER, EF)
Var : ER, EF, r ; ' Các biến làm việc địa phương
If ER = ∅ Then 
 IP ≠ IP -1 ; ' Lấy một luật ở đỉnh Stack
 If IP = 0 Then Write " Failure" ; Return;
 Else ER ≠ Lu ật ở đỉnh Stack chưa xét
 EF ≠ Các sự ki ện ở đỉnh Stack; 
 Call CYCLE(ER, EF) ; Return;
r ≠ CHOOSE(r, ER) ; ' Chọn một luật
ER ≠ ER – { r } ; ' Lo ại bỏ luật đã xét ở ER
If LHS(r) ∈ EF Then 
 If RHF(r) ∈ Q Then Write " Success" ; Return ;
 Else Push (EF ∪ RHF(r)), BR ; ' (IP ≠ IP +1)
 Đ ánh dấu màu đỏ ph ần tử ngay dướ i đỉnh Stack;
 Đánh dấu màu đỏ cho luật r ở đỉnh
 Đánh dấu màu xanh cho luật r tại đỉnh - 1 ;
 ER ≠ Các luật ởđỉnh ch ưa đánh dấu. Thông thường là màu đỏ;
 EF ≠ Các sự kiện ở đỉnh Stack ; 
 Call CYCLE(ER, EF) ; Return; 
Call CYCLE(ER, EF) ; Return ; 
 62/70
 Example 4. Backward Chaining
 G
 ĐồĐồ ththịị VÀ-HOVÀ-HOẶẶCC 
aa Rulesbase:Rulesbase:
 (And-Or(And-Or Tree)Tree)
 1.1. K,K, L,L, MM →→ II = E D C 
 2.2. I,I, L,L, JJ →→ QQ 
 3. C, D, E → B H F C H
 3. C, D, E → B 
 4. A, B → Q M L K
 4. A, B → Q M L K 
 5. L, N, O, P → Q = = =
 5. L, N, O, P → Q 
 6.6. C,C, H H →→ RR B A =
 O N J L J R M
 7.7. R,R, J,J, MM →→ SS J L J R M
 8. F, H → B P L 
 8. F, H → B I
 9.9. GG →→ FF 
 = = = =
a Factsbase:
a Factsbase: 
 A,A, C,C, D,D, E,E, G,G, H,H, KK
aa QuestionQuestion (Goal):(Goal):
 QQ Q S
 63/70
Đồ thị Và-Hoặc thiết lập Q
 E D C 
 LuLuậậtt 33
 M L K
 KhKhởởii đđộộngng 44 = LuLuậậtt 11
 B A = KhKhởởii đđộộngng 22
 J L
 LuLuậậtt 44 I
 LuLuậậtt 22
 KhKhởởii đđộộngng 33 = =
 KhKhởởii đđộộngng 11
 Q
 64/70
 Áp dụng thuật toán suy diễn lùi
 QQ AA CC DD EE GG HH KK
 Luật 2 Luật 4
 (khởi động 1) (khởi động 3)
 II JJ LL AA CC DD EE GG HH KK BB AA CC DD EE GG HH KK
 Luật 1 Luật 3
(khởi động 2) (khởi động 4)
 MM JJ LL AA CC DD EE GG HH KK AA CC DD EE GG HH KK
 Failure Success
 65/70
 Exercise
a Áp dụng thuật toán suy diễn lùi cho ví dụ Colonel West 
 66/70
 Data-driven × Goal-driven
 herehere seenseen holidayholiday
 data driven
 absentabsent
 buildingbuilding
 homehome
 goal driven
finefine sicksick
 67/70
 Data-driven × Goal-driven
a Goal Driven (backward chaining) ~ blood diagnostic, 
 theorem proving
 V Limited number of goal hypothesis
 V Data shall be acquired, complicated data about the object
 V Less operators to start with at the goal rather than at the data
a Data Driven (forward chaining) ~ configuration, interpretation,
 V reasonable set of input data
 V data are given at the initial state
 V huge set of possible hypothesis
a Taxonomy of rules, meta-rules, priorities, 
 68/70
 Forward or Backward Reasoning?
a Four major factors
a More possible start states or goal states?
 Move from smaller set of states to the larger
 Assume you are at home and you need some bread. You've one initial 
 state and many possible goal states where to get bread from 
 (Sainsbury's, Tesco, Aldi, Morrison, ASDA, CornerShop, Bakery). That is, 
 in such a situation it is probably a good approach to search in forward 
 chaining fashion, since you have many chances to hit a goal. If you 
 choose backward chaining you would have to commit to one of the 
 goals, e.g. the Bakery and then search backwardly how the get there 
 from home.
 If, however, there are 5 people Alice, Bob, Claire, Dora, and Edgar at 5 
 different places A, B, C, D, and E, and one of them should get the Tesco 
 home brand of ketchup, then it would be better to start backward
 chaining from the Tesco store and stop search when one of the places 
 A, B, C, D, or E is reached
 69/70
 Forward or Backward Reasoning? (Cont'd)
a Has program to justify reasoning?
 V Prefer direction that corresponds more closely to the way 
 users think
a What kind of events triggers problem-solving?
 V If it is arrival of a new fact, forward chaining makes sense
 V If it is a query to which a response is required, 
 backward chaining is more natural. 
a In which direction is branching factor greatest?
 V Go in direction with lower branching factor
 70/70

File đính kèm:

  • pdfbai_giang_he_chuyen_gia_expert_system_chuong_3_may_suy_dien.pdf