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

是否可以将DRL与Quarkus的Optaplanner中的流约束提供程序混合

薛征
2023-03-14

我在DRL中实现了大量的加班规则,我想在Quarkus上使用Optaplanner开发的列表应用程序中重用这些规则。Quarkus指南展示了一个使用流式约束提供程序的示例。我认为将SolverFactory与Quarkus一起使用不是问题。我似乎不可能让它们一起工作。

如果他们不能,是否有某种方法可以从约束流定义中执行DRL加班规则?我想我可以插入员工并在流中有匹配时切换到drools会话,但这似乎不会表现良好。

共有1个答案

岳俊雅
2023-03-14

我担心scoreDRL和ConstraintProvider不能一起用于单个求解器-由于各种原因,架构不允许这样做。

我们仍然支持scoreDRL(它没有被弃用),但出于易用性、易测试性和易于学习的原因,ConstraintProvider是未来的发展方向,尤其是现在的8.3.0。决赛将使其在性能方面达到标准。

这就是说,scoreDRL目前不允许在Quarkus中进行本机编译,这是我们积压工作中的一个问题。此外,要将scoreDRL与optaplanner quarkus一起使用,请将传递依赖项drools core static替换为drools core dynamic。请注意,ConstraintProvider没有这些缺陷:它支持Quarkus、本机或非本机以及其他一切。

 类似资料:
  • 我试图解决一个调度问题,它围绕着以下安排: 是否可以使用和实现约束?我尝试过以下路线: 我认为应该没有问题,但不确定如何获得这个来实现我想要的。这里是否需要?还是有一个不同的、更好的整体方法? 作为参考,ShiftAssignment类可以很容易地拥有如下所示的方法:

  • 我一直在遵循员工名册示例来创建自定义员工计划服务。我正在努力实施每周工作时间的限制。然而,我一直未能达到每个员工每周最多工作40小时的要求。我尝试复制OptaPlanner员工名册解决方案。这就是我想出来的,但是无论我尝试什么输入,解决方案都不会返回匹配项。 使用此输入,唯一可能的解决方案必须匹配此约束。其他约束会被检测和惩罚,所以我想知道为什么这一个永远不会返回任何匹配。

  • 我正在评估OptaPlanner的一个规划问题。我已经看到了几个关于这个话题的回应,但没有一个完全像我正在寻找的。 似乎OptaPlanner在求解时需要静态数量的实体/变量。 如有任何指示,将不胜感激。

  • 对于Jcache配置,我们需要有通用的XML配置参数(如timetolive)<我们正在使用EhCache进行开发,并可能在其他环境中使用其他符合Jsr107的缓存提供程序,如Infinispan。 是否可以让两个缓存提供程序都使用一个配置文件,并且如果需要,我们只需要为不同的环境更改一些参数? 可以在属性文件中定义这些属性并使用它们根据配置文件初始化缓存管理器吗? 我浏览了jsr107留档,但没

  • 问题内容: 遗言(现在的业力)很棒,角度场景也是如此。然而,将它们一起使用是一个挑战。在睾丸中有一个ANGENLAR-SCENARIO- ADAPTER,但这打破了简单的测试。如果您自己包含angular-scenario.js,Testacular将完全不进行任何测试。有人能正常运行吗? 角度场景适配器 我已经尝试过使用它进行琐碎的测试,但是我看到了一些奇怪的行为: 测试: 配置的正常行为: 输

  • 我发现约束流无论如何都不适合我的目的,因为我无法在使用奖励或惩罚函数时控制基于匹配实体的分数级别。我将继续使用drools语法。