OptaPlanner是一个用Java编写的轻量级可嵌入规划引擎。它有助于普通的Java程序员有效地解决约束满足问题。在引擎盖下,它将优化启发式和元启发式与非常有效的分数计算相结合。
是否可以连接两个相同基数和相同类型的约束流? 例如,我有一个包含所有计划团队的约束流: 双约束流 是否可以连接两个具有相同基数和相同类型的约束流? 例如,我有一个包含所有计划团队的约束流: BiConstraintStream <Team, Long> plannedTeams(ConstraintFactory constraintFactory) { return constraintFactory.from(Team.class) .ifExists(Planning.class, Joiners.equal(team -> team, Planning::getTeam)) .groupBy(team -> team, Team::getCountPeople) } 以及包含所有非计划团队的流。 BiConstraintStream <Team, Long> nonPlannedTeams(ConstraintFactory constraintFactory) { return constraintFactory.from(Team.class) .ifNotExists(Planning.class, Joiners.equal(team -> team, Planning::getTeam)) .groupBy(team -> team, team -> team.getCountPeople()/2) } 现在我想通过对计划团队和未计划团队的计数求和来对总计数设置约束,例如, Constraint constraintOnCount(ConstraintFactory constraintFactory) { return plannedTeams(constraintFactory).concat(nonPlannedTeams(constraintFactory)) .groupBy(sum((team, count)->count)) .filter(count -> count > 5) .penalize("too many people", HardSoftScore.ONE_HARD, count -> count - 5) } 有办法做到这一点吗? 从 Timefold 1.3.0 开始,现在有一种连接流的方法。它称为 concat,它可用于约束流的所有基数。
OptaPlanner/TimeFold groupBy 与列表只有一个元素
这是这个问题的后续。 我有两个这样的 PlanningEntity 类: @PlanningEntity 类位置{ 私有静态长nextId = 0; 私有长 id = nextId++; @
由于我的模型需要很长时间来进行构建启发式,因此我尝试事先初始化规划变量。作为这种方法的第一步,我已经初始化了计划并
OptaPlanner 升级到 TimeFold 会导致可空值的行为差异
我有一个用 @PlanningVariable(nullable = true) 注释的计划变量。我正在使用详尽的搜索(强力),因为这是用于单元测试,我需要确保结果出来......
OptaPlanner/TimeFold PlanningEntity 包含 PlanningEntity 列表
我有两个这样的 PlanningEntity 类: @PlanningEntity 类 MyPlanningEntity { @PlanningVariable 我的计划变量 myPlanningVariable; } @PlanningEntity 类 MyOtherPlanningEntity...
带有时间窗和动态出发时间的Optaplanner车辆路径问题
我正在开发一个 VRPTW,我需要优化卡车何时离开仓库,同时还要考虑每小时的调度限制。也就是说,出发时间不固定,而什么是已知的...
OptaPlanner 如何获取 LambdaMetafactory 访问权限
我注意到这是 OptaPlanner 的日志输出: [TRACE] [2023-09-24 17:25:14,657] [main] [o.o.c.i.d.s.d.SolutionDescriptor] 解析解决方案 MySolution 的模型注释: [追踪] [2023-09-24...
我正在尝试使用 Optaplanner 解决车辆路径问题。虽然代码运行正常,但我注意到一些奇怪的事情。 当我构建模型时,我有一个具有不同
我目前正在研究使用 Optaplanner/Timefold 解决 VRP 问题。我们不仅需要优化整体旅游时间/距离,还需要优化车辆利用率。 我们的...
Optaplanner 在调试日志中显示零硬约束违规,但当我使用 SolutionManager 解释分数时显示违规
运行优化模型时,终端上打印的 optaplanner 日志显示零硬约束违规“最佳分数(0hard/0medium/-1056704soft)”。之后我打印了 h...
从 OptaPlanner 8.22.1 升级到 Timefold 1.1.0 或 OptaPlanner 8.37.0 后性能下降
我有一个基于OptaPlanner 8.22.1.Final的课程安排应用程序。 升级到Timefold 1.1.0后,性能测试用例的执行时间增加了约100%。申请...
我的 OptaPlanner 有问题。我需要设计一个具有动态 PlanningVariables 的 PlanningEntity。这样我就可以在不同的项目中重用PlanningEntity。 也许是这样的: 导入组织。
从 OptaPlanner 8.22.1.Final 升级到 Timefold 1.1.0 后性能下降
我有一个基于OptaPlanner 8.22.1.Final的课程安排应用程序。 升级到Timefold 1.1.0后,性能测试用例的执行时间增加了约100%。申请...
是否可以根据规划变量以外的实体的其他属性来选择 PillarMove 的实体。例如,我的实体有一个 PlanningVariable startTime 和一个问题类型...
我目前正在使用 OptaPlanner 解决路由问题,并且面临着有关规划变量的挑战。对于特定的规划实体,我想同时使用基本规划
如何启用可为空的 InverseRelationShadowVariable 或防止为 PlanningListVariable 赋值
我必须将订单列表计划到机器中。 关系订单机器是按项目代码。如果机器有订单项目代码,机器可以管理订单,以便可以将订单分配给
我正在使用 Optaplanner/Timefold 来解决分配问题。 我必须在具有某些限制的车辆中分配订单。这部分与云流程分布及其工作非常相似......
Optaplanner、ChangeProblem 与重启求解器
在飞行中更改 Optaplanner 问题,需要使用 ProblemChange 来让求解器实时排队更改并纠正解决方案。但这种行为与斯托有很大不同吗...
InverseRelationShadowVariable 始终为 null
我必须将订单列表计划到机器中,并使用 TaskAssigning 作为示例对实体进行建模。 这是我的代码: @PlanningEntity 公共课机器{ 私人名单
我对Java Streams了解不多,我现在正在学习它,但如果有人有建议,我正在尝试解决这个问题: 假设我正在做作业调度,每个作业都有一个宽度 X。当我们...