智能排课系统Word文档下载推荐.docx

上传人:b****6 文档编号:16532684 上传时间:2022-11-24 格式:DOCX 页数:94 大小:892.95KB
下载 相关 举报
智能排课系统Word文档下载推荐.docx_第1页
第1页 / 共94页
智能排课系统Word文档下载推荐.docx_第2页
第2页 / 共94页
智能排课系统Word文档下载推荐.docx_第3页
第3页 / 共94页
智能排课系统Word文档下载推荐.docx_第4页
第4页 / 共94页
智能排课系统Word文档下载推荐.docx_第5页
第5页 / 共94页
点击查看更多>>
下载资源
资源描述

智能排课系统Word文档下载推荐.docx

《智能排课系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《智能排课系统Word文档下载推荐.docx(94页珍藏版)》请在冰豆网上搜索。

智能排课系统Word文档下载推荐.docx

而人工进行排课不仅任务重,效率低,而且易出错,难于维护,想要排出一张各方面都满意的课表非常困难。

并且随着高校规模的扩大手工排课的难度和工作量呈几何级数增长。

高校通用排课系统正是为了减轻教务人员工作量,实现教务工作自动化,解决排课这一老大难问题的教务办公软件。

1.2意义

该系统是一个管理项目,旨在更好地管理高校的教学与资源整合,推动科技成果的推广转化,推进高校改革,提高高校的办学效率。

在现有人力管理基础上,结合日渐成熟的当代计算机技术和各种辅助软件,对人力管理模式进行信息化改造,形成高效、便捷的计算机管理模式,是信息化改造传统产业的一个应用。

1.3需求分析

1.3.1需求

排课管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以排课管理系统应该能够为用户提供充足的信息和快捷的查询手段。

但一直以来人们使用传统人工的方式管理文件排课,这种管理方式存在着许多缺点,如:

效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对排课信息进行管理,具有着手工管理所无法比拟的优点.例如:

检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高排课管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套排课管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法

计算机已经成为我们学习和工作的得力助手:

今天,计算机的价格已经十分低廉,性能却有了长足的进步。

它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:

首先,计算机可以代替人工进行许多繁杂的劳动;

其次,计算机可以节省许多资源;

第三,计算机可以大大的提高人们的工作效率;

第四,计算机可以使敏感文档更加安全,等等。

在中小学中用计算机管理排课的意义现在我国的中小学校中排课的管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。

我作为一个计算机应用的大专生,希望可以在这方面有所贡献。

改革的总设计师邓小平同志说过"

科学技术是第一生产力"

,我希望能用我四年的所学编制出一个实用的程序来帮助中小学进行更有效的课程管理。

归纳起来,好处大约有以下几点:

1.可以存储历届的排课,安全、高效;

2.只需一到二名排课录入员即可操作系统,节省大量人力;

3.可以按照录入人员的输入来自动生成课程表,并尽量减少冲突等情况发生。

排课的设计分析根据实际情况,我们使用原型法(RapidPrototyping)即以少量代价快速地构造一个可执行的软件系统模型。

使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。

此时模块也发展成为最终产品了。

1.3.2分析

编程环境的选择微软公司的VisualBasic6.0是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。

VisualBasic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。

故而,实现本系统VB是一个相对较好的选择。

关系型数据库的实现Access2000就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。

Access的优点在于它能使用数据表示图或自定义窗体收集信息。

数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。

另外,Access允许创建自定义报表用于打印或输出数据库中的信息。

Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。

Access是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。

如上所述,Access作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。

二者的结合(DBA)微软的JET数据库引擎提供了与数据库打交道的途

径,我们是通过它以及VisualBasic来访问数据库并对其进行各种操作。

VisualBasic、Access以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。

当今的微软对数据库中的ADO比较注视,并在.net上使用了ADO.net技术,鉴于ADO在很多程序里的广泛应用,使用ADO来连接数据库将是最为适用的,并且在定义了ADO的连接模块后,对于将来的升级也会很方便,只要修改一下连接源,就可以轻松的更换后台。

1.4功能

(1)初始设置模块包括四个子模块,即:

备份以前数据、载入以前数据、清除以前数据和清除排课数据;

备份以前数据包括:

对原有排课数据的备份和对原有课程申请数据的备份;

载入以前数据包括:

对原有排课数据的载入和对原有课程申请数据的载入;

