Blackboard Pattern

[from http://www.xue5.com/itedu/200707/130364.html]
黑板模式是一种常用的架构模式,应用中的多种不同数据处理逻辑相互影响和协同来完成数据分析处理。就好像多位不同的 专家 在同一黑板上交流思想,每个专家都可以获得别的专家写在黑板上的信息,同时也可以用自己的分析去更新黑板上的信息,从而影响其它专家。
在实际应用中常见的实现模式有:

A 利用数据库
利用数据库充当黑板,不同的应用共享数据库中信息,并且可以更新数据信息。这也是最常见的实现方式。
特点:
1 便于实现信息的查询,筛选和统计,这方面关系数据库提供了SQL 92的强大支持。
2 不能用于较高实时性要求的环境,这种实现是工作在“拉模式”下的,并且高频率的访问数据库会导致 严重 的系统性能问题。

B 利用发布—订阅模式
这种实现方式通常采用消息队列作为黑板,队列工作在主题模式(Topic),专家作为队列的订阅者,同时可以向队列发送消息,消息会被发送至所有订阅者。以上过程实现了专家间的信息交流。
特点:
1 可以有效应用于实时性要求较高的系统,这种实现工作在“推模式”下。
2 难于实现信息的统计分析,不像实现方式一那样可以通过SQL支持,这些工作必须开发者自己完成。



另:
[from http://daydayup.ycool.com/post.389621.html]
黑板模式
解决无确定性求解策略问题。
例子:语音识别系统。
系统输入:语音波形。
系统输出:对应的句子。
所需转换:声波 à 语义

语境:一个不成熟的领域,其中没有相近的或可行的方法。
问题:针对那些需要把原始数据转换成高层数据结构,但没有可行的确定性解的场合。如机器视觉、图像识别、语音识别等。强制条件:
l 在合理的时间内,解空间的完全求解不可行。
l 由于领域不成熟,模块应易于替换以便试验。
l 对子问题的求解可以有多种算法。
l 包含不确定数据和近似解。
解决方案:
l 设计公共数据结构。
l 设计多个专用组件,每个组件解决任务的一个特定部分。
l 每个组件可对公共数据结构进行添加、修改、删除
l 组件的执行次序由仲裁者(moderator)组件决定。
l 仲裁者组件对每个组件的工作结果进行评估,以次为依据协调各组件的工作。
结构:
由黑板、知识源和仲裁者构成。
黑板:中心数据仓库,存放解空间元素和控制数据。知识源通过黑板提供的接口对黑板进行读写。能在黑板上出现的数据叫做词汇。
知识源:求解子问题的子系统,单独的知识源不能求解全部问题。
仲裁者:监视黑板的变化并决定下一步的动作,依据知识应用策略来安排知识源的行动。
见《模式》P43
实现:
l 定义问题
l 定义解空间
l 定义求解步骤
l 将知识分解为一系列专门知识,和子任务关联
l 定义黑板的词汇。
l 定义仲裁者
l 实现知识源
变体:产生式系统模式、仓库模式
已知使用:HEARSAY-II语音识别系统、HASP/SIAP潜艇探测系统、SUS软件理解系统。
效果:
优点:
l 可更改性和可维护性
l 可重用的知识源
l 容错性和健壮性
缺点:
l 测试困难
l 不能保证有好的解决方案
l 难以建立好的控制策略
l 抵效
l 开发困难
l 缺少并行机制



Using a Static Blackboard to Store World Knowledge

http://aigamedev.com/architecture/static-blackboard
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值