drools规则中两个变量的最小值

drools规则中两个变量的最小值,drools,business-rules,drools-planner,optaplanner,Drools,Business Rules,Drools Planner,Optaplanner,我想找出drools规则LHS(左侧)中两个变量的最小值。 例如: $variable1 : // Some value generation lines $variable2 : // Some value generation lines // This doesn't work $minimumOfVariable1And2 : min($variable1,$variable2) 那么,如何找出最小值,是一个问题。谢谢。单程: when FactA($a : a, ...)

我想找出drools规则LHS(左侧)中两个变量的最小值。 例如:

$variable1 : // Some value generation lines
$variable2 : // Some value generation lines
// This doesn't work
$minimumOfVariable1And2 : min($variable1,$variable2)
那么,如何找出最小值,是一个问题。谢谢。

单程:

when
    FactA($a : a, ...)
    FactB($b : b, ...)
    FactC(c < Math.min($a, $b), ...)
then
    ...
现在,当FactA和FactB是同一类型时,它变得有趣了:

when
    Assignment($a : a, ...)
    Assignment(a < $a, ...)
    // $a this the minimum
then
    ...
什么时候
分配($a:a,…)
分配(a<$a,…)
//a这是最低限额
然后
...
因为如果两个作业具有相同的a,则此规则将匹配两次(一次用于A1-A2,一次用于A2-A1)。

单向:

when
    FactA($a : a, ...)
    FactB($b : b, ...)
    FactC(c < Math.min($a, $b), ...)
then
    ...
现在,当FactA和FactB是同一类型时,它变得有趣了:

when
    Assignment($a : a, ...)
    Assignment(a < $a, ...)
    // $a this the minimum
then
    ...
什么时候
分配($a:a,…)
分配(a<$a,…)
//a这是最低限额
然后
...
因为如果两个赋值具有相同的a,则此规则将匹配两次(一次用于A1-A2,一次用于A2-A1)