课程冲突主要体现在学生的选课上,其定义参见确定排课模型中的概念定义。对于课程冲突要包括全部的课程,即采用全部课程的笛卡儿乘积,考察全部的学生选课记录,得到的结果是一个二维表,表中任意结点上的数字表示该结点所对应的行和列的两门课程的上课冲突人数。例如表4-1 
课号 01006 01011 01030 01051 01053 01054 01055 01056 01058
01006 46
01011 5 33
01030 1 0 10
01051 0 3 2 6
01053 7 13 4 5 76
01054 1 3 0 0 4 6
01055 1 1 1 0 2 0 18
01056 0 0 0 0 1 0 1 13
01058 2 2 5 4 13 1 0 0 12
                          表4-1
在表4-1中对角线上的节点所对应的行和列的课号是相同的,其表示的是同一门课程,节点上的数据表示选取该门课程的选课人数。例如,表中第六行对角线上有节点数字是76,对应的课程号为01053,表示该学期选上01053信息论基础这门课的学生数为76人。不在对角线上的节点数字表示就是不同课程的冲突人数。例如,第六行第三列这个节点就表示同时选取01053和01011这两门课程的选课人数是13人。
    为了得到这张二维表,我们采取的算法策略是先生成全部课程的笛卡儿乘积,然后将全部学生的选课情况表分割成每个学生的各自的选课表,依次遍历每个学生的选课表,对每个学生所选的课程生成并新的子课程笛卡儿乘积表,依据子课程的笛卡儿乘积表上找到对应的节点并加1,最后得到全部的课程策略表。、具体的程序流程如图4-1.
qq:278359100
email:[email protected]