问题标签 [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.
drools-planner - OptaPlanner 构建阶段 - 有没有办法定义过滤器?
在本地搜索阶段,您可以为实体、值和移动配置过滤器。如果需要,您甚至可以提供自定义移动工厂。
但是,我找不到任何关于如何在构建阶段执行相同操作的文档。唯一的配置是启发式类型和觅食者:第 8 章。构建启发式
我想在过滤器中实现一些我非常严格的规则,但是,如果没有在构建阶段进行过滤的能力,我还必须将它们定义为评分规则以避免糟糕的构建。
有没有办法为施工阶段定义过滤器?
java - OptaPlanner / 车辆路线 / 删除客户
我正在使用 OptaPlanner 优化与提供的示例非常相似的车辆路线问题。由于我有数百个停靠点,因此优化需要几个小时。
这是我的问题:有时客户会取消订单。在这种情况下,我不想再次从头运行整个优化过程并再次等待数小时。我想从解决的 XML 文件中删除这些客户并从那里开始优化。有没有办法调整已解决的 XML 文件?
我尝试将需求设置为 0,但即使需求为 0,我仍有车辆接近该客户。
如果你在这里有一个想法会很棒。谢谢你的帮助!
java - OptaPlanner 中的多项目作业调度
我是一名 Java/C/Python 开发人员,希望帮助一位管理定制产品商店的亲戚。我是 optaplanner 和一般约束编程的新手,所以我的问题是:
1.) 下面的调度问题是否可以在optaplanner(或其替代方案之一)中解决?
2.) 哪种算法最适合这个问题?它似乎与(优秀的)OptaPlanner 文档中给出的项目作业调度示例非常相似,但它具有在任何给定时间调度多个项目的额外限制。
简化的问题是:
- 在任何给定时间,都有 1 到n个项目。
- 每个项目都有自己的截止日期。
- 每个项目都有一系列有序的工作。
- 工作领域仅限于切割、打磨和涂漆。
- 任何给定的工作都可以在序列中出现 0 到多次(即并非所有项目都有“切割”工作,但可能有多个“绘画”工作)
- 每个项目共享全球资源,即员工A, B和C。
- 员工甲只能进行切割和打磨工作
- 员工B只能进行切割、打磨和油漆工作。
- 员工C只能进行打磨和油漆工作
- 解决方案只需要是可行的,而不是最优的
job-scheduling - optaplanner:建模简单的抢占式调度
我是 optaplanner 的新手,但我对调度算法有一定的经验。我正在尝试实现一个非常简单的算法,该算法能够解决我遇到的特定调度问题,我想用 optaplanner 来解决。是的,有一个作业车间调度的例子,但它的模型没有在文档中描述,我需要的是完全不同的。
简而言之,我有多个项目,每个项目都有一个作业,需要在尊重某些时间窗口限制的相等资源池中执行:例如。每个资源仅在其时间窗口内可用于特定作业。
我的模型看起来像这样:
- 具有以下属性的作业类
- int minDuration,表示时间窗口内所有资源上作业的最短持续时间。这是一个硬约束
- TimeInterval timeWindow,我必须在其中处理作业至少 minDuration 的时间窗口
- 列出<TimeInterval> 有效处理。这可能是决策变量,因为在处理过程中发生变化,时间间隔只是几个开始时间和停止时间。
- 地图<资源,列表<时间间隔>>资源可用性。这是一个问题约束(硬)。对于每个作业,它会告诉您特定资源何时可用。
分数计算应该很简单,但我需要一些关于算法其余部分的提示和专家的一些建议。我需要一些额外的代码来构建这些间隔吗?你觉得我的模型怎么样?我需要构建一些可以正常工作的东西,然后我会担心优化。任何帮助深表感谢!
编辑:替代模型:每个作业都代表在其可用性槽中对资源的操作,因此我们有多个作业,一个用于资源上的每个可用性槽。想象一下贪婪的初始分配,其中每个作业始终使用所有可用资源。计划变量是在有限范围内变化的优先级整数。此优先级决定了作业获取资源访问权限的方式(优先级越高)。该解决方案意味着根据优先级计算时隙,分数取决于问题。让我们看看它是否有效。
optaplanner - 带有简单分数计算器的“或”约束不起作用
我正在尝试使用 optaplanner 构建一个简单的分数计算器,但我的“OR”-Constraint 无法正常工作。Optaplanner 说分数是 -1,但分数必须是 0。” 解决方案应该是:“A”只可能在索引 2 处。
方法“no_A_at_Index3”效果很好。“A_at_Index2_or_Index3”似乎是错误的。有谁知道我做错了什么?
PS我将方法从“no_A_at_Index2”更改为“no_A_at_Index3”。
真奇怪:
- (!(this.A_at_Index2_or_Index3(nCells)) || !(this.no_A_at_Index2(nCells))) 效果很好。
(!(this.A_at_Index2_or_Index3(nCells)) || !(this.no_A_at_Index3(nCells))) 不起作用。
/li>
java - IntelliJ IDEA 中的错误 Manifest.mf 创建了 .jar
我正在尝试通过 IntelliJ IDEA 的 jar 工件将使用 OptaPlanner 6.0.1 库的项目打包到 .jar 中,而不是包含标准的 manifest.mf
该 jar 使用 ecj-3.7.2.jar 中提供的那个,它是 OptaPlanner 的支持库之一:
因此,"no main manifest attribute, in appname.jar"
尝试运行应用程序时会发生错误。如果我用我的手动替换 .jar 文件中的清单,一切正常。我能做些什么来解决这个问题吗?
我将库保存在单独的 /lib 目录中,并将它们作为提取目录添加到 jar 工件的根目录中,IntelliJ IDEA 是 v13.0.1。
optaplanner - 简单Java分数计算中的嵌套约束非常慢
我正在尝试使用 OptaPlanner 构建 3 个嵌套约束。它可以工作,但速度很慢(即使对于非常小的数据集)......也许有人确实知道如何提高性能?
java - Optaplanner 项目作业调度:周末和节假日
正如我在上一个问题中提到的,我正在使用出色的OptaPlanner库来创建一个应用程序,该应用程序可以帮助自定义作业车间进行项目调度。该应用程序具有以下要求:
“除非经理特别批准,否则申请不得在任何给定的周末或假期安排工作。”
我很好奇如何更改我的域模型或评分函数以包含此要求。一个基本想法是将全球可再生资源(即员工)的产能从每月 30 天减少到每月 22 天(包括周末)。但是,我已经可以看出这是一种幼稚的方法。如果经理想要安排员工在某个特定的星期六来上班,将员工的工作时间增加到 23 天并不意味着他们将被安排在那个星期六。事实上,据我所知,由于容量只是我们 GlobalResource 模型中的一个简单整数,因此它不会根据上下文知道这些日期是哪一天。在我看来,我正在寻找的解决方案并未将“容量”定义为整数,而是定义为二进制值数组,其中:
capacity[ d ] = x,其中d是一个月中的哪一天,x是资源的可用性(1 或 0)。假设没有经理想要在给定的星期六安排工作,那么每个全球可再生资源在该特定星期六的容量都将为 0。
这可能与 OptaPlanner 示例中给出的护士排班问题重叠。或者,也许我从完全错误的角度来处理这个问题。非常感谢任何有关解决此问题的提示。
java - OptaPlanner Wrong Input: Want to use the DB instead of XML
I am using OptaPlanner to create a scheduling plan for something instead of taking input from XML, I am trying to import the data from the dB directly, but it is still searching for the XML input, what might be the reason and how can it be corrected
optaplanner - Optaplanner - 车辆的可用性
我正在研究车辆有可用性限制的 VRPTW 问题。这意味着它们可能无法在一天的整个时间段内使用——基本上是车辆的时间窗口。有没有办法在 optaplanner 中构建它?
谢谢你和 Brgds,保罗