1 artificial intelligence university politehnica of bucharest 2008-2009 adina magda florea

Download 1 Artificial Intelligence University Politehnica of Bucharest 2008-2009 Adina Magda Florea

Post on 27-Dec-2015

218 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • Slide 1
  • 1 Artificial Intelligence University Politehnica of Bucharest 2008-2009 Adina Magda Florea http://turing.cs.pub.ro/aifils_08
  • Slide 2
  • 2 Lecture No. 6 Prolog Language Rule-based Systems Knowledge representation using rules RBS structure Inference cycle of a RBS Control strategy 2
  • Slide 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 same with the head of S; 2.2 all the goals in Is body has true (can be satisfied) 3
  • Slide 4
  • 4 Prolog
  • Slide 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
  • Slide 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
  • Slide 7
  • 7 Prolog ?- str1(ada, misu). yes ?- str2(ada, misu). yes ?- str3(ada, misu). yes 7
  • Slide 8
  • 8 Prolog ?- str4(ada, misu). ?- str3(mia, roco). 8
  • Slide 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
  • Slide 10
  • 10 Knowledge representation using rules
  • Slide 11
  • 3. Structure of an RBS
  • Slide 12
  • 12 4. Inference cycle of an RBS Match Selection Execution
  • Slide 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.
  • Slide 14
  • 14 5. Control strategy Selection criteria from the CS Direction of rule application 14
  • Slide 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
  • Slide 16
  • 16
  • Slide 17
  • 17 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 17
  • (p atrib_stud_free_room ( (student ^name ^plased_in nil ^sex_stud )) ( (room ^number ^capacity ^free )) --> (modify ^ plased_in ) (modify ^ occupants ^sex_room ^ free (compute -1)). 27
  • Slide 28
  • 28 Example Jess (deftemplateperson (slot firstname) (slot name) (slot age (type INTEGER)) ) (defrule adult (person(firstname ?p_first) (age ?p_age)) (test (>= ?p_age 18))) => (assert (adult (firstname ?p_first))) )
  • Slide 29
  • Stud/room in Jess (deftemplatestudent (slot name) (slot sex) (slot placed_in) (slot special_considerations (default no)) (deftemplate room (slot number) (slot capacity (type INTEGER)(default 4)) (slot sexes_are) (slot vacancies (type INTEGER)) (multislot occupants)) (defrule assign-student-empty-room ?unplaced_student (student (name ?stud_name) (placed_in nil) (sex ?gender)) ?empty_room (room (number ?room_no) (capacity ?room_cap) (vacancies ?max_size)) (test (= ?room_cap ?max_size)) => (modify ?unplaced_student (placed_in ?room_no)) (modify ?empty_room (occupants ?stud_name) (sexes_are ?gender) (vacancies (-- ?max_size)) )
  • Slide 30
  • 30 5. RBS strategies in OPS5 family Recognize-act cycle: Match Select Act WME = working memory element Identified by a "time tag" Instantiation: set of WME which satisfy a rule Conflict set Conflict resolution 30
  • Slide 31 WMEs 41 (student name Mary sex F placed_in nil special_consideration yes) 52 (student name Peter sex M placed_in nil special_consideration yes) 9 (room number 221 capacity 1 vacancies 1) 12 (room number 346 capacity 2 vacancies 1) 17 (room number 761 capacity 1 vacancies 1) Instantiations (WM) assign-private-room 41 9 assign-private-room 41 17 assign-private-room 52 9 assign-private-room 52 17">
  • Recognize-act cycle match inter-element (defrule assign-private-room (student (name ?stud_name) (placed_in nil) (special_consideration yes)) (room (number ?room_no) (capacity 1) (vacancies 1) => WMEs 41 (student name Mary sex F placed_in nil special_consideration yes) 52 (student name Peter sex M placed_in nil special_consideration yes) 9 (room number 221 capacity 1 vacancies 1) 12 (room number 346 capacity 2 vacancies 1) 17 (room number 761 capacity 1 vacancies 1) Instantiations (WM) assign-private-room 41 9 assign-private-room 41 17 assign-private-room 52 9 assign-private-room 52 17
  • Slide 33
  • 33 Conflict resolution Strategies Refraction = o aceeasi instantiere nu este executata de mai multe ori (2 instantieri sunt la fel daca au acelasi nume de regula si aceleasi time tags, in aceeasi ordine) Time of use = Se prefera instantierile care au identificat cu WMEs cu cele mai recente time tags (sau invers) Specificity = Au prioritate instantierile cu LHS specifice = nr de valori testate in LHS teste asupra: nume clasa, predicat cu 1 arg constanta, predicat cu un operator variabila legata
  • Slide 34
  • 34 Conflict resolution Strategia LEX Elimina din MC instantierile care au fost deja executate Ordoneaza instantierile pe baza momentului utilizarii Daca mai multe instantieri au aceleasi time tags, utilizeaza specificitate Daca mai multe instantieri au aceeasi specificitate alege arbitrar Strategia MEA aceeasi dar utilizeaza primul time tag
  • Slide 35
  • 35 Efficiency Match cam 80% din timpul ciclului recunoastere-actiune Fiecare WME este comparat cu fiecare conditie din fiecare regula O(R*F P ), R nr de reguli, F nr WME, P nr mediu de conditii in LHS regula RETE match algorithm (1982 Forgy) Salveaza starea de match intre 2 cicluri recunoastere- actiune La crearea unui WME, acesta este comparat cu toate elementele conditie din program si este memorat impreuna cu fiecare element conditie cu care a identificat => Numai schimbarile incrementale din WM sunt identificate in fiecare ciclu O(R*F*P) aprox
  • Slide 36
  • Rule compilation Se compileaza conditiile regulilor intr-o retea de noduri de test Un test este un predicat cu o constanta sau variabila legata sau o disjunctie Procesul de match are loc numai la adaugarea sau la eliminarea unui WME (modify este retract urmat de assert) (gate (type or) (value true)) (gate (type or) (value false)) Node sharing 1 = gate type = or value = truevalue = false
  • Slide 37
  • 37 Rule compilation Un pointer la noul WME este trecut prin retea, incepand de la nodul radacina Fiecare nod actioneaza ca un switch Cand un nod primeste un pointer la un WME, testeaza WME asociat. Daca testul reuseste, nodul se deschide si WME trece mai departe Altfel nu se intampla nimic Daca un WME va trece prin retea, va fi combinat cu alte WME care trec pentru a forma o instantiere in MC Pointerii la WME sunt trimisi prin reteaua RETE ca tokens = pointer + stare (assert sau retract)
  • Slide 38
  • 38 Types of node in RETE network Nod cu 1 intrare = test intra-element realizat de noduri cu 1 intrare fiecare nod efectueaza un test corespunzator unei conditii testarea aceleiasi variabile tot noduri cu 1 intrare 1 = gate type = or value = truevalue = false
  • Slide 39
  • 39 RBS Foarte multe Cele mai influente OPS5 ART CLIPS Jess Familia Web Rule languages In special RuleML si SWRL Interoperabilitatea regulilor
  • Slide 40
  • 40 RuleML RuleML Initiative - August 2000 Pacific Rim International Conference on Artificial Intelligence. RuleML Initiative dezvolta limbaje bazate pe reguli deschise XML/RDF Aceasta permite schimbul de reguli intre diferite sisteme, inclusiv componete software distribuite pe Web si sisteme client-server eterogene Limbajul RuleML sintaxa XML pentru reprezentarea cunostintelor sub forma de reguli Integrarea cu ontologii: sistemul de reguli trebuie sa deriveze/utilizeze cunostinte din ontologie
  • Slide 41
  • 41 RuleML RuleML se bazeaza pe Datalog Datalog = limbaj de interogare si reguli pentru baze de date deductive Subset al Prolog cu restrictii: argum

View more