【摘要】

 选课调节Agent将课程拥堵信息传递给选课咨询Agent,并且向选课咨询Agent要求提供替代课程信息。选课咨询Agent则通过学生Agent获取该学生的选课计划以及兴趣爱好偏向性,定位出与该门热门拥堵课程类似的课程条件,将这个要求传递给课程统计Agent,课程统计Agent依据这些条件,并且加上课程被选热门程度信息反馈给选课咨询Agent,选课咨询Agent则把和这门拥堵课程一样拥堵的和更拥堵的课程剔除,在列表里挑选另外23门备选课程,反馈给课程调节Agent

【关键词】Agent Agent系统

 

1引言

北京大学本科生选课系统存在着一些突出的问题,包括:选课开始一段时间内非常难登陆系统,网络拥堵,访问速度非常慢;热门课程人员集中,冷门课程无人问津,某些学生体育等必修课程连年选不到;选课个性化服务欠缺,没有选课计划。针对这些问题,对于拥堵的情况,这是拥有大规模访问人群的网站都遇到的问题,技术上可以参照Google百度等搜索引擎,采用分布式的结构,分散访问压力,而且由于选课系统是每学期之初集中压力非常大,一方面可以把压力分散到较长一段时间,不必把可选课时间集中在几个小时内,这点现行的宣科系统已经采用,效果不错,不过在补选等时刻,服务器压力仍然非常大,可以采用分布式的体系结构充分利用校内其他服务器闲置的处理能力来缓解集中的访问压力。

对于后面的几个问题,如果有充分的人力资源,则可以比较好的解决问题,每个学生配备一个专门的老师提供选课咨询,帮助制定选课计划,人为根据各种关键因素来调节课程所选人数。但是这种相当耗费人力资源的做法几乎是不可能的,设计智能agent来代替老师的角色,采用计算机人工智能的方法则可以比较好的解决这个问题。

2Agent、多agent系统及其特点

2.1 Agent历史与概念

Agent并不是一个新的概念。1977Hewitt提出了演员(自包容的、交互的、并发执行的对象)的概念,这个是Agent的雏形。经过二十多年的发展,Agent已经成为人工智能领域的一个非常重要的研究课题。

WooldridgeJennings1995年提出了目前比较权威的Agent定义,获得了计算机领域专家的普遍认同。此定义包括两个自定义:

弱定义Agent是一个给予软件(在较多情况下)或者硬件的计算机系统,它拥有一下特性:自治性、社会能力、反应性和能动性。

强定义在Agent弱定义的特性基础上,还包括了情感等人类特性。[1]

2.2Agent的一些特性

智能性

Agent 能够根据知识库中的事实和规则进行推理 , 运行于复杂环境中的 Agent 还应具有学习或自适应的能力;

自主性 

Agent 是一个独立自主的计算实体 , 其动作和行为是根据本身的知识、内部状态和对外部环境的感知来进行控制的 , 它的运行不受人或其它Agent 的直接干涉;

反应性

Agent 能够及时感知环境的变化而做出相应的动作;

社会性 

Agent 可以通过某种 Agent 协作语言与其它 Agent 或人进行交互和通信 , 在多 Agent系统中 , Agent 应具有协作和协商能力;

目标导向性

Agent 能够为实现一定的目标而规划行为步骤;

移动性 

Agent 作为一个活体 , 它能够在互联网上跨平台漫游 , 以帮助用户搜集信息 , 它的状态和行为具有连续性。

2.3 Agent系统

由于现实世界非常复杂,单个Agent无法完成一项稍微复杂一点的任务,于是就出现了多Agent系统。基于多Agent 技术的系统是指多个 Agent 相互通讯、彼此协调 , 共同完成作业任务的系统 , 它不仅具备一般分布式系统所具有的资源共享、易于扩张、可靠性强、灵活性强、实时性好的特点 , 而且各Agent 能够通过相互协调解决大规模的复杂问题 , 使系统具有很强的鲁棒性、可靠性和自组织能力。在多Agent 系统中 , 单个 Agent 是一个物理的或抽象的实体 , 能作用于自身和环境 , 操纵环境的部分表示 , 并与其他 Agent 通讯 , 具有感知、通讯、行动及控制和推理能力等基本功能。多 Agent技术的这些特点 , 使得其在处理基于互联网的知识问题方面 , 具有广阔的应用前景。[2]



3选课多Agent系统的结构及其各部分具体功能

这个选课Agent的系统涉及到两个数据库:学生信息数据库、课程信息数据库,以及四个智能Agent:学生Agent、课程统计Agent、选课咨询Agent、课程调节Agent

 

学生信息数据库

学生信息数据库主要记录学生的各项基本信息,包括学生的姓名、学号、年级、院系、专业、所修(包括必修和选修)学分以及类别和完成情况等基本信息,此外还包括学生的具体选课行为,不仅记录该次选课成功选上的课程信息,对于欲选但实际并未能选上的课程信息也予以纪录。

 

课程信息数据库

课程信息数据库包括课程的统一编号、中英文名字、时间、地点、类别、所开设的院系、选修对象、招收规模、考核方式,以及往年该门课程的选修情况,学生评价信息等。此外还包括该门课程实时的选课情况(所选人数与招生人数的相对关系)。

 

学生Agent

学生Agent负责引导学生的整个选课过程,记录学生具体的选课行为信息,并将该信息定期写入学生信息数据库;管理学生信息数据库,在存入学生选课信息的同时,与其他Agent配合,根据其他Agent的要求,从学生信息数据库中读取其他Agent需要的信息,反馈给其他Agent

 

课程统计Agent

随时统计课程的选课情况,并且对此选课热门程度和情况作出简单的分级,定期(时间较短)存入课程信息数据库;管理课程信息数据库,负责课程信息数据库信息的更新以及读取和录入,与其他Agent交互,传达信息。

 

选课咨询Agent

从学生Agent获得学生基本信息,从课程Agent获取基本的课程信息,为学生提供个性化的选课建议与咨询服务。该项服务为可选的服务,这个Agent需要教师以及成功选课的前人的经验作为知识库,并且从成功师生的行为和经验中总结出来推理规则。这个Agent是该多Agent智能选课系统的难点。

 

课程调节Agent

课程调节Agent的主要任务是根据课程的被选择人数热门程度,对热门和冷门课程作出适当的调节,具体调节过程包括:从课程统计