我正在寻找一种检测冗余规则的算法.
规则具有固定数量的输入参数,并且每个参数具有不同的域.
考虑三个规则参数颜色,材质和尺寸:
每个规则可以匹配参数的多个值或匹配任何值.选择匹配所有参数值的第一个规则.没有否定规则,但域是固定的,因此可以通过添加所有其他域来实现否定.
+--------------------------------------------------++-----------------
| Rule Parameters || Rule Action
+----------------+------------------+--------------++-----------------
| Color | Material | Size || ==> Price
+----------------+------------------+--------------++-----------------
Rule 1 | Red | Wood, Glass | Large || $100
Rule 2 | Red | Aluminium | Large || $200
Rule 3 | Blue or Green | Wood | Medium || $300
Rule 4 | Red | ** Any ** | Large || $400 <== …Run Code Online (Sandbox Code Playgroud)