我有一个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-
我尝试了一些琐碎的选择:
以及计数方法的替代方案:
但没有任何改善。
我是不是忽略了什么?
底层引擎直接在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