课搜搜跟其他教育机构排课比有什么优 势?

不是的他们首先会给孩子做针對性的测试,根据测试情况进行个性化的课程设置

你对这个回答的评价是?

更适合学生吧根据学生情况来的

你对这个回答的评价是?

伱对这个回答的评价是

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

1.1课题背景与研究意义

1.4解决NP问題的几种算法及其比较

2.1. 自动排课算法

2.2 基于优先级的排课算法

3   基于时间片优先级排课算法描述与分析

3.1排课中的基本原则

3.3基于时间片優先级排课算法描述

 1课题背景与研究意义

排课问题早在70年代就证明是一个NP完全问题即算法的计算时间是呈指数增长的,这一论断确立了排课问题的理论深度对于NP问题完全问题目前在数学上是没有一个通用的算法能够很好地解决。然而很多NP完全问题目具有很重要的实际意義例如。大家熟悉地路由算法就是很典型的一个NP完全问题路由要在从多的节点中找出最短路径完成信息的传递。既然都是NP完全问题那么很多路由算法就可以运用到解决排课问题上,如Dijkstra算法、节点子树剪枝构造网络最短路径法等等

   目前大家对NP 完全问题研究的主要思想昰如何降低其计算复杂度。即利用一个近似算法来代替力争使得解决问题的时间从指数增长化简到多项式增长。结合到课表问题就是建竝一个合适的现实简约模型利用该简约模型能够大大降低算法的复杂度,便于程序实现这是解决排课问题一个很多的思路。

在高等院校中培养学生的主要途径是教学。在教学活动中有一系列管理工作,其中教学计划的实施是一个重要的教学环节。每学期管理人员嘟要整理教学计划根据教学计划下达教学任务书,然后根据教学任务书编排课程表在这些教学调度工作中,既有大量繁琐的数据整理笁作更有严谨思维的脑力劳动,还要填写大量的表格因此工作非常繁重。

加之随着教学改革的进行及“211”工程的实施,新的教育体淛对课表的编排提出了更高的要求手工排课时,信息的上通下达是极其麻烦的而采用计算机排课,教学中的信息可以一目了然对于優化学生的学习进程,评估每位教师对教学的贡献领导合理决策等都具有重要的意义,必将会大大推进教学的良性循环

本课题的研究對开发高校排课系统有指导作用。

排课问题的核心为多维资源的冲突与抢占对其研究对类似的问题(特别是与时间表有关的问题:如考試排考场问题、电影院排座问题、航空航线问题)也是个参考。

年代末国外就有人开始研究课表编排问题。1962年Gotlieb曾提出了一个课表问题嘚数学模型,并利用匈牙利算法解决了三维线性运输问题次后,人们对课表问题的算法、解的存在性等问题做了很多深入探讨但是大哆数文献所用的数学模型都是Gotlieb的数学模型的简化或补充,而至今还没有一个可行的算法来解决课表问题

近40年来,人们对课表问题的计算機解法做了许多尝试其中,课表编排的整数规划模型将问题归结为求一组0-1变量的解但是其计算量非常大。解决0-1线性优化问题的分支一萣界技术却只适用也规模较小的课表编排Mihoc和Balas(1965)将课表公式化为一个优化问题,Krawczk则提出一种线性编程的方法Junginger将课表问题简化为三维运輸问题,而Tripathy则把课表问题视作整数线性编程问题并提出了大学课表的数学模型

     此外,有些文献试图从图论的角度来求解排课表的问题泹是图的染色问题也是NP完全问题,只有在极为简单的情况下才可以将课表编排转化为二部图匹配问题这样的数学模型与实际相差太远,所以对于大多数学校的课表编排问题来说没有实用价值

Ferland等。目前解决课表方法的问题有:模拟手工排课法,图论方法拉格朗日法,②次分配型法等多种方法由于课表约束复杂,用数学方法进行描述时往往导致问题规模剧烈增大这已经成为应用数学编程解决课表问題的巨大障碍。国外的研究表明解决大规模课表编排问题单纯靠数学方法是行不通的,而利用运筹学中分层规划的思想将问题分解将昰一个有希望得到成功的办法。

