之前做学校的排课系统的时候,有需求要每个老师都有一个均衡系数,排课的时候可根据均衡系数来安排老师的课程,系数是0~1,如果是0,则课程安排最紧密,如果是1则课程安排最松,那么怎么计算才可以合理地分布安排课程呢,我的想法是把一周中所有上课的天数及每天上课的节次当做一个N*M的矩阵,例如一周五天上课,每天5节课(上午两节下午两节晚上一节),那么我们就可以得出一个5*5的矩阵,然后根据当前系数占据总数(即1)的百分比,匹配出大致符合当前百分比的节次,若有冲突则前移或后移一个节次,若仍有冲突则以原匹配节次为中心作一九宫格,随机选择一个没有冲突的节次,若九宫格内没有空闲节次,则在本星期所有空闲节次中随机选择一个,若本星期没有空闲节次则排课失败,进入下一轮排课。
求算法高手指点。。。。