- 3
- 0
- 约3.41千字
- 约 8页
- 2016-08-22 发布于重庆
- 举报
遗传算法简单理解
? 遗传算法(Genetic Algorithm)又叫基因进化算法,或进化算法。属于启发式搜索算法一种,这个算法比较有趣,并且弄明白后很简单,写个100-200行代码就可以实现。在某些场合下简单有效。本文就花一些篇幅,尽量白话方式讲解一下。??
?
??? 首先说一下问题。在我们学校数据结构这门功课的时候,时常会有一些比较经典的问题(而且比较复杂问题)作为学习素材,如八皇后,背包问题,染色问题等等。上面列出的几个问题都可以通过遗传算法去解决。本文列举的问题是TSP(Traveling Salesman Problem)类的问题。
?
???? ?TSP问题实际上是”哈密顿回路问题”中的”哈密顿最短回路问题”.如下图,就是要把下面8个城市不重复的全部走一遍。有点像小时候玩的画笔画游戏,一笔到底不能重复。TSP不光是要求全部走一遍,并且是要求路径最短。就是有可能全部走一遍有很多走法,要找出其中总路程最短的走法。?????
?
和这个问题有点相似的是欧拉回路(下图)问题,它不是要求把每个点都走一遍,而是要求把每个边都不重复走一遍(点可以重复),当然欧拉回路不是本算法研究的范畴。
?
本文会从TSP引申出下面系列问题
1、? TSP
2、? 1 到城市8,找一条最短路径。
3、? m个点,要求找出其距离最短的路线。(如果m=N总数,其实就是问题1了,所以问题1可以看成是问题3的特例 )。?
遗传算法的理论是根据达尔文进化论而设计出来的算法: 人类是朝着好的方向(最优解)进化,进化过程中,会自动选择优良基因,淘汰劣等基因。
在上面tsp问题中,一个城市节点可以看成是一个基因,一个最优解就是一条路径,包含若干个点。就类似一条染色体有若干基因组成一样。所以求最短路径问题,可以抽象成求最优染色体的问题。
遗传算法很简单,没有什么分支判断,只有两个大循环,流程大概如下?
?? 流程中有几个关键元素:
?
?
?????? 1、? tsp中,路径越短,分数越高。函数可以可以这样 fitness = 1/total_distance. 或者 fitness = MAX_DISTANCE – total_distance. 不同的计算方法会影响算法的收敛速度,直接影响结果和性能。?
?
?????? 2、? : 又称选择算子。对应着达尔文理论中适者生存,也有地方叫着精英主义原则,意思就是只有优秀的人才有更大的几率存活下来,拥有交配权。有权利拥有更多后代,传承下自己血脉基因。和现实中很相像,皇帝权臣遗留下来的子孙后代比较多。选择方法比较多。最常见的是round robin selection 算法,即轮盘赌算法, 这个算法比较简单有效。选择算法目前已有的有10来种?
?
?????????? 选择公式如下:
??
?
?
//选择运算---轮盘赌,此算法要求不能有负数.?
????int32_t Genetic::Selection(Genome selGenome)
????{
????????//生成一个随机浮点数????????//本算法在轮盘赌算法上加上了选择概率,提高最大可行解入围概率
????????double ftmp = (((random())%100001)/(100000 + 0.0000001));
????????if( ftmp 0.9 )
????????{
????????????GetBestGenome(selGenome);
????????????return ESUCCESS;
????????}
????????//生成一个【0, m_dTotalFitness】之间的随机浮点数
????????double dRange ????= (((random()+ random())%100001)/(100000 + 0.0000001)) * m_dTotalFitness;
????????double dCursor????= 0.0;
????????size_t i???? ????= 0;
????????
????????for(i = 0; i m_vGenome.size(); ++i)
????????{
????????????dCursor += m_vGenome[i].dFitness;
????????????
????????????if (dCursor dRange)
????????????{
????????????????break;
????????????}
????????}
????????selGenome = m_vGenome[i];
????????
?
您可能关注的文档
- 财务报表分析年徐工科技获利能力分析.doc
- 财务报表分析形成性测评.doc
- 财务报表分析秋电大.doc
- 财务报表分析试题(年月).doc
- 诺基亚1520跨RM刷机与救砖教程.docx
- 诺基亚520刷机与固件升级教程.docx
- 财务电脑也能上网不怕中毒也不泄密的方法.doc
- 财务管理-期末复习参考资料.doc
- 诺基亚620变砖修复教程强刷固件降级刷机教程.docx
- 读书笔记亚里士多德《政治学》.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 高等学校中医临床教学基地教学工作水平评估指标体系与标准.pdf
- 2022届高考物理一轮复习图像经典100题.pdf VIP
- 新能源汽车电气技术 配套课件.pptx
- 2025年高考语文备考之300个文言实词汇编(含课内句子).pdf VIP
- DB11∕T2293-2024住宅工程质量品质提升技术标准.pdf VIP
- Marantz马兰士家庭影院 AV 擴音機 SR8012 SR8012 Quick Start Guide English说明书用户手册.pdf
- 人教八上:专题六 无刻度直尺作图(含解析).docx VIP
- 2023年江西省中考语文试卷及答案解析.pdf VIP
- 2025年山东劳动职业技术学院高职单招笔试语文试题库含答案解析(5套共100道单选合辑).docx VIP
- 2025-2026学年七年级英语春季开学第一课 课件:马踏新春,趣学英语(全国通用版).pptx
原创力文档

文档评论(0)