简体   繁体   English

具有重叠时隙的会议调度算法

[英]Meeting scheduling algorithm with Overlapping Time Slots

I want to do something similar to Appointment scheduling algorithm (N people with N free-busy slots, constraint-satisfaction). 我想做一些类似于约会调度算法的事情(N个人有N个忙闲时隙,约束满足)。 using Hopcroft-Karp Algorithm. 使用Hopcroft-Karp算法。 But my additional requirement is that my time intervals are overlapping. 但我的额外要求是我的时间间隔是重叠的。 Eg. 例如。 The time slots can be 10am-11am or 10.15am to 11.15am. 时段可以是上午10点至11点或上午10点15分至11点15分。 So if I choose 10am to 11 am slot, I don't want to choose 10.15 am to 11.15 am slot. 所以,如果我选择上午10点到11点的时段,我不想选择上午10点15分到11点15分。 Is it possible to achieve this without hitting the performance badly? 是否有可能在不严重影响性能的情况下实现这一目标?

You could use a flow algorithm similar to what your proposing with Hopcroft-Karp if you add another level distinguishing time slots with some sort of flow expander. 如果您使用某种流扩展器添加另一个级别区分时隙,您可以使用类似于您对Hopcroft-Karp的建议的流算法。

So you would have a source connected to the people, people connected to time slots, time slots connected to time breakdowns, and breakdowns connected to a sink. 因此,您将拥有连接到人员的源,连接到时间段的人员,连接到时间故障的时间段以及连接到接收器的故障。

To further describe the breakdowns, say you have time slots that start at 10:00, 10:15, 10:30 and 10:45. 要进一步描述故障,请说你有时间段从10:00,10:15,10:30和10:45开始。 The time breakdowns would be at 15 minutes. 时间故障将在15分钟。 If all meetings are an hour long then the 10:00 time slot would be connected to the 10:00-10:15 breakdown as well as the 10:15-10:30, 10:30-10:45 and 10:45-11:00 breakdowns. 如果所有会议都是一小时,那么10:00时段将连接到10:00-10:15分解以及10:15-10:30,10:30-10:45和10:45 -11:00故障。

There would have to be some modified logic at the connection between the time slots and the breakdowns. 在时隙和故障之间的连接上必须有一些修改过的逻辑。 That is because their would have to be a change in flow values between the input of the time slots and the connections to the breakdowns. 这是因为它们必须是时隙输入和故障连接之间流量值的变化。 This is because whenever one person gets assigned to a time slot (time slot in-flow = 1) there are multiple flows to the breakdown (time slot out-flow = 4 per example above). 这是因为每当一个人被分配到时隙(时隙in-flow = 1)时,有多个流到故障(时隙流出=每个例子上面4个)。

One disclaimer I haven't tried this. 一个免责声明我没试过这个。 If you do please tell us if/how well it works. 如果你这样做,请告诉我们它是否/如何运作。

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

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