Sie sind auf Seite 1von 25

1

LECTURE:03

Biomedical Department, NIT Raipur 10/11/09


PRODUCTION SYSTEM
2

A PS is a computer program typically used to


provide some form of AI, which consists a set of rules
about behavior.

A PS provides the mechanism necessary to execute


productions in order to achieve some goal for the
system.

Biomedical Department, NIT Raipur 10/11/09


PRODUCTION SYSTEM
3

A production system consists of four basic components:


1. A set of rules of the form
Ci ® Ai
or
C1, C2, … Cn => A1 A2 …Am

Left hand side (LHS) Right hand side (RHS)


Conditions/antecedents Conclusion/consequence

where Ci is the condition part and Ai is the action part.

The condition determines when a given rule is applied, and


the action determines what happens when it is applied.

Biomedical Department, NIT Raipur 10/11/09


4

2. knowledge databases / working memory :


Contains whatever information is relevant for the
given problem & also maintains data about current
state or knowledge. Some parts of the database
may be permanent, while others may temporary
and only exist during the solution of the current
problem. The information in the databases may be
structured in any appropriate manner.

Biomedical Department, NIT Raipur 10/11/09


5

3. A control strategy : that determines the order in


which the rules are applied to the database, and
provides a way of resolving any conflicts that can
arise when several rules match at once.

4. A rule applier : which is the computational


system that implements the control strategy and
applies the rules.

Biomedical Department, NIT Raipur 10/11/09


Production rule for water jug problem
6
1. (x, y)  (4, y), If x < 4 fill the 4-gallon jug.
2. (x, y)  (x,3), If y < 3 fill the 3-gallon jug.
3. (x, y)  (x- d , y), If x > 0 pour some water out of the 4-gallon jug
4. (x, y)  (x, y - d), If y > 0 pour some water out of the 4-gallon jug
5. (x, y)  (0, y) If x > 0 empty the 4-gallon jug.
6. (x, y)  (x, 0), If y > 0 empty the 3-gallon jug.
7. (x, y)  (4, y – (4 – x) ), if x + y >= 4 & y > 0 pour water from the
3-gallon jug into the 4-gallon jug
until the 4-gallon jug is full.
8. (x, y)  (x – (3 – y), 3 ), if x + y >= 4 & y > 0 pour water from the
4-gallon jug into the 3-gallon jug until the
3-gallon jug is full.

Biomedical Department, NIT Raipur 10/11/09


7

9. (x, y)  (x + y, 0 ), if x + y <= 4 & y > 0 pour all the


water from the 3-gallon jug into the 4-
gallon jug.
10. (x, y)  (0, x + y), if x + y <= 3 & x > 0 pour all the
water from the 4-gallon jug into the 3-gallon jug.

11. (0, 2)  (2, 0), pour 2-g from 3-g to 4-g


12. (2, y)  (0, y) , empty the 2-g in to 4-g on the ground

Biomedical Department, NIT Raipur 10/11/09


Problem of Conflict Resolution
8

When there are more then one rule that can be fired in a
situation and the rule interpreter can not be decide which is
to be fired, what is the order of triggering and whether to
apply it .

Some Resolution Strategies:


1) Perform the first.
2)Sequencing techniques.
3)Perform the most specific.
4)Most recent policy.

Biomedical Department, NIT Raipur 10/11/09


CONTROL STRATEGIES
9

Requirements of control strategies:

1. It should cause motion.

2. It should be systematic.

Biomedical Department, NIT Raipur 10/11/09


Two types
10

Forward chaining:- starts with the data available and


uses the inference rules to conclude more data until a
desired goal is reached.
 An inference engine using forward chaining searches the
inference rules until it finds one in which the if-clause is
known to be true.
 It then concludes the then-clause and adds this information
to its data.
 It would continue to do this until a goal is reached. Because
the data available determines which inference rules are
used.
 this method is also called data driven

Biomedical Department, NIT Raipur 10/11/09


A Simple Example
R1: IF hot AND smoky THEN fire
R2: IF alarm_beeps THEN smoky
R3: If fire THEN switch_on_sprinklers

F1: alarm_beeps [Given]


F2: hot [Given]

