[英]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 论文也很棒。
匹配强制条件是范围搜索,特别是正交范围搜索。 相关文献属于计算几何。 按可选条件排序是一种排序操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.