问题标签 [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 回答
2710 浏览

java - 如何使用 Drools 规划器?

我有一个日程安排问题,每个学生都表达了他对讲座的偏好,并且同时为所有学生生成了课程时间表(如果可以的话,以批处理模式)。

根据我的阅读和理解,Drools Planner 非常适合解决这类问题。我将 Drools 和 GEF 安装到我的 Eclipse IDE 中。一切都很好。不幸的是,我不知道如何构建一个简单的项目。

我在网上查找了参考资料并找到了 Drools Planner 示例,它们看起来和工作都很棒。但是,除了一些代码片段之外,我没有找到任何好的教程来引导人们完成简单的案例。

我如何模拟匹配/调度问题,其中 3 名具有独特时间和课程偏好的学生希望注册 4 门课程?如何开始代码,在哪里放置约束,调用哪些类等?

任何帮助将不胜感激!!

谢谢!!

0 投票
1 回答
182 浏览

drools - Drools 规划器:将 SimpleScore 更改为 HardAndSoftScore

我正在玩弄流口水计划器,因为最终我需要制定一个排班解决方案。我从Drools Planner 用户指南开始,我成功地在 Eclipse 中运行了示例。

为了理解 simple 和 HardAndSoft 分数类型之间的区别,我尝试修改 NQueens 示例,将分数从 Simple 更改为 HardAndSoft。

我做了如下:

  1. 在我设置的 nqueensSolverConfig.xml 中<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>

  2. 在 NQueens.java 中:

    • 我设置public class NQueens extends AbstractPersistable implements Solution<HardAndSoftScore> {...}

    • 我将 SimpleScore 相关的属性和方法更改为对应的 HardAndSoftScore 成员:

    私有 HardAndSoftScore hsScore;

    public HardAndSoftScore getScore() { return hsScore; }

    public void setScore(HardAndSoftScore score) { this.hsScore = score; }

但是当我运行解决方案时,我收到以下消息:

怎么了?

0 投票
1 回答
866 浏览

grails - drools DRL 类路径资源

我有一个带有 XMLSolverFactory 的 grails 应用程序,使用下面的代码从 ./myapp/grails-app/conf/ 加载它的 XML 配置文件。但它无法从同一路径找到 DRL 文件。如果它在容器中运行,我如何获得配置 XML 的求解器来查找类路径 .DRL 资源?

配置 XML 片段

抛出错误

0 投票
1 回答
487 浏览

configuration - Drools planner:护士排班场景配置与竞争.xsd

我正在建模基于Drools Planner Nurse Rostering 的人员排班。

我正在玩*.xml基于competition.xsd模式的示例。架构通常非常清晰,但是配置参数太多,我不确定如何正确配置每个参数。例如,我无法弄清楚如何在标签中正确设置patterns它们及其用法。contracts

目的是正确建模我的场景.xml文件,以避免不必要的约束并正确加权有用的约束。

所以,我正在寻找一些关于competition.xsd模式的详细参考资料,也许还有关于模式使用的教程。

0 投票
1 回答
966 浏览

netbeans - 在 Drools Planner 示例中在 Netbeans 中设置工作目录

当我构建 Drools Planner Examples pom 项目时,我在测试中遇到这些错误:

测试运行:2,失败:0,错误:2,跳过:0,经过的时间:0.624 秒 <<< 失败!solveModel_a2_1(org.drools.planner.examples.cloudbalancing.CloudBalancingPerformanceTest) 经过时间:0.219 秒 <<< 错误!java.lang.IllegalStateException:目录 dataDir (C:\Users\Tom\Documents\Projects\Drools planner\examples\sources\data\cloudbalancing) 不存在。工作目录应设置为包含数据目录的目录。这在 git clone (drools-planner/drools-planner-examples) 和发布 zip (examples) 中是不同的。

我尝试设置“Drools Planner 示例”-> 属性-> 运行-> 工作目录-> C:\Users\Tom\Documents\Projects\Drools planner\examples\data\ 但没有用。

0 投票
1 回答
161 浏览

drools-planner - Drools 车辆路线规划器,但略有不同

我正在做一个具有以下参数的车辆路线:

  1. 车辆必须两次访问同一个地方。前期是设置后期是收集。
  2. 这两个时间已经在数据库中使用 lat 和 lng 坐标进行了预先确定。
  3. 车辆不能在给定时间位于 2 个不同的位置

我该如何使用drools planner来做到这一点?谢谢

0 投票
1 回答
212 浏览

drools - Drools Planner:Planner 未根据最佳分数提供预期结果

我曾尝试在 Drools 的用户论坛上发帖,但没有得到任何回复(我相信他们只是忙),所以我希望在这里吸引更广泛的观众。

我对我得到的结果感到非常困惑,因为他们似乎没有为我提供“最好的分数”。这是一些日志输出:

但是,它给我的结果包含一个损坏的硬约束(即使日志清楚地指出“解决结束:时间花费(15724),最好的分数(0hard/-2495soft)”)-它给了我一个分数的结果- 200hard/-2495soft(貌似是构建阶段的硬分和局部搜索阶段的软分)。这是应该的吗?我是否遗漏了手册中的某些内容(我已阅读,但尚未完全消化)?

这是我的大部分求解器配置(只是可能相关的部分):

提前致谢!

编辑:这里有一些可能有用的信息......如上所述,它说我的最佳(硬)分数是 0,但它给我的解决方案包含硬约束违规。我添加了一些代码来打印出约束(使用 DroolsScoreDirector 到达 WorkingMemory 并最终到达 ConstraintOccurrences)......这个打印输出也显示了一个硬约束。

0 投票
1 回答
294 浏览

move - 流口水规划师移动

我没有很多编程经验,更不用说 Drools,但我正在做一个类似于车辆路线的项目。几乎一切正常,除了一些动作,取决于随机种子。

问题是,一旦启发式阶段完成,有时局部搜索阶段会做出一些奇怪的动作,比如下一个:

启发式阶段解决方案:

第 1 天:地点 1 -> 地点 2 -> 地点 3 -> 地点 4 -> 地点 5 -> 地点 6 第 2 天:地点 7 -> 地点 8 -> 地点 9 -> 地点 10

本地搜索移动:地点 5 移动到第 2 天解决方案:

第 1 天:地点 1 -> 地点 2 -> 地点 3 -> 地点 4 第 2 天:地点 5 -> 地点 6

其余的地方没有一天(在示例中是车辆),并且它们作为未锚定的链留下:

地点 7 -> 地点 8 -> 地点 9 -> 地点 10 -> 地点 7 -> 等等

因此,当程序查找其中任何一个的日期时,它会进入一个无限循环。显然,问题不在于如何摆脱那个循环(我不是那个菜鸟),而是如何避免这些动作。

我使用与示例相同的求解器配置(更改求解器类等),所以我不明白为什么它会进行这些移动。我认为我应该编写自己的 Move 类,但我找不到如何编写代码的示例,也找不到 MoveFactory。我将solver.xml 留在代码块中。

有助于我学习编写 Move 和 MoveFactory 类的链接或提示以及避免这种情况的配置提示(如果有的话)会有所帮助。

无论如何,感谢大家的时间和精力。

0 投票
1 回答
211 浏览

jboss - 在 Eclipse 中安装 drools planner:构造函数 IntConstraintOccurrence(String, Object[]) 不明确

我一直在尝试安装 Drools 规划器。我下载了它,安装了插件,创建了一个运行时,并创建了一个新项目。但是,我在规则文件中遇到了构建错误:构造函数 IntConstraintOccurrence(String, Object[]) 不明确。这段代码在我朋友的计算机上运行良好(也使用 eclipse),所以我知道这不是代码中的错误,但我无法弄清楚问题出在哪里。以前有人有这个问题吗?

0 投票
1 回答
257 浏览

drools - CompositePlanningValueRangeDescriptor.extractValues 中的空指针异常

我在尝试解决我的解决方案时面临 NPE:

我使用以下注释对我的计划实体进行了注释,以从解决方案中的两个列表中收集值范围:

这是解决方案:

奇怪的是,在调试过程中,我发现参数“planningEntity”为空,而不是解决方案中的值。

有没有人遇到同样的问题或知道如何解决这个问题?

谢谢和最好的问候!

PS:这似乎来自方法 initSelectedPlanningValueList:

PSPS:问题解决了。出现问题是因为我忘记将克隆的虚拟属性链接到原始虚拟列表。所以克隆解决方案中的虚拟列表为空。