1 rule based systems introduction to production system architecture

30
1 Rule Based Systems Introduction to Production System Architecture

Upload: aisha-isaacs

Post on 14-Dec-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

1

Rule Based Systems

Introduction to Production System Architecture

2

Rules and ‘Productions’

• ‘Production’ - a rule for changing grammar

• Englishs regular verbs– regular_verb + (past) --> verb + ‘ed’

• Pig-latin productions– consontant string string + consonant + ‘ay’

– vowel + string string + ay

• Is this enough? What do we have to add?

• Can you reverse it?

3

Work through this production system to decode the result

• z lu pp hlw lloq rv wr e

• uqzv ??

4

Rules

• Form– IF antecedent THEN conclusion

– IF condition THEN action

– IF antecedent THEN goal

• Interpreters– Backward chaining

» Trigger on conclusion/goal

– Forward chaining» Trigger on antecedent/condition

5

Rules and Logic

• Rules are really statement in logic– About what we believe to be true

– About what should occur

• Translation 1 - situations– IF may_rain THEN should_take_umbrella

s. Situation s May_rain s Take_umbrella s

“For all s, if s is a situation & s is a may_rain situation, then s is a take_umbrella situation.

6

Rules and Logic

• Translation 2 - implied objects– IF may_rain THEN should_take_umbrella

wp. Weather w Person p May_rain w Out_in p w Take_umbrella p

“For all w and p, if w is a weather and w is may_rain weather and p is a person and p is out in w, then p (should) take an umbrella.”

• Translations: be careful of the words– The words are just symbols

» They have no meaning except help human know what the symbols are for

» Just like variable names - could all be x,y,z... wp. W w P p M w O p w T p

7

Forward and Backward Chaining

• Rules– r1: IF may_rain THEN should_take_umbrella

– r2: IF cloudy THEN may_rain

• Questions– “Should I take an umbrella?”

– “What should I do if it is cloudy?”

• How did you answer the questions?– Which part of the rule did you look for? (‘match’)

8

Backward Chaining

• Rules– R1: IF may_rain THEN should_take_umbrella

– R2: IF cloudy THEN may_rain

• “Should I take an umbrella?”– “Do the rules indicate I should take an umbrella?

» Is there a rule about “taking umbrellas”?• R1: goal: should_take_umbrella

» How can I prove that goal?• What has to be true for r1 to hold?

– may_rain is the antecedent of r1

» Can I prove that it may_rain?• R2: goal: may_rain

» How can I prove that goal2• What has to be true for r2 to hold

– cloudy is the antecedent of r2

» How can I prove ‘cloudy’?

9

Backward Chaining

Goal_1 Goal_2

Goal_2 Goal_3

Goal_3 Goal_4

Goal_4 Goal_5

Question

rules

Dir

ecti

on

of

reas

on

ing

10

Backward Chaining

• Rules– R1: IF may_rain THEN should_take_umbrella

– R2: IF cloudy THEN may_rain

– R3: IF may_be_intense_sun THEN should_take_umbrella

– R4: IF summer AND in_tropics THEN may_be_intense_sun

• “Should I take an umbrella?”– “Do the rules indicate I should take an umbrella?

» Is there are rule about “taking umbrellas”?• R1: goal: should_take_umbrella

» What is antecedent for r1?• R1:antecedent may_rain

» Can I prove that it may_rain?• R2: goal: may_rain

» How can I prove may_rain• R2:antecedent: cloudy

» BUT NOT CLOUDY!

11

Backward Chaining: Backtracking

• Rules– R1: IF may_rain THEN should_take_umbrella

– R2: IF cloudy THEN may_rain

– R3: IF may_be_intense_sun THEN should_take_umbrella

– R4: IF summer AND in_tropics THEN may_be_intense_sun

• “Should I take an umbrella?”» Are there any other rules about umbrellas?

• R3: goal: should_take_umbrella

» What is antecedent of R3?• R3:antecedent: summer AND in tropics

12

Backwards Chaining with Backtracking

Goal_1 Goal_2

Goal_2 Goal_3

Goal_3 Goal_4

Goal_4 Goal_5

Question

rulesfail

Goal_6 Goal_4

Goal_7 Goal_6

Goal_8 Goal 7

Dir

ecti

on

of

reas

on

ing

13

Backwards Chaining Systems

• MYCIN– ‘The original expert system’

» Diagnosis of acute infections (Meningitis, blood infections)• Still a good example of how it works

» Also used • uncertain reasoning

• Explanation

– ‘How’ did you prove that?

– ‘Why’ are you asking me that?

» Never used ‘for real’

• PROLOG– One of the two standard AI languages

» A simple backwards chaining engine with backtracking

14

Backwards Chaining Engines usually written ‘backwards’

• Goal Antecedent– Umbrella may_rain

– may_rain cloudy