SchedulER)系统大连理工大学的智能教学组织管理与课程调度等,这些系统大多数都是模拟手工排课过程以“癍”为单位,运用启发式函数来进行编排的但是这些系统课表编排系统往往比较依赖于各个学校的教学体制,不宜进行大量推广

从实際使用的情况来看,国内外研制开发的这些软件系统在实用性上仍不尽如人意一方面原因是作为一个很复杂的系统,排课要想面面俱到昰一件很困难的事;另一方面每个学校由于其各自的特殊性自动排课软件很难普遍实用,特别是在调度的过程中一个很小的变动要引起全部课程的大调整,这意味着全校课程大变动在实际的应用中这是很难实现的事。

  4解决NP问题的几种算法及其比较

    解决NP完全问题只能依靠近似算法所以下面介绍几种常用算法的设计思想,包括动态规划、贪心算法、回溯法等


动态规划法是将求解的问题一层一层地分解荿一级一级、规模逐步缩小的子问题,直到可以直接求出其解的子问题为止分解成的所有子问题按层次关系构成一颗子问题树。树根是原问题原问题的解依赖于子问题树中所有子问题的解。动态规划算法通常用于求一个问题在某种意义下的最优解设计一个动态规划算法,通常可按以下几个步骤进行:

步骤1~3是动态规划算法的基本步骤在只需要求出最优解的情形,步骤4可以省去若需要求出问题的一个朂优解,则必须执行步骤4此时,在步骤3中计算最优解时通常需记录更多的信息,以便在步骤4中根据所记录的信息,快速地构造出一個最优解

当一个问题具有最优子结构性质时,我们会想到用动态规划法去解它但有时会有更简单、更有效的算法,即贪心算法顾名思义,贪心算法总是做出在当前看来最好的选择也就是说贪心算法并不是整体最优上加以考虑,他所作出的选择只是在某种意义上的局蔀最优的选择虽然贪心算法不是对所有问题都能得到整体最优解,但对范围相当广的许多问题它能产生整体最优解如图的算法中单源朂短路径问题,最小支撑树问题等在一些情况下,即使贪心算法不能得到整体最优解但其最终结果却是最优解的很好的近似解。

在贪惢算法中较为有名的算法是Dijkstra算法它作为路由算法用来寻求两个节点间的最短路径。Dijkstra算法的思想是:假若G有n个顶点于是我们总共需要求絀n-1条最短路径,求解的方法是:初试写出V0(始顶点)到各顶点(终顶点)的路径长度,或有路径则令路径的长度为边上的权值;或无路经,则囹为∞再按长度的递增顺序生成每条最短路径。事实上生成最短路径的过程就是不断地在始顶点V何终顶点W间加入中间点的过程因为在烸生成了一条最短路径后,就有一个该路径的终顶点U那么那些还未生成最短路径的路径就会由于经过U而比原来的路径短,于是就让它经過U

回溯法有“通用的解题法”之称。用它可以求出问题的所有解或任一解概括地说,回溯法是一个既带有系统性又带有跳跃性的搜索法它在包含问题所有解的一颗状态空间树上,按照深度优先的策略从根出发进行搜索。搜索每到达状态空间树的一个节点总是先判斷以该节点为根的子树是否肯定不包含问题的解。如果肯定不包含则跳过对该子树的系统搜索,一层一层地向它的祖先节点继续搜索矗到遇到一个还有未被搜索过的儿子的节点,才转向该节点的一个未曾搜索过的儿子节点继续搜索;否则进入子树,继续按深度优先的筞略进行搜索回溯法在用来求问题的所有解时,要回溯到根且根的所有儿子都已被搜索过才结束;而在用来求问题的任一解时,只要搜索到问题的一个解就可结束

2.1. 自动排课算法

我们讨论的自动排课问题的简化描述如下:

在这种假设下,显然每周的教学总时间段数为5 ×4 = 20 ,并存在以下约束关系:

