Artificial Intellegence Patterns

-- Architecture
-- Original
-- for Abstraction
-- for Problems

-- Emotion Patterns

C++ Implementation



Pandemonium - a general AI Pattern

Pandemonium, as a general AI technique pattern, is a simplification and generalization of an architecture proposed by O. G. Selfridge in 1959. This is described briefly (and I hope accurately) [here]. The reference to the original work is [SEL1].

In its simplest form, pandemonium consists of an object that owns a pit of shrieking demons and uses the information being shrieked to make decisions.

The purpose of a demon is to observe something, watching for a particular condition or combination of conditions. If it sees what it is watching for, the demon shrieks. The closer the match, the louder the shriek. If the demon shrieks loudly enough to attract the attention of its owner, the owner may choose to act in relation to what the demon is shrieking about.

From a software design point of view, the pandemonium pattern involves an object that owns a set of demons. Each demon tests for a particular combination of conditions in data that it can see, and if the conditions are observed, to call a function of the owner, passing it an importance value (the shriek-volume).

Pandemonium is used to encapsulate a set of tests that can be defined independently of each other. It is used to set up the conditions under which action might be required and then turn over the responsibility of watching for the conditions to the demons.