Conflict resolution strategy

Conflict resolution strategies are used in production systems in artificial intelligence, such as in rule-based expert systems, to help in choosing which production rule to fire. The need for such a strategy arises when the conditions of two or more rules are satisfied by the currently known facts.

Categories
Conflict resolution strategies fall into several main categories. They each have advantages which form their rationales.


 * 1) Specificity - If all of the conditions of two or more rules are satisfied, choose the rule according to how specific its conditions are. It is possible to favor either the more general or the more specific case. The most specific may be identified roughly as the one having the greatest number of preconditions. This usefully catches exceptions and other special cases before firing the more general (default) rules.
 * 2) Recency - When two or more rules could be chosen, favor the one that matches the most recently added facts, as these are most likely to describe the current situation.
 * 3) Not previously used - If a rule's conditions are satisfied, but previously the same rule has been satisfied by the same facts, ignore the rule. This helps to prevent the system from entering infinite loops.
 * 4) Order - Pick the first applicable rule in order of presentation. This is the strategy that Prolog interpreters use by default, but any strategy may be implemented by building suitable rules in a Prolog system.
 * 5) Arbitrary choice - Pick a rule at random. This has the merit of being simple to compute.