[Home]BlackBoardModel

MeatballWiki | RecentChanges | Random Page | Indices | Categories

One technique out of the many created in ArtificialIntelligence is called the blackboard model. The basic concept of the blackboard model is that, to solve a problem, you create (borrow, use, recruit, what have you) a number of simple agents that have limited knowledge. Each one reviews the problem from its own perspective -- that is, in the context of its own knowledge base -- and contributes what it can to a common solution area, called the BlackBoard?. The agents can overwrite each other's contributions, ignore them, revert them, etc. Hopefully, the contributions of each agent eventually meld to form a full solution to the problem.

GradyBooch? provides an example of a problem space where the blackboard model is appropriate: solving letter-substitution ciphers, like the syndicated newspaper item, CryptoQuips? (TM), where each letter in an English sentence is replaced by another letter of the alphabet. Booch makes a program with a lot of little agents that know single rules about English, such as that there's only two words in English with one letter, or that an apostrophe is usually followed by either a T or an S, or the relative frequency of different letters in English. Each agent looks at the problem -- the scrambled sentence -- and proposes some parts of the solution space.

The main advantage of the blackboard model is reduced agent complexity. It's of course possible to write one great big agent that solves CryptoQuips?, but with most non-trivial problems taking the one-big-agent approach can be really difficult for programming. By distributing the knowledge to lots of little agents, the complexity is reduced -- each agent has a manageable knowledge base -- and the programming task is that much easier.

Some disadvantages of the blackboard model are that communications overhead becomes kind of high, and that it's a matter of faith that you get enough agents together to actually solve the problem.


Discussion

MeatballWiki | RecentChanges | Random Page | Indices | Categories
Edit text of this page | View other revisions
Search: