APP下载

基于蚁群算法的机房信息管理系统设计①

2020-02-28

关键词:计算机机房课表机房

(闽江学院,福建 福州 350108)

0 引 言

随着现代教育资源的日趋紧张,如何有效的利用现有教学资源,合理安排高校计算机机房教学,是当前思考的一个重要问题。同时伴随着计算机机房的应用,加强对计算机机房设备的维护,以及做好计算机机房的考勤管理等,也是发挥计算机机房作用的重要途径。针对上述思考的问题,很多学者进行了研究。如丁花阳则提出采用ASP.NET对运动课程进行排课,实现了网络排课安排[1];张艳红(2015)[2]则提出采用遗传算法等对机房课程进行排课,进而大大提高了高校机房排课的智能化。本文则在以上研究的基础上,结合机房管理的相关,提出一个综合性的机房管理系统,并引入智能算法对机房排课进行优化,以提高计算机机房管理系统的实用性。

1 系统整体架构设计

架构的搭建是保障系统运行的基础,也是根本。从搭建模式来讲,目前主流的模式主要包含B/S和C/S模式。其中C/S模式为两层架构,这种模式的优势在于可提高客户端的响应速率,及时对后台进行访问,但是维护成本较高;B/S模式为三层架构,将业务逻辑层从服务器中分离,单独作为一层。这样的优势在于不需要对客户端进行升级,而只需要对应用程序进行更新,即可实现升级。因此,该系统采用B/S三层架构模式,将整个机房管理系统分为数据层、业务层和表现层。具体架构如图1所示。

图1 系统整体架构设计

在该系统架构搭建中,以SQL Server作为数据库,业务层与数据库之间的连接采用ADO.NET数据访问技术。在表现层,分别针对教师、机房管理员和学生设置三类不同的业务程序,以满足不同角色的业务需求。

2 系统功能模块设计

结合机房管理的相关业务,以及系统构建的角色,将该系统的不同角色用例设计为如图2所示。

图2 系统整体角色用例分析

通过图2的角色用例看出,系统管理员拥有所有功能的操作权限,学生只拥有课程信息管理和上机信息管理两个模块的操作权限。在课程信息模块中,教师可进行课程查询、课程优化和临时课程预约管理;学生可进行课程查询。在上机信息管理中,学生可查询上机缴费信息、剩余费用信息、上机时间等;教师可实时查看学生上机情况。由此,结合以上的分析,将系统功能模块设计为如图3所示。

图3 系统功能模块

系统管理。该模块下包含系统登录、系统注册、系统注销、数据管理四个部分。前三个子模块主要用于用户身份验证,后一模块主要用于对系统后台的数据管理和维护,包括数据备份、数据删除等;课程信息管理。课程优化模块,主要是对学校整个计算机机房课程的优化安排,以提高计算机机房的应用效率;课程预约是方便教师临时用计算机机房而做出的预约;基本信息管理。该模块主要对用户的基本信息资料进行管理。当新生在报到后,该系统就可以把学生的信息添加到系统数据库中,当对部分转学的学生,则还是需要注册才能使用;设备信息管理。该模块主要是对计算机机房的相关设备进行管理。所以在该模块中,主要对计算机设备进行添加和维护信息进行查看等功能模块;上机信息管理。该模块主要用于学生和教师对上机方面的相关信息进行查询,包括上机时间、缴费情况等;值班管理。该模块主要负责对计算机房的值班管理安排和查询等。

3 系统详细设计

3.1 系统登录模块设计

登录模块是保障系统安全的第一步。用户首先通过主界面点击登录功能,然后通过数据库引擎与后台数据库交互,最后通过比对验证用户的合法性。具体登录流程可以用图4流程图表示。

图4 系统登录流程图

3.2 排课优化模块设计

3.2.1 排课问题描述

影响机房排课的因素很多,约束条件也多。在约束条件中,不仅要考虑机房的作为和学生的数量,同时还要考虑班级与机房的资源的配置安排等。归纳起来,在机房排课安排中,要考虑课程因素、教师因素、安排时间因素、机房因素等[3-5]。

3.2.2 机房排课数学模型构建