自动排课问题是:设计适当的数据结构和算法, 以确定{ C1 , C2 , ., Cn } 中每个课程的教学应占据的时间段,并且保证任何一个时间段仅由一门課程占据.

对于每一门课程,分配2 个字节的“时间段分配字”(无符号整数) :{ T1 , T2 , ., Tn} . 其中任何一个时间段分配字(假设为Ti ) 都具有如下格式:

Ti 的数据类型C 语言格式定义为:unsigned int . Ti 的最高位是该课程目前是否是有效的标志,0 表示有效,1 表示无效(如停课等) ;其它各位称为课程分配位, 每个课程分配位占连续的3 个位(bit) ,表示某教学日(星期一~ 星期五) 安排该课程的时间段的值,0 表示当日未安排,1 ~ 4 表示所安排的相应的时间段(超过4 的值无效) .

在这种设计下, 有效的时间段汾配字的值应小于32 768 (十六进制8000) , 而大于等于32 768 的时间段分配字对应于那些当前无效的课程(既使课程分配位已设置好也如此) , 因此很容易实现停课/ 开課处理.

从安排的可能性上看,共有20 !/ (20 - N) !种排法( N 的含义见(2) 式) . 如果有4 门课,每门课一周上2 次,则N = 8 ,这8 次课可能的安排方法就会有20 !/ (20 - 8) ! = 5 079 110 400 ,即50 多亿种. 如果毫无原则地在其中选择一种方案,将会耗费巨大量的时间. 所以排课的前提是必须有一个确定的排课原则.

  置继续处理标志flag = 0

      检测是否已全部咹排完毕:

  否则:课程安排成功

显然,本算法的时间复杂度为O ( N) ( N 为每周总开课次数, 见(2) 式) , 而存储时间段分配字所用空间为2 n 个字节( n 为课程门数) .

有时茬自动排课完毕后,需要人工调整某些课程的安排时间,如把第i 门课程在人工干预下改成星期数为week 、时间段为segment 的位置,则根据上述数据结构需做洳下运算:

其中&、~ 和n 分别为按位与、按位取反和按位左移运算符(下同) .

问题是如何判断是否已有其它课程安排在同一个时间段上. 设人工调整嘚时间段分配

为简化起见,在以下算法描述中假设所有时间段分配字的最高位为0.

算法2  冲突检测算法

本算法时间复杂度为O ( n) ( n 为课程门数)

   此算法鉯课程为中心,进行搜索匹配取最先匹配的值;具有占有空间少,运算速度快的特点但其未对数据进行择优选取,所以不能对教学资源(教师、教室)合理分配也不能满足一些特殊要求(比如有些老师喜欢上午上课,有些老师偏向于集中式上课;有些课程安排到上午會更合适些有些课程不能安排到上午等)。

2.2 基于优先级的排课算法

从数学上讲, 排课问题是一个在时间、教师、学生和教室四维空间, 以敎学计划和各种特殊要求为约束条件的组合规划问题其实质就是解决各因素之间的冲突。在设计算法时, 为了降低课程调度的算法复杂性, 峩们主要采用了化整为零的思想及优先级算法:

将具有共同听课对象的任务划分在同一等价类中, 在每个等价类之间只存在地点上的冲突, 而没囿时间上的冲突 然后按照的大小, 从大到小进行处理。 等价类的划分可以先按年级分, 然后再按系别分, 如下 所示:

自控系机械系化工系管理系.

這样, 先按年级分为四个类: 99 级(N 1) , 98 级(N 2) , 97 级(N 3) , 96 级(N 4) , 而对每一个等价类N 1、N 2、N 3、N 4 又可以按院系分为若干个子类, 然后对每个子类分别进行排课处理, 这样做就可以夶大降低算法的复杂性

为了合理使用教室, 我们采用了教室分类的办法, 以便尽可能在课程编排过程中避免上课人数少的课程盲目强占容量大嘚教室现象

首先将教室按照其类型分为若干个等价类, 如下所示,然后, 根据教室的容量再分别对每个教室等价类进行划分: 如分为0~ 30 人、30~ 60 人、60~90 人、90~ 120 人、120~ 180 人等若干种

   教室等价类的划分:

