一种高校考务排考方法和装置与流程

文档序号:14176198阅读:250来源:国知局

本发明涉及教学管理领域,特别是自动化排考方法和系统。



背景技术:

考务是高校教学环节中非常重要的一个业务环节,其涉及到诸如考试规划(集中、分散等)、考试时间、考试地点、考试座位号、监考教师、监考工作量、补考安排、考试通知等。考试安排主要涉及几个对象:考试课程(含重修考试课程)及其对应的考试班级、考场教室、考场可用的时间片(考试时间周内)、监考教师。不同类型、对象、组织方式的考试,时间长度和空间(考场大小)要求不一,要按不同的方法进行资源调度,并要与现有的排课、教室管理联动实现资源共享。排考需要解决的问题是:在教室资源、教室资源、时间资源相对固定(还有其它已知条件的约束)的情况下,无冲突的安排好所有的考试课程(课程优先级、分配时间、场地、监考人员等)。

排考问题同排课问题一样,均为典型的npc问题,可转换为布尔可满足性问题,然后通过构建sat约束条件通过smt约束求解器进行求解。但这样的方法存在如下问题:首先,布尔约束条件难以表述和构建;第二、约束条件太多,smt约束求解器求解耗时将会很长;第三、smt约束求解器只能求解但无法或者很难优化。



技术实现要素:

本发明所要解决的问题:设计一种快速排考的方法。

为解决上述问题,本发明采用的方案如下:

根据本发明的一种高校考务排考方法,包括以下步骤:

s11:获取考试任务集、教室信息集、班级信息集以及教师信息集;所述考试任务集是待排考的考试任务信息的集合;所述考试任务信息为考试任务的信息,包括任务编号、关联班级、课程学分、考试时长、可用时间、主考教师、考试场地;所述教室信息集是教室信息的集合;所述教室信息包括教室编号、座位数、可用时间;所述班级信息集是班级信息的集合;所述班级信息包括班级编号、班级人数、可用时间、所属院系;所述教师信息集是教师信息的集合;所述教师信息包括教师编号、教师姓名、任教课程、可用时间、所属院系;

s12:根据考试任务信息所确定的优先级对所述考试任务集进行排序得到考试任务队列;

s2:按顺序遍历考试任务队列,对考试任务队列中的考试任务逐个分配考试时间;

s3:按顺序遍历考试任务队列,对考试任务队列中的考试任务逐个分配考试场地;

s4:按顺序遍历考试任务队列,对考试任务队列中的考试任务逐个分配监考教师;

s5:检查考试任务队列中的各个考试任务的各个班级是否都分配了相应的考试时间、考试场地和监考教师;

所述可用时间采用布尔量数组表示;所述布尔量数组中的每个布尔量表示该布尔量考试周期内所对应的时间段是否可用;

所述步骤s2中的对考试任务分配考试时间包括如下步骤:

s21:对该考试任务所关联的各个班级的可用时间进行与运算,得到第一可用时间;

s22:将得到第一可用时间和该考试任务的可用时间进行与运算得到第二可用时间;

s23:根据第二可用时间和该考试任务的考试时长确定考试时间;

s24:根据所确定的考试时间更新该考试任务所关联的各个班级的可用时间;

所述步骤s3中的对考试任务分配考试场地包括如下步骤:

s31:根据该考试任务所确定的考试时间和教室的可用时间,从教室信息集中找出所有的候选教室组成候选教室集;

s32:通过班级的人数和教室的座位数的最佳容量匹配,为该考试任务所关联的各个班级从候选教室集中分配相应的教室和相应的班级;

s33:根据该考试任务所确定的考试时间更新各个所分配教室的可用时间;

所述步骤s4中的对考试任务分配监考教师包括如下步骤:

s41:根据该考试任务所分配教室的座位大小确定所需监考教师数;

s42:假如主考教师不为空且所需监考教师大于1,则从教师信息集中选取可用的同院系教师中随机选择相应数量的监考教师;假如主考教师为空,则从从教师信息集中选取可用的非同院系教师中随机选择相应数量的监考教师;

s43:根据考试任务所确定的考试时间更新所分配的监考教师的可用时间。

进一步,根据本发明的高校考务排考方法,所述步骤s12包括:

