簡體   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