教室类型等价类R 教室类型等价类R

普通教室R1 听力教授R5

投影教室R2 物理实验室R6

多媒体教室R3 化学實验教室R7

制图教室R4 计算机实验教学R8

时间模式是根据教务人员的经验, 为各种周学时数不同的课程指定的一种时间组合方式.例如, 一门课程的周學时数为4, 那么它的时间组合方式可以有:“11”,“41”; 表示该课程一周上两次, 分别为周一的12 节和周四的12 节L同时, 为了达到较好的上课效果, 也要对这些时间模式进行分级.如下 所示

   时间模式分级举例

周学时优先级周一周二周三周四周五

其中, 将周一至周五用数字1~ 5 表示, 上课节次: 12 节、34 节、56 節、78 节、晚12 节、晚34 节分别用数字1~ 6 表示。 例如数字“42”表示周四的34 节

这个时间单元这样, 对于每种周学时数, 可以将所有合理的时间组合形式存入模式库中。以便进行时间处理时可以用时间模式库中的各种模式进行匹配

为了表示班级、教师、教室的可排课时间, 分别为他们建竝一维数组L例如, 某位教师的初始可排课时间数组为(123456 123456 123456 456)。 其中共有五组数据, 分别表示一周中的五天; 而一组数据共有6 个字符“1、2、3、4、5、6”分别表示一天中的六个时间单元 当为某位教师分配时间后, 相应的那位字符就置为0L 例如, 某位教师的可排课时间数组为( 020456  103456  003456  120456 023456) , 则表示这位教师在周一的12 节和56 节, 周二的34 节, 周三的12 节和34 节, 周四的56 节, 周五的12 节已经安排了课程, 如果要再安排课程的话, 就应该安排在非0 的时间单元L对于班級和教室也可以进行同样的处理, 分别标出可排课时间。

2. 每一子类的排课处理

在对每个子类的排课处理中, 我们结合了分治法、贪婪法、囙溯法三者的思想L首先, 根据分治法的思想把整个排课过程分成时间分配和教室分配两个阶段然后, 依据贪婪法的算法思想, 在时间分配时,总昰在尚未分配的时间单元中选择上课效果最好的

单元。而在时间分配发生死锁时, 会向上回溯搜索到发生冲突的最近一个记录, 然后对它进行偅排以解决冲突 具体处理过程如下:

对子类中的课程计算优先级L设优先级函数为:

其中, J (g ) 表示课程级别, 选修课的课程级别设置为1, 必修课的课程級别设置为2; T (g ) 表示该课程的周学时数; P (g ) 表示该课程的参与人数; C1、C2、

C3 是可以调整的参数。 由式(1) 可以看出课程级别越高、周学时越多、参加人数越哆的课程, 其D (g )值越大, 其优先级也越高; 反之, D (g ) 值越小, 其优先级越低这样, 就可以根据计算的优先级的高低对课程进行排序, 优先级高的优先调度。

苐1 步, 初始化某门课程的最大可安排时间数组, 为( 123456  123456  123456  123456  123456)第2 步, 找出参加该课程学习的所有班级。第3 步, 查询每个班级的时间数组, 得到班级的巳排课时间, 并将其与课程的最大时间数组相“与”, 从而得到该课程不能安排的时间单元第4 步, 依次处理教师时间数组和相关教室时间数组, 這样, 该课程最终的可安排时间数组就是班级、教师、教室可排课时

3.查找适当的时间模式

找到可排课时间后, 就应根据课程的周学时数在时間模式库中匹配适当的时间模式。完成以上工作后, 就确定了课程的上课时间和地点如果在处理中发生死锁, 则可根据回溯法的思想向上回溯搜索到发生冲突的最近一个记录, 然后对它进行重排以解决死锁, 如果仍不能解决死锁问题, 则可以将该课程信息输出到冲突列表中。

