关于如何在JBoss Drools中实现矩阵类型规则的任何想法/想法

时间:2016-06-17 14:18:57

标签: drools

这是我的情景。一个矩阵,我必须根据Excel工作表中的某些输入检索一个值。请参阅下面的矩阵。 (我们的实际矩阵很大。这只是为了说明目的)

    # | 10       20      30      40
    -------------------------------------
    0 | 1.00    2.00    3.00    3.00
    1 | 6.00    4.00    4.00    3.00
    2 | 5.00    9.00    5.00    3.00
    3 | 5.00    3.00    5.00    3.00
    4 | 6.00    2.00    5.00    3.00
    5 | 7.00    9.00    6.00    3.00

    So, 
    if input is (0,10) ==> 1
    if input is (3,30) ==> 5 
    if input is (3,20) ==> 3
    if input is (5,20) ==> 9
    

有人可以帮我解决这个问题,如何在drools中实现?使用drl文件或使用决策表。

我的想法:

  1. 在.drl文件中,添加多个"当...然后"这不是一个正确的选择。规则。
  2. 决策表可以是一个选择。但不确定它会有多么有效。
  3. 任何建议。样本参考/代码会有所帮助

1 个答案:

答案 0 :(得分:0)

唯一有效的解决方案是使用

class Cell {
    int row;
    int col;
    double val;
}

插入所有Cell对象并使用规则

rule locate
when
    Lookup( $r: r, $c: c ){
    Cell( row == $r, col == $c, $v: val )
then
   ...
end

其中Lookup是另一个插入对象以触发单元格查找的类。