黑板模式算法
定义:黑板模式是一种经常使用的架构模式,应用中的多种不一样数据处理逻辑相互影响和协同来完成数据分析处理。就好像多位不一样的专家在同一黑板上交流思想,每一个专家均可以得到别的专家写在黑板上的信息,同时也能够用本身的分析去更新黑板上的信息,从而影响其它专家。数据库
优缺点:数据结构
黑板模式的优势:可用于非肯定性问题求解,启发式解决过程,可维护性,可重用架构
不足:不能确保指望结果,效率低下,回退,不支持并行,共享空间的访问须要同步性能
实际应用优化
在实际应用中常见的实现模式有:spa
A 利用数据库翻译
利用数据库充当黑板,不一样的应用共享数据库中信息,而且能够更新数据信息。这也是最多见的实现方式。设计
特色:对象
1 便于实现信息的查询,筛选和统计,这方面关系数据库提供了SQL 92的强大支持。
2 不能用于较高实时性要求的环境,这种实现是工做在“拉模式”下的,而且高频率的访问数据库会致使严重的系统性能问题。
B 利用发布—订阅模式
这种实现方式一般采用消息队列做为黑板,队列工做在主题模式(Topic),专家做为队列的订阅者,同时能够向队列发送消息,消息会被发送至全部订阅者。以上过程实现了专家间的信息交流。
特色:
1 能够有效应用于实时性要求较高的系统,这种实现工做在“推模式”下。
2 难于实现信息的统计分析,不像实现方式一那样能够经过SQL支持,这些工做必须开发者本身完成。
黑板架构风格:黑板架构包括知识源、黑板和控制3个部分。知识源包括若干独立计算的不一样单元,提供解决问题的知识,知识源响应黑板上的变化,也只修改黑板。黑板是一个全局数据库,包含解域的所有状态,是知识源互相做用的惟一媒介。知识源响应是经过黑板状态的变化来控制。黑板一般应用在对于解决问题没有肯定性算法的系统中,例如信号处理、问题规划及编译器优化等软件系统的设计中。
这种模式对于没有肯定解决方案策略的问题是有用的。黑板模式由3个主要组成部分组成。
黑板——包含来自解决方案空间的对象的结构化全局内存
知识源——专门的模块和它们本身的表示
控制组件——选择、配置和执行模块
全部的组件均可以访问黑板。组件能够生成添加到黑板上的新数据对象。组件在黑板上查找特定类型的数据,并经过与现有知识源的模式匹配来查找这些数据。
使用场景:
语音识别
车辆识别和跟踪
蛋白质结构识别
声纳信号的解释
应用背景:黑板模式解决没有肯定可行的解决方案,将原始数据转换为高级数据结构(图表或英语词组)。存在这些问题的领域包括视觉识别,图像识别,语音识别和监视等。这种问题具体以下特色:可分解成多个子问题,但每一个子问题都属于不一样的专业领域。
对于这种问题,影响其解决方案的做用力以下:
不可能在合理的时间内遍历整个解空间;
鉴于领域不成熟,可能须要对同一个子任务尝试不一样的算法;
子问题的算法各不相同;
输入,中间结果和最终结果的表示方式各不相同,而不一样算法是根据不一样范式实现的;
一个算法一般使用另外一个算法的结果;
涉及不可靠的数据和近似解;
算法的执行顺序不肯定时还可能要求支持并行性。
可解决的问题:可分解成多个子问题,但每一个子问题都属于不一样的专业领域。
解决方案:黑板模式正是来解决这种问题的,黑板模式就好像多位不一样的专家在同一黑板上交流思想,每一个专家均可以得到别的专家写在黑板上的信息,同时也能够用本身的分析去更新黑板上的信息,从而影响其它专家,正好解决了可分解成多个子问题,但每一个子问题都属于不一样的专业领域的问题。
实例分析:语音识别(语音翻译)
系统能够识别汉语,英语,俄语,意大利语,法语,日语这6种语言。
数据库存放事实:英式英语,美式英语,语言的各类方言
断定那种语言?
TF 语音是四川话 THEN 语音是汉语
TF 语音是美式英语 THEN 语音是英语
TF 语音是粤语 THEN 语音粤语
TF 语音是河南话和普通话 THEN 语音是汉语
解释:每种语言属于不一样领域,每一个语音可能掺杂多种语言,要解析就要分解,黑板模式适用