计算智能论文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于离散粒子群算法的排课研究
摘要排课问题属于背包问题中具有重要实用价值的一类优化组合难题, 描写
了如何利用粒子群算法解决排课中的多种冲突。

但由于粒子群算法有收敛速度慢且易收敛于局部最优的缺点, 针对排课问题中最优解的分布特点, 对粒子群算法进行了改进。

本文提出了一种改进的离散粒子群算法。

采用基于矩阵的编码方式,对粒子的位置和速度更新方法进行重新定义。

利用C#语言实现了一个基于离散粒子群算法的排课系统。

并以不同学院一个学期的课程表为依据对系统进行了评估,结果验证了粒子群算法在排课系统中应用的可行性,在一定程度上解决了高校复杂的排课难题,实现了智能化、人性化的排课过程。

关键词: 排课粒子群优化离散粒子群优化
1.引言
排课问题是一个涉及多种因素的动态组合规划问题,它要保证各种教学资源不产生冲突,并且要满足教学资源各方面的约束条件。

教学资源主要包括课程、教师、教室、时间。

排课问题的求解过程就是对任何课程、班级、教师、教室安排出一个相同的空闲时间,在安排时排课不能发生冲突,同时遵守一些约束条件。

所谓冲突就是将上不同课程的两个或多个班排成了同一时间或同一教室,或在同一时间为一个教师安排了多门课程等等。

一般的排课流程是:首先,各院系将各自的新学期课程表、任课教师教师情况、班级课程安排情况的数据录入排课系统,然后,排课系统根据本学校的教室情况以及各种约束条件进行排课。

排课问题被证明是NP完全问题[1]。

粒子群优化算法(Particle Swarm Optimization,PSO)作为进化计算的一个分支,是由Eberhart和Kennedy于1995年提出的一种全局搜索算法,同时它也是一种模拟自然界的生物活动以及群体智能的随机搜索算法。

因此粒子群算法一方面吸取了人工生命,鸟类觅食,鱼群学习和群理论的思想,另一方面又具有进化算法的特点,和遗传算法,进化策略,进化规划等算法有相似的搜索和优化能力。

虽然POS是一个非常适合于连续领域问题优化的算法,并且已经在很多连续空间领域获得了相当的成功的应用,但是很多现实问题都是定义在离散空间中的。

为了将POS应用到这些离散组合问题,本文结合排课问题的特点,对传统的PSO 算法进行了改进,构造了一种基于矩阵编码的离散粒子群算法,实验表明这种算法能有效解决高校的排课问题。

2.排课问题的描述
排课问题[6]就是将课程、班级、教师安排在一周内相应的时间和教室内且不发生冲突。

因此,给出如下描述:学校有R 间教室,C 个班级,L门课程,P 位教师,T 个时间段;教室集合R={Ri,i=1,2,3…Nr};教室分别可容纳的人数集合X={Xi,i=1,2,3…Xp};班级集合C={Ci,i=1,2,3…Nc};每个班级学生人数集合K={Ki,i=1,2,3…Nk};课程集合L={Li,i=1,2,3…Nl};每门课程上课班级数集合Y={Yi,i=1,2,3…Ny};教师集合P={Pi,i=1,2,3…Np};每位教师负责上课门数Z ={Zi,i=1,2,3…Nz};时间段集合T={Ti,i=1,2,3…Nt}。

结合学校的实际情况,对于一个可行的课程表必须满足以下约束条件:
(1)同一时间段同一个班级只能上一门课程;
(2)同一时间段同一位教师只能讲授一门课程;
(3)同一时间段同一间教室只能安排一门课程;
(4)教室可容纳的人数必须大于上课学生人数;
(5)每门课程开课教室满足特定的类型要求。

五个元素的笛卡尔积L×C×P×T×R就构成了排课问题的解空间,而排课也就是在这个解空间中找到一个满足各种约束的解[5]。

教学规模太大,这个解空间的规模也就可想而知了。

但根据排课的具体情况,易见, <课程-班级-教师>之间的关系绝不是L×C×P的满映射关系;又因每个教学时间段、每个教室都可以安排课程,所以<时间-教室>可以看成是T×R的满映射。

则排课问题可以表示为映射: :f L->T×R。

即为每门课寻找一个合适的时间和教室。

其中L是课程实体,它与教师实体和班级实体有关,即每门课程有其对应的任课教师和学习班级(每周两次以上的课看成是不同的课程);T×R表示时间和教室的笛卡尔积:T×R={(T1,R1), (T1,R2),…, (T1,Rnr), (T2,R1),(T2,R2),…, (T2,Rnr), (Tnp, R1), (Tnp,R2),…, (Tnp,Rnr)}可知f(L1)=(Tx,RY)∈T×R,且Tx∈T,RY∈R
排课五要素中,课程是关键要素,其他的要素都与它有关系。

排课问题是要求对所有课程找出使给定目标函数最优的分配方案。

