Presentation is loading. Please wait.

Presentation is loading. Please wait.

© C. Kemke Control 1 COMP 4200: Expert Systems Dr. Christel Kemke Department of Computer Science University of Manitoba.

Similar presentations


Presentation on theme: "© C. Kemke Control 1 COMP 4200: Expert Systems Dr. Christel Kemke Department of Computer Science University of Manitoba."— Presentation transcript:

1 © C. Kemke Control 1 COMP 4200: Expert Systems Dr. Christel Kemke Department of Computer Science University of Manitoba

2 © C. Kemke Control 2 Rule-based Systems Control u Procedural Control u Conflict Resolution Strategies u Salience u Modules

3 © C. Kemke Control 3 Procedural Control if-then-else while-do

4 © C. Kemke Control 4 Procedural Control in Actions  Procedural Control Elements can appear on the RHS of a rule or in message-handlers of classes. ( if then + [else + ]);; else-part optional ( while [do] * ]);;‘ do’ not mandatory

5 © C. Kemke Control 5 Example – if-then-else (defrule special-age “18, 21, 100” (or (person (name ?name) (age ?age&18)) (person (name ?name) (age ?age&21)) (person (name ?name) (age ?age&100))) => (if (= ?age 18) then (printout t ?name “ can buy beer in Canada.”) else (if (= ?age 21) then (printout t ?name “ can buy beer in the USA.”) else (if (= ?age 100) then (printout t “The major will visit ” ?name ))...)

6 © C. Kemke Control 6 Rule Activation and Execution  Pattern Matching, Rule Activation, Rule Execution  Conflict Set, Conflict Resolution, Strategies

7 © C. Kemke Control 7 Facts, Rules, Pattern Matching  Forward-chaining systems begin with an initial set of facts and in an inference process generate new facts until a goal state is reached.  Facts are entered into the Working Memory (WM).  The conditions of each rule are matched to these facts  Pattern Matching (e.g. Rete Algorithm)  Rules whose conditions are satisfied are activated and entered on the agenda.

8 © C. Kemke Control 8 Rule Activation  The pattern matching algorithm determines, in which sequence rules are being activated, i.e. placed on the agenda.  In CLIPS, you cannot easily determine the sequence of rule activations.  Thus, do not write programs, which implicitly depend on a certain sequence of facts activating rules.

9 © C. Kemke Control 9 Conflict Resolution  The set of activated rules on the agenda is called the Conflict Set.  Choosing which of the activated rules to fire next is known as Conflict Resolution.  A simple strategy is to select rules according to the order, in which they are put on the agenda. CLIPS, for example, uses a stack (last-in first- out).  There are different types of Conflict Resolution Strategies.

10 © C. Kemke Control 10 Conflict Resolution Strategies There are two categories of strategies:  global strategies  local strategies Global Strategies are domain-independent and part of the Rule Interpreter/Inference Engine. Local Strategies are domain-dependent and implemented as part of the Rule Base.

11 © C. Kemke Control 11 Conflict Resolution: Refractoriness  Refractoriness Forward chainers typically implement a refractory conflict resolution strategy - once a rule is fired, it isn't used again on the same data

12 © C. Kemke Control 12 Conflict Resolution: Specificity  Specificity: Choose a rule with the most conditions or the most specific conditions ahead of a more general rule (prefer most specific knowledge instead of general knowledge)

13 © C. Kemke Control 13 Conflict Resolution: Recency  Recency: Fire a rule first that is activated by a fact just added to Working Memory, i.e. fire most recently activated rule first (  focus on one line of reasoning, with all related facts and rules)

14 © C. Kemke Control 14 Explicit Control  Salience  Meta-Rules

15 © C. Kemke Control 15 Salience  We can use salience measures to prioritize rules.  CLIPS provides a built-in method for prioritizing rules: (declare (salience value))  Salience values can range from -10000 to +10000. Default is 0.  We can thus force the execution of one rule over another. We can implement sequencing of rules.

16 © C. Kemke Control 16 Rule Prioritization in Clips  for example, consider the following rules... (forced order of execution)

17 © C. Kemke Control 17 Two Nifty Rules (defrule fire-first (declare (salience 30)) (priority first) => (printout t "Print First" crlf) ) (defrule fire-second (declare (salience 20)) (priority second) => (printout t "Print Second" crlf) )

18 © C. Kemke Control 18 And One More... (defrule fire-third (declare (salience 10)) (priority third) => (printout t "Print Third" crlf) )

19 © C. Kemke Control 19 Getting Ready to Run... (assert (priority second)) (assert (priority first)) (assert (priority third)) (agenda) 30 fire-first: f-2 20 fire-second: f-1 10 fire-third: f-3 For a total of 3 activations.

20 © C. Kemke Control 20 Running This...  The CLIPS agenda acts like a stack - last rule on, first fired  If salience were not used, the third rule, then the first, then the second would fire, due to the sequence of facts and activation of rules: (assert (priority second)) (assert (priority first)) (assert (priority third))

21 © C. Kemke Control 21 Reasoning Control Classes of Rules

22 © C. Kemke Control 22 Categories of Rules  Salience values are arbitrary; often what we want is that a certain class of rules are considered before others.  This can be built into the rules themselves using a kind of 'tag' IF (status is check-for-emergencies).... and employed by setting a fact to allow various categories of rules to be selected - for example, asserting that the status is check-for-emergencies  Another rule can be implemented to change status to the next group of rules.

23 © C. Kemke Control 23 Categories Example (deffacts control-information (phase detection) (phase-after detection isolation) (phase-after isolation recovery) )

24 © C. Kemke Control 24 Categories Example (defrule change-phase (declare (salience -10)) ?phase <- (phase ?current-phase) (phase-after ?current-phase ?next-phase) => (retract ?phase) (assert (phase ?next-phase) )  Context Limiting

25 © C. Kemke Control 25 Another Way... (deffacts control-information (phase detection) (phase-sequence isolation recovery detection))

26 © C. Kemke Control 26 Another Way... (defrule change-phase (declare (salience -10)) ?phase <- (phase ?current-phase) ?list <- (phase-sequence ?next-phase $?other-phases) => (retract ?phase ?list) (assert (phase ?next-phase) (assert (phase-sequence ?other-phases ?next-phase)) )

27 © C. Kemke Control 27 Explanation  Note the $?other-phases  The $ operator causes the variable to be bound to several symbols (the remainder of the list of phases, in this case) rather than one. Note that the $ is not part of the variable name and isn't used later when referencing the variable.

28 © C. Kemke Control 28 Explanation  This approach could be used in a monitoring or control system - forward reasoning is typically used in such systems because we get information, then want to see the ramifications of it (analyze, provide treatment, and so on)

29 © C. Kemke Control 29 Control: Meta-Rules  Meta-Rules Use Meta-Rules to divide rules into classes. Choose one class over another at a given point. This implements domain-dependent knowledge about which set of rules to use during reasoning. CLIPS provides a Module-construct with similar effects.


Download ppt "© C. Kemke Control 1 COMP 4200: Expert Systems Dr. Christel Kemke Department of Computer Science University of Manitoba."

Similar presentations


Ads by Google