Title: Blackboard Architectures
1Blackboard Architectures
- Damian Isla and Bruce Blumberg
2The brain architecture (C4)
3Abstract
- As the number of agents increases, controlling
and coordinating their behavior becomes difficult - The blackboard approach
- Useful for synthetic character control, natural
language understanding, reasoning problems, - Divide and conquer
4The Canonical Blackboard Architecture 1/2
5The Canonical Blackboard Architecture 2/2
- Blackboard
- A publicly read / writable information display
- KSs (Knowledge Sources)
- Specialists with relevance
- Operate on the information that the blackboard
contains - Only communicate each other through the
blackboard - Arbiter
- Decide the relevant KSs to execute
- Data-driven vs. Goal-driven
6Rule-based vs. Blackboard
- Rule-based system
- Compact and uniform encoding of both conditions
and actions - Allow only forward-chaining or only
backward-chaining - Blackboard
- Allow arbitrary code to be executed
- Allow one, the other, or both at once
- Allow multiple concurrent lines of reasoning
7The trend of blackboard
- Using for control rather than reasoning
- Decision-making is moving out of blackboard and
arbiter into the KSs - Two fundamental aspects
- A KS needs not know
- when and how the assertions or control signals it
produces will be used - the originator of the assertions or control
signals it acts upon
8Blackboards for Intra-Agent Coordination 1/2
- Two alternative but equivalent schemes
- The advantage of the blackboard structure
- Scalability
- Encapsulation
9Blackboards for Intra-Agent Coordination 2/2
10Blackboards for Inter-Agent Coordination 1/3
- Coordinate the activity of multiple agents
- BBWar
- KSs
- Individual military units that have special
abilities - Each unit has a set of skills (action)
- Blackboard
- Take the form of open missions
- Skill name, a priority level, a capacity,
arbitrary data
11Blackboards for Inter-Agent Coordination 2/3
12Blackboards for Inter-Agent Coordination 3/3
ActionSelect(time, unit, blackboard) Skills ß
getSkills(unit) For each element, c, of list
skills List rel-list blackboard.read(skillsc)
rel_missions ß Concatenate(rel_missions,
rel-list) For each element, c, of
rel_missions relevancesc CalculatePriority(uni
t, rel_missionsc) w_index highest(relevances
) if (relevancesw_index gt CalculatePriority(uni
t, curMission)) ApplyForMission(unit,
rel_missionsw_index, relevancesw_index)
13Conclusions
- The blackboard architecture constrains that KSs
communicate only through the blackboard - Opportunistic, cooperative, coordinated, and
extensible behavior - Provide a good framework around which to
structure and think about these tasks