OptaPlanner是一个用Java编写的轻量级可嵌入规划引擎。它有助于普通的Java程序员有效地解决约束满足问题。在引擎盖下,它将优化启发式和元启发式与非常有效的分数计算相结合。
我正在通过 optaPlanner(版本 8.9.1.final)为 162 个生产任务制定时间计划。我的计划是希望这些任务在一些不同的生产设备上执行并在一个月内执行(是...
我目前正在使用 optaplanner 并希望优化我的代码,以便它不会经常计算某个值,每次“移动”只计算一次。 因此我毕竟需要某种钩子......
我有一个有效的 optaplanner/Timefold 解决方案。它提供了一个在白天向业务提供实时反馈的解决方案。但是更改请求会临时排队,所以我需要克隆...
ProblemFact 可以引用 PlanningEntity 吗?
我目前有以下设置来解决带有拾取和返回的 VRP: Vehicle 是 PlanningEntity,包含 LoadJob 实例的 PlanningListVariable(取货或下车): @
OptaPlanner - 如何在构造启发阶段配置选择过滤器?
我尝试在 CH 阶段添加选择过滤器,如下所示在solverConfig.xml中: FIRST_FIT 我尝试在 CH 阶段添加选择过滤器,如下所示在solverConfig.xml中: <constructionHeuristic> <constructionHeuristicType>FIRST_FIT</constructionHeuristicType> <changeMoveSelector> <entitySelector> <filterClass>org.example.entity.ShiftFilter </filterClass> </entitySelector> </changeMoveSelector> </constructionHeuristic> 将其添加到配置后,求解器无法启动。相同的过滤器在本地搜索阶段工作得很好。 solve api响应中的错误如下: The <constructionHeuristic> contains a changeMoveSelector (ChangeMoveSelectorConfig(EntitySelectorConfig(null), null)) that contains an entitySelector (EntitySelectorConfig(null)) without explicitly configuring the <queuedEntityPlacer> 有人可以帮我指出如何在 CH 中添加选择过滤器的正确方向吗? 这里有龙。 来自此文档部分,这是正确的 CH 功率调整配置的示例: <constructionHeuristic> <queuedEntityPlacer> <entitySelector id="placerEntitySelector"> <!-- your filter? --> </entitySelector> <changeMoveSelector> <entitySelector mimicSelectorRef="placerEntitySelector"/> <valueSelector> </valueSelector> </changeMoveSelector> </queuedEntityPlacer> </constructionHeuristic> 话虽如此,根据我的经验,这可能是解决您想要解决的扩展问题的错误兔子洞。
OptaPlanner 在 pptimization 过程中动态调整实体属性
我正在开发一个用于车辆路线优化的 OptaPlanner 项目,并且我有一个特定的要求。我们面临着规划过度受限的问题,即跳过客户停靠站。我们决定...
我在这里问了一个相关问题。在研究了构建启发式和本地搜索步骤之后。我发现根本原因是在构建启发阶段,规划者发现......
我目前正在致力于解决带有取货和送货的 VRP。在当前模型中,车辆是我的第一个 @PlanningEntity,包含 LoadJobs 的 @PlanningListVariable,它可以是...
一个规划实体可以引用另一个规划实体并在分数计算中依赖于另一个实体吗? 示例:讲座要么设置了计划变量 Timeslot startTime,要么设置了
我目前正在进行时间折叠部署,我想知道扩展时间折叠应用程序的推荐部署策略是什么。我在文档中找不到有关它的任何内容。仅文档
我在我的用例中使用 Drools 规则引擎,我必须根据多个属性确定产品的所有者。我创建了一套规则。 我有大约 1000 个输入产品和大约 50 个...
最近我尝试借助 Timefold 官方网站上的 maven 命令来迁移我的 OptaPlanner 项目,但无论我做什么似乎都不起作用。我尝试过 ChatGPT(
如何从外部包(ai.timefold.solver.quarkus)中排除quarkus?
我有这样的错误 java.lang.RuntimeException:java.lang.RuntimeException:io.quarkus.builder.BuildException:构建失败:由于错误而构建失败 [错误]:构建步骤 ai.timefold。
是否可以使用 Quarkus 的 timeFold/optaplanner 解决不同类型的规划问题?
我是 optaplanner/timeFold 的新手,我遇到过这样的问题: java.lang.RuntimeException:java.lang.RuntimeException:io.quarkus.builder.BuildException:构建失败:构建失败...
Windows 11 上的 OptaPlanner 9.44.0 w/Java 11。 我有一个带有影子变量的系统。当我使用正常的域访问运行时,一切正常。但我正在尝试 GIZMO 域访问,我开始了...
我有一个用例,我必须将两个约束流合并为一个约束流。在 SQL 中,这类似于 UNION ALL。但是,我似乎找不到办法这样做。 虽然我的
是否可以连接两个相同基数和相同类型的约束流? 例如,我有一个包含所有计划团队的约束流: 双约束流 是否可以连接两个具有相同基数和相同类型的约束流? 例如,我有一个包含所有计划团队的约束流: 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) 注释的计划变量。我正在使用详尽的搜索(强力),因为这是用于单元测试,我需要确保结果出来......