问题标签 [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.
java - 流口水专家/求解器 - 5.0.1 匹配
我对流口水还很陌生,我遇到了一些我无法真正理解的问题。我正在尝试解决分配问题,而我的 LHS 之一是这样的
出于某种原因,即使您确定工作记忆中存在匹配项,第二个语句也不匹配任何内容。如果我用以下代码更改上面的代码,它可以正常工作
有人可以向我解释一下吗?
谢谢!
java - 在 Scala 中实现具有原始类型的方法
我在 Scala 中使用 Drools Planner(用 Java 编写)时遇到问题。Drools 规划器中的接口之一声明为:
然而,另一个接口使用'Score'作为原始类型:
然后我想在 Scala 中实现这个接口:
我得到一个编译错误:Scala编译器不允许只写'def getScore:Score'。当我尝试添加 'Score[_]' 或 'Score[whatever]' 时,编译器会抱怨类型不兼容。我应该怎么办?
java - Drools Planner 规则只触发一次
我有一个形式的规则
我希望看到每个 Foo 触发一次 bar 为 false 但是该规则只触发一次。令人困惑的是,如果我将其更改为$foo : Foo(bar == false)
,$foo : Foo()
那么它会为所有 Foo 正确触发。我错过了什么?
drools - Drools 创建自定义分数
所以我在drools中创建了一个自定义分数:
并已实施。但是我看不到如何使用分数。配置有一个
标记,但将除 SIMPLE 或 HARD_AND_SOFT 之外的任何内容放入其中会产生错误。
如何配置求解器以使用我创建的分数,文档似乎暗示这是可能的,但没有详细说明。
drools - 流口水规则从地图中获取价值
阻塞时如何获得口水中的特定值。
我正在寻找这样的东西,但它不起作用:
我已将 Hashmap 插入工作内存并尝试在何时检索它
我得到以下错误
jsp - 使用哪种 Drools 产品来制定时间表?
是的,这是一个新手问题。
我想制作一个时间表应用程序,这些点针对我的情况:
一次,我们一次最多分配(3 名教师 X 6 小时)X(3 节课 X 35 小时工作周),我们正在迭代地构建时间表。
将会有不可能的状态,并且必须通知任何不可能的时间表,而不会卡住应用程序——我们希望这个应用程序被推到它的极限。
它必须在恒定时间内返回结果或报告失败。
我打算将它作为 Tomcat 6 上的JSP 应用程序运行。执行如下:
- PHP 应用程序“发布”整个数据和规则集
- 等到它完成执行
- 读取包含优化状态的响应
JSP 的东西只是为了方便,因为它似乎是传输和保持程序活动的最简单方法。
如果这是一个无法控制的情况,请纠正我。
Drools 的哪些产品使之成为可能?还是有更简单的配置?
drools - 理解 Drools 规划器示例:problem 状态在哪里初始化?
我正在尝试了解 Drools 的N Queens和Cloud Balancer示例。我深入研究了手册的第 3 章和第 4 章以及这两个示例的来源。
我(错误)理解
- 问题必须从未分配或非最佳状态开始
- 那么,问题事实和计划实体,即 POJO,必须被实例化
- CloudBalance 或 NQueens 等解决方案类必须了解问题事实和计划实体
问题 1:在示例中,规划实体和问题事实类的对象在哪里初始化?
例如,当我加载云平衡时,我看到:
这意味着将序列化格式转换为真实对象并输入解决方案,对吗?
问题2:规划实体在哪里处理?
那条评论是什么意思?当初是怎么处理的?
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
获取其属性的类:
drools - 我在哪里可以指定某些规划实体是不可变的?
我正在制作(2X2)数独游戏,我需要完成一个谜题。这意味着一些数字是不可变的(它们不能被移出原位。
在 2X2 游戏中,有 16Digit
秒。问题事实是row
s、column
s 和block
s(明白吗?)。row
是唯一的计划变量。
我指定boolean fixed
为Digit
. 但是(根据用户指南),我找不到实现它的地方。
实际上使某些规划实体不可变的方法是什么?
我发现这些方法:
- 实现仅在不可变时才
moveFactory
更改的a。row
此方法未记录在案。 - 如果
row
不等于 afixed_row
,则打破硬约束。 - 使用
@ValueRangeFromPlanningProperty
. 让不可变实体具有value_range
单个元素,可变实体具有排除固定行的列表。对于比数独项目更大的任何东西,这似乎都是不可持续的,对吧?并且有(我的?)所谓的使求解器脱轨的陷阱?
额外的问题:方法#3 是解决时间表问题(将学科教师分配到可能的时期)的推荐方法吗?
drools - Drools Planner 在创建配置器时遇到问题:如何调试
我尝试从 XML 配置创建求解器。但是整个过程会返回一条毫无意义的神秘错误消息。
我该如何解决?我怎样才能理解这一点来实际解决类似的问题?
抛出它的函数在此处列出。当然是行return configurer.buildSolver();
。
XML 的内容: