规则引擎 | 青训营笔记

110 阅读4分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天

课程主要内容:

规则引擎

编译原理

一.规则引擎

什么是规则引擎?

 规则引擎是一种用于自动决策和执行业务规则的软件系统。它使用一组预定义的规则来评估输入数据,并基于这些规则生成相应的输出。规则引擎可以用于解决多种不同的业务问题,例如风险评估、决策支持和自动化业务流程。
 简单来说就是规则引擎可以理解为根据输入数据,根据预编译好的规则,来自动计算、逻辑分析、排序归类等复杂的数据处理之后得到结果。

image.png

规则语言的组成

  • 规则库:存储规则的数据结构,用于管理规则。
  • 规则执行引擎:负责读取规则库中的规则,并对输入数据进行匹配和执行。
  • 规则语言:用于描述规则的语言,便于人类编写和理解规则。
  • 规则决策表:用于将规则以表格的形式呈现,便于人类查看和管理规则。
  • 规则推理引擎:用于根据规则,对输入数据进行推理和决策。
  • 规则生成引擎:用于生成规则,例如基于机器学习算法的规则生成。

规则语言应用场景

  • 商业决策支持:用于帮助商业决策人员做出决策,例如价格管理、客户分类等。
  • 风险管控:黑灰产对抗。
  • 活动策略运营:更改活动规则,更改活动奖励等。
  • 流程自动化:用于自动完成工作流程,例如订单处理、贷款审批等。
  • 客服机器人:用于智能回答客户的问题,例如银行客服机器人。
  • 规则驱动的游戏开发:用于游戏的逻辑控制,例如RPG游戏。
  • 医疗诊断:用于帮助医生诊断疾病,例如病历分析系统。
  • 资产管理:用于自动监控和管理资产,例如股票交易系统。
  • 计费系统:用于自动计算和执行费用,例如电信计费系统。

二.编译原理

词法分析

  • 什么是词法分析?
     词法分析(Lexical Analysis)是编译原理中的一个重要部分,也称为词法分析器、词法分析程序。它的主要任务是将输入的源代码字符串分解为许多有意义的词素(token),这些词素是程序的基本单元,可以代表关键字、标识符、数字、符号等。词法分析的目标是为程序中的语法分析提供词素序列,以便进一步分析程序语法的正确性。

  • 词法分析的过程
    1.读入:读入输入的源代码字符串。- 基于用户输入数据
    2.分词:将字符串分割成若干个独立的词法单元(token)- 基于有限状态自动机。
    3.词法单元标识:确定每个词法单元的类型,例如关键字、标识符、常量等 - 根据预定义的规则库。
    4.输出:将词法单元的类型和值输出为一个词法分析结果。- 依据规则引擎的规则、规则引擎

语法分析

  • 什么是语法分析?
    语法分析器(parser)通常是作为编译器解释器的组件出现的,它的作用是进行语法检查、并构建由输入的单词组成的数据结构(一般是[语法分析树]( 抽象语法树等层次化的数据结构)。语法分析器通常使用一个独立的词法分析器从输入字符流中分离出一个个的“单词”,并将单词流作为其输入。实际开发中,语法分析器可以手工编写,也可以使用工具(半)自动生成。

三.专业名词解释

  • 抽象语法树
     在计算机科学中,抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Syntax tree),是源代码语法结构的一种抽象表示。它以树状"树 (图论)")的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。之所以说语法是“抽象”的,是因为这里的语法并不会表示出真实语法中出现的每个细节。比如,嵌套括号被隐含在树的结构中,并没有以节点的形式呈现;而类似于 if-condition-then 这样的条件跳转语句,可以使用带有三个分支的节点来表示。

  • 有限状态自动机
     有限状态自动机是为研究有限内存的计算过程和某些语言类而抽象出的一种计算模型。有限状态自动机拥有有限数量的状态,每个状态可以迁移到零个或多个状态,输入字串决定执行哪个状态的迁移。

image.png

四.参考资料