详细内容或原文请订阅后点击阅览
从第一原则构建规则引擎
如何将命题逻辑重铸为稀疏代数,从而带来优雅而高效的设计从第一原理构建规则引擎一文首先出现在《走向数据科学》上。
来源:走向数据科学如果您曾经负责管理复杂的业务逻辑,您就会知道嵌套的 if-else 语句可能是一个丛林:导航起来很痛苦,而且很容易迷失方向。当涉及关键任务时,例如形式验证或可满足性,许多开发人员会寻求复杂的工具,例如自动定理证明器或 SMT 求解器。尽管这些方法功能强大,但可能有些过大,而且实施起来也很麻烦。如果您需要的只是一个简单、透明的规则引擎怎么办?
构建这样一个轻量级引擎的关键思想依赖于我们被教导的一个富有洞察力但不切实际的概念:真值表。指数增长是它们的致命缺陷,使它们不适合解决现实世界的问题。有人告诉我们。
真值表一个简单的观察就改变了一切:在几乎所有的实际情况中,“大得不可思议”的真值表实际上信息并不密集;它实际上是一个变相的稀疏矩阵。稀疏矩阵
这种重构使得真值表在概念上清晰且计算上易于处理。
本文向您展示如何将这种见解转化为轻量级且强大的规则引擎。我们将指导您完成从头开始构建引擎的所有必要步骤。或者,您可以使用我们的开源库矢量逻辑从第一天开始构建应用程序。本教程将为您提供所有必要的详细信息,以帮助您了解幕后的内容。
矢量逻辑
                                    
                                        虽然所有理论背景和数学细节都可以在我们关于状态代数 [1] 的研究论文中找到,但在这里,我们重点关注实际应用。让我们卷起袖子开始建设吧!
状态代数 [1]Logic 101 快速复习
真值表
真 假使用 1 表示“true”,0 表示“false”,\(x_1 \vee x_2\) 的表格如下所示:
\[ \begin{Bmatrix} x_1 & x_2 & x_1 \vee x_2 \\ \hline 0 & 0 & 0 \\ 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 1 \end{Bmatrix} \]
