为我孩子的日托安排最短联系时间和小组规模的算法

问题描述

鉴于 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) 灵活日期时间,必需 3 3 小时 必填
(6) 灵活的日期时间,很高兴有 3 额外 3 小时 很高兴有
... ... ...
  • 必需 = 孩子必须有日托
  • 很高兴 = 需要日托但不是必需的。例如。如果孩子 1 在周一和周四遇到孩子 2 和 3,那么在周二早上也可以遇到相同的孩子,但如果是完全不同的孩子群体,那么这就没有意义了。
  • 所有提供的时间跨度必须保持在一个连续的片段中(这意味着 3 小时不能分成多个时段)。

其他信息

  • 只有一间房。

  • 总共有 15 个孩子。

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

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

  • 看护人每周接受两次 COVID-19 检测,孩子们则不然。

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)