这是NPC的最佳时间表任务吗?

时间:2010-08-19 02:43:20

标签: scheduling np-complete

我自愿编写了一个安排家长会议的计划。校长希望家长选择3个可能的日期时间来访问他们的英语数学老师(同时)。

一旦所有家长都选择了3个日期时间,我就应该找出安排家长 - 教师会议的最佳方式,以便最多的家长可以与两位老师见面。

(如果有时间冲突,数学老师不能参加会议,家长只会与英语老师见面)

我对NP类型问题知之甚少,但当我一起听到“最佳”和“时间表”这个词时,我开始怀疑......

我已经告诉校长我不能这样做,但我想知道它是否完整。如果是,假设有:

  • 500名父母
  • 15位英语老师
  • 5位数学老师
  • 中挑选25个日期时间

这可以在奶奶的电脑上在几秒钟,几分钟或几小时内正确解决吗?

1 个答案:

答案 0 :(得分:0)

嗯,我对你的问题和模拟有部分答案,可以让我尝试不同的场景。以下是我的工作(但可变)假设:

  • 参数就像您列出的那样
  • 父母选择的会话时间遵循幂律(Benford's分布),因为这会模拟预期的偏好不均匀性
  • 根据跑步情况,有大约20名父母“不妥协”,只能参加一次会议。
  • 每位英语老师都有一位也是唯一一位相应的数学老师,因为他们的相关性被推定为高,但我不知道有多高。代码可以处理从0到1的任何相关系数。
  • 整个shebang产生似乎合理的模拟父母('smith'..'atkins'),老师,时间选择和令人满意的结果在中型机器上花了300毫秒(5300 BogoMIPS)。

我的第二次订单优化甚至没有启动,因为第一次通过允许每个父母的第一选择在一个会话中最多容纳11个父母。对于那些必须参加大约一半时间段且平均父母群体为~3的教师来说,这个结果是次优的。

鉴于任何表达的兴趣,我可以提供代码,因为它大约有125行。