Production Systems, Matching, and Expert Systems for Artificial Intelligence (CIS 479)
Rule Based System
weakness – expert system
- Require a lot of detailed knowledge
- Restrict knowledge domain
- Not all domain knowledge fits rule format
- Expert consensus must exist
- Knowledge acquisition is time consuming
- Truth maintenance is hard to maintain
- Forgetting bad facts is hard
Forward Chaining
Do this until problem is solved or no antecedents match
- Collect the rules whose antecedents are found in WM.
- If more than one rule matches use conflict resolution strategy to eliminate all but one
- Do actions indicated in by rule "fired"
Conflict Resolution Strategies
- Level of Specificity
Maximum Specificity ( number of antecedents) match antecedents and choose the one with the most matches.
- Physically order the rules. By doing this we can have subsets and we may also have preconditions
- Order added to state description (WM)
{ recency ordering based on date }
- Recency Ordering for rules
- Data Ordering
- Context Limiting
- Execution Time
- Fire All Application Rules
Simulation handout
R1 / XCON was created to solve problems
Spent 2 years to create the expert system
Stages
- Check Order – missing/ mismatched pieces
- Layout Processor Cabinets
- Put boxes in input/output cabinets and components in boxes
- Put panels in input/output cabinets
- Layout floor plan
- Indicates Cabling
OPS 5
- This is the first shell language
- R1/XCON 2500 rules
If context is layout and assign power supply then add appropriate power supply to order
Two kinds of Popular Role Based Systems
- Synthesis Systems
R1/XCON
Tends to be forward chaining
Often data driven
Often make use of breadth first search
This looks at all facts before proceeding
- Analysis & Diagnostic
Tend to use backward chaining
MYCIN
Often goal driven
Often depthfirst search
Backward Chaining Algorithm
Given goal g
- find the set of rules that determine g
- if a set of rules does not equal empty set then
loop
- choose rule R
- make R’s antecedent
new goal
- if new goal is unknown then backchain (ng)
- else
apply rule R
- until g is solved or S is equal to empty set
- else
consult user
end