s121:选择主考教师为空的考试任务作为第一优先考试任务队列,然后计算第一优先考试任务队列各考试任务优先级,再根据考试任务优先级对第一优先考试任务队列进行排序;

s122:选择考试场地不为空的考试任务作为第二优先考试任务队列,然后计算第二优先考试任务队列各考试任务优先级,再根据考试任务优先级对第二优先考试任务队列进行排序;

s123:剩余的考试任务作为第三优先任务队列,然后计算第三优先考试任务队列各考试任务优先级,再根据考试任务优先级对第三优先考试任务队列进行排序;

s124:按顺序合并排序后的第一优先考试任务队列、第二优先考试任务队列、第三优先考试任务队列组成考试任务队列;

所述计算考试任务优先级采用以下公式:p=c1*m+c2*n;其中c1、c2为权重系数,m为考试人数、n为课程学分,p为考试任务优先级。

进一步,根据本发明的高校考务排考方法,所述班级为逻辑班级;每个逻辑班级包含有学生列表;逻辑班级自身不存在可用时间,但逻辑班级所包含的学生列表所指向的每个学生具有可用时间;当所述步骤s21中需要调取逻辑班级的可用时间时,该逻辑班级的可用时间通过该逻辑班级所包含的学生列表所指向的各个学生的可用时间的与运算获得;当所述步骤s24中,根据所确定的考试时间更新该考试任务所关联的各个班级的可用时间时,直接将根据所确定的考试时间更新该考试任务所关联的各个逻辑班级的所包含的学生列表所指向的各个学生的可用时间。

根据本发明的一种高校考务排考装置,包括以下模块:

m11用于:获取考试任务集、教室信息集、班级信息集以及教师信息集;所述考试任务集是待排考的考试任务信息的集合;所述考试任务信息为考试任务的信息,包括任务编号、关联班级、课程学分、考试时长、可用时间、主考教师、考试场地;所述教室信息集是教室信息的集合;所述教室信息包括教室编号、座位数、可用时间;所述班级信息集是班级信息的集合;所述班级信息包括班级编号、班级人数、可用时间、所属院系;所述教师信息集是教师信息的集合;所述教师信息包括教师编号、教师姓名、任教课程、可用时间、所属院系;

m12用于:根据考试任务信息所确定的优先级对所述考试任务集进行排序得到考试任务队列;

m2用于:按顺序遍历考试任务队列,对考试任务队列中的考试任务逐个分配考试时间;

m3用于:按顺序遍历考试任务队列,对考试任务队列中的考试任务逐个分配考试场地;

m4用于:按顺序遍历考试任务队列,对考试任务队列中的考试任务逐个分配监考教师;

m5用于:检查考试任务队列中的各个考试任务的各个班级是否都分配了相应的考试时间、考试场地和监考教师;

所述可用时间采用布尔量数组表示;所述布尔量数组中的每个布尔量表示该布尔量考试周期内所对应的时间段是否可用;

所述模块m2中的对考试任务分配考试时间包括如下模块:

m21用于:对该考试任务所关联的各个班级的可用时间进行与运算,得到第一可用时间;

m22用于:将得到第一可用时间和该考试任务的可用时间进行与运算得到第二可用时间;

m23用于:根据第二可用时间和该考试任务的考试时长确定考试时间;

m24用于:根据所确定的考试时间更新该考试任务所关联的各个班级的可用时间;

所述模块m3中的对考试任务分配考试场地包括如下模块:

m31用于:根据该考试任务所确定的考试时间和教室的可用时间,从教室信息集中找出所有的候选教室组成候选教室集;

m32用于:通过班级的人数和教室的座位数的最佳容量匹配,为该考试任务所关联的各个班级从候选教室集中分配相应的教室和相应的班级;

m33用于:根据该考试任务所确定的考试时间更新各个所分配教室的可用时间;

所述模块m4中的对考试任务分配监考教师包括如下模块:

m41用于:根据该考试任务所分配教室的座位大小确定所需监考教师数;

m42用于:假如主考教师不为空且所需监考教师大于1,则从教师信息集中选取可用的同院系教师中随机选择相应数量的监考教师;假如主考教师为空,则从从教师信息集中选取可用的非同院系教师中随机选择相应数量的监考教师;

m43用于:根据考试任务所确定的考试时间更新所分配的监考教师的可用时间。