清除以前数据包括:

对原有排课数据的清楚和对原有课程申请数据的清楚;

清除排课数据:

是对已有排课数据进行清楚以用于新的排课数据的建立。

(2)辅助功能子系统功能;

课程类型信息,年级专业信息,日程安排信息,班级信息,教室信息,教师信息和课程信息的添加、删除和修改。

(3)用户管理子系统功能;

用户的添加和删除,用户密码的设置和修改,用户权限的设置,用户重新登陆。

(4)课表管理子系统功能;

包括班级课表、教师课表、教室课表、日期课表的查询功能实现的操作。

(5)课表管理子系统功能;

(6)系统管理子系统功能;

包括用户管理、日志查看、用户密码的修改和退出系统的功能实现的操作。

(7)排课管理子系统功能;

包括课程申请管理,手动排课和自动排课三个子模块;

其中最重要的模块就是课程申请管理子模块,它是进行自动排课的依据。

1.5结构

本系统主要由两个模块组成。

分别是前端的用户管理模块和后端的数据库管理模块。

本论文共分为摘要、正文和结尾三大部分。

其中正文分为六章。

第一章为绪论,第二章为系统需求分析,第三章为系统总体设计,第四章为系统详细设计,第五章为应用程序的测试,第六章为结论。

摘要部分简明的概括了系统的内容和功能。

最后为参考文献。

1.6算法分析

课程表问题又称时间表问题,是一个多因素的整体优化问题。

1975年,S.Even等人论证了课表问题是NP完全类问题。

由于课程表问题所涉及的信息较多,并且求解课程表问题最优解的时间复杂性是课程表规模的指数级,所以一般采用求近似最优解的算法。

在现实生活中,人们一般也只是要一个满足各种条件的近似最优解,或者说“满意解”,而不一定非要最优解不可。

因此,对于课程表问题,关键不是如何找到最优解,而是如何提高解的满意度。

  遗传算法是John.H.Holland根据生物进化的模型提出的一种优化算法,它是基于进化过程中的信息遗传机制和优胜劣汰的自然选择原则和搜索算法。

它从一个种群开始,利用选择、交叉、变异等遗传算子对种群进行不断进化,最后得到全局最优解或近似最优解。

根据其算法特点,遗传算法非常适合于排课表问题。

  一、问题描述

  考查课表的约束条件,最基本的要求无外乎这样几个:

  

(一)每个班级在同一时间只能上一门课;

  

(二)每个普通教室和实验室在同一时间只能容纳一个班上课,大教室和操场可以容纳其容量允许的班级数上课;

  (三)每个教师在同一时间只能在一个地点上课。

  以上约束,称为硬约束,因为不如此,课表是不可行的。

还有一些约束如:

某个教师希望或不希望在某个时段上课;

自习课和体育课最好不排每天的一二节课;

同一门课在一周内的分布尽可能均匀等,这些要求称为软约束,因为它们或者可以通过排课以外的方法,如变更其他事务的日程安排等加以解决;

或者只能尽可能满足,而不可能全部满足。

  满足硬约束的课表是合法的,但却不一定是令人满意的。

那么如何提高一个课表的满意度呢?

可以请各个教师填一张“时段偏好”表,在每个上课时段上标上相应的数值,以确定他希望或不希望在某个时段上课――0表示不希望,1表示无所谓,2表示希望,3表示强烈希望。

并且每个教师根据职称,或职务,或所上课程重要性的不同确定优先级:

1,2,3级逐级递增,这样一张课表的满意度就很好计算了:

每个上课时段所对应的上课老师的“时段偏好”值乘以这个老师的优先级的积的总和。

  另一个决定课表好坏的度量就是同一门课在一周内的分布尽可能均匀,即课程的分散度。

如果该课程一周只上一次,分散度设为1,如果一次以上,则可以将每次间隔的时段数相乘,因为分布越平均,其乘积就越大。

将所有课程的分散度相加即总的课表的分散度。

定义适应度函数:

适应度=满意度+分散度。

二、遗传算法

  

(一)初始化

  根据班级信息表以及它与本学期课程信息表的关系,找到每个班的所有课元,再根据这些课元,以及本学期课程表和排课表之间的关系,找到这个班的所有排课元。

假设每星期上5天课,每天2节连上,有3个时间段,则每星期有15个上课时间段。