根据以上描述看出,机房排课问题涉及课程、班级、时间、教师和机房等。要求解机房排课问题,首先构建上述几个因素的集合:课程集合:L={L1,L2,...,Lx},Li表示第i门课程;班级集合:C={C1,C2,...,Cy},Ci表示第i个班级;教师集合:T={T1,T2,...,Tm},Ti表示第i位教师;时间集合:Q={Q1,Q2,...,Qn},Qn表示第i时间段;机房集合:R={R1,R2,...,RP},Ri表示第i时间段;

将上述五个因素放入笛卡尔坐标系中,构成一个L×C×T×Q×R的多维坐标。由此,排课问题就是在该坐标中,在各项约束条件下,找到一个最优解的问题。同时由于班级、课程和教师已经确定,所以上述实际的求解就是为每一门课程找到一个时间和机房。所以,要求解的为〈Q,R〉元组。由此,可以将上述的问题看成是一个二分图的匹配问题。

3.2.3 约束条件

在机房排课中,主要就是要考虑机房、班级和教师不能安排在同一时间。因此,在这个约束下,可以将机房排课的约束分为硬约束和软约束两类。其中,硬约束是必须要满足的条件,软约束是在硬约束的前提下的一种优化。而所谓的硬约束必须要满足以下条件:①在相同时间,相同的教师不能在两个以上的机房上课;②在相同时间,相同班级不能上两门不同课程;③机房座位数量必须等于或大于班级人数;④部分教师班级在特定的时间不能安排计算机机房课程。

软约束的条件则是在硬约束的条件下的优化:①1周内上多次课程的班级尽量分开,不安排在同1d;②各课程表尽量分配均匀;③尽量安排设备较好的机房给不同班级上课;

图5 课表查询流程

3.2.4 问题求解

要解决以上的问题,需要采用算法对上述数学问题进行求解。传统的求解方法中,通常采用蚁群算法进行求解。但蚁群算法容易陷入极早收敛的问题。因此在研究中,对传统的蚁群算法进行改进。研究认为传统蚁群算法可能会因为排课不集中,影响最优解时间。所以,在研究中引入变异机制的方式,以提高课程编排的优化,防止课表冲突,防止过早收敛。具体步骤为:

①人工蚂蚁构造

人工蚂蚁能记住自己周游的节点,在排课表中则表示哪些〈Q,R〉节点排过课,哪些没有。

②初始化

将上述构造的m个蚂蚁分布在n个节点上,并将这些节点设定为蚂蚁的禁忌节点。

③节点选择

图6 基本信息界面

图7 课表查询

为避免以往的过早收敛问题,采用自适应选择和动态调整的方式对路径进行选择。具体是按照概率的方式对路径进行选择。

(1)

(2)

上式中,τij(t)表示当前t时刻在路径(i,j)上的信息素;ηij表示蚂蚁从i节点到j节点的启发信息,QRk表示为蚂蚁k的时间-机房分配表,q∈[0,1]。

④信息素更新

当蚂蚁移动到下一个节点后,不仅需要更改禁忌表,还要更新信息素。具体更新公式为:

τij(t+1)=(1-ρ)·τij(t)+ρ·τijk(3)

⑤计算最佳路径

当蚂蚁走完所有节点,则计算最佳的路径。

3.3 课表查询

在系统排课成功后,教师和学生都可对课表进行查询。具体查询重新流程如图5所示[6]。

4 系统实现

4.1 基本信息模块实现

在基本信息管理中,包含学生信息、设备信息、机房信息、教师信息等部分。具体界面如图6所示。

4.2 课表查询界面

通过上述的设计,得到图7所示的课表查询界面。

5 结 语

通过上述的设计看出,通过该智能化机房管理系统,可实现设备维护管理、学生基本信息管理、课程编排等功能。而在上述的设计中,解决了机房管理中最为难的问题,那就是对课程进行优化;其次是借助开发技术,给出部分功能实现的流程和界面。

猜你喜欢

计算机机房课表机房
平疫结合的CT机房建设实践
学生出招解决”日课牌“问题
如果我是校长
计算机机房的管理与维护研究
计算机机房管理和维护的重要性及措施研究
基于VPN的机房局域网远程控制系统
浅谈一体化机房系统
浅谈高速公路一体化机房
计算机机房的雷电防护
各地区学生课表