简体   繁体   English

基于可用性的自动调度

[英]Automated scheduling based on availability

The data: Students which have varying availability at certain timestamps (hourly) throughout the week.数据:学生在整个星期的特定时间戳(每小时)有不同的可用性。

The challenge: Creating a schedule based on the data above, where a single faculty member can meet with each student once that week, without any overlap between students.挑战:根据上述数据创建一个时间表,其中一名教员可以在一周内与每个学生会面一次,学生之间没有任何重叠。

What I have tried so far到目前为止我尝试了什么

  • Creating a filter that checks which students have the least availability and prioritizing them创建一个过滤器来检查哪些学生的空闲时间最少并确定他们的优先级
  • Distributing based on days where more/fewer students are available根据有更多/更少学生的日子进行分配

However, none of my attempts even came close to what I need, and I struggle to understand the mathematics of it all.然而,我的尝试都没有接近我的需要,我很难理解这一切的数学原理。 How can I best create such a scheduling tool above?我怎样才能最好地创建上面这样的调度工具?

Create a bipartite graph with one vertex per student and one vertex per timestamp.创建一个二分图,每个学生一个顶点,每个时间戳一个顶点。 A student is connected to a timestamp by an edge if and only if this student is available at that timestamp.当且仅当该学生在该时间戳可用时,该学生才通过边连接到时间戳。

Then search for a maximum matching in this bipartite graph.然后在这个二部图中搜索最大匹配。 This is also called the assignment problem , and can be solved for instance with the Hungarian algorithm .这也称为分配问题,例如可以使用匈牙利算法解决。

Note that this makes the assumption that timestamps are discrete.请注意,这假设时间戳是离散的。 This might not correspond to the reality.这可能与实际情况不符。 But it's still a good place to start.但它仍然是一个很好的起点。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM