Conflict resolution strategy

From Wikipedia, the free encyclopedia
Jump to: navigation, search

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.[1][2][3][4][5]

Categories[edit]

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

  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.[1] 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]
  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.[1][2]
  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.[1] This helps to prevent the system from entering infinite loops.[2]
  4. Order - Pick the first applicable rule in order of presentation.[1] This is the strategy that Prolog interpreters use by default,[6] but any strategy may be implemented by building suitable rules in a Prolog system.[7]
  5. Arbitrary choice - Pick a rule at random. This has the merit of being simple to compute.[2]

See also[edit]

References[edit]

  1. ^ a b c d e McDermott; Forgy, Charles L. (1976). "Production System Conflict Resolution Strategies". Carnegie Mellon University. Retrieved 18 January 2016. 
  2. ^ a b c d e f Bullinaria, John (2005). "IAI: Production Systems. 10. Conflict Resolution" (PDF). University of Birmingham. Retrieved 18 January 2016. 
  3. ^ Fayyoumi, Ebaa. "Chapter 6: Production Systems" (PDF). EIS, Jordan. Retrieved 18 January 2016. 
  4. ^ Pakiarajah, V., Crowther, P. and Hartnett, J. "Conflict Resolution Techniques for Expert Systems Used to Classify Remotely Sensed Satellite Images". GeoComputation 2000. 
  5. ^ "KnowledgeWorks and Prolog User Guide. 3.1.5.3 Conflict Resolution". LispWorks. 22 December 2009. Retrieved 18 January 2016. 
  6. ^ Brna, Paul. "Prolog and Execution Strategies". University of Edinburgh. Retrieved 18 January 2016. 
  7. ^ Bratko, Ivan (2001). Prolog Programming for Artificial Intelligence. Addison Wesley. p. 644. ISBN 978-0-201-40375-6.