algorithm - 具有重叠时隙的 session 调度算法

标签 algorithm graph graph-algorithm matching constraint-programming

我想做类似于 Appointment scheduling algorithm (N people with N free-busy slots, constraint-satisfaction). 的事情使用 Hopcroft-Karp 算法。但我的额外要求是我的时间间隔是重叠的。例如。时间段可以是上午 10 点至上午 11 点或上午 10 点 15 分至上午 11 点 15 分。 所以如果我选择上午 10 点到 11 点时段,我不想选择上午 10 点到 11 点 15 点时段。是否可以在不严重影响性能的情况下实现这一目标?

最佳答案

如果您使用某种流扩展器添加另一个级别区分时隙,则可以使用类似于您对 Hopcroft-Karp 提出的建议的流算法。

因此,源与人相关,人与时隙相关,时隙与时间分割相关,分割与接收器相关。

为了进一步描述分割,假设您有从 10:00、10:15、10:30 和 10:45 开始的时段。时间分割为 15 分钟。如果所有 session 都是一个小时,那么 10:00 时间段将连接到 10:00-10:15 分割以及 10:15-10:30、10:30-10:45 和 10:45 -11:00 故障。

在时隙和故障之间的连接处必须有一些修改的逻辑。这是因为它们必须是时隙输入与故障连接之间流量值的变化。这是因为每当一个人被分配到一个时间段(时间段流入 = 1)时,就会有多个流向分割(时间段流出 = 4,每个上面的例子)。

一个免责声明我还没有尝试过这个。如果您这样做,请告诉我们它是否有效/效果如何。

关于algorithm - 具有重叠时隙的 session 调度算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19797438/

相关文章:

vba - 总和最大但小于特定值的子集

对无关对象进行分组的算法

c++ - dijkstra 实现给出了错误的输出

c++ - 成对生成列表

algorithm - 在无向连通图中,如何找到一组顶点,删除哪个图变得断开连接?

algorithm - 深入理解算法设计技术

java - 合并排序是重复数组条目

dictionary - 在世界地图上可视化网络

database - Google App Engine 上的无向图和遍历

algorithm - 如何在此图上应用 Dijkstra 算法?