基于GA的综合评价系统设计【计算机科学专业】【毕业设计+文献综述+开题报告】

基于GA的综合评价系统设计【计算机科学专业】【毕业设计+文献综述+开题报告】

ID:479606

大小:720.50 KB

页数:47页

时间:2017-08-09

上传者:U-944
基于GA的综合评价系统设计【计算机科学专业】【毕业设计+文献综述+开题报告】_第1页
基于GA的综合评价系统设计【计算机科学专业】【毕业设计+文献综述+开题报告】_第2页
基于GA的综合评价系统设计【计算机科学专业】【毕业设计+文献综述+开题报告】_第3页
基于GA的综合评价系统设计【计算机科学专业】【毕业设计+文献综述+开题报告】_第4页
基于GA的综合评价系统设计【计算机科学专业】【毕业设计+文献综述+开题报告】_第5页
资源描述:

《基于GA的综合评价系统设计【计算机科学专业】【毕业设计+文献综述+开题报告】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

(20届)本科毕业论文基于GA的综合评价系统设计 摘要:人工智能理论和技术的进展和应用,对于科技的发展和进步具有重要意义。遗传算法(GA)属于人工智能领域的研究范畴,是进化计算的一种最重要的形式。本设计运用遗传算法的理论和技术,进行了综合评价系统的设计。通过具体的遗传算法的运用,使得所设计的系统能够从评价专家获得各评价因素重要程度的有关知识,进而实现体现专家思想的综合评价。系统采用java语言开发,并使用了mysql数据库技术。通过对网站绩效的综合评价,对系统的效果进行了验证。关键词:人工智能;遗传算法;综合评价;网站绩效 ThedesignofcomprehensiveevaluationsystembasedonGAAbstract:It’sveryimportantforthedevelopmentandprogressofscienceandtechnologythatArtificialintelligence’stheoryandtechnologyaredeveloping.Geneticalgorithms(GA)areareasofresearchinthefieldofartificialintelligenceandit’sthemostimportantformofevolutionarycomputation.UsingtheGA’stheoryandtechnology,thepaperhasdesignedacomprehensiveevaluationsystem.Throughtheuseofspecificgeneticalgorithm,thedesignedsystemcanobtainfromtheevaluationoftheimportanceofevaluationfactorsrelevantknowledgeanditreflectstheexpertevaluation.Thesystemisuesedjavalanguagetodevelopandusemysqldatabasetostoredata.Throughacomprehensiveofthewebsiteperformance,theeffectivenessofthesystemisverified.KeyWords:ArtificialIntelligence;GeneticAlgorithm;Comprehensiveevaluation;Websiteperformance 目录1前言11.1课题的研究背景11.1.1人工智能简介11.1.2遗传算法的研究背景11.2课题研究的目的与意义21.2.1研究目的21.2.2研究意义21.3课题的研究内容和方法31.4论文内容的组成32相关知识简介42.1Java语言简介42.1.1java环境变量的配置42.1.2安装IDE52.1.3java编码规范52.1.4一个简单的java实例程序72.2数据库知识简介82.3遗传算法简介92.3.1概念简介92.3.2求解步骤103系统分析与研究123.1可行性研究123.2需求分析124系统设计与实现144.1主要功能设计144.1.1初始化144.1.2初始化的主要过程144.1.3数据库的设计:154.1.4遗传算法操作的实现164.2详细设计思路164.2.1交叉操作和变异操作的选择及实现:164.2.2种群规模控制详解184.2.3种群演化的终止194.2.4最终结果205系统测试215.1染色体变异测试215.2染色体交叉测试215.3数据库连接的测试226总结23致谢24参考文献25 1前言1.1课题的研究背景1.1.1人工智能简介人工智能是计算机科学中涉及研究、设计和应用智能机器的一个分支。其近期的主要目标在于研究用机器来模仿和执行人脑的某些智力功能,并开发相关理论和技术。40多年来,人工智能获得很大1发展,已引起众多学科和不同专业背景学者们的日益重视,成为一门广泛的交叉和前沿科学。近十年来,现代计算机的发展已能够存储极其大量的信息,进行快速信息处理,软件功能和硬件实现均取得长足进步,使人工智能获得进一步的应用。尽管目前人工智能在发展过程中面临不少争论、困难和挑战,然而这些争论是十分有益的,这些困难终将被解决,这些挑战始终与机遇并存,并将推动人工智能的继续发展。可以预言:人工智能的研究成果将能够创造出更多更高级的智能“制品”,并使之在越来越多的领域超越人类智能;人工智能将为发展国民经济和改善人类生活作出更大贡献。可以说,未来的各种机器设备将会变得更加智能化,未来的计算机将会是智能化的机器,这些智能化设备将会给人们的生活带来各种便利,让人们体验到更加简便的生活。现有的人工智能产品相对于即将到来的人工智能应用可以说微不足道,但是它们预示着人工智能的未来。对人工智能更高层次的需求已经并会继续影响我们的工作、学习和生活。1.1.2遗传算法的研究背景20世纪60年代以来,如何模仿生物来建立功能强大的算法,进而将它们运用于复杂的优化问题,越来越成为一个研究热点。进化计算正是在这一背景下孕育而生的。进化计算包括遗传算法、进化策略、进化编程和遗传编程。人类不满足于模仿生物进化行为,希望能够建立具有自然生命特征的人造生命和人造生命系统。对人工生命的研究,自1987年起取得了重要进展。这是人工智能和计算智能的一个新的研究热点。进化计算为人工生命研究提供了计算理论和有效的开发工具。[1]43 1.2课题研究的目的与意义1.2.1研究目的随着互联网的发展,以及计算机的普及,越来越多的人喜欢在互联网上查找信息,休闲娱乐等等。互联网上的网站众多,但是人们往往喜欢那些界面精美,布局合理,交互性强的网站。在如此众多的网站中采用什么算法来对它们进行优劣划分是一个比较难的问题。本课题通过采用研究遗传算法来对网站进行综合评价,从而实现智能综合评价的目的。1.2.2研究意义通过本课题的研究,可以将遗传算法的优势体现出来。在综合评价的同时又能够体现出智能化的思想,这样能更好的符合人们大脑的评价思想和原则,具有一定的现实意义。在课题研究的同时,也让我自己对人工智能的优势有了更进一步的了解,对遗传算法的使用有了更深的印象,提高了自己在这方面的能力。43 1.3课题的研究内容和方法课题的主要内容是设计一个系统,让其能够体现出遗传算法的有关思想,采用遗传算法的思想来解决实际问题。在本课题中主要关注对算法的研究,关注如何使用算法来解决综合评价系统的设计问题。由于这是初次使用遗传算法来解决实际问题,所以自己在研究的过程中花了很长时间来确定模型、确定解决方法、尽量找出未知的问题。一开始自己的思路没有正确,并且按照这个错误的思路想了很久,以致将许多问题都复杂化了,致使自己在程序的设计进展缓慢。然后在一次例行交谈中和指导老师交流了一下,老师指出了我的错误,然后我自己仔细的想了一下,终于将那些复杂的问题化为了简单,程序的进展也逐渐有了起色。在课题研究过程中查阅了很多文档和资料,网上的以及图书馆里的,也和指导老师讨论了很多,收获也很多。网上有很多遗传算法方面的文献,阅读这些文献,总结前人的知识,对我的思路有很大的帮助。和老师面对面的交流可以更好的了解到自己哪里思路错了,在向老师阐述自己思路的过程中也加深了自己对课题的理解,而老师适当的提示和纠正也让我的设计不至于走太多的弯路。1.4论文内容的组成论文的内容主要由阐述研究过程中的思路、采用的方法原理组成及如何实现程序设计组成。程序设计部分将课题的功能思想实现,在论文中只是将大概的部分写出来而已,更加详细的要看程序的代码和文档。43 2相关知识简介2.1Java语言简介Java,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和java平台的总称。用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。近年来java变得非常流行。Java快速发展以及被广泛接受都归功于它的设计特点,特别是它承诺一旦编写了程序,在任何地方都可以运行。就像sun公司声明的java语言白皮书一样,java是简单的、面向对象的、分布式的、解释型的、健壮的、安全的、可移植的等等。Java是功能齐全的通用程序设计语言,可以开发可靠的、要求严格的应用程序。现在,它不仅用于web程序设计,而且用于在服务器、台式机和移动设备上开发跨平台的独立应用程序。[2]2.1.1java环境变量的配置1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:javajdk1.5.0_08;2.安装完成后,右击“我的电脑”,点击“属性”;3.选择“高级”选项卡,点击“环境变量”;4.在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”;5.JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径D:javajdk1.5.0_08,此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse等都需要依*此变量);Path使得系统可以在任何路径下识别java命令,设为:43 %JAVA_HOME%bin;%JAVA_HOME%jrebinCLASSPATH为java加载类(classorlib)路径,只有类在classpath中,java命令才能识别,设为:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar(要加.表示当前路径)%JAVA_HOME%就是引用前面指定的JAVA_HOME;6.“开始”->;“运行”,键入“cmd”;7.键入命令“java-version”,“java”,“javac”几个命令,出现画面,说明环境变量配置成功。2.1.2安装IDEJava开发工具是指为快速开发java程序提供一个集成开发环境(IDE)的软件。编辑、编译、调试和在线帮助都集成在一个图形用户界面中。只需在一个窗口中输入源代码或打开已有的文件,然后点击相应按钮、菜单选项或者使用功能键就可以编译和运行源代码。在本课题开发过程采用的是eclipse编译器。这是一个免费的开发工具,只需将其从官网上下载下来,然后解压就可以使用。2.1.3java编码规范1.命名规范1)包的命名包的名字应该都是由一个小写单词组成。packagecom.neu.util;2)类的命名类的名字必须由大写字母开头而其他字母都小写的单词组成,对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。publicclassThisAClassName{}3)变量的命名43 变量的名字必须用一个小写字母开头。后面的单词用大写字母开头StringuserName;StringthisAClassName;4)常量的命名常量的名字应该都大写,并且指出完整含义5)参数的命名参数的名字必须和变量的命名规范一致。6)数组的命名数组应该总是用下面的方式来命名:byte[]buffer;而不是:bytebuffer[];7)方法的参数使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字2.排版规范1)关键词和操作符之间加适当的空格。2)相对独立的程序块与块之间加空行。3)较长的语句、表达式等要分成多行书写。4)若函数或过程中的参数较长,则要进行适当的划分。5)方法与方法之间、成员变量与方法之间要加空行。6)划分出的新行要进行适应的缩进,使排版整齐,语句可读。7)长表达式要在低优先级操作符处划分新行,操作符放在新行之首。8)循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分。9)不允许把多个短语句写在一行中,即一行只写一条语句。10)函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩格。3.标识符命名规范Java语言中,为各种变量、方法和类等起的名字称为标识(identifier)。凡是自己可以起名字的地方都叫标识符,都遵守标识符的规则。Java标识符的命名规则:标识符由字母、下划线(_)、美元符($),数字组成,43 标识符应以字母、下划线(_)、美元符($)开头,不能以数字开头。Java标识符大小写敏感,长度无限制。见名知意,不能与关键字同名。2.1.4一个简单的java实例程序publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println(“HelloWorld!”);}}以上的java语句将在控制台打印出如下字符:HelloWorld!43 2.2数据库知识简介数据库技术产生于20世纪60年代末70年代初,其主要目的是有效地管理和存取大量的数据资源。主要研究如何存储,使用和管理数据。在应用计算机进行数据处理的技术发展过程中经历了三个阶段:程序数据处理技术、文件数据处理技术、数据库数据处理技术。发展至今,所有的数据处理应用系统都是采用数据库数据处理技术实现的。[3]数据库设计不是设计一个完整的数据库管理系统,而是根据一个给定的应用环境,构造最优的数据模型,利用数据库管理系统建立数据库应用系统,使之能够有效地存储数据,满足用户对信息的使用要求。在对信息资源合理开发、管理的过程中,数据库技术是最为有效的。数据库设计一般分为以下六个阶段:需求分析;概念结构设计;逻辑结构设计;物理结构设计;数据库实施;数据库运行和维护。需求分析阶段的工作是详细准确地了解数据库应用系统的运行环境和用户要求。进行需求分析时首先需要确定系统的需要。概念结构设计主要实现由现实世界到信息世界的抽象,建立起概念模型,通常采用E-R图的方式表示出来。逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型。如将E-R如转换为多张表。物理设计是根据使用计算机软件硬件环境和数据库管理系统,确定数据库表的结构,并进行优化,为数据模型选择合理的存储结构和存取方法,决定存取路径和分配存取空间等。数据库实施是运用DBMS建立数据库,创建各种对象,编制与调试应用程序,录入数据,进行试运行。[4]数据库运行与维护就是当一个数据库投入运行后,进行的修改调整。在本课题的程序中采用的是mysql数据库,我在该数据库中建立了一个名为bysj的数据库,里面有一张表,tbl_bysj,该表中有三个字段:id,chromosome,output。具体的建表过程为:createdatabasebysj;createtabletbl_bysj(idint(4)notnullprimarykeyauto_increment,chromosomevarchar(500)notnull,outputdouble(12,2));数据库的查询语句为:43 select*fromtable_name;selectid,chromosome,outputfromtbl_bysj;数据库的更改语句为:updatetable_namesetcolumn_name=’new_value’;updatetbl_bysjsetchromosome=’new_chromosome’,output=’new_output’whereid=’id_value’;删除数据库中的所有数据,但不删除字段名:delete*fromtbl_bysj;2.3遗传算法简介2.3.1概念简介遗传算法是模仿生物遗传学和自然选择机理,通过人工方式构造的一类优化搜索算法,是对生物进化过程的一种数学仿真,是进化计算的一种最重要的形式。遗传算法就是模仿生物的进化过程(即通过染色体之间的交叉和变异来完成),将基本操作作用于群体,从而得到新一代群体,提高群体适应环境的能力。计算开始时,一定数目个体即种群随机地初始化,并计算每个个体的适应度函数,便产生了第一代。如果不满足优化准则,按适应度选择个体,父代要求基因重组(交叉)而产生子代,所有的子代按一定概率变异,然后子代的适应度又被重新计算,子代被插入到种群中将父代取而代之,构成新一代,循环这一过程一直到满足优化准则为止。简单遗传算法的遗传操作主要有三种:选择、交叉和变异。改进的遗传算法大量扩充了遗传操作,以达到更高的效率。选择操作也叫做复制操作,根据个体的适应度函数值所度量的优劣程度决定它在下一代是被淘汰还是被遗传。在课题的研究过程中在某些地方使用到了选择操作。如在进行下一次交叉操作前将部分优良个体复制出来,将其独立保留,然后再将所有个体进行交叉操作,这样既保留了优良个体,又让优良个体与其它所有个体进行了交叉操作,从而提高了种群的整体优良水平。43 交叉操作的简单方式是将被选择出的两个个体P1和P2作为父母个体,将两者的部分码值进行交换。课题研究过程中采用的方法是将两条染色体选择出来当作父代染色体,然后随机两个数出来,这两个数一大一小,然后根据这两个数组成的区间来选择染色体段:假设选择出来的两个数分别为20和200,则在父代染色体中,将处于20-200间的染色体段选择出来与另一条染色体进行交叉交换,组成了两个子代新的染色体。交叉操作是遗传算法区别于其他所以优化算法的根本所在,如果从一个遗传算法中去掉交叉操作,则其结果将不再是遗传算法。[1]交叉操作演示如下:交叉结果为:和[5]变异操作的简单方式是改变数码串的某个位置上的数码。课题研究过程中采用的也是类似这样的方法。先选择出某一条染色体,然后将该染色体的数码进行改变。编码是遗传算法要解决的首要问题。针对特殊问题,人们提出了其它编码方法。例如:二进制编码,格雷码编码,实数编码,符号编码方法[6].适应度函数又称为评价函数。它为种群中每个可能的确定长度的特征字符串指定一个适应值,它经常是问题本身所具有的。适应度函数必须有能力计算搜索空间中每个确定长度的特征字符串的适应值。种群演化的目的是确保在后面的演化阶段中算法的收敛。[7]在一般的遗传算法操作中,交叉操作的概率要远远大于变异操作。2.3.2求解步骤遗传算法是一种基于空间搜索的算法,它通过自然选择、遗传、变异等操作以及达尔文适者生存的理论,模拟自然进化过程来寻求问题的答案。因此,遗传算法的求解过程也可看做是最优化过程。遗传算法并不能保证所得到的是最佳答案,但通过一定的方法,可以将误差控制在容许的范围内。简单遗传算法的求解步骤如下:1.初始化种群;2.计算种群上每个个体的适应度值;3.按由个体适应度值所决定的某个规则选择将进入下一代的个体;43 1.按概率Pc进行交叉操作;2.按概率Pc进行变异操作;3.若没有满足某种停止条件,则转步骤2,否则进入下一步;4.输出种群中适应度值最优的染色体作为问题的满意解或最优解。[1]算法的停止条件简单的有如下两种:1.完成了预先给定的进化代数则停止;2.种群中的优个体在连续若干代没有改进或平均适应度在连续若干代基本没有改进时停止。43 3系统分析与研究3.1可行性研究由于本人从大三的时候开始接触java,平时自己的程序开发使用的也是java,因此对java比较熟悉,所以用它来开发课题的程序。Java语言是一门面向对象语言,有其独特的地方,实际运用也非常广泛,我认为使用它来开发本课题的程序可以降低一定的开发难度。在程序的开发过程中有需要存储数据的地方,因此,在设计程序的时候采用了mysql数据库来存储程序中的相关数据。平时自己在程序开发中运用的也是mysql数据库,对其比较熟悉,使用起来也比较简便,因此选择它作为程序的存储工具。人工智能的前景应用非常广泛,遗传算法能够给程序设计者带来一种新的设计思路。遗传算法有自己的特性,在某些领域如果运用遗传算法可以获得意想不到的效果。3.2需求分析在互联网的飞速发展下,越来越多的人喜欢把时间花在浏览网页上。每个网站的功能不同,设计的界面也不同,因此有人希望能够对这些网站进行综合评价。随着人工智能的兴起,很多领域都涉及到了人工智能的思想,很多产品的生产设计也运用到了人工智能的方法。以往很多综合评价系统采用的大部分都是普通的算法,并没有涉及到人工智能的思想。运用人工智能的方法来进行综合评价系统的设计是一个新的策略,这是平时的一般系统中很少用到的,因此,本课题采用人工智能中的遗传算法来研究解决网站综合评价系统的设计问题,并从中反映出专家的思想。遗传算法利用简单的编码技术和繁殖机制来表现复杂的现象,从而解决了非常困难的问题。它不受搜索空间的限制性假设的约束,不必要求诸如连续性、导数存在和单峰等假设,能从离散的、多极值的、含有噪音的高维问题中以很大的概率找到全局最优解。由于它固有的并行性,遗传算法非常使用于大规模并行计算。[1]43 在很多人的观念里面人工智能是一个比较高深的领域,认为人工智能的应用应该比较麻烦,而且运用起来也比较麻烦,觉得人工智能很难应用到日常的一些事物中。其实不然。本课题中采用的遗传算法属于人工智能领域,我采用遗传算法来解决网站的综合评价问题,从一个比较容易理解的角度为大家揭开人工智能的神秘面纱,让大家觉得其实人工智能并没有离我们有多遥远,它也可以应用到一些并不高深的领域。人工智能是一门工程技术学科,它的每一步发展都与人们采用的方法有很大的关系.传统的人工智能研究方法,如符号主义,联结主义,并没有使计算机达到具有人类智能的水平.要想使机器具有人类智能,必须突破计算机的局限性,与其它学科联手,开展思维科学的研究,创造新的研究方法和途径.[8]与传统搜索算法相对比,遗传算法与更多的传统优化方法在本质上有着不同之处,主要表现在:1.遗传算法将参数搜索问题转化为参数空间编码的搜索问题;2.遗传算法从一组初始点,而不是从一个初始点,开始进行搜索;3.遗传算法只用到目标函数信息,而无需其导数信息或其他辅助信息;遗传算法采用随机变换规则,而不是确定性的规则,来指导搜索。[9]综合评价是指对被评价对象所进行的客观、公正、合理的全面评价。如果把被评价对象视为系统的话,那么,在若个系统中,如何确认哪个系统的运行状况好,哪个系统的运行状况差,这是一类常见的综合判断问题.[10]43 4系统设计与实现4.1主要功能设计4.1.1初始化程序刚开始的时候种群初始化为200,即刚开始的时候染色体的数目为200条。每条染色体的长度为130,即每条染色体由130段组成,每段的值为0到200间的数字,从而每条染色体的包含390个字符。网站内容由五个条目组成,分别为条目一到五;每个条目的评价等级也为五个,分别为很好、较好、好、一般、差。条目没有进行归一化处理。权值的设定也没有进行归一化处理。期望输出:评价内容与权值的乘积即为期望输出。A*R={0.4,0.1,0.2,0.1,0},{0.3,0.4,0.1,0.1,0.1},0.3,0.2,0.2,0.2,0.1*{0.2,0.2,0.5,0,0.1},{0.5,0.3,0.1,0.1,0},{0.1,0.4,0.3,0.2,0}=B(b1,b2,b3,b4,b5)4.1.2初始化的主要过程种群的产生:初始种群的每条染色体均为系统自动产生。43 由于随机产生的数字在[0,99]之间的,因此有些数字的位数只有一位或者两位,为了保证产生的数都为三位,所以需要对随机产生的数字进行处理。处理过程为将数值小于10的随机数前面添加两个零。这样就可以保证每个染色体由130段组成,每段的长度都为3,也方便了随后的数据处理。产生随机数:随机数的产生是根据一定的范围值来随机产生的,这个过程可以调用java中自带的Math函数库来完成。产生随机的染色体:每条染色体的产生原理都是一样的,都是通过产生一定数量的随机数,然后将这些随机数组合起来,这样就成为了一条染色体。由于随机数是随机产生的,所以也保证了每条染色体都是随机产生的。在实际的运算操作中需要对染色体进行分解,以获得染色体段的数值。分解的原理为按段分解:将每条染色体按段截取,每段的长度固定,然后将分解后的段转为数值,从而获得染色体上的段值,在染色体的交叉过程中要对染色体进行段操作。染色体的编码如下:012032054098...07804809605302643 4.1.3数据库的设计在程序的设计中需要存储相关的染色体数据,数据库中的每条记录有三个字段:id、chromosome、fitness。每次的操作不同,需要做的数据存储操作也不同。列名数据类型字段说明备注idint编号auto_increment,primarykeychromosomevarchar个体编码notnullfitnessdouble适应度值notnull除了第一代操作的时候不需要读取数据库的数据之外,其它的每代操作都需要对数据库进行数据读取。将数据从数据库读取出来后要做相应的设置:把每条染色体当作一个对象,对该对象进行相应的数据存取操作,需要进行的操作有设置id值,设置染色体的编码值,设置相应的适应度值。这样做的目的是方便随后进行的遗传算法操作。在进行交叉操作后,需要对数据库进行大量的数据存储。为了提高数据库的存储效率,采用了批处理的方式将数据存入到数据库中:批处理的做法是将需要存储到数据库中的每个染色体对象先存储到一个链表中,把这些染色体对象存完后再一并存入数据库中,这样可提高程序的运行效率。对染色体进行变异操作的时候,由于是对单条染色体进行变异,因此只需要将单条染色体存入数据库就可以了:即将一条染色体对象的所有对象存入到数据库中,包括id值,染色体编码,适应度值。ER图如下所示:染色体信息适应度值ID染色体编码43 4.1.4遗传算法操作的实现遗传算法就是模仿生物的进化过程(即通过染色体之间的交叉和变异来完成),将基本操作作用于群体,从而得到新一代群体,提高群体适应环境的能力。计算开始时,一定数目个体即种群随机地初始化,并计算每个个体的适应度函数,便产生了第一代。如果不满足优化准则,按适应度选择个体,父代要求基因重组(交叉)而产生子代,所有的子代按一定概率变异,然后子代的适应度又被重新计算,子代被插入到种群中将父代取而代之,构成新一代,循环这一过程一直到满足优化准则为止.[11]课题中主要的遗传算法操作为选择,交叉和变异。选择操作也叫做复制操作,根据染色体的适应度函数值判读该染色体是否优劣,以决定是否被淘汰或者继续留在种群中。程序设计时将种群中所有个体的信息从数据库中选择出来,从中选择出一部分优良的个体,将这些优良个体备份,暂不进行任何操作,而种群中仍然存在这部分个体,等到一代操作完成后,再将这部分优良的个体插入种群中,从而形成了一个新的种群。选择这部分优良个体出来的原因是利用这些优良个体,在种群不断演化的演化过程中,提高种群的优良个体的数量,使种群的优良个体率上升,加快种群的进化。交叉操作就是将两个个体从种群中选择出来作为父代,将两者的部分码值进行交叉互换,如下图所示:013032047079...039092021055067023032012064...072084013025057交叉之后的结果为:013032012064...072084013025067023032047079...039092021055057具体的程序实现过程为将两个个体从种群中选出来作为父代,程序随机出两个整数,这两个整数作为编码交换位置的起点和终点,把处于这两个标记点之间的编码互换,互换之后的两个个体成为了新的个体,这两个新个体都拥有对方之前的染色体编码,从而达到了交叉操作的效果。最后再将新的个体插入到种群中。如此反复,将种群中的所有个体都交叉之后就形成了一个新的种群。若种群的个数为单数,则种群中最后一个个体不用进行交叉操作,之间将其插入到新的种群中。43 在变异操作的算法思想主要是将染色体的编码进行转变,程序中的思路为如果染色体中含有字符0,则将所有字符0转变为4,如果没有字符0,则将字符1转变为字符4,如果没有字符1,则选择字符2,如果字符2没有,则选3,如果都没有,则选字符4,并将字符4转变为3。假设如果每个随机数是在0到500之间的,那么0,1,2,3,4这些字符肯定有。交叉操作的实现如下所示:021033041023...019020091012019执行变异操作之后:421433441423...4194244914124194.2详细设计思路4.2.1适应度和适应度函数为了体现染色体的适应能力,引入了对问题中的每一个染色体都能进行度量的函数,叫做适应度函数。通过适应度函数来决定染色体的优劣程度,它体现了自然进化中的优胜劣汰原则。若一个染色体与问题的最优解染色体之间的差距较小,则对应的适应度函数值之差就较小,否则就较大。适应度函数如下:该值就是该染色体的适应度值。4.2.2交叉操作和变异操作的选择及实现流程43 对交叉和变异操作的选择是通过一个随机数的大小来决定的。随机出来一个数,判断这个数值,如果这个数处于某个范围,则对其进行交叉操作,反之,则进行变异操作。每一代染色体中要么将所有的染色体进行交叉操作,要么将染色体中的某一部分染色体进行变异操作。对哪条染色体进行变异操作是通过产生一个随机数来决定的,这个随机数不大于种群数量的数值。变异后将该染色体插入原来在数据库中的位置,如此就完成了一代操作。交叉操作进行前先选择出一部分优良的个体,将这部分个体进行备份,暂不进行任何操作;然后将种群中的所有个体进行交叉操作,每个个体都是与相邻个体进行交叉操作。交叉操作结束后,再将之前选择出来的优良个体插入种群中,如此,就完成了一次交叉操作。流程图如下图所示:交叉变异操作流程图43 4.2.3种群规模控制详解为了保证种群的整体质量,先将种群中适应度值符合某一特定范围的染色体备份出来,然后再对所有染色体进行交叉操作。交叉操作结束后再把选出来的优良的备份过的染色体一起加到种群中,这样可以提高种群的质量。对于如何进行种群的规模控制,自己也进行了多种尝试。尝试一:由于在交叉操作进行之前会先将一批优良染色体进行保存,因此,在种群演化多次之后,种群的数目会不断的增长,而随着种群的扩大,程序的运行变得越来越慢,因此,有必要对种群的数目进行控制,以提高程序的运行速率。当种群数目达到上限后,将所有适应度值小于某一范围值的染色体进行淘汰,如,刚开始的时候该范围值为1.0,当种群数目第一次达到上限时,将所有机器输出与期望输出之差小于0.5(即,1.0除以2)的染色体全部淘汰,并且,将范围值稍微的缩小,即,1.0减去某一个比较小的值。如此反复,从而达到种群数目控制的目的。但是在实际的程序运行过程中发现,该方法并不能很好的达到缩小种群规模的目的。我分析了一下原因,由于在前面的演化过程中,种群中的每个染色体的机器输出都很大,导致大部分染色体的机器输出与期望输出之差都小于某个值,因此,淘汰的数目并不可观,种群的数量并没有明显的改变。显然,采取这种方法的话,程序的运行依然会很慢,因此,有必要采取另一种方法。尝试二:鉴于大部分染色体的机器输出都比较大,可以对种群的数目进行硬性的削减。假如种群大于某个上限值时,就将种群的数目削减到初始时的大小。具体的做法:由于给种群设定了一个固定的上限值,当种群的个体超过上限之后就按照适应度值将种群的个体进行优胜劣汰,直至种群的数目恢复到初始时的规模。这样既可以减少种群的数目,又将种群的整体机器输出值提升,加快了种群的演化。43 4.2.4种群训练过程种群在演化过程中有一个训练过程,训练过程如下:有一定数量的训练样本,记为R。对于每一个样本Ri,根据期望权值,可得出一个期望输出,根据一个个体,可得出一个训练输出;假设有n个样本,则可得出n个期望输出和n个训练输出。根据欧式定理,di=,其中bi为训练输出,ai为期望输出,di为差值。将所有di相加,然后求平均值,这个平均值就是对应的个体的适应度函数值,该值用来衡量该个体的优劣。假设有一个训练样本如下所示:43 0.2,0.2,0.4,0.2,00.3,0.4,0.1,0.1,0.10.2,0.2,0.5,0,0.10.5,0.3,0.1,0.1,00.1,0.4,0.3,0.2,0根据期望权值,a={0.3,0.2,0.2,0.2,0.1},可得出一个期望输出,记为A:A={a1,a2,a3,a4,a5}={0.22,0.22,0.21,0.25,0.21}。根据一个个体,b=077055090098055068086062056022098...5206608505409205003003409可得出一个机器输出,记为B:B={b1,b2,b3,b4,b5}={0.13,0.26,0.45,0.67,0.55}根据欧式公式,可得出在该样本下,某个体对应的一个适应度函数值:d==0.60将该个体及期望权值分别与所有训练样本训练可得出一批训练输出和期望输出,然后根据欧式公式来比较这两组输出,可得出一批适应度值,将这些适应度值取加权平均值,则该值就是该个体的对应的适应度值。具体流程图如下:43 训练样本流程图当种群中所有个体都经过如上的训练后,每个个体都有一个相应的适应度值,适应度值越小说明该染色体越接近期望输出。43 4.2.5种群演化的终止随着程序的运行,种群的不断演化,整体的机器输出会不断的提高,从而种群的适应度函数值越来越小,当这部分适应度值对应的个体数量占总数的比重很大的时候,可以认为该种群的演化已经达到稳定,可将种群中机器输出最接近期望输出的,即适应度函数值最小的染色体作为最优染色体。具体说来种群的终止的条件如下:1,代数达到1000代2,优良个体所占的百分比达到某一值3,范围值小于最低标准4,当某种群的最佳个体的适应度值一直保持若干代不变,并且具有该适应度值的染色体占种群的比重很大,则终止种群演化。流程图如下所示:种群演化终止流程图43 4.2.6获取最佳个体种群演化终止后,读取数据库中的所有个体的数据。将这些个体的适应度值进行比较,比较适应度值的大小,选择适应度值最小的个体作为最佳结果,用来表示这个种群的最优解。最佳个体选择流程图例如,在一次种群演化结束后,得出了一批个体,如下所示:编码适应度值个体105701206102908608609203000...180920780680810760.05个体206102908608609203000309304...340750680860620560.06.........个体n10930490480410870600700570...960450120980530630.07如上,若适应度值0.05为最小值,则选择该值所对应的个体作为种群中的最佳个体。43 5系统测试系统测试的主要目的是根据选择出来的最佳染色体,将该染色体与一批测试样本进行测试,过程类似于种群演化过程中的个体训练。根据一个样本,可得出最佳染色体与之相应的机器输出bi;根据该样本,可得出期望权值与之相应的期望输出ai。将所有测试样本使用完之后,可得出一批机器输出bi以及相应的期望输出ai。根据欧式公式,由bi和ai可得出一个适应度值,判断该值是否满足某一范围,若满足,则说明该染色体体现了专家的评价思想,达到了预期的效果;若不满足,则说明该染色体没有体现专家的思想,没有模拟出专家的评判思想。假设有十个测试样本,则根据期望权值,a={0.3,0.2,0.2,0.2,0.1},可得出十个专家输出,记为A,结果如下所示:若种群中的最佳个体为b,其编码为:b=05701206102908608609203000...18092078068081076对应的测试输出如下所示:43 测试输出的结果图根据欧式公式可得出对应的适应度值:di=将所有测试样本都进行测试后,将适应度值进行加权平均,作为最终的结果,结果输出如下所示:43 适应度值从这个适应度值可以看出,该适应度满足误差范围[0,0.1],说明该个体符合要求,较接近期望权值,能够符合专家的评判思想。具体的程序流程如下图所示:43 43 6总结经过一段时间的资料收集和研究,对课题的认识有了更进一步的加深,程序的思路也逐渐浮现出来。刚开始的时候自己对课题没能正确的理解,使得课题的进度变得缓慢。然后自己花了很多时间反复理解,逐渐把握住了课题的思路。刚开始的时候觉得数据库不需要用到。随着程序的框架慢慢搭建好后,发现如果采用数据库存储相关的数据,将会降低程序设计的难度。因为有了数据库,我就不必考虑该采用说明数据结构来存储数据,降低了复杂度。采用数据库可以将数据的存储和程序的实现进行分离,这两块可以分开处理,使得程序的设计变的更加清晰,而且便于程序的维护和更改。早期的时候我的模型为一个三层结构,因此,就有两层的权值,当时我的思路是每一层都用一条染色体来表示权值,从而我在进行程序设计的时候发现,这样做很麻烦,因为我需要将每一层的染色体进行追踪标记,因为这两层的染色体是有一定的联系的。底层为输入层,输入层的输入值和第一层的染色体的权值相乘并求和之后得到了第一层的输入值,然后第一层的输入值与第二层的输入值进行相乘求和,从而得到了一个机器输出。在这个过程中,我需要将第一层、第二层的染色体与机器输出联系起来,因为如果机器输出不合适的话就得进行相应的操作,或淘汰或变异等,就必须得把这两层的染色体都标记追踪,否则无法进行相应的操作,这无疑增加了程序设计的难度。听了老师的建议之后,我只须用一条染色体来记录第一层和第二层的权值,从而免去了很多追踪标记的操作,简便了很多。这么一改动之后课题有了较快的进展。随着对课题的深入研究,加深了对遗传算法的理解,对遗传算法的应用有了更好的认识。今后如果遇到一些相似的问题,会考虑采用遗传算法的思想来解决。通过对课题进行程序设计,也加深了自己对java语言理解。在程序实现过程中,用到了一些自己没有用过的技术,自己也尝试去运用一些新的东西来锻炼自己,这些东西在自己以前的程序中都未曾用到过,这对于自己而言也算是一个考验,而我也从中获得了提高。43 参考文献[1]《人工智能及其应用》蔡自兴徐光佑清华大学出版设,2003年9月第三版[2]《introducetojavaprogramming》sixthedition,机械工业出版社,(美)Y.DannielLiang[3]数据库技术简介[EB/OL].紫欣.http://www.docin.com/p-10328088.html,2009-03-11/2010-03-18[4]《数据库原理与应用》张俊玲主编,清华大学出版社,2005年9月第一版[5]GeneticAlgorithmsandEvolutionaryComputing,DarrellWhitley,ComputerScienceDepartment,ColoradoStateUniversityFortCollins,CO80523[6]遗传算法研究综述,吉根林,计算机应用与软件,2004年2月第21卷第二期[7]DunweiGong.Adaptiveinteractivegeneticalgorithmswithindividualintervalfitness[J].ProgressinNaturalScience.2008(18):359-365[8]人工智能研究方法及途径,熊才权,湖北工业大学计算机学院,舰船电子工程2005年3期[9]利用遗传算法进行机械优化,冯锦春杨林建,四川工程职业技术学院学报,2007年第六期[10]《综合评价理论,方法及应用》郭亚军科学出版社,2007年5月第一版:1[11]基于遗传算法的交叉路口信号自适应配时优化李翔晟(中南林业科技大学物流学院,湖南长沙410004)43 文献综述基于GA的综合评价系统设计前言部分实际生活中我们会遇到许多模糊的问题和答案,比如说今天天气怎样,问不同的人可能会得到不同的回答,因为人们对天气的好坏定义每个人可能是不一样的,人们会因为自己身份的不同和场合的不同而做出不同的回答。如在一个大热天里,户外工作的人可能觉得这不是个好天气,而卖饮料的则很喜欢这样的天气。这类问题的回答是都模糊的。现代的人们喜欢上网,浏览网页,从网上可以获得许多人们想要的信息,方便快捷,而且信息量巨大。有时候人们在浏览网页时会发现,有些网站做的非常精美,在细节方面出理的非常好,让人有一种心旷神怡的感觉,由衷赞叹着网站设计人员的技术。如果一个网站界面精美,用户体验度好,那么人们会喜欢这个网站并且会经常浏览。同时,每个网站都希望自己的网站能够让访问者能够浏览到信息的同时也能够体验优美的网页带来的舒适感。这些用户的体验,在某种程度上说,其实就是对网站的总体评价。用户的这些评价有着很大的主观色彩,不同的人有不同的回答,具有一定的模糊性。如果一个用户想客观准确的对一个网站的绩效进行综合评价,就得需要一个专门的综合评价系统来进行评价。本课题通过运用遗传算法、模糊计算等方法从而对网站绩效这一评价目标进行综合评价。本课题重点要解决的问题在于,适当使用遗传算法,使该系统中开发和使用的过程中,从评价专家获得各评价因素重要程度的有关知识,进而实现体现专家思想的综合评价。综合评价是指对被评价对象所进行的客观、公正、合理的全面评价。如果把被评价对象视为系统的话,那么,在若个系统中,如何确认哪个系统的运行状况好,哪个系统的运行状况差,这是一类常见的综合判断问题.[1]通过运用综合评价能够更加准确合理的将问题进行分析和解决,具有更高的科学性。在综合评价过程中所讨论的问题能够获得全面的分析。有些人可能不清楚什么是遗传算法,觉得遗传算法可能是个有关生物学方面的学术理论,对遗传算法是否能够用来解决实际生活中的问题产生疑问。遗传算法是模仿生物遗传学和自然选择机理,通过人工方式构造的一类优化搜索算法,是对生物进化过程进行的一种数学仿真,是进化计算的一种最重要的形式。遗传算法与传统数学模型截然不同,它为那些难以找到传统数学模型的难题找出了一个解决方法,同时,进化计算和遗传算法借鉴了生物科学中的某些知识,从而体现了人工智能这一交叉学科的特点。[2]遗传算法是模拟生物自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法,43 是一类可用于复杂系统优化计算的鲁棒搜索算法。它具有以决策变量的编码作为运算对象、直接以目标函数值作为搜索信息、同时使用多个搜索点的搜索信息、使用概率搜索技术的特点。[3]遗传算法中的交叉和变异特性可以让数据的获取更加具有普遍性,有更高的可靠性。模糊计算方法可以表现事物本身性质的内在不确定性,因此它可以模拟人脑认识客观世界的非精确、非线性的信息处理能力。扎德(Zadeh)于1965年提出的模糊集合成为处理现实世界各类物体的方法。此后,对模糊集合和模糊信号处理理论的研究和实际应用获得广泛开展。[2]一、主题部分互联网技术的兴起使得人们越来越喜欢在工作学习之余上网聊天,上网在人们的日常生活渐渐变成了一种习惯。当用户浏览到一些好的网站的时候,他们自然而然的想比较这些网站之间的差距。传统的网站绩效评判方法往往是通过获取大量的用户数据,从数量众多的用户中得到他们对这些网站的真实想法,这无形中增加了对网站评价的难度,对普通用户而言,这是需要耗费大量的时间和精力,更主要的是,很难找到那么多的用户的网站评价数据,这些数据要有一定的足够的数量才能体现出评价的科学性和客观性。遗传算法的应用对于比较符合岩质边坡的具有多个自由度的折线形滑裂面情形,孙君实用复形法取得较好的效果;陈祖煜提出了单纯形法,使最优化方法搜索边坡最危险滑裂面更加有效,且不会漏掉可能的最小值。单纯形法程序已在国内外多家工程、科研和教育单位得到应用,并不断随着应用工程案例数量的增加而不断完善[4]。单纯形法使最优化方法应用于岩质边坡稳定性分析的研究和应用前进了一大步。同为最优化方法,遗传算法是最近发展起来的一种仿生寻优算法。国内外已有一些学者试图将遗传算法应用于搜索安全系数最小的边坡滑裂面,以期获得更优的结果。文献[5]将此算法应用于基于圆弧滑裂面假定的任意形状坡面的非均质土坡情况,搜索的目标是使边坡安全系数最小的圆弧滑裂面圆心和半径。[6]搜索边坡最危险滑裂面问题是安全系数对滑裂面形状的泛函极值问题。数值方法求解这一问题的主要手段是迭代运算。一般的迭代方法容易陷入局部极小的陷阱而出现"死循环"现象,使迭代无法进行。遗传算法很好地克服了这个缺点,是一种全局优化算法。[6]遗传算法可处理连续变量参数的优化问题,特别是适用于复杂非线性问题的处理。可用于NMR脉冲形状分析、RNA核苷酸测定、DNA构象分析、分子识别和设计、变量选择等,在分析化学、环境科学、机械设计中的应用也非常广泛。遗传算法用于优化的研究成果目前已经发表了较多的论文。这些成果有的是对此算法进行改进,如李通化等[7]给出了一种动态的遗传算法,详细讨论了变异函数对优化进程的影响,并用红外光谱数据和二极管阵列检测液相色谱数据进行了验证。杨立民等[8]运用双极性压缩函数适应度定标和基于排挤方法的选择算子改进标准遗传算法SGA其成为简单通用、快速收敛的并行全局搜索算法。[6]43 模糊综合评价是将多个自变量分数整合成一个因变量分数的过程,那么在此过程中各个自变量的权重是多少呢?确定权重的传统方法是由专家来打分,显然这种方法具有较大的主观性,是否可以采用其他客观的方法来获取权重的分布呢?在运用多元回归方程时,通常采用最小二乘法来确定各个自变量的系数,这些系数体现了被试对于各个自变量的权重,这是心理统计中的方法,当各个自变量和因变量呈线性关系时,这种方法是合理的,但是它无法移植到模糊综合评价中。实际上,寻找最符合被试综合评价权重的工作是一个寻优问题,遗传算法模拟了生物的进化过程,是一种新型的全局寻优方法。[9]由上可以看出,在模糊综合评价中,遗传算法具有一定的优势,可以很好的支持模糊综合评价的研究。近年来,随着高等院校的不断扩招与发展,使得学生数量和教学资源的矛盾越来越突出。充分利用现有的教学资源,使有限的教学资源发挥最大的效用,课程表编排显得尤为重要。事实上,院校排课问题很早以前就成为众多科研人员和软件公司的研究课题,但是真正投入使用的排课软件却很少。原因是多方面的,其中算法的选择是最关键的一个问题,S.Even等人在1975年的研究中证明了排课问题是一个NP-Complete问题,即若是用“穷举法”之外的算法找出最佳解是不可能的。然而由于穷举法成本太高,时间太长,根本无法在计算机上实现。[10]由此可以看出,穷举法在数据量大的领域里面有一定的局限性,遗传算法的优势在方面上可以体现出来了。遗传算法的操作实现交叉:交叉时一种需要双亲染色体来产生两个子染色体的繁殖技术。一种常用的交叉方法是单点交叉。在这种方法中,两个父代染色体被分离成左右两个子染色体,左右两个染色体的长度相等并分别来自父方和母方。那么分离点就是交叉点。例如,如果父代染色体是01110010和10011110,交叉点上在3到4位之间,那么交叉后的子代是01111110和10010010。[11]变异:变异是一种常用的繁殖操作而被用作在搜索空间中找到新的点来进行评价。当一个染色体被选择去变异的时候,一个随机的选择操作一些染色体中的基因组成,这些基因是被重建的。在二进制编码的遗传算法中,对应位从0转变成1或者从1转变成0.通常变异的位的概率是很低的,因此,对于一个编码来说通常变异的概率不会多于一次.[11]一般说来,有如下两种方法去评估一个个体。一个是人们直接地评估一个个体基于他或她的表现,一个适当的分配方法结合持续的离散的适应度被提出来。另一个是评价基于人类或者与之相似的模型。Sugimoto等人使用基于在评估个体和最适条件之间的长度和角度的模糊逻辑评估一个个体的适应度。Biles和Zhou等人采用神经网络去学习人类的智能评价,在适当的时候使用神经网络能减少一定数量的评估个体。Llora等人基于支持向量机来评估个体的适应度,而Hao等人则是基于基因感知单元的适应度。Wang等人使人类指定的评估个体转变成一个绝对等级的适应度并且用它去训练一个代理成为评估个体。[12]43 遗传算法就是模仿生物的进化过程(即通过染色体之间的交叉和变异来完成),将基本操作作用于群体,从而得到新一代群体,提高群体适应环境的能力。计算开始时,一定数目个体即种群随机地初始化,并计算每个个体的适应度函数,便产生了第一代。如果不满足优化准则,按适应度选择个体,父代要求基因重组(交叉)而产生子代,所有的子代按一定概率变异,然后子代的适应度又被重新计算,子代被插入到种群中将父代取而代之,构成新一代,循环这一过程一直到满足优化准则为止。[13]子代能够更多的继承父代的优点,是交叉的主要目的.但是两交换启发式算法都不可避免地存在着拆链问题,如双亲(A,B)生成的新一代为O,它的某两相邻城市如为1,7这个链,既不存在在A中,也不存在在B中.这样在交叉中就包含了变异,当然变异是必须的.但通过实验计算发现在交叉中有过多变异将影响它的遗传继承性.[14]以上的这些交叉变异方法是运用遗传算法时常用的操作,适当利用交叉和变异操作可以对数据的权值进行更改,从而实现对同类型数据的获取。普通的绩效评价方法本文主要根据倍数加权法来确定各个指标的分值。倍数加权法虽然在参照要素的选择上容易出现依靠主观判断的情况,但该方法却可以有效地区分各考评要素之间的重要程度。我们将影响高校档案馆网站的内容作为最次要的考核要素,以此为1;再将形式指标的重要性与该指标相比,得出重要性倍数为1.5;同理,得出最重要的功能指标重要性程度为7.5;然后依据该比例分配分值。[15]。一、总结部分遗传算法在很多科学领域里有很多的应用,而且遗传算法也有自己的特有特性。在传统的综合评价系统中,对数据采集是采用一种比较普通的方式,如广泛调查访问等。一般的迭代方法容易出现数据在迭代过程发生死循环的情况,而遗传算法作为一种全局优化算法有独特性,能够避免这种情况的发生。使用遗传算法的系统中,对于数据的获取将变得比较简单,而且数据可以由遗传算法大量产生。在运用模糊计算的综合评价系统中,对于权重分布是有一定的要求的。寻找综合评价的权重的过程,实际上是一个寻优的过程,而遗传算法模拟了生物进化过程,可以将父代染色体的优良特性遗传给下一代,从而能够得出多代符合权重要求的权值。遗传算法作为一种新型的全局寻优方法,可以在模糊综合评价问题上得到一个符合权重要求的权值,并且能够把权值进行变化,得出新的权值且又能满足要求。43 遗传算法的主要操作有交叉和变异。在父代染色体的基础上进行交叉变异操作,从而得出与父代相近的值,并且这些值都是新值,与父代有一定的相似性但又不同于父代。如果对这些父代染色体进行适当的操作,可以得出很多相似但是不同的个体,操作比较简便,这在一定程度可以增加数据的来源而不用担心数据是否能够满足所研究问题的要求,这是遗传算法的一个优势。传统的穷举法花费时间长,成本高,很难在计算机上实现,这是穷举法的一个局限性。而遗传算法能够找出大量相近的数据,这些数据可以满足研究需求,并且花费的时间和成本并不大,在计算机上可以简单的实现。有些文献中运用的绩效评价方法比较普通,这些方法没有运用到人工智能方面的知识,也没有运用到遗传算法的有关思想,采用的比较是普通的数学方法。所以与遗传算法相比,这种普通方法在数据获取方面是需要花费更多的时间未来的计算机发展中,人工智能领域是一个很大的空间。遗传算法在目前的许多领域已有应用,未来,随着计算机技术的飞速发展,相信遗传算法会有更大的应用空间,遗传算法会深入到人们生活中的各个领域,而不仅仅是网站绩效以及其它目前已应用的领域中。四、参考文献(根据文中参阅和引用的先后次序按序编排)[1]《综合评价理论,方法及应用》郭亚军科学出版社,2007年5月第一版:1[2]《人工智能及其应用》蔡自兴徐光佑清华大学出版设,2003年9月第三版:119,128[3]《基于遗传算法的交叉路口信号自适应配时优化》李翔晟,中南林业科技大学学报,文章编号:673923X(2010)09015505[4]陈祖煜,邵长明,最优化方法在确定边坡最小安全系数方面的应用,岩土工程学报,Vol.10,No.4,1998.7。[5]肖专文,张奇志,梁力,林韵梅,遗传进化算法在边坡稳定性分析中的应用,岩土工程学报,Vol.20,No.1,1998.1[6]应用遗传算法搜索边坡最小安全系数的研究,陆峰陈祖煜李素梅;中国水利水电科学研究院学报[7]用数值遗传算法计算配合物的稳定常数[M].李通化,张奇志,朱仲良,等.高等学校化学学报,1995,16(3):354-358[8]改进遗传神经网络方法在大气环境质量评价中的应用[j].杨立民,许有鹏,环境科学研究所,1999,12(2):28-31[9]基于遗传算法的模糊综合评价中心理测量中的应用,余嘉元,南京师范大学心理系[10]基于遗传算法的高等院校排课系统研究,杜 健 董玉才 王惠德,(装甲兵工程学院基础部 北京 100072)[11]GeneticAlgorithmsforRealParameterOptimization,AldenH.Wright,DepartmentofComputerScienceUniversityofMontanaMissoula,Montana5981243 [12]DunweiGong.Adaptiveinteractivegeneticalgorithmswithindividualintervalfitness[J].ProgressinNaturalScience.2008(18):359-365[13]基于遗传算法的交叉路口信号自适应配时优化李翔晟(中南林业科技大学物流学院,湖南长沙410004)[14]旅行商问题(TSP)的改进遗传算法,唐立新,东北大学学报(自然版)[15]北京市高校档案馆网站建设的绩效评价,谢海洋贾东月田明霞王建华43 开题报告基于GA的综合评价系统设计   一、选题的背景、意义随着科技的不断发展和进步,现在的计算机越来越趋向于智能化发展,未来将会出现许多智能的计算机,这些智能机器功能各异,能够满足人们对生活和应用的需求。不断深入研究人工智能能够对未来计算机的变革产生影响。遗传算法是研究人工智能领域的一个重要方法,因此,对遗传算法进行研究是很有必要的。遗传算法已用于求解带有应用前景的一些问题,例如遗传程序设计,函数优化,排序问题,人工神经网络,分类系统,计算机图像处理和机器人运动规划等。[1]目前,人工智能领域的研究还处于一个开始阶段,各国专家都在精心研究着人工智能的应用,并对以后的发展前景抱着很大的期望。现在社会上逐渐出现了许多智能机器人,这些机器人的出现对人们来说很新奇,感到不可思议,但是这些机器人的功能作用还比较单一,因此,未来科技的发展将会把更智能,功能更复杂全面的机器人带到世人的面前,这需要人工智能领域的研究能够取得突破性的进展,而遗传算法由于其本身算法的独有特性,将会使人工智能的研究产生一定的影响。可以预测,未来人们会生活在像科幻小说里那些不可思议的场景里,许多智能的东西将会为人类的发展和进步提供帮助。与传统搜索算法相对比,遗传算法与更多的传统优化方法在本质上有着不同之处,主要表现在:1.遗传算法将参数搜索问题转化为参数空间编码的搜索问题;2.遗传算法从一组初始点,而不是从一个初始点,开始进行搜索;3.遗传算法只用到目标函数信息,而无需其导数信息或其他辅助信息;4.遗传算法采用随机变换规则,而不是确定性的规则,来指导搜索。[2]43 遗传算法可以处理连续变量参数的优化问题,特别是适用于复杂非线性问题的处理。可用于NMR脉冲形状分析,RNA核苷酸测定,DNA构象分析,分子识别和设计,变量选择等,在分析化学,环境科学,机械设计中的应用也非常广泛。[3]二、研究的基本内容与拟解决的主要问题本课题实现智能综合评价,具体实现以下功能:针对事物诸因素的模糊性,对评价对象进行多因素的综合评价。鉴于在计算机中表达评价者对各因素重视程度的困难性,要求模糊综合评价系统具有基于遗传算法(GA)的学习机制,不断贴近评价者的思想。本课题重点要解决的问题在于,适当使用遗传算法,使该系统在开发和使用的过程中,从评价专家获得各评价因素重要程度的有关知识,进而实现体现专家思想的综合评价。具体说来,本课题要研究如何运用遗传算法的相关知识来对网站绩效进行综合评价,使开发出来的系统能够接近专家的思想,实现专家评判。本课题研究的网站绩效有运用到模糊计算方面的知识,运用该知识来建立一个隶属度矩阵和一个相应的权重,使得根据这两个参数能够得出一组评价数据。在一研究网上购物行为的案例中,从三个维度来分析网上购物行为,将评价结果分为:很好,好,一般,差,很差。则评语集结果为V={V1,V2,V3,V4,V5}={很好,好,一般,差,很差}={5,4,3,2,1}。三个研究因素分别是“商品性质”,“服务质量”,“网站设计”,这三个因素又分别对应着小的子因素,并且这些子因素有相应的权值。[4]网站绩效的评价过程与此类似,先确定网站绩效需要研究的因素,然后给这些因素分配相应的权值。研究因素分别是R={“界面”,“布局”,“信息量”,“交互性”,“网站性能”},与因素相对应的评价结果集为V={V1,V2,V3,V4,V5}={很好,好,一般,差,很差}={5,4,3,2,1},权值为A={A1,A2,A3,A4,A5},权值与因素相对应,每一权值对应的评判结果为B=A*R,量化后的结果就是该网站的综合评价结果。三、研究的方法与技术路线、研究难点,预期达到的目标研究方法与技术路线43 人工智能是一门工程技术学科,它的每一步发展都与人们采用的方法有很大的关系.传统的人工智能研究方法,如符号主义,联结主义,并没有使计算机达到具有人类智能的水平.要想使机器具有人类智能,必须突破计算机的局限性,与其它学科联手,开展思维科学的研究,创造新的研究方法和途径.[5]通过查找文献和请教指导老师,然后结合课题进行研究。首先,从图书馆的中文数据库里找到有关遗传算法和模糊计算等相关知识的文献资料,详细阅读文献,分析文献里与自己课题有关的内容,结合自己的所学知识,从而得出自己对课题设计的思路。然后,对课题进行深入理解,结合文献资料,逐步确定课题中会遇到的问题,再此基础上对那些问题逐个解决,如果遇到不懂的,先查找资料文献,再向他人请教,从而一步步的将课题的功能实现,并最终将它完成。运用Java的面向对象思想将系统实现。面向对象程序设计(OOP)就是使用对象进行程序设计,对象代表现实世界中可以明确标识的一个实体。[6]在windows操作系统平台下,运用Java的相关开发平台,把系统的功能设计出来,然后用Java的相关技术来实现。课题研究中要用到遗传算法来解决参数更新变换的问题,因此,弄清楚遗传算法的思想并将它与Java的有关技术,然后运用到系统的设计过程中,从而体现课题的研究目的。研究难点首先要把课题中需要用到的技术知识弄懂。课题中需要用到遗传算法,把遗传算法中的知识理解清楚是关键。遗传算法中运用到的操作主要有两个:交叉和变异。交叉操作是遗传算法区别于其他所有优化算法的根本所在,如果从一个遗传算法中去掉交叉操作,则其结果将不再是一个遗传算法。[7]这两个操作如何运用以及怎么控制交叉和变异出现的概率很重要。在遗传算法中,理论上,交叉操作出现的概率应远远大于变异操作的概率。交叉操作的概率的想法如下:首先,如果它的区间适应度的中点与优良个体的很接近,那么这个个体的交叉概率是很大的。其次,一个个体的交叉概率会很小如果评估优良个体的区别和评估一个种群的差别很大,这意味着在这些个体中有很大的离散度。最后,随着种群的演化个体的交叉概率会很小。种群演化的目的是确保在后面的演化阶段中算法的收敛。[8]43 编码是遗传算法要解决的首要问题。针对特殊问题,人们提出了其它编码方法。例如:二进制编码,格雷码编码,实数编码,符号编码方法[9]适应度函数的确定也是一个难点。适应度函数的值可以作为染色体优胜劣汰的参照标准,所以,确定适应度函数将对染色体的选择产生重要影响,进而影响到课题的最终结果。遗传算法流程图[10]模型的选择有点比较难确定。本文在研究的过程需要确立两个模型:一个是染色体的模型,另一个是隶属度值模型。一组权值用一条染色体来表示,而一个权值就是染色体中的一小段。在进行交叉变异操作的时候,就是以染色体为单位来进行的。本文中的隶属度值模型是一个三层模型,最底层是本文中研究用的隶属度值,隐层的值是通过隶属度值和权值进行运算后确定的,顶层就是输出层,即输出值。输出值和期望输出值进行比对后,进行权值的优胜劣汰,从而实现遗传算法的思想。交叉操作演示如下:43 交叉结果为:和[11]预期达到的目标通过本系统在遗传算法的基础上可以实现对网站绩效进行综合评价,适当运用遗传算法,来模拟专家的思想,做出接近专家思想的评价。运用人工智能中遗传算法的有关思想,在综合评价中可以体现出与传统评价方法的不同,能够体现出遗传算法的优越性和独特性。运用遗传算法,能够将一些数据的采集和获取简化而不影响研究的质量,并且能获得大量相似的符合研究目的数据。运用模糊计算的和综合评价的有关知识,能够实现对网站绩效的综合评价,能够模拟专家的思想,能够设计出符合专家思想的系统。通过这个系统的设计研究,能够掌握相关的人工智能的知识并运用这些知识来对实际问题进行分析求解。四、论文详细工作进度和安排第七学期第10周至第18周(2011年01月06日前):文献检索和资料收集,完成毕业论文(设计)文献综述、开题报告和外文翻译;第八学期第1周至第3周(2011年03月11日前):撰写论文提纲,完成毕业论文(设计)初稿、需求分析和概要设计;第八学期第4周至第12周(2011年05月13日前):详细设计、系统调试、和毕业论文(设计)完成定稿;第八学期第13周(2011年05月20日前):完成应用软件系统的设计和毕业论文(设计)送指导老师和评阅老师评阅,准备答辩;第八学期第14周:参加毕业论文(设计)答辩。五、主要参考文献:[1]遗传算法在水力管网优化中的应用,张进,王卫敏,荆振锋,赵有民,文章编号:ISSN1005-9180(2010)02-0076-04[2]利用遗传算法进行机械优化,冯锦春杨林建,四川工程职业技术学院学报,2007年第六期[3]遗传算法的原理与应用,李华昌,谢淑兰,易终胜,矿冶,2005年3月第14卷第一期[4]基于模糊综合评价的网上购物行为研究,王媛媛,文年章编号:1672319843 2010,现代商贸工业2010年第17期[5]人工智能研究方法及途径,熊才权,湖北工业大学计算机学院,舰船电子工程2005年3期[6]Java语言程序设计基础篇,(美)Y.DanielLiang著,机械工业出版社2009年7月第一版,168页[7]人工智能及其应用,蔡自兴徐光佑,清华大学出版社,2003年9月第三版,136页[8]DunweiGong.Adaptiveinteractivegeneticalgorithmswithindividualintervalfitness[J].ProgressinNaturalScience.2008(18):359-365[9]遗传算法研究综述,吉根林,计算机应用与软件,2004年2月第21卷第二期[10]一种改进的二进制编码遗传算法研究,赵小冰,王兆霞,白明,李宁宁,汪凯,天津理工大学学报,文章编号:1673095X(2010)04004305,第26卷第4期,2010年8月[11]GeneticAlgorithmsandEvolutionaryComputing,DarrellWhitley,ComputerScienceDepartment,ColoradoStateUniversityFortCollins,CO8052343

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