[英]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.