zoukankan      html  css  js  c++  java
  • 系统架构设计师-黑板架构模式

    一、黑板模式

      黑板模式是一种常用的架构模式,应用中的多种不同数据处理逻辑相互影响和协同来完成数据分析处理。就好像多位不同的专家在同一黑板上交流思想,每个专家都可以获得别的专家写在黑板上的信息,同时也可以用自己的分析去更新黑板上的信息,从而影响其它专家。

      黑板模型是一种典型而流行的专家系统结构模式。黑板模型首先于1973-1976年在美国Carnegie-Mellon大学开发的HEARSAY-Ⅱ系统中创立,又在HEARSAY-Ⅲ中得到发展,后来由许多系统所效仿和采用,已是一种十分流行的知识系统结构模式。

      其基本思想为:多个人类专家或主体专家协同求解一个问题,黑板是一个共享的问题求解工作空间,多个专家都能“看到”黑板。当问题和初始数据记录到黑板上,求解开始。所有专家通过“看”黑板寻求利用其专家经验知识求解问题的机会。当一个专家发现黑板上的信息足以支持他进一步求解问题时,他就将求解结果记录在黑板上。新增加的信息有可能使其他专家继续求解。重复这一过程直到问题彻底解决,获得最终结果。

    二、黑板模式结构

    (1)知识源(KS):应用领域根据求解问题专门知识的不同划分成若干相互独立的专家,这些专家称为知识源(即主体)。

    (2)黑板:即共享的问题求解工作空间。一般是以层次结构的方式组织,主要存放知识源所需要的信息和求解过程中的解状态数据,有时也存放控制数据。在问题求解过程中,知识源不断地修改黑板。知识源之间的通信和交互只能通过黑板进行。

    (3)监控机制:根据黑板上的问题求解状态和各知识源的求解技能,依据某种控制策略,动态地选择和激活合适的知识源,使知识源能适时响应黑板变化。

    三、黑板模式特点

    (1) 各主体(即知识源)之间相互独立;

    (1) 各主体(即知识源)之间相互独立,主体之间不存在相互作用;

    (2) 黑板结构能够灵活表示信息;

    (3) 使用共同的交互语言;

    (4) 独立的监控机制;

    (5) 黑板结构适合于在多重抽象级上描述与处理问题;

    (6) 机遇问题求解机制,特别适合于事先无法确定问题求解次序的复杂问题;

    (7) 黑板模型提供了集成现有软件的一种方法。

    四、黑板模式实现方法

    在实际应用中常见的实现模式有:

    1,数据库

      利用数据库充当黑板,不同的应用共享数据库中信息,并且可以更新数据信息。这也是最常见的实现方式。

    特点:
      (1)便于实现信息的查询,筛选和统计,这方面关系数据库提供了SQL 92的强大支持。

      (2)不能用于较高实时性要求的环境,这种实现是工作在“拉模式”下的,并且高频率的访问数据库会导致严重的系统性能问题。

    2,发布—订阅模式

      这种实现方式通常采用消息队列作为黑板,队列工作在主题模式(Topic),专家作为队列的订阅者,同时可以向队列发送消息,消息会被发送至所有订阅者。以上过程实现了专家间的信息交流。

    特点:

      (1)可以有效应用于实时性要求较高的系统,这种实现工作在“推模式”下。

      (2)难于实现信息的统计分析,不像实现方式一那样可以通过SQL支持,这些工作必须开发者自己完成。

    五、黑板模式应用场景

      黑板模式常应用于:语音识别、车辆识别和跟踪、蛋白质结构识别、声纳信号的解释。

      黑板模式解决没有确定可行的解决方案,将原始数据转换为高级数据结构(图表或英语词组)。存在这些问题的领域包括视觉识别,图像识别,语音识别和监视等。这种问题具体如下特点:可分解成多个子问题,但每个子问题都属于不同的专业领域。

    适用范围:

      1,不可能在合理的时间内遍历整个解空间;

      2,鉴于领域不成熟,可能需要对同一个子任务尝试不同的算法;

      3,子问题的算法各不相同;

      4,输入,中间结果和最终结果的表示方式各不相同,而不同算法是根据不同范式实现的;

      5,一个算法通常使用另一个算法的结果;

      6,涉及不可靠的数据和近似解;

      7,算法的执行顺序不确定时还可能要求支持并行性。

    应用举例:

      可解决的问题:可分解成多个子问题,但每个子问题都属于不同的专业领域。

      解决方案:黑板模式正是来解决这种问题的,黑板模式就好像多位不同的专家在同一黑板上交流思想,每个专家都可以获得别的专家写在黑板上的信息,同时也可以用自己的分析去更新黑板上的信息,从而影响其它专家,正好解决了可分解成多个子问题,但每个子问题都属于不同的专业领域的问题。

      实例分析:语音识别(语音翻译)

      系统可以识别汉语,英语,俄语,意大利语,法语,日语这6种语言。

      数据库存放事实:英式英语,美式英语,语言的各种方言

      判定那种语言?

      TF  语音是四川话  THEN 语音是汉语

      TF 语音是美式英语  THEN 语音是英语

      TF 语音是粤语  THEN 语音粤语

      TF 语音是河南话和普通话   THEN  语音是汉语

      解释:每种语言属于不同领域,每个语音可能掺杂多种语言,要解析就要分解,黑板模式适用  

  • 相关阅读:
    3、tensorflow变量运算,数学运算
    2、tensorflow 变量的初始化
    1、tensorflow 框架理解
    tensorflow 打印全部变量的一种方法
    0、tensorflow学习开始
    tensorflow 小记——如何对张量做任意行求和,得到新tensor(一种方法:列表生成式)
    SASRec 实践
    jupyterlab 增加新内核的方法ipykernel
    vivo 全球商城:架构演进之路
    jenkins安装 git免密ssh配置
  • 原文地址:https://www.cnblogs.com/guanghe/p/15251081.html
Copyright © 2011-2022 走看看