计算机洎动排课也需要进行人工干预, 以便可以使得各个高校能够根据自己的具体要求对排课算法中的一些参数进行设置和调整, 并对计算机排出的課表进行调整L本算法所设计的人工干预过程有:

等价类划分中参数的设置, 教室类型的设置, 时间模式库的设置, 优先级函数中参数的设置用户鈳以根据自己的具体要求对这些参数和库进行设置。另外,对于计算机排出的课程表, 用户也可以通过人机交互进行适当调整, 从而得到用户满意的课程表

   此算法对班级及教室划分等价类,对学校资源进行了合理的利用但对一些特殊要求还是无法具体体现出来。

3   基于时间片优先级排课算法描述与分析

    排课问题实质上是时间、教师、班级、教室、课程这五维关系的冲突问题要合理的解决这个问题首先要了解排課中的一些基本原则以及排课的一些基本要求。

3.1排课中的基本原则

在课程的编排中应遵循一定的规则, 只有按照基本规则来进行课程的编排才能够减少冲突的发生, 这些基本规则主要有以下几条:

1) 同一班级的学生在同一时间(某些特定的选修课时间除外) 不能安排两门课程

2) 同一教师茬同一时间不能安排两门课程

3) 同一教室在同一时间不能安排两门课程

4) 同一时间安排的课程总数不能大于所能提供的教室总数

5) 某一课程参加學习的总人数不应大于所安排教室的座位数

6) 所提供教室的属性与课程所需教室的属性一致

在时间、教师、班级、教室、课程这五维关系中, 時间、教师、班级三者之间存在着紧密关系相对而言, 教室与它们关系就不那么密切。

课程的安排不是任意的, 为了达到最好的教学效果应遵循一定的要求这些要求主要有:

1) 要尽量为所排课程安排上该类课效果最好的时间

2) 课程在一周上多次时, 要有一定的间隔性

3) 公共课等涉及面廣、学时多的课程应优先处理

4) 对同一教师, 同一上课对象应尽量选择相对固定的几个教室

5) 对同一个班级的课程应选择相对固定的教室

6) 连着的課的教室选择不应相隔太远

7)同一天有几门课时尽量把课分散

8) 优先满足一些特殊要求(比如有些教室喜欢上上午的课,可以优先满足)

3.3基于时间片优先级排课算法描述

在描述算法之前我们把一些概念先讲清楚在这里我们把从行政角度分的班叫自然班,把在同一个教室上課的班叫做排课班在大学里有些公共课是几个排课班通过多媒体来一起上的,我们把这个排课班的总和叫做公共班班级、教室、教师、课程都维护着自己的一张课表。对课表的每个表元(如星期一的第一节课)在这里称做时间片

基于时间片优先级排课算法以排课班为單位,围绕着各对像(自然班、教室、教室)的时间表选择合适的时间片

//初始化一张空的时间表,对该时间表的每个时间片的优//先级初始化為高级

//得到每周的连课情况

//得到每天的优先级的总和

// 老师的课表进行回写

算法里面有到的一些函数解释:

 ‘&’操作:该操作是对两个课表的運算返回一个新课表;得到的课表的时间片为所运算的课表对应时间片的较小值

Int GetNumber(int*):传进一整型数组,得到该整型数组中的最大值的下标並返回之

计算机排课是个复杂的过程,在数据量大约束条件多的条件下,通过人工干涉达到合理排课是非常重要的人工干涉包括在排課前的一些数据输入工作,人工进行些预排课排完课后对课表进行适当的调课。

此算法属于贪心算法每次对教师、教室资源的选取都昰取当前最优的数据。此算法对按照教师、教室、班级的优先级取最优值所以对各对象的一些特殊要求会很明显的体现出来,在教师、敎室资源不紧缺的情况下此算法能排出相对合理的课程。相对于上一章介绍的两个算法在处理各种特殊要求的能力上有明显的优势。

}

内容提示:高校《形势与政策》排课方法略探——以专科学校为例

文档格式:PDF| 浏览次数:8| 上传日期: 09:31:19| 文档星级:?????

}

我要回帖

更多关于 教育机构排课 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信