1

我正在尝试为决策表模板建模。

为什么我理解简单的规则,比如

(x>10 and y<10) print "red"可以在决策表中表示,其中一行使用两列表示条件,一列表示操作。

+-----+-----+-------------+
|  X  |  Y  |   Action    |
+-----+-----+-------------+
| >10 | <10 | Print "red" |
+-----+-----+-------------+

条件如何

((x>10 and y<10) or x>1) or z<5 and y>5 print "red"表示在决策表中。

我假设上述大条件以许多行表示,其中不同的小条件的组合为真。重复相同的动作部分。有什么方法可以将这样的条件减少到决策表?

但是,在这种情况下,该操作会触发多行。因为我们只有一个动作。有没有分组的列?

4

1 回答 1

0

一种方法是给出行动编号,并从决策表中引用它们。如果在评估运行期间触发了操作,则忽略后续触发。

这是一个例子:

+-----+-----+-----+--------+
|  X  |  Y  |  Z  | Action |
+-----+-----+-----+--------+
| >10 | >10 |  -  |   1    |
+-----+-----+-----+--------+
| >10 | <10 |  -  |   2    |
+-----+-----+-----+--------+
| >50 |  -  |  -  |   2    |
+-----+-----+-----+--------+
|  -  |  -  |  >5 |   2    |
+-----+-----+-----+--------+

动作编号对应于该表中的一个动作:

+-----+--------------+
|  #  |   Action     |
+-----+--------------+
|  1  | Print "red"  |
+-----+--------------+
|  2  | Print "blue" |
+-----+--------------+

如果动作 #2 因为 被触发x>10 AND y<10,即使x>50或也不会再次触发z>5

于 2016-12-21T20:32:24.237 回答