java – Optaplanner:评估解决方案

我目前正在开发一个使用Optaplanner和drools的Java项目来解决Constraint Satisfaction问题.

解决方案很好.但是在solver给我一个解决方案后,我想评估解决方案:我想知道哪些约束被违反,即哪些规则被触发了多少次.

这可能吗?我该如何开始呢?

解决方法:

请参阅文档部分Reusing the score calculation outside the Solver.它以简单的方式提供您需要的所有数据.

for (ConstraintMatchTotal constraintMatchTotal : guiScoreDirector.getConstraintMatchTotals()) {
    String constraintName = constraintMatchTotal.getConstraintName();
    Number weightTotal = constraintMatchTotal.getWeightTotalAsNumber();
    for (ConstraintMatch constraintMatch : constraintMatchTotal.getConstraintMatchSet()) {
        List<Object> justificationList = constraintMatch.getJustificationList();
        Number weight = constraintMatch.getWeightAsNumber();
        ...
    }
}

请参阅Laune的答案,了解更高级的drools特定技巧/技巧.

上一篇:python自动化运维学习笔记汇总


下一篇:java.lang.UnsupportedClassVersionError