【发布时间】:2014-06-09 07:47:32
【问题描述】:
您好,我刚开始将 OptaPlanner 与 drools 结合使用。但是我有两个问题。我相信这取决于我对语法的理解。
当我尝试实例化求解器时,以下规则会引发错误。
//Soft constraints
rule "waistedArea"
when
$sheet : Sheet($area: (area * 10000))
$usedAreaTotal : Number (intValue > 0 && intValue < $area ) from accumulate(
Part(
sheet == $sheet,
$usedArea : requiredArea * 10000
),
sum($usedArea)
)
$waste : ($area - $usedAreaTotal)
eval($waste > 0)
then
insertLogical(new IntConstraintOccurrence("waistedArea", constraintType.NEGATIVE_SOFT, $waste,$sheet)
end
乘以 10000 是从 double 值到 int 的临时强制转换,但您还知道语法。
该规则旨在计算分配有许多组件的床单的腰围值。
规则抛出以下错误。
Message [id=1, level=ERROR, path=optaplanner-kie-namespace//Resources/DRLRools
/NestingRules.drl, line=71, column=0
text=[ERR 102] Line 71:24 mismatched input '-' in rule "waistedArea"]
Message [id=2, level=ERROR, path=optaplanner-kie-namespace//Resources/DRLRools
/NestingRules.drl, line=0, column=0
text=Parser returned a null Package]
任何解释都会有所帮助。
【问题讨论】:
标签: drools optaplanner