那么将这15个时间段随机地分配给上述某个班的所有排课元,也就是排好了一个班的课表。

一个班的“排课元”的数目一定是小于或等于15的。

如果小于则有时段未排到,即是自习时间。

可在“班级信息表”新建一个临时字段“自习”,记录这些自习时间。

  再来排教室。

给每个班安排一个满足人数要求的教室作为固定教室。

一般的课程就在固定教室上,如果是语音课则排语音室,如果是体育课则安排操场,如果是实验课则排实验室。

排的时候注意比较该教室的“已排”字段,如与已排时段有冲突,则更换时段。

对每个班做上述工作,则排好了一张初始课表。

这张初始课表肯定有很多“硬冲突”,必须消除。

由于排课时已经注意了教室的时段不能冲突,所以只要查看教师的时间有无冲突即可。

根据教师信息表与本学期课程信息表的关系,得到每个教师的课元,再根据这些课元,以及本学期课程信息表与排课表的关系得到该教师的所有排课元。

检查这些排课元的时段,如有重复,则须调课:

首先考虑与自习课调,班级信息表的“自习”字段记录了该班的自习时段。

如果这些自习时段都与该老师的上课时间有冲突,则考虑能否用大教室,查看该老师在该时段所上课程的教室要求能否用大教室,如能,统计该老师在该时段的上课班级的总人数,安排一个能容纳这么多学生的大教室。

如果大教室方案不能解决问题,则只能和同班的其他老师调换,但注意只能和未检查过冲突的老师换,以免循环调换。

  

(二)建立初始种群

  计算消除了硬冲突的课表的适应度函数,记录在数组中。

将该排课表考贝到新数据集ds2。

拷贝过来的这个排课表即一个“染色体”。

重复上述过程,直至染色体数目达到种群规模。

  (三)遗传操作

  对ds2中的每张表做如下操作:

  1.选择。

采用“随机竞争法”。

随机选取两张表,比较它们的适应度,删除适应度小的表,复制适应度大的表替换它。

  2.变异。

设变异概率为Pm,随机产生一个(0,1)范围内的数,如果小于Pm,才进行变异操作。

随机选取两天,让这两天的时段互换。

这样做的好处是不用纠错。

  3.交叉。

类似地,设交叉概率为Pc,随机产生一个(0,1)范围内的数,如果小于Pc,才进行交叉操作。

这里采用“单点交叉”。

随机选两张表,再随机选取一个序号,让这两张表中这个序号的记录的“上课时段”值互换。

互换后这两张表都要纠错,消除硬冲突。

过程仿初始化时的消除冲突过程。

只是要注意,如果调换的排课元涉及到大教室,须换回所在班的固定教室。

重复该过程,注意每一步操作后都要更新适应度数组,使数组值与表一致。

迭代500代后,选取最大适应度的表传回ds1排课表。

1.6.1遗传算法的基本思想

遗传算法的基本思想正是基于模仿生物界的遗传过程。

它把问题的参数用基因代表,把问题的解用染色体代表(在计算机里为字符串),从而得到一个由具有不同染色体的个体组成的群体。

这个群体在问题特定的环境里生存竞争,适者有最好的机会生存和产生后代。

后代随机化地继承了父代的最好特征,并也在生存环境的控制支配下继续这一过程。

群体的染色体都将逐渐适应环境,不断进化,最后收敛到一族最适应环境的类似个体,即得到问题最优的解。

值得注意的一点是,现在的遗传算法是受生物进化论学说的启发提出的,这种学说对我们用计算机解决复杂问题很有用,而它本身是否完全正确并不重要(目前生物界对此学说尚有争议)。

遗传算法的基础思想是在本世纪50年代初,由于一些生物学家尝试用计算机模拟生物系统演化时而提出的。

遗传算法是模拟生物通过基因的遗传和变异,有效地达到一种稳定的优化状态的繁殖和选择的过程,从而建立的一种简单而又有效的搜索方法。

它运用随机而非确定性的规则对一族而非一个点进行全局而非局部地搜索,它仅利用目标函数而不要求其导数或其它附加限制,它虽然在特定问题上效率也许不是最高,但效率远高于传统随机算法,是一种普遍适用于各种问题的有效方法。

遗传算法的主要思路有:

1、繁殖(reproduction):

