繁体   English   中英

CS 术语,用于强制和可选条件元组的规则匹配算法

[英]CS term for rule matching algorithms on tuples of mandatory and optional conditions

我正在尝试研究用于解决特定问题的算法的文献,但我认为我不太清楚描述我正在寻找的内容的正确搜索词。

目标是拥有一个可查询的规则数据库,其中每个规则都被指定为元组条件——一些是强制性的,一些是可选的。 对系统的查询由有关世界的事实元组组成,并返回其强制条件与查询中的事实匹配的所有规则的列表。 每条规则按照匹配的可选条件的个数×权重进行评分,从而对列表进行排序。

所以举个例子,如果我用它来写一个室友匹配服务,规则会是这样的

alice : { mandatory : { nightowl = no, smoker = no, pets < 2 }, 
          optional : { pets = 0 } }
bob :   { mandatory : { nightowl = yes, pets = 0 }, 
          optional : {smoker = no} }
charlie : { mandatory : { musician = no }, 
            optional : {nightowl = yes, pets < 2 } }

查询将是

( nightowl = no, pets = 1, smoker = no, musician = no )

返回

( charlie : 1/1 mandatory matched, 1/2 optional matched,
  alice   : 3/3 mandatory matched, 0/1 optional matched )

我知道这是一个必须在计算机科学中已经解决过很多次的问题,但我不知道要搜索什么关键字。 这不是距离 function ,因为某些条件是离散的真/假拒绝器,而其他条件是可选的或具有线性分数。 这不是模式匹配模糊匹配,因为它们似乎主要指的是字符串和图形。 它不是像Rete 算法那样的生产系统规则引擎,因为它不会从规则中得出 IF-THEN 推论,也不会记住从一个调用到下一个调用的事实。

叫什么?

我只需要对算法的研究或描述,而不是实际的实现。 我们的应用程序具有如此严格的实时性和 memory 约束,无论如何我们都需要构建自己的实现,但在我开始发明代码之前,我想知道该领域还做了什么。 一篇我可以从中获得引用的 ACM 论文也很棒。

我要说的最准确地描述您正在谈论的问题类型的术语是约束满足问题

更具体地说,您处于加权约束满足的 realm 中。

约束编程是专门为解决这些类型的问题而设计的一组工具和语言的常用术语。

匹配强制条件是范围搜索,特别是正交范围搜索。 相关文献属于计算几何。 按可选条件排序是一种排序操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM