具有能力限制的护士调度

问题描述 投票:0回答:1

我正在努力弄清楚如何利用 Google OR Tools CP-SAT 求解器找到护士调度问题的可行解决方案,并稍加修改:每个轮班仅限于具有一定能力的护士子集(即新手、中级、高级)。能力在一段时间后就会过期,这意味着无法安排护士进行需要过期能力的轮班。然而,护士可以通过与目前具备该能力的人轮班工作来重新获得能力。

在我的计划中,我希望一次安排多天。我如何定义一个约束,即能力过期的护士只能安排在第 n 天轮班,前提是该护士计划在小于 n 的某一天恢复能力?

job-scheduling or-tools constraint-programming cp-sat
1个回答
4
投票

首先看一下 shift_scheduling_sat.py 示例。适应技能限制应该很容易。

现在,关于过期。

第一步是标记护士学习技能的轮班。

对于每个轮班、每个护士,如果护士与有能力的人员配对,则创建一个

bool var
。添加暗示护士是该轮班的时间表和同一轮班的熟练人员 -> 护士有资格胜任该轮班的能力。

现在对于需要这种能力的所有其他轮班,

您知道每个轮班的时间。对于给定的班次,收集足够接近的所有潜在的前一班次(无过期),并添加护士在该班次上的工作意味着或(护士在一个兼容的前一班次上获得该班次 - 包括这个)。

© www.soinside.com 2019 - 2024. All rights reserved.