进一步,根据本发明的高校考务排考装置,所述模块m12包括:

m121用于:选择主考教师为空的考试任务作为第一优先考试任务队列,然后计算第一优先考试任务队列各考试任务优先级,再根据考试任务优先级对第一优先考试任务队列进行排序;

m122用于:选择考试场地不为空的考试任务作为第二优先考试任务队列,然后计算第二优先考试任务队列各考试任务优先级,再根据考试任务优先级对第二优先考试任务队列进行排序;

m123用于:剩余的考试任务作为第三优先任务队列,然后计算第三优先考试任务队列各考试任务优先级,再根据考试任务优先级对第三优先考试任务队列进行排序;

m124用于:按顺序合并排序后的第一优先考试任务队列、第二优先考试任务队列、第三优先考试任务队列组成考试任务队列;

所述计算考试任务优先级采用以下公式用于:p=c1*m+c2*n;其中c1、c2为权重系数,m为考试人数、n为课程学分,p为考试任务优先级。

进一步,根据本发明的高校考务排考装置,所述班级为逻辑班级;每个逻辑班级包含有学生列表;逻辑班级自身不存在可用时间,但逻辑班级所包含的学生列表所指向的每个学生具有可用时间;当所述模块m21中需要调取逻辑班级的可用时间时,该逻辑班级的可用时间通过该逻辑班级所包含的学生列表所指向的各个学生的可用时间的与运算获得;当所述模块m24中,根据所确定的考试时间更新该考试任务所关联的各个班级的可用时间时,直接将根据所确定的考试时间更新该考试任务所关联的各个逻辑班级的所包含的学生列表所指向的各个学生的可用时间。

本发明的技术效果如下:

1、相比于采用smt约束求解器求解方法而言,本发明排考方法速度很快,并且所得到结果是一个比较合理的排考结果。

2、本发明的方法可用应用于高校排课。

附图说明

图1是本发明实施例的整体流程示意图。

具体实施方式

下面结合附图对本发明做进一步详细说明。

如图1所示,本实施例的高校考务排考方法包括以下五个步骤:

步骤s1,即,系统初始化步骤;

步骤s2,即,考试时间分配步骤;

步骤s3,即,考试场地分配步骤;

步骤s4,即,监考教师分配步骤;

步骤s5,即,排考结果校验步骤。

系统初始化步骤包括初始化输入参数的步骤和初始化考试任务队列的步骤。

初始化输入参数的步骤也就是前述步骤s11。输入参数至少包括:考试任务集、教室信息集、班级信息集以及教师信息集。

考试任务集是待排考的考试任务信息的集合。考试任务信息为考试任务的信息,包括任务编号、关联班级、课程学分、考试时长、可用时间、主考教师、考试场地。

本实施例中,考试任务分成统考考试任务和常规考试任务。考试任务通过主考教师进行区分。具体地说,通过所输入的考试任务的主考教师是否为空判定该考试任务是否为统考任务;当主考教师为空时,该考试任务视为统考考试任务,否则为常规考试任务。这是考虑到常规考试通常与某一具体课程挂钩,此时,与该考试任务挂钩的具体课程的授课教师即可作为主考教师。而统考考试,比如四六级英语考试、跨院系的英语或高等数学考试等,通常不与某一具体课程挂钩,或者即便与某一具体课程挂钩也无法直接确定主考教师。

输入的考试任务中的关联班级允许有多个。也就是说,考试任务中的关联班级是班级的集合。特别是在统考的考试任务中,关联班级可能有很多个。

输入的考试任务中的可用时间是对考试时间的粗略限定。对于某些统考任务而言,比如四六级英语考试,其考试时间是确定了的,那么,考试任务中的可用时间实际上即为考试时间。而大部分的考试任务,特别是常规考试任务中,可用时间为一较大的区间,需要通过排考确定具体的考试时间。

输入的考试任务中的考试场地是考试场地的特殊要求,比如某些考试要求在计算机机房中进行,某些考试要求在实验室中进行等等。本实施例中,输入的考试任务中的考试场地是教室类型的定义。当输入的考试任务中的考试场地为空时,表示的是普通的教室,否则为特殊场地要求。