繁殖是根据现有各个体的目标函数值,确定其生存概率,模拟生物界的自然选择,劣者淘汰,适者生存。

在遗传算法中,我们人为地保持种群包含的个体总数不变。

比较优秀的个体(模型)有较大的生存概率,并可能繁衍,比较差的个体(模型)可能会淘汰。

这样产生的下一代的个体,一般都具有较大目标函数值,因而有较大的生存概率。

2、交配(crossover):

从种群中随机地选择两两一组的双亲,分别随机地交换部分染色体,各自产生两个新染色体。

3、变异(mutation):

染色体按一定概率(一般很小)可随机地产生变异。

遗传算法能够解决的问题不仅限于最优化问题,但无论哪种问题,都要解决两个关键问题:

(1)必须能将问题的解答用一组二进制数码表示,即建立解答与二进制数码间的映射(mapping)关系。

(2)定义一种对最佳解的定量量度,即适度函数。

1.6.2遗传算法的结构

霍兰德的遗传算法通常被称为“简单遗传算法”(SGA)。

现以此作为讨论对象,分析遗传算法的结构和机理。

  结合如下的货郎担问题(简记TSP)分析:

设有n个城市,城市i和城市j之间的距离为d(i,j),i,j=1,...,n.TSP问题是要找遍访每个域市恰好一次的一条回路,且其路径总长度为最短。

一、编码与译码

  许多应用问题结构很复杂,但可以化为简单的位串形式编码表示。

将问题结构变换为位串形式表示的过程叫编码;

而相反将位串形式编码表示变换为原问题结构的过程叫译码。

我们把位串形式编码表示叫染色体,有时也叫个体。

  对TSP可以按一条回路城市的次序进行编码,比如码串134567829表示从城市1开始,依次是城市3,4,5,6,7,8,2,9,最后回到城市1。

  一般情况是从城市w1开始,依次经过城市w2,……,wn,最后回到城市w1,我们就有如下编码表示:

       w1w2……wn

  由于是回路,记wn+1=w1。

它其实是1,……,n的一个循环排列。

要注意w1,w2,……,wn是互不相同的。

二、适应度函数

  为了体现染色体的适应能力,引入了对问题中的每一个染色体都能进行度量的函数,叫适应度函数。

通过适应度函数来决定染色体的优、劣程度,体现了自然进化中的优利劣汰原则。

对于优化问题,适应度函数就是目标函数。

  目标函数是指,优化目标与设计变量之间的函数关系式,是所关心的目标(某一变量)与相关的因素(某些变量)的函数关系。

目标函数是把优化问题转化成为数学问题,经过分析、研究,抓住主要因素,建立合适的数学模型。

例:

为了实现增产、增收、提高土地利用率的目的,利用农作物生长的季节差、时间差,把相同或不同类的农作物套种在一起。

目标函数是增产增收和提高土地利用率与土地的单位面积农作物收益的总和之间的关系。

Smax=f(x1,x2,x3,…)

   TSP的目标是路径总长度为最短,路径总长度的倒数就可以为TSP的适应度函数:

请注意其中wn+1=w1。

适应度函数要有效反映每一个染色体与问题的最优解染色体之间的差距,一个染色体与问题的最优解染色体之间的差距小,则对应的适应度函数值之差就小,否则就大。

三、遗传操作

  简单遗传算法的遗传操作主要有三种:

选择、交叉、变异。

  选择操作也叫复制操作,根据个体的适应度函数值所度量的优、劣程度决定它在下一代是被淘汰还是被遗传。

  一般地说,选择将使适应度较大(优良)个体有较大的存在机会,而适应度较小(低劣)的个体继续存在的机会较小。

简单遗传算法采用赌轮选择机制,令Σfi表示群体的适应度值之总和,fi表示种群中第i个染色体的适应度值,它产生后代的能力正好为其适应度值所占份额fi/Σfi。

   交叉操作的简单方式是将被选择出的两个个体P1和P2作为父母个体,将两者的部分码值进行交换。

假设有如下八位长的二个体:

  产生一个在1到7之间的随机数c,假如现在产生的是3,将P1和P2的低三位交换:

P1的高五位与P2的低三位组成数串10001001,这就是P1和P2的一个后代Q1个体;

P2的高五位与P1的低三位组成数串11011110,这就是P1和P2的一个后代Q2个体。

   其交换过程如下所示:

  变异操作的简单方式是改变数码串的某个位置上的数码。

