【教程7】OptaPlanner Drools评分计算

本文介绍了如何使用Drools规则引擎在OptaPlanner中实现评分计算,包括概述、Drools评分规则配置、实现评分规则、权衡评分规则以及基于Drools的约束测试。通过Drools,可以方便地添加、编辑评分规则,并进行增量计算。
摘要由CSDN通过智能技术生成

OptaPlanner Drools评分计算


Drools评分计算已经被弃用,并将在OptaPlanner的未来主要版本中移除。考虑使用约束流和我们的迁移指南进行切换。

1. 概述

使用Drools规则引擎实现评分计算。每个评分约束都写成一个或多个评分规则。

优点:

  • 免费的增量评分计算:因为大部分DRL语法使用前向链接,所以可以在没有任何额外代码的情况下进行增量计算。
  • 评分约束作为单独的规则进行隔离。
  • 可以轻松添加或编辑现有的评分规则。
  • 可以通过定义决策表或Excel(XLS)电子表格来扩展评分约束。
  • 未来版本中的性能优化是免费的。

缺点:

  • 学习DRL的曲线。
  • 使用DRL可能会受到Polyglot担忧的限制,在某些组织中可能不允许使用新的语言。

Drools评分计算在Quarkus本机模式下不受支持。考虑切换到约束流。

2. Drools评分规则配置

有几种方法可以定义评分规则的位置。

2.1. 类路径上的scoreDrl资源

这是简单的方法。评分规则位于作为类路径资源提供的DRL文件中。只需将评分规则DRL文件添加到求解器配置中作为元素:

  <scoreDirectorFactory>
    <scoreDrl>org/optaplanner/examples/nqueens/solver/nQueensConstraints.drl</scoreDrl>
  </scoreDirectorFactory>

在典型的项目(遵循Maven目录结构)中,该DRL文件将位于$PROJECT_DIR/src/main/resources/org/optaplanner/examples/nqueens/solver/nQueensConstraints.drl(即使是war项目)。

元素需要一个类路径资源,由ClassLoader.getResource(String)定义,它不接受File、URL或Web应用程序资源。如果要使用File,请参见下面的说明。

如果评分规则分散在多个DRL文件中,可以添加多个元素。

此外,您还可以设置Drools配置属性:

  <scoreDirectorFactory>
    <scoreDrl>org/optaplanner/examples/nqueens/solver/nQueensConstraints.drl</scoreDrl>
    <kieBaseConfigurationProperties>
      <property name="drools.equalityBehavior" value="..." />
    </kieBaseConfigurationProperties>
  </scoreDirectorFactory>

要默认启用属性反应,而无需在域类上添加@propertyReactive注解,请在其中添加<dr

  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BigDataMLApplication

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值