• Prolog ‘Edinburgh’ notation– umbrella :- may_rain.

– may_rain :- cloudy.

NB upper and lower case very important in Prolog

• In KnowledgeWorks – (defrule r1 :backward <body>)

» Or special functions ‘any’, ‘test’, and ‘not’• Awkward - don’t try it first time.

15

Forward Chaining

• Rules– R1: IF may_rain THEN should_take_umbrella

– R2: IF cloudy THEN may_rain

• “What should I do if it is cloudy?”– “What do the rules indicate I should do if it is cloudy?”

» Is there a rule that applies when it is cloudy?• R2: antecedent: cloudy

» What do I conclude from that antecedent, ‘cloudy’• R2: conclusion: may_rain

» Is there a rule that applies when it may_rain?• R1: antecedent: may_rain

» What do I conclude from that antecedent: ‘may_rain’• R1: conclusion: should_take_umbrella

16

Forward chaining

‘Production Systems’– Vocabulary used differently on west and east coast of US

for many years» On east coast, ‘production systems’ means forward

chaining

» On west coast, ‘production systems’ just means rule based systems

– Usually, and in this course, ‘Production System’ means ‘forward chaining’

• Classic system is OPS5

• Basic strategy of KnowledgeWorks

17

Forward Chaining

Fact_1 Fact_2

Fact_2 Fact_3

Fact_3 Fact_4

Fact_4 Fact_5

Action=Fact_5

rules

Directio

n o

f reaso

nin

g

Fact_1

18

Consider

R1: IF sky=cloudy THEN expect=rain

R2: IF expect=?X THEN weather=?X

R3: IF sky=cloudy AND temperature=freezing THEN expect=snow

R4: IF weather=rain THEN termperature=above_freezing

What happens if ‘sky=cloudy’?What happens if ‘sky=cloudy and ‘temperature=freezing’?

Conflict Resolution

19

Production system interpreter

• Objectives:– Fire rules as the facts come in to the knowledge base

– Never fire a rule unless its conditions are satisfied

– Fire every rule whose conditions are satisfied

• Are these objectives consistent. – Forward chaining rules sometimes called ‘demons’

» From a system called “Pandemonium”

– How can they be made consistent?

20

Production System Strategy

• All rules tested at each cycle

• Only one rule fires at a time

21

Production System Cycle

1 Test all rules

2 Put all rules satisfied into the ‘conflict set’

3 Choose one rule from the conflict set

4 Fire the rule

5 Update the dynamic database

6 Repeat until goal reached or no more rules satisfied

22

Conflict Resolution

R1: IF sky=cloudy THEN expect=rain

R2: IF expect=?X THEN weather=?X

R3: IF sky=cloudy AND temperature=freezing THEN expect=snow

R4: IF weather=rain THEN termperature=above_freezing

What happens if ‘sky=cloudy’?What happens if ‘sky=cloudy and ‘temperature=freezing’?

23

Possible Conflict Resolution Strategies

• Specificity

• Priority

• Lexical Ordering

• Source file ordering

• Explicit rules for conflict resolution– a rule based system within a rule based system

24

Basic Production System Architecture

Dynamic Memory

Rule Store

Conflict Set

Rule Execution

tickle

check satisfactionSelect(resolve conflicts)

execute

25

Modules (Contexts) & Agendas

• How to modularise RBSs

• Agenda = Sequence of modules (Stack)

• Module = Named Set of rules– (Rule MODULE::rule_name

IF ...THEN...)

• Contexts popped off stack when finished.

26

Agenda/Modules Example

• focus search stuck

• defrule search::r1IF hero is at ?Place-1 &

?Place-1 gives_access_to ?Place-2THEN move hero to ?Place-2

• defrule stuck::r1IF context stuck &

hero is at ?Placenot ?Place = goal

THEN ask-user “What do I do now?”

27

Expert SystemsConfiguring systems

• defrule BACKPLANE_STRUCTURE::R1IF the_processor IS in placeAND the_devices_to_mount INCLUDE

?DeviceTHEN mount ?Device

• defrule BACKPLANE_STRUCTURE::R1IF mount ?DeviceAND ?Slot_1 IS_A backplane_slotAND NOT lower_number_available_than

?Slot_1 ?Slot_2THEN ?Slot_1 is_occupied_by ?DeviceAND ?Device is_mounted.

28

The Structure of Heuristics

• Trigger

• Constraints

• Antecedents

• Actions

• Conclusions

• Control

29

Formalising Heuristics

• Triggers– quick & sensitive

• Constraints– quick & specific

• Antecedents– complete and sufficient

• Actions

• Conclusions

• Control

30

Formalising Heuristics

• Triggers

• Constraints

• Antecedents

• Actions– Things effecting the outside world

• Conclusions– New facts for the dynamic data base

• Control– changes to agenda