我们先以最简单的二进制编码表示方式来说明,二进制编码表示的每一个位置的数码只有0与1这两个可能,比如有如下二进制编码表示:

  其码长为8,随机产生一个1至8之间的数k,假如现在k=5,对从右往左的第5位进行变异操作,将原来的0变为1,得到如下数码串(红色的数字1是被变异操作后的):

   二进制编码表示时的简单变异操作是将0与1互换:

0变异为1,1变异为0。

   现对TSP的变异操作作简单介绍,随机产生一个1至n之间的数k,决定对回路中的第k个城市的代码wk作变异操作,又产生一个1至n之间的数w,替代wk,并将wk加到尾部,得到:

w1w2……wk-1wwk+1……wnwk

   你发现这个串有n+1个数码,注意数w其实在此串中出现重复了,必须删除与数w相重复的,得到合法的染色体。

四、控制参数

  并不是所有被选择了的染色体都要进行交叉操作和变异操作,而是以一定的概率进行,一般在程序设计中交叉发生的概率要比变异发生的概率选取得大若干个数量级,交叉概率取0.6至0.95之间的值;

变异概率取0.001至0.01之间的值。

  种群的染色体总数叫种群规模,它对算法的效率有明显的影响,规模太小不得于进化,而规模太大将导致程序运行时间长。

对不同的问题可能有各自适合的种群规模,通常种群规模为30至100。

1.6.3遗传算法的基本原理

遗传算法类似于自然进化,通过作用于染色体上的基因寻找好的染色体来求解问题。

   与自然界相似,遗传算法对求解问题的本身一无所知,它所需要的仅是对算法所产生的每个染色体进行评价,并基于适应值来选择染色体,使适应性好的染色体有更多的繁殖机会。

 在遗传算法中,通过随机方式产生若干个所求解问题的数字编码,即染色体,形成初始群体;

   通过适应度函数给每个个体一个数值评价,淘汰低适应度的个体,选择高适应度的个体参加遗传操作,经过遗传操作后的个体集合形成下一代新的种群。

对这个新种群进行下一轮进化。

   这就是遗传算法的基本原理。

  遗传算法思想:

  

(1)初始化群体;

  

(2)计算群体上每个个体的适应度值;

  (3)按由个体适应度值所决定的某个规则选择将进入下一代的个体;

  (4)按概率Pc进行交叉操作;

  (5)按概率Pc进行突变操作;

  (6)没有满足某种停止条件,则转第

(2)步,否则进入(7);

 (7)输出种群中适应度值最优的染色体作为问题的满意解或最优解。

  程序的停止条件最简单的有如下2种:

   一是完成了预先给定的进化代数则停止;

   二是种群中的最优个体在连续若干代没有改进或平均适应度在连续若干代基本没有改进时停止。

根据遗传算法思想可以画出简单遗传算法框图

1.6.4遗传算法的收敛性

一些研究人员对进化算法的运行机理进行过研究,证明了一般的遗传算法不一定收敛,只有每代保存了最优个体时才收敛。

在实际应用中,使用了上述结论来保证收敛性。

   优秀个体保护法就是将每代中的最优个体,直接进入子代,相应淘汰其子代中适应度最差的个体,使种群规模不变。

  对保存最优个体时遗传算法是收敛的结论的证明是通过对遗传算法构造马尔柯夫(markov)链,因为遗传算法的进行过程是一个马尔柯夫过程。

  当遗传算法收敛时,求到的解通常只是所要解决问题的最优解的一个近似解,或者叫满意解。

   从数学分析的角度看,收敛过程是一个无限逼近过程,而计算过程是一个有限自动机,因此通过遗传算法程序求得的解总是一个近似解。

1.6.5遗传算法的性能(在排课中的应用)

上面指出遗传算法程序求得的解是一个满意解,哪些因素会影响到解的质量?

这正是遗传算法的性能问题。

  首先要注意的是种群的规模要适当,种群规模太小,种群中就没有充分的多样性,不利于适应度值高的染色体的进化,致使算法得不到满意的解。

可以认为种群规模大有利于种群的进化,种群健壮发展,但染色体多,每进行一轮进化花费的机器时间就多,致使算法的效率低。

  适应度函数的构造对遗传算法的性能影响较大,由于适应度是

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1