Biomedical Department, NIT Raipur 10/11/09


A Simple Example
R1: IF hot AND smoky THEN ADD fire
R2: IF alarm_beeps THEN ADD smoky
R3: If fire THEN ADD switch_on_sprinklers

F1: alarm_beeps [Given]


F2: hot [Given]

F3: smoky [from F1 by R2]


F4: fire [from F2, F4 by R1]
F5: switch_on_sprinklers [from F4 by R3]

A typical Forward Chaining example

Biomedical Department, NIT Raipur 12 10/11/09


Forward Chaining

In a forward chaining system: Facts are


held in a working memory
Condition-action rules represent actions to take when
specified facts occur in working memory.
Typically the actions involve adding or deleting facts
from working memory.
facts
Working Inference
Memory Engine
facts
facts rules

User Rule Base

Biomedical Department, NIT Raipur 13 10/11/09


Forward Chaining Algorithm (I)

Collect the rule whose condition matches a fact in


WM.
Do actions indicated by the rule
(add facts to WM or delete facts from WM)
Until problem is solved or no condition match

Biomedical Department, NIT Raipur 14 10/11/09


15

Backward chaining:starts with a list of goals and


works backwards to see if there is data which will
allow it to conclude any of these goals.
 An inference engine using backward chaining
would search the inference rules until it finds one
which has a then-clause that matches a desired
goal.
If the if-clause of that inference rule is not known
to be true, then it is added to the list of goals.

Biomedical Department, NIT Raipur 10/11/09


Backward Chaining
Same rules/facts may be processed differently, using
backward chaining interpreter
Backward chaining means reasoning from goals back
to facts.
The idea is that this focuses the search.
Checking hypothesis
Should I switch the sprinklers on?

Biomedical Department, NIT Raipur 16 10/11/09


Backward Chaining Algorithm
To prove goal G:
If G is in the initial facts, it is proven.
Otherwise, find a rule which can be used to conclude
G, and try to prove each of that rule's conditions.

Biomedical Department, NIT Raipur 17 10/11/09


Example
Rules:
R1: IF hot AND smoky THEN fire alarm_beeps
R2: IF alarm_beeps THEN smoky
R3: If fire THEN
switch_on_sprinklers
Facts:
F1: hot smoky hot

F2: alarm_beeps
Goal:
Should I switch sprinklers on? fire

switch_on_sprinklers

Biomedical Department, NIT Raipur 18 10/11/09


Forward vs Backward Chaining

Depends on problem, and on properties of rule set.


If you have clear hypotheses, backward chaining is
likely to be better.
Goal driven
Diagnostic problems or classification problems
Medical expert systems
Forward chaining may be better if you have less clear
hypothesis and want to see what can be concluded
from current situation.
Data driven
Synthesis systems Design / configuration

Biomedical Department, NIT Raipur 19 10/11/09


Forward-chaining Example (A,B,E, and
D are 20given)
 If Y and D then Z
 If X and B and E then Y
 If A then X
 If C then L
 If L and M then N

A X

B Y
Z
L
C

E
Biomedical Department, NIT Raipur 10/11/09
Backward Chaining Example
21

 If Y and D then Z
 If X and B and E then Y
 If A then X
 If C then L
 If L and M then N

A X

B Y Z
B

C
E
D D

E Department, NIT Raipur


Biomedical 10/11/09
22

LECTURE 4

Biomedical Department, NIT Raipur 10/11/09


One Systematic Control Strategy for Water Jug
Problem : Breadth First Search Technique
23

Construct a tree with initial state as root & then


generate all the offspring of the root by applying
each of the applicable rules to initial state.

(0,0)

(4,0) (0,3)

Biomedical Department, NIT Raipur 10/11/09


Similarly……………….
24

For each leaf node , generate all its successors by


applying all the rules that are appropriate.
(0,0)

(4,0) (0,3)

(4,3) (0,0) (1,3) (4,3) (0,0) (3,0)

Continue this to reach goal state.

Biomedical Department, NIT Raipur 10/11/09


DEPTH FIRST SEARCH
25

(0,0)

(4,0)

(4,3)

Biomedical Department, NIT Raipur 10/11/09

Das könnte Ihnen auch gefallen