当前位置: 首页 > 知识库问答 >
问题:

工人任务调度的Optaplanner规划和阴影变量

卞云瀚
2023-03-14

首先,对于我的分数计算,我使用Java EasyScoreCalculator接口,并使用Java API创建我的求解器(因为我在Java OSGI插件中从xml或drl文件加载配置/约束时遇到了问题)

我的问题:

我想解决的,一个多技术工人任务调度问题。

任务的开始日期和结束日期应在给定的日期范围内计划。

解决方案:我要优化所有工人的总体工作量(分钟)。

目前我确实有三个规划变量:

    null

在我的Java Score类中,我循环遍历列表,并根据可用时间为每个任务(有开始和结束日期--不为空)计算工作者每天的工作时间。工作时间少于可用时间是可以的,超过可用时间将导致软分数和超过一天的最大工作时间在硬分数。

score类内部的计算真的很烦人,因为规划变量可能是空的,所以我必须先检查规划变量是否是空的,然后继续这一步,否则它就可以计算了。

另外,我认为没有时间调度设计模式可以用于我的问题(如果您有不同的想法,请更正我)

也许有人能告诉我,

    null

共有1个答案

邵耀
2023-03-14

1)任何分数计算器都必须能够计算半初始化解决方案的分数。否则CH将是盲的,直到所有的东西都被分配--所以这基本上是随机初始化(=坏)。

2)&3)我只是从对角线上看,所以我不去细读细节,而是看看两个例子:项目作业调度和任务分配。这两个例子都使用了时间链模式(chained through time pattern)。

4)是的,这是可能的,假设C依赖于A和B,如果A或B中的任何一个为空,那么C为空。

 类似资料:
  • 各位opatplanner用户, 我的规划问题是:获取遥感卫星星座的有效时间表。 @PlanningEntity: @PlanningVariable: 我的问题数据主要是这样的: Image_Strip: D1 Sat2 22-12-2015 11:02:24.051 D1 Sat1 22-12-2015 11:04:24.122 A2 Sat3 22-12-2015 11:06:24.172

  • 我用增量java解决了optaPlanner的一个问题,其中有一个规划变量和一个规划实体,但是现在在我们的项目中有很多规划变量的需求,比如我们要找到最好的房间(容量,isAC等),汽车(totalSeatsLeft,isAC等),我们不知道有多少资源,因为我们每天都需要根据用户的需求增加更多的资源,比如会议室设施等,所以给我一些想法,这样我们就可以为optaPlanner做一个域。多谢了。

  • 我有一些任务的持续时间是已知的整数长度。任务之间也有依赖关系。我也有任意数量的员工可以安排这些任务。 我想为他们找到一个最佳的时间表,首先我要最小化所有任务执行的总长度,其次我想在一个之前运行过大多数依赖项的工作人员身上安排任务,第三我想最小化所需的工作人员数量。 因此,如果任务具有依赖项A、B和C,并且worker1运行A和B,worker2运行C,那么我更希望将新任务添加到worker1。 我

  • 我正在研究来自OptaPlanner的示例用例。我也找不到任何类似的例子,可以在一个规划实体中求解多个规划变量。例如,在护士名册中,一个轮班的每个可能需要多个分配的。在这种情况下,如何利用planner和编写规则呢?

  • 我是Optaplanner的新手,我一直在考虑将VRP扩展到一个不同的问题空间。我用的是6.1.0-final。这是一个很难计算的问题,但下面是: 规划实体-装运(扩展Standstill),由运输商(即货船)锚定规划变量-终端(货物目的地),当然隐含运输商(作为VRP示例中的Vehicle这样的影子变量) 在这个路径问题中,货物直接运输到一个终端,然后再运回工厂。即一个运输机服务于一个终点站,然

  • 在制定时间表时,你必须遵守法律(硬性要求),该法律规定,作为一名员工,你每七天只能工作一定的时间。它没有说日历周的原因是在创建时间表时为雇主提供一些回旋空间(通常是提前4-16周)。一旦设置了此计划期的开始日期,在您想要进行完整的重新规划之前,该日期无法更改,但您需要通知员工。所以它可以被视为一个变量,直到你接受了时间表,然后它就变成了一个常数。当然,这是每个员工的个人情况。该开始日期将由您的第一