教室信息集是教室信息的集合。教室信息包括教室编号、座位数、可用时间、教室类型。教室信息中的教室类型与输入的考试任务中的考试场地是教室类型的定义相匹配。

班级信息集是班级信息的集合。班级信息包括班级编号、班级人数、可用时间、所属院系。

教师信息集是教师信息的集合。教师信息包括教师编号、教师姓名、任教课程、可用时间、所属院系。

本实施例初始化输入参数步骤中,考试任务通过ui界面或通过xml文件方式输入,教室信息、班级信息以及教师信息通过读取现有的数据库数据获得。考虑到教室使用冲突、班级上课冲突以及教师时间冲突问题。教室信息、班级信息、教师信息、以及考试任务中的可用时间在初始化输入参数步骤中被初始化成布尔量数组。布尔量数组中的每个布尔量表示该布尔量考试周期内所对应的时间段是否可用。具体来说,比如考试周期为6月1日至6月30日。每个布尔量所对应的时间段为一课程节次。每天上午四个节次,下午四个节次,由8个布尔量表示。考试周期内30天通过240个布尔量组成的布尔量数组表示。当布尔量为true时,表示该时间段(节次)可用,否则表示该时间段(节次)不可用。当某教室6月1日上午四个节次具有其他安排不能用于考试,则该教室的可用时间中6月1日上午四个节次所对应的四个布尔量分别用false标记。比如某课程于6月20日才完成最后授课,那么该课程所对应的考试任务需要在6月20日以后进行,则该课程所对应的考试任务的可用时间中,6月1日至6月20日所对应的160个布尔量均标记为false。

系统初始化步骤的第二个步骤是初始化考试任务队列。初始化考试任务队列步骤也即是前述步骤s12。考试任务队列是考试任务集中考试任务按照优先级进行排序后的结果。本实施例中,考试任务的排序方法如下:

s121:选择主考教师为空的考试任务作为第一优先考试任务队列,然后计算第一优先考试任务队列各考试任务优先级,再根据考试任务优先级对第一优先考试任务队列进行排序。如前所述,当主考教师为空时,该考试任务视为统考考试任务。也就是,本步骤中,将统考考试任务作为第一优先的考试任务。

s122:选择考试场地不为空的考试任务作为第二优先考试任务队列,然后计算第二优先考试任务队列各考试任务优先级,再根据考试任务优先级对第二优先考试任务队列进行排序。如前所述,当输入的考试任务中的考试场地为空时,表示的是普通的教室,否则为特殊场地要求。也就是,本步骤将特殊考试场地要求的考试任务作为第二优先考试任务。

s123:剩余的考试任务作为第三优先任务队列,然后计算第三优先考试任务队列各考试任务优先级,再根据考试任务优先级对第三优先考试任务队列进行排序。也就是,本步骤中,将非特殊场地要求的常规考试任务作为第三优先的考试任务。

s124:按顺序合并排序后的第一优先考试任务队列、第二优先考试任务队列、第三优先考试任务队列组成考试任务队列。

上述计算考试任务优先级采用以下公式:p=c1*m+c2*n;其中c1、c2为权重系数,m为考试人数、n为课程学分,p为考试任务优先级。

步骤s2,考试时间分配步骤,具体来说,也就是,按顺序遍历考试任务队列,对考试任务队列中的考试任务逐个分配考试时间。其中,对考试任务分配考试时间的步骤如下:

s21:对该考试任务所关联的各个班级的可用时间进行与运算,得到第一可用时间。

s22:将得到第一可用时间和该考试任务的可用时间进行与运算得到第二可用时间。

s23:根据第二可用时间和该考试任务的考试时长确定考试时间。

s24:根据所确定的考试时间更新该考试任务所关联的各个班级的可用时间。

如前所述,在前述初始化步骤中,可用时间被初始化成布尔量数组。因此,步骤s21中的可用时间的与运算即为布尔量数组的与运算。布尔量数组可以视为一个位数很多的整型数。比如,前述240个布尔量的布尔量数组可以视为30个字节长度的整型数。240个布尔量的布尔量数组之间的与运算即为30个字节长度的整型数之间的与运算。

