1

鉴于由于 covid-19 导致的新法律规定,我孩子的日托和所有相关的父母都不堪重负,我们需要制定一个时间表,说明何时可以照顾哪个孩子。

鉴于每个孩子所需的护理时间(如下),我们需要一种算法来优化以下内容:

  1. 最少的总联系人/固定组。如果孩子们见面,最好留在那个小组,不要看到其他小组的孩子。
  2. 虽然第 1 点更重要,但第二个优先事项是减少每组的人数,或者应该将其表述为每个孩子遇到的不同孩子的最少数量
  3. 更不重要的是:减少总接触时间

(也许还有其他要求,我忽略了?)

需求具有以下性质(时间跨度和类型):

案子 孩子 时间跨度 类型
(1) 固定时间,必填 1 星期一,8:30 - 13:00 必需的
(2) 固定时间,很高兴有 1 周二,8:30 - 13:00 很高兴有
(见(1)) 1 周二,13:00 - 16:00 必需的
(见(1)) 1 星期四,8:30 - 13:00 必需的
(见(1)) 2 周一 8:30 - 13:00 必需的
(3) 灵活日期,必填 2 其他任意两天 8:30 - 13:00 必需的
(4) 灵活的日期,很高兴有 2 任何一天 13:00 - 16:00 很高兴有
(5) Flexibel 日期时间,必填 3 3小时 必需的
(6) Flexibel 日期时间,很高兴拥有 3 额外 3 小时 很高兴有
... ... ...
  • 必需 = 孩子必须有日托
  • 很高兴拥有 = 需要日托,但不是必需的。例如,如果孩子 1 在周一和周四遇到孩子 2 和 3,那么在周二早上也可以遇到相同的孩子,但如果这是一组完全不同的孩子,那么这是没有意义的。
  • 所有提供的时间跨度必须保持在一个连续的片段中(这意味着 3 小时不能分成多个时段)。

附加信息

  • 只有一个房间可用。

  • 总共有15个孩子。

  • 如果一个解决方案比另一个解决方案好得多,那么在少数情况下违反“必需”要求是可以的。在少数情况下,我们也许可以为父母找到不同的解决方案。因此,该算法应该包含一个参数,例如maxAllowedViolations- 假设它是3,它应该比较解决方案比没有错误的解决方案好多少。

  • 需求是每周提供的,并且可能每周都在变化。我只提前一周知道需求。因此,理想的分组可能每周都会发生变化,但最好将上周的分组作为指导,因为电晕有大约 7 到 10 天的潜伏期。

  • 照顾者每周接受两次 covid-19 检测,而孩子们则没有。

我不在乎算法是用哪种语言或伪代码方式,但我会尝试以基于 Web 的格式实现该算法,以便其他日托中心也可以使用它。

4

0 回答 0