会议调度算法有重叠时隙算法、会议

2023-09-11 22:50:39 作者:人间不值得

我想要做同样的事情到Appointment调度算法(N人有N个自由闲插槽,约束满意度)。使用Hopcroft - 卡普算法。但我的附加要求是,我的时间间隔重叠。例如。时隙可以是10 am-11am或上午十时十五分至上午11时一刻。 所以,如果我选择上午10点到上午11点插槽,我并不想选择上午10:15至上午11:15插槽。是否有可能实现这一目标没有击中的表现很糟糕?

I want to do something similar to Appointment scheduling algorithm (N people with N free-busy slots, constraint-satisfaction). using Hopcroft-Karp Algorithm. 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. So if I choose 10am to 11 am slot, I don't want to choose 10.15 am to 11.15 am slot. Is it possible to achieve this without hitting the performance badly?

推荐答案

您可以使用类似于您与Hopcroft - 卡普建议,如果你有某种流量膨胀的添加另一个层面区分时段流量的算法。

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.

所以,你就必须连接到人们的源泉,人们连接到时隙,时隙连接到故障的时间和故障是连接到一个接收器。

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.

要进一步描述的故障,说你有开始时间为10:00,10:15,10:30和10:45时段。时间故障将在15分钟。如果所有的会议是一个小时长则10点时隙将被连接到10:00-10:15击穿以及10:15-10:30,10:30-10:45和10时45分-11:00故障。

To further describe the breakdowns, say you have time slots that start at 10:00, 10:15, 10:30 and 10:45. The time breakdowns would be at 15 minutes. 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.

有将必须是在时隙和故障之间的连接的一些修改逻辑。这是因为他们的将必须是时隙的输入和连接到故障之间的流量值的变化。这是因为每当一个人被分配给一个时隙(时隙在流= 1)有多个流到击穿(时隙流出= 4每上面的例子)。

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).

一个声明我没有尝试这样做。如果你请告诉我们,如果/以及它如何运作。

One disclaimer I haven't tried this. If you do please tell us if/how well it works.