问题标签 [optaplanner]

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 投票
4 回答
2519 浏览

drools - 在 Drools 规划器中设置工作内存中的全局变量

如何在 drools planner 的求解器中将全局变量添加到工作内存中,以便能够在分数 drool 中使用。这类似于https://issues.jboss.org/browse/JBRULES-2700但找不到解决方案。

0 投票
2 回答
1450 浏览

artificial-intelligence - 一个很好的“hello world”程序,适合drools planner

我正在尝试实施 Drools Planner 来分配时间表。目前,我对 Java 和 JavaBean 设计模式的熟练程度很低,我需要一些简单的练习

是否存在一个AI 优化问题

  1. 已知可以用'X'算法很好地解决
  2. 数据模型适合于以简单的方式在 JavaBean 设计模式中表达
  3. 使用最少数量的额外功能(如规划实体难度)

这样的问题对 Drools Planner 来说是件好事。


我现在正在尝试 N-Queens 问题,这似乎是其中最简单的。所以我正在寻找这个联盟的东西。

0 投票
1 回答
166 浏览

java - Drools Planner 在运行时设置 minimumAcceptedSelection

我可以设置 minimumAcceptedSelection 编辑 SampleDroolsConfig.xml

是否可以在运行时设置此参数?

0 投票
1 回答
201 浏览

drools-planner - 使用 Drools Planner 组建团队

Drools Planner 提供有关是否可以实施的建议:

问题涉及团队组建。强约束:学生必须被分到 N 个组中 每个组必须包含 X 个组成员 弱约束(可能是有序或加权的):每个组必须有一个数学分数 > Y 的成员 每个组必须由具有相同兴趣的成员组成(可能需要在运行时添加弱约束)

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 回答
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 回答
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),所以我知道这不是代码中的错误,但我无法弄清楚问题出在哪里。以前有人有这个问题吗?