Artificial Intellegence Patterns

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

-- Emotion Patterns

C++ Implementation



Selfridge's Original Pandemonium

The present author confesses that his interest in Pandemonium lies mostly in a simple generalization of the architecture, and that he has done little research into the important work by Selfridge and work that followed.

Anyone interested in correcting, critiquing, contributing to or editing this part of the website is encouraged to contact Brian Marshall at

The following is a very brief description. A somewhat more detailed description is available at this page.

In 1959, O. G. Selfridge proposed an architecture, that he called Pandemonim, that could be useful for pattern recognition [SEL1]. He demonstrated that it could effectively used to distinguish dots and dashes in hand-keyed morse code and to distinguish hand-printed characters out of a ten possibilities [SEL2].

Selfridge's pandemonium is composed of four layers:

  • a bottom layer of demons that acquire and store input data, and then pass it on to...
  • a layer of computational demons that perform computations on the data they receive and attempt to identify evidence of particular patterns, which they pass on to..
  • a layer of cognitive demons that consider the evidence received, and where sufficient evidence exists, shriek to...
  • a top layer composed of a decision-making demon that decides, based on the shrieking it hears about evidence, what pattern was actually presented to the bottom layer.

Selfridge's pandemonium used two types of learning:

  • initially, in a phase of supervised learning, the weights between computational demons and cognitive demons are trained in order to optimize performance, and,
  • secondly, useless demons, that contribute little to decision-making, are eliminated, and useful demons are used to create new demons, either by mutation or by combining two useful demons.