问题标签 [drools-planner]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
518 浏览

java - 流口水专家/求解器 - 5.0.1 匹配

我对流口水还很陌生,我遇到了一些我无法真正理解的问题。我正在尝试解决分配问题,而我的 LHS 之一是这样的

出于某种原因,即使您确定工作记忆中存在匹配项,第二个语句也不匹配任何内容。如果我用以下代码更改上面的代码,它可以正常工作

有人可以向我解释一下吗?

谢谢!

0 投票
4 回答
893 浏览

java - 在 Scala 中实现具有原始类型的方法

我在 Scala 中使用 Drools Planner(用 Java 编写)时遇到问题。Drools 规划器中的接口之一声明为:

然而,另一个接口使用'Score'作为原始类型:

然后我想在 Scala 中实现这个接口:

我得到一个编译错误:Scala编译器不允许只写'def getScore:Score'。当我尝试添加 'Score[_]' 或 'Score[whatever]' 时,编译器会抱怨类型不兼容。我应该怎么办?

0 投票
1 回答
363 浏览

java - Drools Planner 规则只触发一次

我有一个形式的规则

我希望看到每个 Foo 触发一次 bar 为 false 但是该规则只触发一次。令人困惑的是,如果我将其更改为$foo : Foo(bar == false)$foo : Foo()那么它会为所有 Foo 正确触发。我错过了什么?

0 投票
2 回答
261 浏览

drools - Drools 创建自定义分数

所以我在drools中创建了一个自定义分数:

并已实施。但是我看不到如何使用分数。配置有一个

标记,但将除 SIMPLE 或 HARD_AND_SOFT 之外的任何内容放入其中会产生错误。

如何配置求解器以使用我创建的分数,文档似乎暗示这是可能的,但没有详细说明。

0 投票
2 回答
6471 浏览

drools - 流口水规则从地图中获取价值

阻塞时如何获得口水中的特定值。

我正在寻找这样的东西,但它不起作用:

我已将 Hashmap 插入工作内存并尝试在何时检索它

我得到以下错误

0 投票
1 回答
284 浏览

jsp - 使用哪种 Drools 产品来制定时间表?

是的,这是一个新手问题。

我想制作一个时间表应用程序,这些点针对我的情况:

  1. 一次,我们一次最多分配(3 名教师 X 6 小时)X(3 节课 X 35 小时工作周),我们正在迭代地构建时间表。

  2. 将会有不可能的状态,并且必须通知任何不可能的时间表,而不会卡住应用程序——我们希望这个应用程序被推到它的极限。

  3. 它必须在恒定时间内返回结果或报告失败。


我打算将它作为 Tomcat 6 上的JSP 应用程序运行。执行如下:

  1. PHP 应用程序“发布”整个数据和规则集
  2. 等到它完成执行
  3. 读取包含优化状态的响应

JSP 的东西只是为了方便,因为它似乎是传输和保持程序活动的最简单方法。

如果这是一个无法控制的情况,请纠正我。


Drools 的哪些产品使之成为可能?还是有更简单的配置?

0 投票
1 回答
669 浏览

drools - 理解 Drools 规划器示例:p‌r‌o‌b‌l‌e‌m 状态在哪里初始化?

我正在尝试了解 Drools 的N QueensCloud Balancer示例。我深入研究了手册的第 3 章和第 4 章以及这两个示例的来源。

我(错误)理解

  1. 问题必须从未分配或非最佳状态开始
  2. 那么,问题事实和计划实体,即 POJO,必须被实例化
  3. CloudBalance 或 NQueens 等解决方案类必须了解问题事实和计划实体

问题 1:在示例中,规划实体和问题事实类的对象在哪里初始化

例如,当我加载云平衡时,我看到:

这意味着将序列化格式转换为真实对象并输入解决方案,对吗?


问题2:规划实体在哪里处理?

那条评论是什么意思?当初是怎么处理的?

0 投票
3 回答
7650 浏览

java - 对 getter 和 setter 的 JavaBean 属性命名感到困惑

我正在制作一个使用 Drools 规划器的应用程序。

@ValueRangeFromSolutionProperty应该引用另一个类的属性(在NQueens这种情况下)。来自@ValueRangeFromSolutionProperty 的JavaDocs


但我注意到一个不一致的地方:注释器使用rowList来自NQueens. 但是rowList(相对于RowList)是一个私有变量(见下面的片段)。如果它应该通过自省来推断一个属性(从它的 getter 和 setter 方法),它不应该拼写RowList为 ingetRowList()吗?

问题: Java 如何从 getter 方法推断(内省)属性名称(大小写和全部)?

还是直接@ValueRangeFromSolutionProperty访问私有变量?


背景细节: From Queen.java,一个代表棋盘上皇后的类:

From NQueens.java,从中@ValueRangeFromSolutionProperty获取其属性的类:

0 投票
1 回答
164 浏览

drools - 我在哪里可以指定某些规划实体是不可变的?

我正在制作(2X2)数独游戏,我需要完成一个谜题。这意味着一些数字是不可变的(它们不能被移出原位。

在 2X2 游戏中,有 16Digit秒。问题事实是rows、columns 和blocks(明白吗?)。row是唯一的计划变量。

我指定boolean fixedDigit. 但是(根据用户指南),我找不到实现它的地方。

实际上使某些规划实体不可变的方法是什么?


我发现这些方法:

  1. 实现仅在不可变时才moveFactory更改的a。row此方法未记录在案
  2. 如果row不等于 a fixed_row,则打破硬约束。
  3. 使用@ValueRangeFromPlanningProperty. 让不可变实体具有value_range单个元素,可变实体具有排除固定行的列表。对于比数独项目更大的任何东西,这似乎都是不可持续的,对吧?并且有(我的?)所谓的使求解器脱轨的陷阱?

额外的问题:方法#3 是解决时间表问题(将学科教师分配到可能的时期)的推荐方法吗?

0 投票
2 回答
149 浏览

drools - Drools Planner 在创建配置器时遇到问题:如何调试

我尝试从 XML 配置创建求解器。但是整个过程会返回一条毫无意义的神秘错误消息。

我该如何解决?我怎样才能理解这一点来实际解决类似的问题?

抛出它的函数在此处列出。当然是行return configurer.buildSolver();

XML 的内容: