Download presentation
Presentation is loading. Please wait.
Published byKristian Kennedy Modified over 9 years ago
1
1 Artificial Intelligence Adina Magda Florea
2
2 Lecture No. 6 Prolog Language Rule-based Systems Knowledge representation using rules RBS structure Inference cycle of a RBS Control strategy 2
3
3 1. Prolog R. Kowalski, A. Colmerauer - '70 Prolog control structure A goal S is true in a Prolog program (can be satisfied or is a logical consequence of the program) iff: 1. There is a clause C in the program; 2. There is an instance I of the clause C such that: 2.1. the head of I is the asme with the head of S; 2.2 all the goals in I’s body has true (can be satisfied) 3
4
4 Prolog 4
5
5 % parinte(IndividX, IndividY) % stramos(IndividX, IndividZ) parinte(vali, gelu). parinte(ada, gelu). parinte(ada, mia). parinte(gelu, lina). parinte(gelu, misu). parinte(misu, roco). str1(X, Z) :- parinte(X, Z). str1(X, Z) :- parinte(X, Y), str1(Y, Z). 5
6
6 Prolog % Change the order of the rules: str2(X, Z) :- parinte(X, Y), str2(Y, Z). str2(X, Z) :- parinte(X, Z). % Change the order of goals: str3(X, Z) :- parinte(X, Z). str3(X, Z) :- str3(X, Y), parinte(Y, Z). % Change both the order of rules and the order of goals: str4(X, Z) :- str4(X, Y), parinte(Y, Z). str4(X, Z) :- parinte(X,Z). 6
7
7 Prolog ?- str1(ada, misu). yes ?- str2(ada, misu). yes ?- str3(ada, misu). yes 7
8
8 Prolog ?- str4(ada, misu). ?- str3(mia, roco). 8
9
9 2. Knowledge representation using rules Declarative representation / procedural representation R1:if the patient has fever and the type of the organism is gram-pozitiv and the patient has a stiff neck then the identity of the organism is streptococcus R2:if the car does not start and the lights do not turn on then the battery is faulty sau there is no contact of the battery R3:if the temperature > 95 o C then open the protection valve 9
10
10 Reprezenthasa prin reguli - cont
11
3. Structura SBR
12
12 4. Inference cycle of an RBS Match Selection Execution
13
13 Inference cycle of an RBS - cont Algorithm:Functioning of an RBS 1.WM Case data 2.repeat 2.1.Identify WM and KB and create the conflict set (CS) 2.2.Select a rule from the CS to apply 2.3.Apply selected rule until there are no more applicable rules or WM satisfies goal or a predefined effort has been exhausted end.
14
14 5. Control strategy Selection criteria from the CS Direction of rule application 14
15
15 5.1 Selection criteria from the CS Select the first applicable rule Select a rule from the CS Preferences based on rule identity Specificity - the set of premises of R1 includes the set of premises of R2; - the set of conditions of R1 are similar to that of R2, but the premises of R1 refer to constants while the premises of R2 refer to variables. Time of last use Preferences based on matched objects 15
16
16 Selection criteria from the CS - cont Use of meta-rules ifa rule has conditions A and B and the rule refers {does not refer} X {not at all/ only in the LHS/ only in the RHS} thenthe rule will be certainly useful {probably useful/ probably useless/ certainly useless} Application of all rules in the CS 16
17
17 5.2 Direction of rule application 17 Forward chaining Backward chaining
18
(a) Forward chaining 18
19
(b) Backward chaining 19
20
Algorithm: Find a value using forward chaining (a) FindValueD(A) 1.if A has value then return SUCCESS 2.Build CS 3.return Find(A, CS) end. Find(A, CS) 1.if CS = {} then return FAIL 2.Choose a rule R CS according to a selection criterion (criteria) 3.for each premise Ij of R execute 3.1.Find the truth of Ij 4.if all Ij, j=1,N are satisfied then 4.1.if A has value then return SUCCESS 4.2.Add the fact(s) refered in the RHS of R to WM 5.CS CS - R 6.return Find(A, CS) end. 20
21
Algoritm: Find a value using backward chaining (b) Detvalue(A) 1.Build the set if rules which refer A in RHS, CS 2.if CS = {} then 2.1.Ask the user the value of A 2.2.if the user answers A then stare this value in WM else return FAIL 3.else 3.1.Choose a rule according to a selection criterion (criteria) 3.2.for each premise Ij, j=1,N, in LHS of R execute 3.2.1.Be Aj refered by the premise Ij 3.2.2.if Aj has value then evaluate the truth of Ij 3.2.3.else i.if Detvalue(Aj) = SUCCESS then evaluate the truth of Ij ii.else consider Ij unsatisfied 21
22
3.3. if all premises Ij, j=1,N are satisfied then store the value A obtained from the RHS of R in WM 4.if A has value (in WM) then return SUCCESS 5.else 5.1 CS CS – R 5.2 repeat from 2 end. 1'.if A is primary data then 1'.1.Ask the user the value of A 1'.2.if the user knows the value of A then- store this value in WM - return SUCCESS 1’.3.else return FAIL 22
23
Example of RBS with forward chaining (a) R11:if Etapa is Verifica-Decor and exists o statuie and does not exist soclu then Add soclu la Obiecte-Neimpachetate….. R17:if Etapa is Verifica-Decor then finish Etapa Verifica-Decor and start Etapa Obiecte-Mari 23
24
Example of RBS with forward chaining - cont R21:if Etapa is Obiecte-Mari and exists un obiect mare de ambalat and exists un obiect greu de ambalat and exists o cutie cu mai putin de trei obiecte mari then pune obiectul greu in cutie R22:if Etapa is Obiecte-Mari and exists un obiect mare de ambalat and exists o cutie cu mai putin de trei obiecte mari ….. then pune obiectul mare in cutie R28:if Etapa is Obiecte-Mari and exists un obiect mare de pus then foloseste o cutie noua R29:if Etapa is Obiecte-Mari then finish Etapa Obiecte-Mari and start Etapa Obiecte-Medii 24
25
Example of RBS with backward chaining (b) R1: if X has par then X is mamal R2: if X feeds puii with milk then X is mamal R3:if X is mamal and X has pointed teeth and X has falci then X is carnivor R4:if X is carnivor and X is brown and X has pete then X is cheetah R5:if X is carnivor and X is brown and X has strips then X is tiger 25 What is X?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.