步骤s23具体来说就是从第二可用时间所表示的布尔量数组中按顺序遍历某一天布尔量数组中上午或下午连续的布尔量值为true能够满足考试时长即可。比如,考试时长为150分钟,需要三个节次,某一天的布尔量数组为00111111中,上午只存在两个连续布尔量为true,也就是只有两个节次的时间可用,则无法安排为考试实现;而下午连续四个节次均可用则可安排为考试时间。

需要指出的是,对于已经有固定考试时间的考试任务则不需要执行上述s21至s23步骤,只需要执行步骤s24即可。此外还需要注意的是,考虑到上午或下午仅靠一场设定。在步骤s24中,设置班级可用时间时,以上午和下午整体为单位进行设置。比如,某一场考试为某天上午第一节次和第二节次,占用了两个节次,则参与该考试的班级的该天上午四个节次的时间段均设置为false,从而避免班级学生连续参加考试的问题。

步骤s3,考试场地分配步骤,具体来说,也就是,按顺序遍历考试任务队列,对考试任务队列中的考试任务逐个分配考试场地。其中,对考试任务分配考试场地包括如下步骤:

s31:根据该考试任务所确定的考试时间和教室的可用时间,从教室信息集中找出所有的候选教室组成候选教室集。

s32:通过班级的人数和教室的座位数的最佳容量匹配,为该考试任务所关联的各个班级从候选教室集中分配相应的教室和相应的班级。

s33:根据该考试任务所确定的考试时间更新各个所分配教室的可用时间。

步骤s32中,当该考试任务为统考考试任务时,一个班级分配一个教室;当该考试任务为常规考试任务时,所有班级分配同一教室。统考考试任务中,为班级分配教室时,可首先对当前候选教室集按座位数大小进行排序,同时也对班级人数从大到小进行排序。然后按照班级人数顺序逐个从排序后的候选教室集中找出最先满足容量的教室作为该班级的考场即为最佳容量匹配。

步骤s4,监考教室分配步骤,具体来说,也就是,按顺序遍历考试任务队列,对考试任务队列中的考试任务逐个分配监考教师。步骤s4中的对考试任务分配监考教师包括如下步骤:

s41:根据该考试任务所分配教室的座位大小确定所需监考教师数;

s42:假如主考教师不为空且所需监考教师大于1,则从教师信息集中选取可用的同院系教师中随机选择相应数量的监考教师;假如主考教师为空,则从从教师信息集中选取可用的非同院系教师中随机选择相应数量的监考教师;

s43:根据考试任务所确定的考试时间更新所分配的监考教师的可用时间。

步骤s5,排考结果校验步骤,也就是,检查考试任务队列中的各个考试任务的各个班级是否都分配了相应的考试时间、考试场地和监考教师。

需要指出的是,本实施例上述步骤s2、s3、s4的对考试任务分配考试时间、考试场地和监考教师的过程分别采用独立的循环。上述步骤s2、s3和s4也可以改成一个大循环内对考试任务分配考试时间、考试场地和监考教师,也就是,按顺序遍历考试任务队列,对考试任务队列中的考试任务逐个分配考试时间、分配考试场地和分配监考教师。本领域技术人员理解,这种方式的过程与本实施例的步骤s2、s3、s4的对考试任务分配考试时间、考试场地和监考教师的过程分别采用独立的循环的方式没有本质区别。

此外,高校课程中存在行政班级和教学班级之分。行政班级是招生时注册所固定的班级,每个行政班级都有编号、名称和学生人数。而教学班级则是动态的,比如,选修课程中,选修该课程的班级的学生可能来自于很多个行政班级,甚至可能跨院系,再比如,某些课程需要合并几个行政班级进行教学。为此,上述方法可以做如下调整:

上述方法中的班级为逻辑班级,逻辑班级可以是一个行政班级,也可以是一个教学班级,甚至可以是临时组凑的班级。每个逻辑班级包含有学生列表。逻辑班级自身不存在可用时间,但逻辑班级所包含的学生列表所指向的每个学生具有可用时间。当步骤s21中需要调取逻辑班级的可用时间时,该逻辑班级的可用时间通过该逻辑班级所包含的学生列表所指向的各个学生的可用时间的与运算获得。当步骤s24中,需要根据所确定的考试时间更新该考试任务所关联的各个班级的可用时间时,直接将根据所确定的考试时间更新该考试任务所关联的各个逻辑班级的所包含的学生列表所指向的各个学生的可用时间。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1