3.离散粒子群优化算法
基本粒子群算法[8]及其改进算法[9, 10]主要被用来求解连续论域的问题,实验证明它是一个非常有效的工具, 但在实际应用中,很多问题被建模在离散空间中,就显得无能为力了。

以下设计了用于求解排课问题的离散粒子群算法,测试结果验证了该算法的可行性和有效性。

3·1粒子的编码方法
结合排课问题涉及的要素和特点,采用了矩阵编码方式:
设一周有T个时间段可用来安排上课,有R个教室供使用。

以R个教室作为行,以T个时间段为列构成一个二维矩阵,记为X[R,T],矩阵中每个元素即为课元编码,由教师、课程、班级三元素构成。

这样就以矩阵的方式表示了一种排课方案,也可看成是一个粒子。

因为排课方案受到许多约束条件的制约,所以并不是每个粒子都是满足要求的可行解,在初始化粒子时加以调整。

3·2种群的初始化
粒子群中的每个粒子对应于待解决问题的一个可行解,因此在课程表问题中粒子的表示就是一个可行的解决方案,在数据结构上对应于一个二维数组。

为了使初始粒子群具有较好的分散度且减少教室更换的次数,根据各课程的周学时数,随机的选择隔一天安排课程,其次选择隔两天安排课程,依次类推,最后选择相邻天安排课程,且在安排一门课时尽可能安排在同一个教室。

在安排时要检查冲突的存在,形成一个可行解。

重复构造出规定数量的粒子,形成初始粒子群。

3.3 适应值函数
适应值函数是粒子群算法在进化中选择下一代粒子群的依据,某个粒子的适应值函数越小,越有可能被包含到下一代粒子群中。

因此,适应值函数的优劣决定了粒子群算法的收敛速度和能否找到最优解。

根据本文给出的约束条件,设X 为某个可行的课程表,X 为所有可行课表组成的集合,我们建立了如下适应度函数:
f(x) =ω1×f1+ω2×f2+ω3×f3
max(f(x)) x∈X
其中,x 为某个可行的课表,X 为某个可性的课表,X 为所有可行课表组成的集合,ω1、ω2、ω3 为相应的权值,其中和为1。

f1、f2、f3 分别是满足课程分散度、时间利用率和教室利用率的适应。

3.4 交叉操作
在很多情况下,粒子群算法可能陷入局部最小,从而引起早熟收敛,这主要是由种群在搜索空间中多样性降低所致。

在进化算法中,交叉粒子可增加种群多样性,从而避免早熟收敛。

本算法也采用了交叉操作来克服上述缺点。

选择粒子群中的2 个粒子,生成[0,1]之间的随机数,如果该随机数小于给定的交叉概率,则对这2 个粒子进行交叉操作,选择这2 个粒子中的表示(班级、教师、课程)和部分进行交叉,得到2 个新的粒子,交叉过程见图1 所示,虽然交叉操作降低了算法收敛速度,但是增加了种群的多样性,从而增加了算法的全局搜索能力,避免陷入局部极小点。

4.算法性能分析
利用C#语言实现了基于离散粒子群算法的排课系统,并利用学校一学期的数据对算法性能进行了分析。

考虑到系统运行时间及粒子群数量对近似最优解适应度值的影响,本次测试选定粒子群数量为50,运行本排课系统并记录测试结果。

实验结果证明了离散粒子群算法在排课系统中应用的可行性以及系统的实用性。

下面仅给出系统排出的课表与人工排出的课表在给定指标下的实验结果。

可以看出,系统课表比人工课表有较高的课程分散度、教室利用率和适应度值,但在时间利用率上不如人工排出的课表高。

这主要是由于人工排课在时间上的控制更加灵活,而利用系统进行排课会综合权衡各个不同的指标。

5.结束语
本文已实现了一个基于离散粒子群算法的排课系统,并得到了一些较好的试验结果。

测试结果验证了粒子群算法求解速度快,在使用粒子群算法优化后排课
算法的实际效率有极大提高。

实践表明文中提出的粒子编码方案和适应值函数是可行的。

参考文献
[1]聂小东·基于贪婪算法的排课系统的研究与实现[D]·广东工业大学, 2006,
[2]唐勇等·基于遗传算法的排课系统[J]·计算机应用, 2002, (10): 93
[3]张林·基于蚁群算法的排课系统研究与设计[D]·合肥:安徽大学, 2005·
[4]丁振国,赵红维·禁忌搜索求解排课问题的应用研究[J]·微电子学与计算机, 2008(4): 31-34
[5]王璐,邱玉辉·基于协商的智能排课系统的研究[J]·计算机科学, 2006(6): 214-217
[6]黄岚,王康平等·粒子群优化算法求解旅行商问题[J]·吉林大学学报, 2003(41): 4-12
[7]潘全科,王文宏,朱剑英·解决无等待流水车间调度问题的离散粒子群优化算法[J]·计算机集成制造系统, 2007(6):。

相关文档
最新文档