Rule-Based Expert Systems[Shortliffe, E. Computer-based medical consultations: MYCIN. New York: Elsevier, 1976.]
MYCIN diagnoses infectious blood diseases using a backward-chained (exhaustive) control strategy.
The algorithm, ignoring certainty factors, is basically backchaining:
Given:
For each g ∈ Goal-list do
If prove(g, DB, Rules) then Print (``Diagnosis:'', g)
Function prove (goal, DB, Rules)
If goal ∈ DB then return True
elseif ∃ r ∈ Rules such that rRHS contains goal
then return provelist(LHS, DB, Rules)[provelist
calls prove with each condition of LHS]
else Ask user about goal and return answer