首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >optaplanner示例中的修改

optaplanner示例中的修改
EN

Stack Overflow用户
提问于 2015-02-03 10:25:57
回答 1查看 468关注 0票数 0

我需要创建一些非常类似的护理名册的例子,在光学规划师。

规划所需资源如下:

  • 护士有特殊技能。
  • 每一天、一周和周末都有轮班。
  • 新特性:不同的任务需要不同的技能。
  • 新特性:员工通常会在早上花2个小时做一项特殊的任务,然后在一天中剩下的时间花在他们的主要任务上。

我认为最好的建模方法是,一个班次有一个列表,每个任务都需要一组技能,而每个班次都有一个任务列表。

然后Optaplanner不仅会分配护士来轮班,还会把任务组合起来并分配给轮班。

那么,我的问题是:任务是否是一个规划实体、规划变量、规划价值?

我需要修改溶剂工厂吗?如果是的话,有什么最好的建议吗?

EN

回答 1

Stack Overflow用户

发布于 2015-02-05 14:11:59

听起来不像有一个移位粒度,您有更小的粒度,即一个任务粒度。

在这种情况下,我会考虑让Task成为计划实体(计划变量为Employee)。问题是添加一个约束,以确保一天中的几项任务加起来很好地加到1次轮班……这有点痛苦,不仅是为了编写约束,而且也是因为元启发式方法将从自定义的迁移到交换的过程中得到很大的好处,它总是在移动中移动所有相同移位的任务(这有点像柱交换移动(参见docs),但随后对相同转换的任务进行了过滤)。

您确定在分配轮班之前,不能简单地在班次中预先定义任务吗?

至于具有多项技能要求的转移:这很简单,并且已经是OptaPlanner中示例的一部分: ShiftTypeSkillRequirement是ShiftType和技能之间的many2many关系(您可能希望将其更改为在shift和skill之间)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28296579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档