一个算法问题,想了很久都不会。。
问题是这样,安排一个家长会见老师的时间表。
每个老师每次会见一个家长,7分钟,总共可以会见18个家长。
每个家长最多只能要求会见最多9个老师。
现在要安排一个时间表,使得每个家长能以最短的时间会见完所有要求的老师。
例如:一个家长,要求见ABCDE 5个老师,那么最优的安排解决就是见完A老师立即见B,然后C,然后D,然后E。而不需要见完A之后,BCDE这些老师都有其他家长要见,所以要等7分钟。
希望我解释的比较清楚哈。
我上网找了下,找到的都是高校排课或者考试安排,什么着色法,回溯算法,遗传算法,DNA算法等等。但是我不太明白也不清楚能不能解决此问题。。。。
我现在的想法是,每两个老师看成一对,然后找出最多家长同时要求见的老师对,然后从此两个老师入手安排,因为如果最后安排他们将会有很多冲突。每次安排一个家长,如果安排的时间刚好有冲突,就把冲突的位置的家长调整一下,使得所有家长满足要求。简单的说,就是每加一个家长,就找出当前解。但是这样做的话可能会浪费很多时间。。最差的时间可能会很高很高。。。因为每次加一个家长,就有可能把之前的所有家长都要重新调整。。。