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

jboss - Drools 规则不正确,如何使用“和”?

我正在尝试进行以下工作:

但似乎这and Time(this == $user)部分从来都不是真的。如果我删除那部分,我会得到一些 println 输出。

上面的代码有什么问题?

0 投票
1 回答
240 浏览

drools - 面临迭代流口水列表的问题

面临流口水列表迭代的问题

GoodsShipment有 GoodsItems 列表 GoodsItem Documents列表

我的要求是,需要检查至少一份文件是否可用。

我试过这个但失败了

写了一个类来检查目的

谁能帮帮我..提前谢谢

0 投票
1 回答
120 浏览

java - 在解决时间的同时移动链接的计划实体

在 Optaplanner 中,是否可以在一次移动中(在分数计算之间)将相同的计划变量分配给不同的计划实体?例如,当客户 A 被分配到 StandStill 时,客户 B 也将被分配到同一个 StandStill。感谢任何想法或评论。

0 投票
0 回答
216 浏览

java - 链式实体的不可移动规划实体

我试图为我的链式实体实现不可移动的规划实体。我的计划问题类似于 optaplanner 示例中的项目作业调度示例。以前我在这里发布了一个关于锁定我的链式实体的问题:如何在项目作业调度解决方案中添加不可移动功能? 项目负责人已经从 jira 给了我一些解决方法:https ://issues.jboss.org/browse/PLANNER-239 。现在我试图为解决方法编写代码,但被卡住了。请有人帮我完成这些解决方法代码。

从吉拉:

解决方法:添加自定义移动过滤器,如果 getNextEntity 对于更改和交换移动不是不可移动的。至于子链移动......不允许反转。至于 2opt 移动,不允许内部移动(因为它们反转)。无论如何,解决方法很笨拙,这个问题很重要。

我只是想了解解决方法,所以在这里,请有人帮我完成这个解决方法:

自定义移动过滤器,如果 getNextEntity 不是不可移动的更改和交换移动:

下一句不清楚,所以我不明白该怎么办:

至于 2opt 移动,不允许内部移动(因为它们反转)。

如果有人想帮助我完成此代码,我将不胜感激,谢谢。

0 投票
1 回答
2347 浏览

drools - 检查列表中的总和是否大于 100

我必须在列表上写一个流口水函数,它必须做以下事情

  1. 创建总和
  2. 检查总和是否大于 100。

下面是我创建的流口水规则

我无法检查 $total 是否大于 100

谢谢

0 投票
0 回答
1091 浏览

drools - 检查“非空”在 Drools/OptaPlanner 中不起作用

我正在 OptaPlanner 中构建一个非常基本的 Drools 求解器:

奇怪的是,在我的示例中,只有第二条规则(“isNull”)被触发。第一条规则(“notNull”)永远不会被触发,尽管我的解决方案的单元格元素在计算完成时不为空。

当我将这两条规则嵌入到 EasyScoreCalculator 中时,它们都会被解雇。当我将这两个规则放入 NQueens-Example 的 .drl 文件时(请参阅http://docs.jboss.org/optaplanner/release/6.1.0.Final/optaplanner-docs/html_single/#nQueens了解更多信息) ,这两个规则也会被解雇。我的代码和 NQueens-Example 之间还有另一个区别。我的代码收到此警告:

这是我的类 org.bpmngenerator.domain.Cell:

0 投票
0 回答
73 浏览

database - 从数据库加载百万个对象

我正在使用 Drools 引擎,但仅限于实施方面。框架是为我设置的,我只能使用规则方面(我希望我能够解释自己)。

那就是说-我的问题是我正在尝试将大约 100 万行从 Oracle DB 加载到 WM 中,并且我发现此任务花费的时间太长,这是我用来加载对象的规则:(顺便说一句 - 请求将百万记录加载到 WM 中是强制性的,因为我需要使用这些 DB 对象作为我的规则的一部分以及在运行时注入引擎的其他对象)

规则“Load_CMMObject”显着性 10 无循环

结尾

我正在使用为 Drools 引擎分配大约 20Gb RAM 的服务器,它有 8 个 1.5GHZ 四核处理器。

问题是我大约需要 1 分钟才能加载 5000 个原始数据 -> 所以如果我想从数据库加载 100 万条记录,我需要 200 分钟才能完成任务,这太多了。

我会很感激这里的任何帮助,

多谢!

0 投票
1 回答
442 浏览

drools - 在 drool/optaplanner 中同时使用硬/软约束分数

是否可以在规则的后果部分使用硬约束和软约束分数,但其中一个具有非零值。例如

其中 isHard/isSoft 其中一个为 1,另一个为零。

上面总是取最后执行的语句的值(即软约束)

0 投票
1 回答
638 浏览

drools - Drools 规则替换数据库访问方法?

我的要求: 我有一个方法可以进入 db 并从表中获取信息。并使用此表信息验证进入我的应用程序的用户输入。现在我想替换这个方法并实现相同的功能(去数据库获取一些数据并使用该数据验证用户输入)到流口水的规则。我该怎么做?应该如何将事实(在我的情况下是数据库中的数据)插入到流口水知识会话中?我是否必须先在 POJO 中获取事实,然后在知识会话中插入相同的 POJO(如果可能的话,我对这种方法不太感兴趣)?有没有办法在 .drl 或任何其他外部源(数据库除外)中表示事实本身,然后在 POJO 中加载这些事实并在知识会话中插入 pojo?

高度赞赏回应!谢谢

0 投票
1 回答
266 浏览

optaplanner - OptaPlanner 将多辆车部署到同一位置

我采用了 OptaPlanner VRP 网络示例并根据我的需要对其进行了定制。除了以下情况外,它工作正常:

可用车辆数量:2。
每辆车容量为6。
客户需求为7。

在上述场景中,OptaPlanner 无法解决问题。我认为它应该将 2 辆车部署到同一个客户位置,但它没有按预期工作。

我无法弄清楚如何配置 OptaPlanner 规则以使其正常工作。