欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 信息管理 > 遗传算法程序设计探讨

遗传算法程序设计探讨

日期:2023-01-24 阅读量:0 所属栏目:信息管理


摘 要 本文通过对基本遗传算法添加初始化启发信息、改进交叉算子和利用本身所固有的并行性构架粗粒度并行遗传算法等方法提高了遗传算法的收敛性及其寻优能力。 关键词 遗传算法;tsp;交叉算子

1 引言

遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化概率搜索算法。总的说来,遗传算法是按不依赖于问题本身的方式去求解问题。它的目标是搜索这个多维、高度非线性空间以找到具有最优适应值(即最小费用的)的点[1]。 基本遗传算法是一个迭代过程,它模仿生物在自然环境中的遗传和进化机理,反复将选择算子、交叉算子和变异算子作用于种群,最终可得到问题的最优解和近似最优解。

2 遗传算法程序设计改进比较

2.1 基本遗传算法对tsp问题解的影响

本文研究的遗传算法及改进算法的实现是以c++语言为基础,在windows2000的版本上运行,其实现程序是在microsoft visual stadio 6.0上编写及运行调试的。 1) 遗传算法的执行代码 p(); //种群的初始化 for(int i=0;idecen||variance>decvar)//m_tsp.m_gen<100) { //将新种群更迭为旧种群,并进行遗传操作 ate(); //将新种群付给旧种群 tion(); //对旧种群进行遗传操作,产生新种群 m_tsp.m_gen++; tics(); //对新产生的种群进行统计 } 2) 简单的遗传算法与分支定界法对tsp问题求解结果的对比 遗传算法在解决npc问题的领域内具有寻找最优解的能力。但随着城市个数的增加,已没有精确解,无法确定遗传算法求解的精度有多高。一般情况下,当迭代代数增大时,解的精度可能高,但是时间开销也会增大。因此可以通过改进遗传算法来提高搜索能力,提高解的精度。
表1 10个城市的tsp问题求解结果数据 算法 试验结果 简单遗传算法 分支定界法 最佳解 时间 精确解 时间 试验1 2448.610037 5s 2448.610037 00:07:30 试验2 2448.610037 13s 试验3 2448.610037 9s 试验4 2459.543054 10s 试验5 2459.543054 7s

2.2 初始化时的启发信息对tsp问题解的影响

1) 初始化启发信息 在上述实验算法的基础上,对每一个初始化的个体的每五个相邻城市用分支界定法寻找最优子路径,然后执行遗传算法。 2) 遗传算法与含有启发信息的遗传算法求解结果的对比 当城市数增至20个时,用分支定界法已经不可能在可以接受的时间内得到精确的解了,只能通过近似算法获得其可接受的解。试验设计中算法的截止条件:固定迭代1000代。表2中的平均最优解为经过多次试验(10次以上)得到的最优解的平均值,最优解的出现时间为最优解出现的平均时间,交叉操作次数为最优解出现时交叉次数的平均值。
表2 20个城市的tsp问题求解结果数据 算法 交叉操作 次数 最优解 出现时间 平均 最优解 简单遗传算法 80244.4 79.4s 1641.8 含初始化启发信息的ga 79000.2 37.4s 1398.9
从表2中可以看出,当初始种群时引入启发信息将提高遗传算法的寻优能力。同时缩短了遗传算法的寻优时间和问题的求解精度。

2.3 交叉算子对tsp问题解的影响

1)循环贪心交叉算子的核心代码 for(i=1;i[2]。
表3 oliver tsp问题的30个城市位置坐标 城市编号 坐标 城市编号 坐标 城市编号 坐标 1 (87,7) 11 (58,69) 21 (4,50) 2 (91,83) 12 (54,62) 22 (13,40) 3 (83,46) 13 (51,67) 23 (18,40) 4 (71,44) 14 (37,84) 24 (24,42) 5 (64,60) 15 (41,94) 25 (25,38) 6 (68,58) 16 (2,99) 26 (41,26) 7 (83,69) 17 (7,64) 27 (45,21) 8 (87,76) 18 (22,60) 28 (44,35) 9 (74,78) 19 (25,62) 29 (58,35) 10 (71,71) 20 (18,54) 30 (62,32) 表4 贪心交叉与部分匹配交叉的比较(oliver tsp问题的30个城市) 交叉算子 交叉操作次数 平均时间 平均最优解 部分匹配交叉 59760 31.2s 517.0 贪心交叉 15774 28.6s 433.4
从表4、图1中可以看到,贪心交叉算子大大提高了遗传算法的寻优能力,同时也降低了交叉操作次数。在多次试验中,贪心交叉算子找到的最优解与目前记载的最佳数据的误差率为2.7%。而部分匹配交叉算子找到的最优解与目前记载的最佳数据的误差率高达7%。从而可以得到交叉算子对于遗传算法

的计算效率和计算结果起主导性作用[3]


图1 遗传算法的收敛过程

2.4 并行遗传算法消息传递实现的核心代码

1)主程序代码 //接收各个从程序的最优个体 for(i=0;imin) { sign=i; min=1/fitness[i]; } } fwrite(&gen,sizeof(int),1,out); for(i=0;i++语言实现了一个解决tsp问题的粗粒度模型的并行遗传算法。该程序采用的是主从式的mpi程序设计,通过从硬盘的文件中读取数据来设置染色体长度、种群的规模、交叉概率和变异概率等参数。试验环境为曙光tc1700机,测试的对象是oliver tsp问题的30个城市的tsp问题。 正如在测试串行遗传算法所提到的数据结果,并行遗传算法也没有达到目前所记录的最好解,但是它提高了算法的收敛性,并行遗传算法的收敛趋势如图2所示[4]。 图2 遗传算法的收敛过程

3 结束语

本文通过对基本遗传算法的不断改进,证明了添加启发信息、改进遗传算子和利用遗传算法固有的并行性都可以提高遗传算法的收敛性,其中对遗传算法交叉算子的改进可以大大提高遗传算法的寻优能力。

参考文献

[1] 刘勇、康立山,陈毓屏著. 非数值并行算法-遗传算法.北京:科学出版社 1995.1 [2] i m oliver d j smith and j r c holland,a study of permutation crossover operators on the traveling salesman[c]// problem of the second international conference on genetic algorithms and their application,erlbaum 1897: 224-230 [3] 于海斌,王浩波,徐心和. 两代竞争遗传算法及其应用研究 .信息与控制,2000 vol.29,no.4:309-314 [4]穆艳玲,李学武,高润泉. 遗传算法解tsp问题的并行实现.北京联合大学学报(自然科学版),2006 vol.20 no.2: 40-43 本文链接:http://www.qk112.com/lwfw/jsjlw/xinxiguanli/259469.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学