中国移动的章可不可以盖在移动通信专业毕业论文文上

兰州交通大学毕业设计(论文)摘 要随着计算机网络技术的快速发展,互联网已经深入到人们生产生活的方方面面, 在这种情况下就需要一个具有一定程度智能、自适应能力强、能主动地预测用户需求 的智能软件系统,该类系统可以有效地分析、提取有用信息和服务,并给出相应的判 断,以辅助人们作出正确的决策。由于智能 Agent 系统具有自主性、智能性和移动性 等特征,可以帮助人们自主地获
取信息和服务,完成复杂的工作,近年来受到业界的 普遍重视。本文将 Java 程序设计语言和软件工程思想应用于 Agent 系统,研究基于 Agent 的信息系统快速实现问题,最终实现了一个简易的智能吸尘器原型。 论文首先从智能系统大概念出发介绍了人工智能的一些基本概念,简述了人工智 能发展历史还有国内外的研究现状以及当前的研究热点, 接着介绍了 Java 程序设计语 言的环境架构以及 Java 的一些特性,为系统的实现打下了良好的基础。然后从 Agent 结构设计以及基于 Agent 的应用系统描述和快速开发开展了一系列工作,设计和实现 了一个 Agent 应用系统框架并对 Agent 组织和信任等问题进行了探索这些研究无疑会 进一步深化 Agent 的理解,为未来大型自组织信息系统的快速开发和集成奠定基础。关键词:JAVA、智能系统、Agent、人工智能1 兰州交通大学毕业设计(论文)AbstractWith the rapid development of computer network technology, the Internet already penetrates every aspect of production and living, to the people in this situation will require a certain degree of intelligence and adaptive ability, can the initiative to predict user needs intelligent software system, this system can effectively analysis, extract useful information and services, and gives the corresponding judgement, to assist people to make the right decisions.Due to the intelligent Agent system has the characteristics of autonomy, intelligence and mobility, can help people to get information and services, complete complex work, is paid great attention to by the industry in recent years.In this article, the Java programming language and software engineering used in the Agent system, the research of information system based on Agent rapid implementation, organizational management and so on. At first, this paper starting from the concept of intelligent system big introduces some basic concepts of artificial intelligence, this paper briefly describes the artificial intelligence development history and research status at home and abroad and the current research hot spot.Then introduces the Java programming language environment architecture and some characteristics of the Java, laid a good foundation for the realization of the system.Then from the structural design of the Agent and the application system based on Agent is described and the fast development in a series of work, design and implement an Agent application system framework and has carried on the exploration of the problems of Agent organization and trust these studies will no doubt be the application of deepening Agent, for future large-scale self-organization letter since, system of laying a foundation for rapid development and integration.Keywords: JAVA , Intelligent System , Agent, Artificial Intellegence2 兰州交通大学毕业设计(论文)摘 要 .................................................................... I Abstract .................................................................. II 第 1 章 引言 .............................................................. 1 1.1 课题研究意义 ...................................................... 1 1.2 研究目的 ......................................................... 1 1.3 国内外研究现状 .................................................... 2 1.4 本文结构与内容 .................................................... 2 1.5 本章小结 ......................................................... 3 第 2 章 课题研究的基本介绍 ................................................ 4 2.1 基本概念的介绍 .................................................... 4 2.1.1 智能系统的介绍 .............................................. 4 2.1.2 人工智能的历史 ............................................. 4 2.2 现代研究介绍 ...................................................... 5 2.2.1 问题求解 .................................................... 5 2.2.2 专家系统 .................................................... 6 2.2.3 机器学习 .................................................... 7 2.2.4 神经网络 .................................................... 8 2.2.5 未来发展 .................................................... 8 2.3 Java 程序设计语言简述 ............................................. 9 2.3.1 Java 语言简介 ............................................... 9 2.3.2 Java 语言特点 ............................................... 9 2.4 本章小结 ......................................................... 12 第 3 章 智能系统中 BDI 模型的应用 ......................................... 14 3.1 BDI 模型的介绍 ................................................... 14 3.1.1 BDI 的概念 ................................................. 14 3.2 BDI 中 Agent 的介绍 ............................................... 15 3.2.1 Agent 的理解 ............................................... 15 3.2.2 Agent 的一些特性 ........................................... 15 3.2.3 Agent 的执行流程 ........................................... 16 第 4 章 基于 Java 语言的智能系统的设计实现 ................................ 181 兰州交通大学毕业设计(论文)4.1 总体设计 ......................................................... 18 4.1.1 设计思路 ................................................... 18 4.1.2 各个模块功能描述 ........................................... 18 4.2 系统理论实现 ..................................................... 19 4.2.1 BDI Agent 的理论实现 ...................................... 194.2.2 ASL 语言介绍 ............................................... 20 4.2.3 形式化模型 ................................................ 20 4.2.4 动态性分析 ................................................ 21 4.2.5 Java 用于实现 Agent 的优势 .................................. 23 4.3 系统程序设计实现 ................................................ 24 4.3.1 系统设计的目标 ............................................ 24 4.3.2 系统结构说明 .............................................. 24 4.3.3 系统界面模块实现 .......................................... 25 4.3.4 系统主方法模块设计实现 .................................... 26 4.3.5 控制器模块设计实现 ........................................ 27 4.3.6 程序界面效果展示 .......................................... 29 4.4 本章小结 ........................................................ 30 第 5 章 总结与展望 ....................................................... 31 5.1 工作总结 ........................................................ 31 5.2 后续工作展望 .................................................... 31 致谢 .................................................................... 32 参考文献 ............................................................... 3232 兰州交通大学毕业设计(论文)第 1 章 引言 1.1 课题研究意义本文讨论了基于功能系统理论的研究结果建立智能系统的主要问题 , 介绍了人工 智能的概念及其目前发展概况 ,对人工智能的几种类型及应用如:专家系统、智能系 统、知识管理、神经网络以及智能体等做了简要的介绍,并对人工智能在 21 世纪的 发展前景进行了分析。 人工智能的诞生与发展是 20 世纪最伟大的科学成就之, 也是新世纪引领未来发展 的主导学科之一。人工智能相关领域的研究成果已被广泛地应用于国民生活、工业生 产、国防建设等各个领域。在信息网络和知识经济时代,人工智能技术正受到越来越 广泛的重视,必将在推动科技进步和产业的发展产生更大的作用。人工智能研究的终 极目标是设计一个真正能在人类所处环境中表现出像人类一样智能行为的计算机,为 了达到此目标需要我们一代又一代的人进行不断努力才能完成的。1.2 研究目的说到人工智能,我们并不陌生。从智能手机到智能家电,越来越多的商品被贴上 了“智能”的标签,电脑游戏产业中,编写游戏角色行为的工作被称为 AI 设计。近些 年,机器人不但走路走得有模有样,连汽车驾照都快考下来了,听说过一阵还要飞着 给大伙儿送快递。从下象棋的“深蓝”到会智力抢答的“沃森” ,高性能计算机在一些 传统智力竞赛中连人类冠军都不放在眼里。人工智能一直处于计算机技术的前沿,人 工智能研究的理论和发展在很大程度上将决定计算机技术的发展方向。今天,已经有 很多人工智能研究的成果进入人们的日常生活。将来人工智能技术的发展将会给人们 的生活、工作和教育等带来更大的影响。 科学研究讲创新而创新必须接受应用和市场的检验。 因此, 我们不仅要善于找到 解决问题的答案,更重要的是要发现最迫切需要解决的问题和最迫切需要满足的市场 需求。人工智能的出现无疑是当前最为迫切的需要。 也许令人有些惊讶的是,尽管形形色色的“人工智能”似乎就在我们身边,但历 经 60 年的学术研究, 至今仍未给出一个被广泛接受的准确的人工智能的定义。 到底什 么是或什么不是人工智能呢?本文研究的目的旨在让读者大概明白什么是人工智能以 及人工智能实现的简单原理介绍,并说明了人工智能在实际生活中是如何被广泛地使 用的。1 兰州交通大学毕业设计(论文)1.3 国内外研究现状目前随着计算机网络、通信和并行程序设计技术的发展,分布式人工智能已经发 展为对多智能体系统的研究,即如何将多个自主的智能体集成到网络上,并使他们通 过协作与协商来求解问题。同时多智能体的应用研究范围涉及工业管理,网络管理, 远程教育,Internet 网上信息处理等领域。 智能体理论涉及智能体是什么和如何使用数学形式化方法来表达和推理智能体的 属性。智能体体系可以被认为是智能体的软件工程模型。智能体语言是智能体编程和 实验的软件系统。智能体是一个具有控制问题求解机理的计算单元,网络中的智能体 通常是一个专家系统、一个过程、一个模块或一个求解单元。与智能搜索引擎和智能 浏览器相比,用于网络的智能体是在空闲时间工作的,它在不需要用户监督的情况下 可以昼夜不停地运行。一个典型的学习智能体 (Learning Agent) ,它使用神经网络 (Neural Network)而不是关键词来识别信息的模式。用户使用类似自然语言的描述将 智能体限制在一个概念区域中,然后智能体在用户的教导下不断训练,直至能有效地 找到用户感兴趣的文件。 在融合发展层面人工智能技术的发展促进多种科学与网络技术的深度融合, 欧洲 和日本发展迅速,并且带动了多种信息科学领域的发展。从国际上看人工智能学、信 息学、仿生学、计算机学等领域的技术突破均被运用到人工智能应用中去。 在国内,将多智能体技术应用于处理像 Internet 这样的具有异构、分布、动态、 大规模及自主性的系统,是人工智能技术在信息处理方面的一个崭新应用。 人工智能是一个新兴的领域,正在得到工业和政府的重视。知识管理的基本的原 则应用人工智能来分享知识, 转移个体知识到集体知识, 分析组织知识等方式。 目前 , 这一领域已得到飞速的发展。搜索引擎的目的是帮助用户寻找资源,这两个系统都内 嵌了特定领域中的商业知识,并使用了推断证明式的自然语言理解技术。1.4 本文结构与内容本文共分五个章节,系统地阐述了系统开发的全过程。 第一章,主要介绍了论文研究的背景和目的。 第二章,主要介绍了论文研究的课题相关的一些基本概念,国内外的研究现状和 当前应用现状,最后还介绍了本论文研究内容的在现实生活中的实际应用。 第三章,主要对系统进行需求分析并进行总体设计。需求分析阶段通过分析系统 的功能模块的划分,为系统的总体设计提供依据。总体设计阶段通过对基类的设计,2 兰州交通大学毕业设计(论文)以及各个模块的描述,形成了开发的整体思路。 第四章, 主要介绍了主要模块的设计与实现, 并给出关键源代码和最终的效果图。 第五章,主要是对这次毕业设计的总结和对后续工作的展望。1.5 本章小结人工智能技术虽然在发展的早期经历过一些挫折,但是由于它本身存在的巨大优 势,以及人们对于这种技术越来越多地依赖,我们可以大胆的预测,计算机人工智能 技术会不断地趋于成熟,而且其能够应用到的领域也必然会不断的扩大而由此衍生出 来的人工智能系统和高认知性的专家决策系统对高级计算机的研制及对未来社会的意 义和影响都是无法估量的。 本章主要是介绍了论文研究的意义及研究目的,并且就国内外的研究现状进行了 简单阐述,最后对本文中各章所作的工作进行了说明,希望通过此章能对论文的整 体有所了解。3 兰州交通大学毕业设计(论文)第 2 章 课题研究的基本介绍 2.1 基本概念的介绍 2.1.1 智能系统的介绍智能系统是复杂多层次控制系统, 构成智能系统的各个模块又是独立的功能系统, 它们彼此相互作用,共同达到动态平衡的状态。 现代智能系统的综合可以在各种不同的概念框架下实现。智能系统具有功能系统 的结构,是具有动态自调节机构、 可选择性地联结不同的子系统及不同调节层次以达到 有益结果的一类系统,其中的每个子系统同时也是功能系统。所有子系统彼此间的连 接方式是为了在子系统本身及整个智能系统中实现有益的、具有适应性结果的一种机 制,该机制建立过程中遵循根据不断获得的关于智能系统最终适应性结果的状态信息 进行自调节的原则。 完善和发展智能系统中各功能子系统间联系的方法是建立和完善共生机制, 构成 智能系统的各个子系统间的相互作用应该是互惠的,实现功能子系统间的这种相互作 用的优化是个复杂的任务。 在完善智能系统的过程中,希望能预先考虑到部分功能子系统发展的不均匀性。 智 能系统按照最小化功能的原则工作。智能系统产生作用的任一结果都是通过最小化手 段实现的即:使用与所考虑的问题复杂度相适应的最小数量的子系统。最小化功能这 一现象可以在高等脊椎动物的任一运动行为中找到例子。智能系统体系结构的复杂化 及部分子系统的复杂化应该与实际的情形相符合:即根据工作的外部条件和在工作过 程中必须解决的问题来决定。2.1.2 人工智能的发展历史人工智能的发展也并不是一帆风顺的,人工智能的研究经历了以下几个阶段: 第一阶段: 50 年代人工智能的兴起和人工智能概念首次提出后, 相继出现了一批 显著的成果,如机器定理证明、跳棋程序、通用问题求解程序、LISP 表处理语言等。 但由于消解法推理能力的有限,以及机器翻译等的失败,使人工智能走入了低谷。这 一阶段的特点是:重视问题求解的方法,忽视知识重要性。 第二阶段:60 年代末到 70 年代,专家系统出现,使人工智能研究出现新高潮 DENDRAL 化学质谱分析系统、MYCIN 疾病诊断和治疗系统、PROSPECTIOR 探矿系统、 Hearsay-II 语音理解系统等专家系统的研究和开发,将人工智能引向了实用化。 第三阶段:80 年代,随着第五代计算机的研制,人工智能得到了很大发展,日4 兰州交通大学毕业设计(论文)本 1982 年开始了“第五代计算机研制计划” ,即“知识信息处理计算机系统 KIPS&, 其目的是使逻辑推理达到数值运算那么快。虽然此计划最终失败,但它的开展形成了 一股研究人工智能的热潮。 第四阶段:80 年代末,神经网络飞速发展,1987 年美国召开第一次神经网络国际 会议,宣告了这一新学科的诞生。此后,各国在神经网络方面的投资逐渐增加,神经 网络迅速发展起来。 第五阶段:90 年代,人工智能出现新的研究高潮由于网络技术特别是国际互连网 技术的发展,人工智能开始由单个智能主体研究转向基于网络环境下的分布式人工智 能研究。不仅研究基于同一目标的分布式问题求解,而且研究多个智能主体的多目标 问题求解,将人工智能更面向实用。另外,由于 Hopfield 多层神经网络模型的提出, 使人工神经网络研究与应用出现了欣欣向荣的景象,人工智能已深入到社会生活的各 个领域。2.2 现代研究介绍在可预见的未来, 随着互联网规模进一步扩大和人工智能理论与技术进一步突破, 智能化将成为机器和互联网的必然趋势,问题求解、专家系统、机器系统、神经网络、 语音识别、图像识别、白然语言处理的能力将因为智能化而获得巨大提升,人们的线 上、线下生活也将因为这些更智能、更便捷的服务而从中受益。2.2.1 问题求解问题求解,即解决管理活动中由于意外引起的非预期效应或与预期效应之间的偏 差,能够求解难题的下棋(如国际象棋)程序的出现,是人工智能发展的一大成就。在 下棋程序中应用的推理,如向前看几步,把困难的问题分成一些较容易的子问题等技 术,逐渐发展成为搜索和问题归约这类人工智能的基本技术。搜索策略可分为无信息 引导的盲目搜索和利用经验知识引导的启发式搜索,它决定着问题求解的推理步骤中 使用知识的优先关系。另一种问题的求解程序,是把各种数学公式符号汇编在一起, 其性能已达到非常高的水平,正在被许多科学家和工程师所应用,甚至有些程序还能 够用经验来改善其性能。例如,1993 年美国发布的一个叫做 MACSYMA 的软件,它能够 进行较复杂的数学公式符号运算。如前所述,尚未决的问题包括人类棋手具有的表达 的能力, 如国际象棋大师们洞察棋局的能力; 另一个未解决的问题涉及问题的原概念, 在人工智能中叫做问题表示的选择。人们常常能够找到某种思考问题的方法从而使求 解变得容易而最终解决该问题。5 兰州交通大学毕业设计(论文)2.2.2 专家系统专家系统 ES(Expert System)是人工智能研究领域中另一重要分支,它将探讨一 般的思维方法转人到运用专门知识求解专门问题,实现人工智能从理论研究向实际应 用的重大突破。专家系统可看作一类具有专门知识的计算机智能程序系统,它能运用 特定领域中专家提供的专门知识和经验,采用人工智能中的推理技术来求解和模拟通 常由专家才能解决的各种复杂问题。总的来说,专家系统是一种具有智能性的软件, 它求解方法是一种启发式方法,专家系统所要解决的问题一般无算法解,并且与传统 的计算机程序上不同之处在于,它要经常在不完全、不精确或不确定的信息基础上做 出结论。 在近年来的专家系统或“知识工程”的研究中,已经出现了成功和有效应用人工 智能技术的趋势,具有有代表性的是用户与专家系统进行“咨询对话” ,如同其与专家 面对面的进行对话是一样的:解释问题并建议进行某些试验,向专家系统询问以期得 到有关解答等。当前的实验系统,在比如化学和地质数据分析、计算机系统结构、建 筑工程以及医疗诊断等咨询任务方面,已达到很高的水平。另外,还有很多研究主要 是集中在让专家系统能够说明推理的能力,从而使咨询更好地被用户接受,同时还能 帮助人类发现系统推理过程中所出现的差错。 发展专家系统的关键在于表达和运用专家知识,即来自人类专家的且已被证明能 够解决某领域内的典型问题的有用的事实和过程。不同领域与不同类型的专家系统, 它们的体系结构和功能是有一定的差异的,但它们的组成基本一致。一个基本的专家 系统主要由知识库、数据库、推理机、解释机制、知识获取和用户界面六部分组成, 如图所示。6 兰州交通大学毕业设计(论文)图 2.1 专家系统的基本结构图2.2.3 机器学习机器学习 (Machine Learning) 是研究如何使用计算机模拟或实现人类的学习活 动。它是继专家系统之后人工智能的又一重要应用领域,是使计算机具有智能的根本 途径,也是人工智能研究的核心课题之,它的应用遍及人工智能的各个领域。 学习是人类智能的重要特征,是获得知识的基本手段,而机器学习也是使计算机 具有智能的根本途径,如香克所说: “一台计算机若不会学习,就不能称为具有智能的 IRI”除此之外,机器学习还有助于发现人类学习的机理和揭示人脑的奥秘。 学习是一个具有特定目的的知识获取过程,它的内部主要表现为新知识结构的不 断建立和修改,外部表现为性能的改善。一个学习过程本质上讲,就是学习系统把导 师(或专家)提供的信息转换成能被系统理解并应用的形式的过程。按照系统对导师的 依赖程度可将学习方法分类为:机械式学习(Rote learning)、讲授式学习(Learning from instruction) 、类比学习 (Learning by analogy) 、归纳学习 (Learning from induction)、观察发现式学习(learning by observation and discovery)等。 此外,近年来又发展了基于解释、事例、概念、神经网络的学习和遗传学习等学7 兰州交通大学毕业设计(论文)习方法。2.2.4 神经网络人工神经网络( Aficial Neural Network),是由大量处理单元即神经元互连而成 的网络, 也常简称为神经网络或类神经网络。 神经网络是一种由大量的节点(或称神经 元)和之间相互联接构成的运算模型, 是自然神经网络一些基本特性的抽象和模拟, 其 目的在于模拟大脑的某些机理与机制,从而实现某些方面的功能。通俗地讲,神经网 络是仿照研究生物神经网络的结果。详细地说,人工神经网络是为获得某个特定问题 的解,根据所掌握的生物神经网络机理,按照控制工程的思路及数学描述方法,建立 相应的数学模型并采用适当的算法,而有针对性地确定数学模型参数的技术。 神经网络的信息处理是由神经元之间的相互作用实现的:知识与信息的存贮主要 表现为网络元件互连间分布式的物理联系。人工神经网络具有很强的自学习能力,它 可以不依赖于“专家”的头脑,而自动从已有的实验数据中总结规律。由此,人工神 经网络擅长于处理复杂多维的非线性问题,不但可以解决定性问题,也可解决定量的 问题,同时还具有大规模并行处理和分布的信息存储能力,具有良好的自适应、自组 织性以及很强的学习、联想、容错和较好的可靠性。 人工智能是在计算机科学、控制论、信息论、心理学、语言学等多种学科相互渗 透的基础发展起来的一门新兴边缘学科,主要研究用机器(主要是计算机)来模仿和 实现人类的智能行为,经过几十年的发展,人工智能应用在不少领域得到发展,在我 们的日常生活和学习当中也有许多地方得到应用。2.2.5 未来发展技术的发展总是超乎人们的想象,要准确地预测人工智能的未来是不可能的。但 是, 从目前的一些前瞻性研究可以看出未来人工智能可能会向以下几个方而发展:模糊 处理、并行化、神经网络和机器情感。 目前,人工智能的推理功能已获突破,学习及联想功能正在研究之中,下一步就 是模仿人类右脑的模糊处理功能和整个大脑的并行化处理功能。人工神经网络是未来 人工智能应用的新领域,未来智能计算机的构成,可能就是作为主机的冯·诺依曼型 机与作为智能外围的人工神经网络的结合。研究表明:情感是智能的一部分,而不是 与智能相分离的,因此人工智能领域的下一个突破可能在于赋予计算机情感能力。情 感能力对于计算机与人的自然交往至关重要。8 兰州交通大学毕业设计(论文)2.3 Java 程序设计语言简述 2.3.1 Java 语言简介Java 是一种业界熟知的开发程序语言,这种语言的出现是在上世纪九十年代初, Java 在诞生伊始最初的名字叫做 Ork 语言, Java 的出现原本是 SUN 为了满足消费类的 产品的编程需求而构建的一个开发语言。发展到现在,Java 已经演变为面象对象的一 种动态开发环境,兼具可移植,多线程的多种特点与优势。因此,可以说 Java 已经 完全演变为一种软件开发模式,同时也是非常适应因特网环境的开发语言,其优势在 于, 能够使互联网的 Web 页面具备丰富的画面, 还能让因特网的网页元素由传统的静 态属性升级成动态属性,在信息安全方面也有着突出的表现,总而言之,这属于一种 同时支持用户的客户端系统环境与中央处理单元特点的优秀语言。2.3.2 Java 语言特点具体来说,Java 具有如下特性:简单性、面向对象、分布式、解释型、可靠、安 全、平台无关、可移植、高性能、多线程、动态性等。 下面我们将重点介绍 Java 语言的面向对象、平台无关、分布式、多线程、可靠和 安全等特性。 (1)面向对象 面向对象其实是现实世界模型的自然延伸, 现实世界中任何实体都可以看作是对象, 对象之间通过消息相互作用,另外,现实世界中任何实体都可归属于某类事物,任何 对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为 驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程 式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。 (2)平台无关性 Java 是平台无关的语言是指用 Java 写的应用程序不用修改就可在不同的软硬件平 台上运行。平台无关有两种:源代码级和目标代码级。C 和 C++具有一定程度的源代码 级平台无关,表明用 C 或 C++写的应用程序不用修改只需重新编译就可以在不同平台 上运行。 另外,Java 芯片的出现也会使 Java 更容易嵌入到家用电器中。JVM 是 Java 平台无 关的基础,在 JVM 上,有一个 Java 解释器用来解释 Java 编译器编译后的程序。Java 编程人员在编写完软件后,通过 Java 编译器将 Java 源程序编译为 JVM 的字节代码。 任何一台机器只要配备了 Java 解释器, 就可以运行这个程序, 而不管这种字节码是在9 兰州交通大学毕业设计(论文)何种平台上生成的。另外,Java 采用的是基于 IEEE 标准的数据类型,通过 JVM 保证 数据类型的一致性,也确保了 Java 的平台无关性。 Java 的平台无关性具有深远意义。首先,它使得编程人员所梦寐以求的事情开发一 次软件在任意平台上运行变成事实,这将大大加快和促进软件产品的开发,其次 Java 的平台无关性正好迎合了“网络计算机”思想。如果大量常用的应用软件(如字处理 软件等)都用 Java 重新编写,并且放在某个 Internet 服务器上,那么具有 NC 的用户 将不需要占用大量空间安装软件, 他们只需要一个 Java 解释器, 每当需要使用某种应 用软件时,下载该软件的字节代码即可,运行结果也可以发回服务器。目前,已有数 家公司开始使用这种新型的计算模式构筑自己的企业信息系统。 (3)分布式 分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机 上,操作分布是指把一个计算分散在不同主机上处理。 Java 支持 WWW 客户机/服务器计算模式,因此它支持这两种分布性。对于前者, Java 提供了一个叫做 URL 的对象,利用这个对象,你可以打开并访问具有相同 URL 地 址上的对象,访问方式与访问本地文件系统相同。对于后者,Java 的 applet 小程序 可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。 (4)可靠性和安全性 Java 最初设计目的是应用于电子类消费产品, 因此要求较高的可靠性。 Java 虽然源 于 C++,但它消除了许多 C++不可靠因素,可以防止许多编程错误。首先,Java 是强 类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程 序更加可靠;其次,Java 不支持指针,这杜绝了内存的非法访问;第三,Java 的自动 单元收集防止了内存丢失等动态内存分配导致的问题;第四,Java 解释器运行时实施 检查,可以发现数组和字符串访问的越界;最后,Java 提供了异常处理机制,程序员 可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。 多线程 线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发 执行的单位。C 和 C++采用单线程体系结构,而 Java 却提供了多线程支持。 Java 在两方面支持多线程:一方面,Java 环境本身就是多线程的,若干个系统线程 运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,Java 语言内置多 线程控制,可以大大简化多线程应用程序开发。Java 提供了一个类 Thread,由它负责 (5)10 兰州交通大学毕业设计(论文)启动运行,终止线程,并可检查线程状态。Java 的线程还包括一组同步原语,这些原 语负责对线程实行并发控制。 利用 Java 的多线程编程接口, 开发人员可以方便得写出 支持多线程的应用程序,提高程序执行效率。必须注意地是,Java 的多线程支持在一 定程度上受运行时支持平台的限制。例如,如果操作系统本身不支持多线程,Java 的 多线程特性可能就表现不出来。2.3.3 Java 小程序和应用程序在 Java 语言中,能够独立运行的程序称为 Java 应用程(Application) 。Java 语 言还有另外一种程序—Applet 程序。Applet 程序(也称 Java 小程序)是运行于各种 网页文件中,用于增强网页的人机交互、动画显示、声音播放等功能的程序。对 Java 而言 Java 小程序的大小和复杂性都没有限制。事实上,Java 小程序有些方面比 Java 应用程序更强大, 但是由于目前 Internet 通讯速度有限, 因此大多数小程序规模较小。 Java Applet 和 Java Application 在结构方面的主要区别表现在: (1)运行方式不同 Java Applet 程序不能单独运行,它必须依附于一个用 HTML语 言 编 写 的 网 页 并 嵌 入 其 中 , 通 过 与 Java 兼 容 的 浏 览 器 来 控 制 执 行 。 Java Application 是完整的程序,可以独立运行,只要有支持 Java 的虚拟机,它就可以独 立运行而不需要其他文件的支持。 (2)运行工具不同 运行 Java Applet 程序的解释器不是独立的软件,而是嵌在浏览器中作为浏览器软件的一部分。 Java Application 程序被编译以后, 用普通的 Java 解释器就可以使其边解释边执行,而 Java Applet 必须通过网络浏览器或者 Applet 观察器才能执行。 (3) 程序结构不同 每个 Java Application 程序必定含有一个并且只有一个 main方法,程序执行时,首先寻找 main 方法,并以此为入口点开始运行。含有 main 方法 的那个类, 常被称为主类, 也就是说, Java Application 程序都含有一个主类。 而 Applet 程序则没有含 main 方法的主类,这也正是 Applet 程序不能独立运行的原因。尽管 Applet 没有含 main 方法的主类,但 Applet 一定有一个从 java.applet.Applet 派生 的类,它是由 Java 系统提供的。 (4)Java Applet 程序可以直接利用浏览器或 Applet Viewer 提供的图形用户界 面,而 Java Application 程序则必须另外书写专用代码来营建自己的图形界面。 (5)受到的限制不同 Java Application 程序可以设计成能进行各种操作的程序, 包括读/写文件的操作, 但是 Java Applet 对站点的磁盘文件既不能进行读操作,11 兰州交通大学毕业设计(论文)也不能进行写 操作。然而,由于 Applet 的引入,使 Web 页面具有动态多媒体效果和 可交互性能, 这使由名为超文本、 实为纯文本的 HTML 语言编写成的 Web 页面真正具有 了超文本功能, 不但可以显示文本信息, 而且还可以有各种图片效果和动态图形效果, 从而使页面显得生动美丽;另外,Applet 使 Web 页面增加了按钮等功能,从而增加了 交互性。 Java Applet 和 Java Application 在 执 行 方 面 的 主 要 区 别 表 现 在 : Java Application 一般是在本地机上运行,而 Java Applet 一般放在服务器上,它是根据 本地机的请求被下载到本地机,然后才在本地机上运行。 下图为 Java 语言的体系结构图图 2.2JAVA 语言体系结构图2.4 本章小结人工智能作为研究机器智能和智能机器的一门综合性高技术学科, 产生于 20 世纪 50 年代,它是一门涉及心理学、认知科学、思维科学、信息科学、系统科学和生物科 学等多学科的综合型技术学科,目前已在知识处理、模式识别、自然语言处理、博弈、 自动定理证明、自动程序设计、专家系统、知识库、智能机器人等多个领域取得举世 瞩目的成果, 形成了多元化的发展方向。 本章主要是介绍了人工智能的一些基本概念,12 兰州交通大学毕业设计(论文)人工智能的发展历史以及国内外现在的研究现状,之后又介绍了人工智能领域的一些 实际应用。通过此章我们可以大概的了解了人工智能的总体情况,为后文的深入了解 智能系统打下坚实的基础。13 兰州交通大学毕业设计(论文)第 3 章 智能系统中 BDI 模型的应用随着网络的普及和计算机性能的提高,信息系统的多样化、复杂化,使得人们迫 切地寻找更加智能、自主的方法解决复杂的问题。智能 Agent 技术以其高度的灵活性 和智能型等特证在解决未来复杂问题方面具有独特的优势。本章将软件工程思想应用 于 Agent 系统,介绍如何实现一个具体的 Agent 系统。 基于 Agent, 人们提出了一种新的人工智能定义:人工智能的目标是构造能表现出 一定智能行为的 Agent。所以 Agent 的研究应该是人工智能的核心问题。Stanford 大 学计算机科学系的研究报告中谈到:“Agent 既是人工智能最初的目标,也是人工智能 最终的目标。 ”3.1 BDI 模型的介绍 3.1.1 BDI 的概念BDI 是 Belief(信念)、Desire(愿望)、Intention(意图)的缩写,是 Agent 计算的 精华,其初衷并非要以某种理论诠释人的精神规律,而是借鉴类似人类精神属性的概念 来解释复杂系统的行为。人类的精神具有公认的复杂性,而以揭开思维之迷为目标的 研究不大符合实际。我们认为目前对 Agent 思维状态模型的研究目标不应是人类的理 性之迷,而是对处于开放信息系统中有自上性的、复杂的人造实体进行描述和验证, 所以,研究重点不应是给出足以保证类似人类理性的公理体系,而是足够解决一个合 理范围内问题的逻辑系统,对 Agent 理性的讨论应严格限制在这个范围内,而不是与 人类的思维规律进行机械地类比。 信念(Belief):信念是 Agent 当前的状态,是关于自身周围环境和其他 Agent 的 信息模型。 信念描述 Agent 对达到某种效果可能采取的行为路线的预测,是 Agent 计算 的内在动力,表示 Agent 估计能够做到的行为,或曾经做过的行为,或 Agent 可能的行 为。 愿望(Desire): 愿望描述 Agent 对未来世界状况以及可能采取的行为路线的喜好, 是 Agent 计算的动机、目标。愿望表示 Agent 想要做的行为,或 Agent 将来的行为。 愿望的一个重要特性是 Agent 可以拥有互不相容的愿望,而且 Agent 也不必相信它的 愿望是可实现的。 意图(Intention):由于 Agent 有限性假设,它不能一次去追求所有的愿望,需 要选择某个愿望来作出追求的承诺,这个过程形成意图,它是 Agent 计算的向导。意 图的作用是引导并监督 Agent 的动作。意图表示 Agent 实际能够做到的行为或 Agent14 兰州交通大学毕业设计(论文)现在的行为。规划在意图的实现中会起到重要作用。当 Agent 对某个目标作出追求的 承诺后, 意图就可被视为行为的部分规划, 所以常把意图看作按特定结构组合为规划。 下图为 Agent 的体系结构与决策过程示意图图 3.1 Agent 体系结构与决策过程示意图3.2 BDI 中 Agent 的介绍 3.2.1 Agent 的理解广义的 Agent 包括人类、物理世界中的移动机器人和信息世界中的软件机器人。 狭义的 Agent 则专指信息世界中的软件机器人。它是代表用户或其他程序,以主动服 务的方式完成一组操作的机动计算实体。所谓”主动服务”是指: (1)主动适应,即在完成操作的过程中,它可以获得、表示并在以后的操作中利 用关于操作对象的知识以及关于用户意图和偏好的知识。 (2)主动代理,即对一些任务无须用户发出具体指令,只要当前状态符合某种条 件,就可代表用户或其他程序完成相应的操作。所谓“动机”是指在所处的计算环境 中灵活的访问和迁移机制,以及同其他智能 Agent 通信和协作的机制。本文讨论的 Agent 专指狭义的 Agent。3.2.2 Agent 的一些特性(1)代理性(Agent):代理性体现在:1.它是“代表用户”工作的 2.它可以把其他 资源包装起来, 引导并代替用户对这些资源进行访问, 成为便于通达这些资源的枢纽。 (2)智能性(Intelligence): 在这方面, 智能 Agent 可以做很多有高技术含量的工 作。例如,理解用户用自然语言表达的对信息资源和计算资源的需求;帮助用户在一15 兰州交通大学毕业设计(论文)定程度上克服信息内容的语言障碍;捕捉用户的偏好和兴趣;推测用户的意图并为其 代劳等。 (3)自主性(Autonomy): 一个智能 Agent 应该是一个独立自主的计算实体。 它应能 在无法事先建模的、动态变化的信息环境中,独立规划复杂的操作步骤,解决实际问 题,在用户不参与的情况下,独立发现和索取符合用户需求的可利用资源与服务。 (4)机动性(Mobility): 在网络计算环境下, 一个 Agent 可以看成是代表用户驻网 络的常设机构,它可以在网络上灵活机动地访问各种资源和服务,还可以就完成特定 任务同其他智能 Agent 进行协商和合作,甚至把自己“迁移“到网络中的其他主机上 去执行任务。这样的“精灵”在网络上游弋,是对网络安全性、个人隐私性和管理方 面的巨大挑战。3.2.3 Agent 的执行流程图 3.2 Agent 执行流程图 Agent 的解释过程如下: (1)读当前所有消息,更新信念和承诺等思维状态。16 兰州交通大学毕业设计(论文)(2)在能力满足的条件下,执行当前循环的所有承诺。 (3)返回(1)。 信息限制于三种类型之一: “REQUEST”(请求)或“UNREQUEST”(非请求)来完成或 禁止动作, “NIOFRM”(通知)来完成传递信息。 “请求”和“非请求”信息将导致提交 变化; “通知”信息导致 Agent 信念的变化。17 兰州交通大学毕业设计(论文)第 4 章 基于 Java 语言的智能系统的设计实现 4.1 总体设计 4.1.1 设计思路本系统设计思路主要是根据 Java C/S 程序设计思路实现的。首先是在理论环节实 现,通过分析 BDI Agent 的设计原理和实现方法确定思路。系统设计的目的是实现一 个智能吸尘器系统。我们假定当前有两块地板,它们是否干净不确定。通过此系统我 们要实现让吸尘器自己来判断地板是否干净,最终要达到地板干净的目的。而要达到 此目的就必须使吸尘器具有某种选择能力,用户通过选择当前的环境状态和 Agent 的 类型可以通知吸尘器去执行相应的代码。 在系统实现初期首先是确定了系统开发所需的平台,初期选择利用 MyEclipse 作为开发工具,之所以选择 MyEclipse 作为开发工具是因为它对 Java Application开发支持比较好,当项目中有什么语法错误或者拼写错误工具会给我们提示,有利于 快速开发,项目调试也比较容易。 系统设计实现的难点是模块的划分,以及如何确定各个模块的作用。通过分析可 得知此系统主要可划分为以下几个模块: (1)程序主方法模块 (2)系统界面模块 (3)控制器模块 (4)视图模块 确定了系统各个模块划分后,主要任务就是实现各个模块的功能。4.1.2 各个模块功能描述(1)程序主方法模块:此模块主要是作为程序入口方法调用,通过此模块可以建 立于其他模块的联系。 (2)系统界面模块:此模块主要是作为程序界面展示模块,给用户有好的展示, 利用 Java 的 Swing 组件实现此功能。 (3)控制器模块:此模块主要是实现程序的逻辑控制,当选择某种 Agent 或者是 选择某种环境类型时实现程序的逻辑流程。 根据用户的不同选择可以执行不同的代码, 已达到相同的效果。 (4)视图模块:此模块只要是实现程序执行效果的展示以及程序执行结果和流程 的观察。18 兰州交通大学毕业设计(论文)下图为系统功能模块图:图 4.1 系统模块说明图4.2 系统理论实现 4.2.1 BDI Agent 的理论实现论文以 BDI Agent 为例分析它的动态性。过去 20 年人工智能领域的研究表明, BDI( Beliefs-Desires-Intentions )模型被研究人员认为是最健壮和灵活的智能主体 模型。BDI 主体模型可以通过下列要素描述:(1)一组关于世界的信念; (2)主体当 前打算达到的一组目标; (3)一个意图结构,描述主体当前怎样达到它的目标。19 兰州交通大学毕业设计(论文)图 4.2 BDIAgent 执行流程图这里给出了一个动态的 BDI Agent 模型并用一种 ASL(Agent Script Language)语 言来描述这个模型。最后分析了 BDI Agent 的动态性。4.2.2 ASL 语言介绍ASL(Agent Script Language)是基于模态逻辑的,用于描述 Agent 之间的交互。 为了描述基于 BDI 模型的 Agent, 引入了算子 Bel(信念), Des(目标), Int(意图), E(环 境)和符号ρ ,x。ρ 表示幂集,x 表示笛卡尔乘积。4.2.3 形式化模型在一个 MAS(Multi-Agent System:是一些自主的 Agent 通过协作完成某些任务或 达到某些目标的计算系统)体系结构中最初的变化可由 E(环境)引起, 当环境发生变化 时,Agent 接收到新的信息,它会更新 Bel。 Agent 的 Bel 在这种开放的环境下是不封闭的,处于动态的变化之中,而变化了 的 Bel 和当前 Int 能否成功地执行又会影响到 Des 的变动。Des 是 Agent 的动机,是 它试图完成的任务,一旦 Des 发生了变化,就会影响到 Int 的选择及所采取的行为, 最终影响到整个环境的变化。所以说,Agent 的变动是链式变动,一旦 E 发生了变化20 兰州交通大学毕业设计(论文)会引发一系列内部心智状态( Bel,Des 和 Int)的变化,最终影响了 E。下面就给出了 这一动态的模型。 在这个体系结构中主要包含四个部分:环境(environment),信念(Belief),目标 (desire) ,意图(intention)下面分别给以形式化的定义: 定义 1.UAgt ? {Agt1 , Agt2 ,...Agti }; i ? NMAS ? {E, Agt1, Agt2 ...Agti }; i ? N Agti ?UAg定义 2.定义 3.Agent ? {B, D, I }B ? Bel, D ? Des, I ? Int定义 4.感知函数sense : ? ( Bel) ? e ? ? ( Bel)该函数依据当前对环境的感知和当前的信念确定一个新的信念集合。 定义 5.意见函数opinion: ? ( Bel) ? ? ( Int) ? ? ( Int)该函数依据当前环境的感知和当前意图的执行情况确定新的目标。 定义 6.过滤函数声 filter:? ( Bel) ? ? ( Des) ? ? ( Int) ? ? ( Int)该函数依据主体当前的意图,当前的信念和愿意跟新主体的意图。它会丢失无法 完成或已无意义的意图,为无法实现的意图选择新的实现方法及选择新的意图。 定义 7.行为函数action: Agti ? ? (Int) ? Agtj ? E当 i=j 时,表示内部行为,当 i≠ j 时,表示外部行为。4.2.4 动态性分析设 Agent 的执行模型为元组&E,B,D,I,A&, 由 E(环境),B(信念), D(目标),I(意图) 和 A(行为)组成。(S0 ) B ? {b0 , b1 ,...},D ? {d0 , d1 ,...},I ? {i0 , i1 ,...},E ? {e0 , e1 ,...};//信念,目标,意图初始状态;(S1 ) ? ( B' ) ? sense( ? ( B), e' )e' ? E21 兰州交通大学毕业设计(论文)//信念发生变化(S2 ) ? ( D' ) ? opinion ( ? ( B' ), ? ( I ))//目标发生变化(S3 )? (I ' ) ? filter(? ( B' ), ? (D' ))(S4 ) Agti ? action ( Agti ? ? ( I ' ))//意图发生变化/当 i=j 时,表示内部行为,当 i≠ j 时,表示外部行为。 下面以系统为例分析 BDI Agent 自身推理的动态过程。假设现有两块地板 A 地板和 B 地板,地板上有一个吸尘器,吸尘器有一个典型的动作:吸尘。 要解决这个问题,需要定义如下的谓词: Clear(A):地板 A 上面是干净的 Dirty(A):地板 A 上面是脏的 Vacuum(A):吸尘器在地板 A 上面 问题的初始状态是: Dirty(A) ,Dirty(B) ,Vacuum(A), 问题的目标状态是: Clear(A),Clear(B), 吸尘器的动作将会改变地板世界的状态或布局,其目标要把问题的初始状态转换 为目标状态。吸尘器的每一个操作;可分为条件和动作两部分。在上述问题中,吸尘 器需要执行的每个操作可用谓词描述如下: Suck(A):清洁 A 地板 Move(A,B) :吸尘器从 A 地板移动到 B 地板 这些操作所对应的先决条件及动作如下: Suck(A) 条件:Dirty(A)∧Vacuum(A) 动作:清洁 Dirty(A)∧Vacuum(A) 移动 Dirty(A)∧Vacuum(B) Move(A,B)把吸尘器从地板 A 移到地板 B 条件: Clear(A)∧Vacuum(A) 动作:清洁 Dirty(A)∧Vacuum(A)22 兰州交通大学毕业设计(论文)移动 Clear(A)∧Vacuum(A)∧Dirty(B) 利用上述的谓词和操作, 即可完地板世界的问题求解。 为了说明推理过程中目标的 变化,在本例中最终目标是:Clear (A) ,Clear (B) 。 B:Dirty(A)∧Vacuum(A)∧Dirty(B) D:Clear(A) I:Suck(A) B1:Clear(A)∧Vacuum(A)∧Dirty(B) D1:Clear(A),Clear(B) I1:Move(A,B),Suck(B) 在求解的过程中,吸尘器吸尘的结果通过 sense 函数在信念库中生成新的信念, 使当前的信念发生了变化,而这种信念的变化和原先意图的成功执行通过 opinion 函 数,引发 filter 函数得到了新的意愿,这时意愿也发生了变化。由此可以看出由于目 标的驱动而引发 Agent 内部心智状态及环境的变化, 整个推理过程是合理的且自然的。4.2.5 Java 用于实现 Agent 的优势Java 作为一种网络编程语言, 其多平台支持性(write-once run-anywhere)等使 之成为开发移动 Agent 系统的首选语言。 此外普遍存在的 Java 虚拟机也有助于促进移 动 Agent 在 Internet 上的广泛传播。 用 Java 语言实现移动 Agent 系统具有以下优势: ( 1)平台无关性 Java 是基于目标代码共享的,在移植到另一种操作系统下无需重新编译,而不像 C++等基于源代码共享,移植的时候必须重新编译、连接。 ( 2)优秀的安全性能 移动代码虽然不像 Applet 局限于沙箱(sandbox)中运行,但是它的操作权限完全可以由 Java 语言内嵌的安全机制来控制,而且对于权限的更 改、分级等也是很方便的。 (3)动态类装载机制 它允许虚拟机在运行期间将指定的类动态装载到内存、 创建实例进而运行,并且每个 Agent 可以有独立的类装载器,能有效地分隔 Agen。 (4)内建的对象序列化机制 通过这个机制, 可以实现 Agent 本身代码和它所需要的工作数据在 Internet 上的透明传输。 (5)反射机制 Java 虚拟机能在运行期间探测到一个未知类的值域方法和构造函数,使两个相互之间并不了解的 Agent 能通过一种较为方便的途径通信。 (6) 多线程编程 Java 语言的多线程编程使同一个 Agent Host 上可以有多个23 兰州交通大学毕业设计(论文)Agent 独立地运行,Java 语言内建的同步机制使这些 Agent 之间可以相互通信。 (7)网络编程远程方法调用功能 的透明存取。 使用 Java 语言可以通过 RMI 实现对分布式对象4.3 系统程序设计实现 4.3.1 系统设计的目标以应用为核心,要突出“实用、易用、简洁、稳定”。既注重实效,满足用户的 现实需要,在技术实现上实现要突出“结构清晰、实现合理、通俗易懂(简单) ” 。 系统设计从需求出发一步一步实现,明白做什么之后,利用已有的条件来实现系 统的各个模块。最终目的是现实一个简易的智能吸尘器,能实现简单的判断,并且根 据用户的选择来现实清理操作。4.3.2 系统结构说明1.基类的关系描述图 4.3 系统基类关系图24 兰州交通大学毕业设计(论文)2.代码结构aima-gui src/main/java 项目源代码 aima-gui-application aima-gui-application-search-csp aima-gui-application-search-games aima-gui-application-search-map aima-gui-application-vacuum aima-gui-demo-agent aima-gui-demo-learning aima-gui-demo-logic aima-gui-demo-search aima-gui-frameworksrc/main/resource src/main/javadoc4.3.3 系统界面模块实现src/test/java 与面向对象编程一样,面向 Agent 编程也需要引入一些影响最终软件系统的整体 build.properties 逻辑结构和物理结构的关键性概念。在面向 Agent 程序设计中,系统是通过 Agent 来 build.xml 建模的,这些 Agent 是自治的,在实时环境中,对事件的反应具有主动的决策能力。 系统设计实现时,首先是完成界面的开发工作,利用 Java 的 Swing 开发组件,其中主 要是满足系统的需要对系统环境进行选择,还有就是选择 Agent 的类型,根据用户的 选择执行后续的代码。25 兰州交通大学毕业设计(论文)界面模块主要代码如下: package aima.gui.applications. import aima.gui.framework.AgentAppF public class VacuumFrame extends AgentAppFrame { private static final long serialVersionUID = 1L; public static String ENV_SEL = &EnvSelection&; public static String AGENT_SEL = &AgentSelection&; public VacuumFrame() { setTitle(&Vacuum Agent Application&); setSelectors(new String[] { ENV_SEL, AGENT_SEL }, new String[] { &Select Environment&, &Select Agent& }); setSelectorItems(ENV_SEL, new String[] { &A/B Deterministic Environment&, &A/B Non-Deterministic Environment&}, 0); setSelectorItems(AGENT_SEL, new String[] { &TableDrivenVacuumAgent&, &ReflexVacuumAgent&, &SimpleReflexVacuumAgent&, &ModelBasedReflexVacuumAgent&, &NondeterministicVacuumAgent& }, 0); setEnvView(new VacuumView()); setSize(800, 400); } }4.3.4 系统主方法模块设计实现每个 Java Application 程序必定含有一个并且只有一个 main 方法, 程序执行时, 首先寻找 main 方法,并以此为入口点开始运行。含有 main 方法的那个类,常被称为 主类,也就是说,Java Application 程序都含有一个主类。代码说明:这是程序的 main()方法所在的类,程序的入口,当运行程序时首先是 创建一个 VacuumApp 对象, 然后依次创建所需的对象。 此类中还包含三个 public 修饰 的方法,它们的作用是分别返回 VacuumView,VacuumFrame,VacuumController 三个 对象。26 兰州交通大学毕业设计(论文)程序代码如下: package aima.gui.applications. import aima.gui.framework.AgentAppC import aima.gui.framework.AgentAppEnvironmentV import aima.gui.framework.AgentAppF import aima.gui.framework.SimpleAgentA public class VacuumApp extends SimpleAgentApp { /** Returns a &code&VacuumView&/code& instance. */ public AgentAppEnvironmentView createEnvironmentView() { return new VacuumView(); } /** Returns a &code&VacuumFrame&/code& instance. */ public AgentAppFrame createFrame() { return new VacuumFrame(); } /** Returns a &code&VacuumController&/code& instance. */ public AgentAppController createController() { return new VacuumController(); } public static void main(String args[]) { new VacuumApp().startApplication(); } } 界面开发完成之后主要就是完成系统的逻辑功能的实现。本系统只是根据用户的 选择来做出相应的执行结果,系统在实现时充分利用现在比较成熟的基类实现,在此 基础上进行其他功能的实现。4.3.5 控制器模块设计实现此模块主要是实现程序的逻辑控制,当选择某种 Agent 或者是选择某种环境类型 时实现程序的逻辑流程。根据用户的不同选择可以执行不同的代码,已达到相同的效 果。程序执行流程图如下图所示:27 兰州交通大学毕业设计(论文)图 4.4 系统流程图 当从主方法进入程序时,必须先让用户选择当前环境的类型,在选择当前运行的 Agent 的类型,根据用户的选择执行不同的清理程序。 控制器模块是系统设计的主要模块,此模块的功能关系到系统整体功能的实现, 控制器要根据用户所作的不同选择来完成不同的清理程序。下面为控制器模块主要代 码的实现:28 兰州交通大学毕业设计(论文)控制器主要程序代码: public void prepare(String changedSelector) { AgentAppFrame.SelectionState selState = frame.getSelection(); env = switch (selState.getValue(VacuumFrame.ENV_SEL)) { case 0: env = new VacuumEnvironment(); case 1: env = new NondeterministicVacuumEnvironment(); } agent = switch (selState.getValue(VacuumFrame.AGENT_SEL)) { case 0: agent = new TableDrivenVacuumAgent(); case 1: agent = new ReflexVacuumAgent(); case 2: agent = new SimpleReflexVacuumAgent(); case 3: agent = new ModelBasedReflexVacuumAgent(); case 4: agent = createNondeterministicVacuumAgent(); } if (env != null && agent != null) { frame.getEnvView().setEnvironment(env); env.addAgent(agent); if (agent instanceof NondeterministicVacuumAgent) { ((NondeterministicVacuumAgent)agent).setProblem(createNondeterministicProblem ()); } isPrepared = } } 此代码主要实现是使用了一个 switch 选择语法,根据用户的选择匹配 Agent 的 类型,然后调用不同的 Agent 代码执行清理程序。4.3.6 程序界面效果展示程序运行的效果是到达预先定义的两块地板达到干净的状态, 程序执行效果界面 如图所示:29 兰州交通大学毕业设计(论文)图 4.5 系统运行效果图4.4 本章小结过去二十年来, 从技术发展脉络发展上, 人工智能很多技术一直处于创新的前沿, 未来会在很大程度上影响信息产业的发展方向。 人工智能发展至今涉及多个研究领域, 研究方向包括符号计算、语言识别、模式识别和计算机视觉、机器翻译与机器学习、 智能信息检索、问题求解与专家系统、逻辑推理与逻辑证明、白然语言处理等,逐渐 成为更为广泛的智能科学学科。面向对象的开发团体研究了很多不同的标记方法和开 发工具。基于成熟的面向对象语言 Java,在 BDI 模型基础上的 Agent 设计手段使得 Agent 的方便开发成为了可能。本章重点研究了基于 Java 的程序的实现。在 JAVA 语 义和语法的基础上实现了一个基于 JAVA 语言的简单智能系统的开发工作。30 兰州交通大学毕业设计(论文)第 5 章 总结与展望 5.1 工作总结随着网络的普及和计算机性能的提高,信息系统的多样化、复杂化,使得人们迫 切地寻找更加智能、自主的方法解决复杂的问题。智能 Agent 技术以其高度的灵活性 和智能型等特征在解决未来复杂问题方面具有独特的优势。本文就是针对复杂不确定 环境下基于 Agent 的信息系统快速实现、组织管理和安全控制等问题进行了较为深入 的探讨,依据 BDI 模型的思想,提出了基于 Agent 体系结构及其形式化描述,并给出 了相应的基于 ASL 的 Agent 描述语言。 本文从 Agent 结构设计,以及基于 Agent 的应用系统描述和快速开发开展了一系 列工作,设计和实现了一个 Agent 应用系统框架,并且在 Agent 组织方面进行了一些 探讨,取得了一些成果。这些研究无疑会进一步深化 Agent 的应用,为未来大型自组 织信息、系统的开发、集成奠定基础。5.2 后续工作展望人工智能是一项前瞻性科学研究,白信息技术产生发展以来,人们在这一领域进 行了长期的科学探索和技术攻坚,并不断涌现出新思想、新观念、新理论、新技术, 成为未来科学技术革命的重要发源地。就现阶段发展来看,其内涵与外延已经从联结 主义、符号主义、行为主义等学派理论发展为广义的智能科学。智能化是未来信息技 术的发展趋势,也是第三次工业革命的重要特征,已成为生产、生活领域技术创新的 关键环节,影响深远。31 兰州交通大学毕业设计(论文)致 谢在这篇论文完成之际, 首先向我的导师胡晓辉教授致以衷心的感谢!在校期间, 胡 晓辉老师在毕业论文的完成上给予了我很大的支持和帮助。胡老师渊博的知识、严谨 的治学态度、富于创新的科学精神和对人处世的原则,一直感染并鼓励着我,并将使 我受益终身。感谢电子与信息工程学院的各位老师,他们不仅传授给我各方面的专业 知识,而且传授给我分析问题和解决问题的方法。这些将使我终生受益,在此深表感 谢。感谢一起度过四年大学生活的同学,感谢他们的帮助,正是有了他们,我的大学 生活更加丰富和充实,同学之间深厚的友谊是我人生的宝贵财富。我还要感谢我的父 母和家人,感谢他们二十多年来对我的默默关怀和无私付出,他们无微不至的关系、 理解、支持和鼓励是我不断前进的动力,使我能够克服困难,顺利完成学业。最后, 衷心感谢本论文的各位评审老师,你们在百忙之中抽出时间对我的论文进行评阅,并 提出了宝贵的意见,在此我向各位老师致以诚挚的谢意。32 兰州交通大学毕业设计(论文)参考文献[1].郭今吕.分布式多 Agent 专家系统设计与实现[J].计算机测量与控制 )717-719. [2].李建宁.基于移动 agent 技术的演化计算模型[J].计算机测量与控制 0-393. [3].李红兵.一个基于 Java 的 Agent 应用开发环境[J].小型微型计算机系统.-39. [4].程显毅.Agent 计算.哈尔滨:黑龙江科学技术出版社.2003. [5]. 稽海明 . 杨宗源 . 黄海涛 . 软件工程方法的新进展 : 面向 Agent 的软件工程 . 计算机应用研 究.-7. [6].范辉.李晋江.Agent 形式化语言描述[C].第 12 届网络与数据通信学术会议论文集.].康小强.石纯一种理性 Agent 的 BDI 模型[J].软件学报.68-1274 [8].孙瑜.夏幼明.多 Agent 系统模型及其应用[[J].计算机工程与应用. [9].Yamis Labrou. Tim Finin. A Proposal for a new KQMIL Specification. Tech. Rep. CS-03.University of Maryland and Baltimore County.2009. [10].M.R.Genesersth. S.P.Ketephel. Software Agents[J]. Communications of the ACM Special Issue on Intelligent Agents. ):45-50. [11].史忠植.智能主体及其应用[M].北京:科学出版社.2008. [12].李宏亮.基于 Agent 的复杂系统分布仿真[D].长沙:国防科学技术大学研究生院.2006. [13].van der Zee D J.Modeling control in manufacturing simulation[C]. Netherlands: Proceedings of Winter Simulation Conference 2008.33
一种基于JAVA语言的智能系统设计与开发——提供以文本文档的格式的各类文档免费下载和在线浏览。

我要回帖

更多关于 毕业论文答辩ppt模板 的文章

 

随机推荐