当前位置: 首页 > 知识库问答 >
问题:

Optaplanner调试groupBy

钮高朗
2023-03-14

我有一个java方法可以从所有不遵循给定首选项的TeamCalendar对象(pinned=true的规划实体)中创建constraintstream。

因此,我希望有一个约束流,表示每个部门存在多少这些差异。这是java代码:

private BiConstraintStream<Department, Integer>  violatedPreferredTeamDays(ConstraintFactory constraintFactory) {
    return constraintFactory.from(TeamCalendar.class)
        .ifNotExists(Preference.class, 
                Joiners.equal(TeamCalendar::getDate, Preference::getDate),
                Joiners.equal(TeamCalendar::getDepartment, Preference::getDepartment))
        .filter((tc) -> {
            return true;
        })
        .groupBy(TeamCalendar::getDepartment, count())
        .filter((dep, count) -> {
            return true;
        });
}

在调试模式下运行时,第一个过滤器(tc-

我尝试了一些琐碎的选择:

  • . groupBy(tc-

以及计数方法的替代方案:

  • 。groupBy(TeamCalendar::getDepartment,sum(tc-

但没有任何改善。

我是不是忽略了什么?

共有1个答案

陈扬
2023-03-14

底层引擎直接在TeamCalendar上应用第一个过滤器,并抢占ifNotExists调用。因此,您不能使用过滤器来检查ifNotExists是否已触发。

约束流不是必需的,单个构建块的执行不需要按顺序进行。除非您了解底层Drools引擎如何评估约束并相应地调整您的期望,否则无法使用调试器检查约束流。

至于为什么groupBy结果是空的——可能是因为首选项实例实际上存在。如果不是这样,请提交一个JIRA,附上一个最小的可执行代码复制器,我们将对此进行调查。

 类似资料:
  • 在为我的项目实现了一些规则之后,我做了一个“ScoreConsistencyCheck”,以确保规则得到了正确的实现。 表示实现我自己的方法,该方法将在我提前终止求解或通过配置终止后调用,输出预期分数。该方法的参数是一个实例,基于解决方案的状态计算预期分数,然后将其与来自解决方案实例的“分数”变量的分数进行比较。 当我使用时,它不会抛出异常,但是当我这样尝试时,我有时会在构建启发式或本地搜索的特定

  • OptaPlanner 是一款轻量级、可嵌入的规划调度引擎,100% 使用 Java 编写,可运行在任何 JVM 上。 OptaPlanner 可对商业资源规划问题进行优化,例如车辆路径规划问题(VRP)、雇员排班问题(Employee Rostering)、云计算资源调度问题(Cloud Optimization)、任务分配问题(Task Assignment)、车间调度问题(JSP) 和背包问

  • 我想用Quarkus Optaplanner应用程序进行高级基准测试。实施和运行它的最佳方式是什么? 当浏览Optaplanner的“旧”示例时,它们都实现了基准测试(在本视频中,有一个关于Optaplanner与Quarkus的演示,但基准测试是通过旧示例显示的)。我使用Quarkus构建了我的优化求解器,我想知道如何在这里实现基准测试。我的输入数据写在JSON文件中,我想尝试不同的求解器配置。

  • 您是否认为OptaPlanner是规划具有多层次工艺路线(最终产品、子装配1、子装配2、子装配11、子装配12等)的制造操作的正确工具? 我们讨论的是1000个生产订单,每个订单有10-20个操作。 我知道,看起来像项目车间调度。我只是关心数据量和在合理时间内找到最佳解决方案的能力... 对于这个问题域和OptaPlanner,有真实的例子吗?

  • OptaPlanner 是 Java 规划引擎:OptaPlanner 优化了商业资源调度和规划。 OptaPlanner 优化了商业资源的使用。OptaPlanner 是轻量级的,可嵌入的规划引擎。

  • 各位opatplanner用户, 我的规划问题是:获取遥感卫星星座的有效时间表。 @PlanningEntity: @PlanningVariable: 我的问题数据主要是这样的: Image_Strip: D1 Sat2 22-12-2015 11:02:24.051 D1 Sat1 22-12-2015 11:04:24.122 A2 Sat3 22-12-2015 11:06:24.172