欢迎来到天天文库
浏览记录
ID:15567927
大小:179.60 KB
页数:27页
时间:2018-08-04
《蚁群算法 旅行商问题 人工智能 java 代码 报告 注释》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、26目录1.整体结构与功能划分2(一)总体结构2(二)类的划分与功能说明2i.NewJFrame类2ii.Ant类2iii.ACO类2iv.parameter类3v.Data类32.输入输出格式3(一)输入信息3i.城市坐标信息3ii.参数3(二)输出信息3i.图形用户界面输出3ii.控制台输出33.完整代码(见附录)44.算法优化4(一)蚁恒模型4(二)信息素强度及路径信息素初始值4(三)各参数对算法的影响45.运行测试5(一)传统模型5(二)蚁恒模型66.参考文献7附录7(一)NewJFrame.java7(二)Ant.java
2、13(三)ACO.java17(四)Parameter.java23(五)Data.java23(六)NewJFramePath.java24261.整体结构与功能划分(一)总体结构程序的主类是NewJFrame,该类负责绘制图形用户界面并执行蚁群算法。将蚁群算法中的“蚂蚁”抽象为Ant类,实现遍历所有城市(选择下一个城市)、计算本次遍历的路程等功能。ACO类聚合了Ant类,完整的实现了蚁群算法,包括迭代遍历、更新信息素等过程。NewJFramePath类将解路径以图形方式显示出来。另设两个数据类parameter和Data,par
3、ameter类用于保存参数的默认值,主要参数包括:蚂蚁数量、城市数目、迭代次数、α、β、挥发因子、信息素强度Q、路径信息素初始值initQ。Data中存储每个城市的位置信息。(二)类的划分与功能说明i.NewJFrame类定义了各组件对鼠标事件响应方式。图形用户界面为用户提供输入各项参数的窗口,并添加了“使用默认参数”的功能。当用户点击确定按钮,程序将执行jButton_actionPerformed(e)函数。首先读取文本框中参数,初始化ACO类对象,调用ACO类的solve方法开始求解过程。最终结果将以图形化的方式输出到屏幕。输
4、出内容包括:解路径和解路径总长度。ii.Ant类设禁忌表,用于记录已访问过的城市;可访问表,记录未达到的城市。设置信息素变化矩阵,表示一只蚂蚁,在一次遍历中,为经过的路段增加的信息素。距离矩阵存储任意两个城市之间的路程。方法selectNextCity(float[][]pheromone)负责选择下一个城市。首先根据信息素矩阵pheromone计算概率,使用轮盘赌的方法选择下一城市,并更新禁忌表、可访问表以及当前城市。calculateTourLength()方法的功能是计算一次遍历中走过的路程。Ant类中的其他方法用于返回该类的
5、某些属性或对属性进行设置。iii.ACO类ACO类的属性如下图所示:图1ACO类的主要属性26其中ants是Ant类对象,antNum、MAX_GEN、alpha(α)、beta(β)、rho将通过图形界面中用户输入的参数设定。pheromone是信息素矩阵,表示城市与城市之间每一段路程上的信息素含量;bestLength、bestTour分别指最优解的总长度和最优解路径的节点顺序。Init()方法将完成对ACO对象的初始化。首先从Data类中读入每个城市的坐标信息,计算距离矩阵;将信息素矩阵的所有元素初始化为0.1,bestLen
6、gth初始化为正无穷;并按照指定的数目初始化蚁群。solve()方法实现核心求解过程。在每次迭代中,蚂蚁逐个进行城市遍历,所有蚂蚁遍历过一次后,更新信息素矩阵;迭代MAX_GEN次后,得到最优解。updatePheromone()方法用于更新信息素矩阵,用rho计算信息素挥发对信息素总量的影响;累加所有蚂蚁“信息素变化矩阵”的对应值,计算一次迭代后信息素增量。i.parameter类当用户勾选“使用默认”单选框时,将调用parameter中的参数默认值。ii.Data类该类中的data属性是二维数组,每行元素的三个值依次为:城市id
7、、城市横坐标、纵坐标。getdata()方法用于返回某一指定元素的值,即指定城市的横坐标或纵坐标1.输入输出格式(一)输入信息i.城市坐标信息二维数组data中的一行对应一个城市的信息,每行的三个值依次为:城市id、城市横坐标、纵坐标。如:{1,6734,1453}。ii.参数参数主要通过图形界面传入,其中蚂蚁数量、迭代次数为整型;α、β、挥发因子为浮点型。也可以采用默认参数。(二)输出信息i.图形用户界面输出以图形方式输出解路径和解路径总长度。ii.控制台输出输出程序执行进度(如正在执行的模块)、解路径和解路径总长度。261.完整
8、代码(见附录)2.算法优化(一)蚁恒模型本程序原使用传统模型,即:添加蚁恒模型:可以在图形界面中选择使用传统模型或蚁恒模型。(二)信息素强度及路径信息素初始值当蚁群算法求解过程中出现局部最优解,由于正反馈的作用可能导致局部最优解路径上
此文档下载收益归作者所有