众所周知传统的五大类的算法设计是最基础需要掌握的,算法前沿的知识,比如智能优化算法、大数据背景下的算法设计分析和普通的算法设计分析有没有区别,怎么去做。智能优化算法已经演化出很多了,以遗传算法为例,本文从遗传算法的概念、特点、发展历程和应用来介绍。
一、遗传算法概述
1、遗传算法是一种仿照生物的进化的原理,通过选择交叉和变异等操作机制,来完成种群适应性的提高。
2、适应性提高
给种群设置一个适应性设置,适应度函数,在优化问题,做最大最小就可以把最大值和最小值最为适应度函数来设置,适应度函数通常越高越好,如果做神经网络的拟合,拟合的越好,误差越小,认为到学习到更多的知识,所以把学习的更好怎么变为一种度量,Fitness函数误差的导数倒过来,作为它的适应度也是可以的,反正适应度就是描述这个种群在进化过程中它是变好了还是变坏了的一种度量标准,它在不同的问题下有不同的函数,这个函数通常认为成适应度函数。
3、特点
遗传算法可以并行,种群是各自的进行进化,在搜索的时候,各自进行交叉,可以做很好的并行,另外一个具有通用性,提出一个算法不是用于某领域,而是什么领域都可以用,只要是和优化相关;有目标的信息的这种衡量辨准都可使用,可以用于工业上、天气预测上、用在新冠疫情的预测上,只要和优化相关都可以使用,没有任何的背景约束。
(1)四大优点:
- 良好的并行性(操作对象是一组可行解;搜索轨道有多条)
- 强大的通用性(只需利用目标的取值信息,无需梯度等高价值信息)
- 良好的全局优化性和鲁棒性
- 良好的可操作性
(2)两个缺点:
这些都是相对而言的,相对其他算法来说,并不是绝对的慢
4、发展历史
年份 | 贡献者 | 内容 |
---|
1962 | Holland | 程序漫游元胞计算机自适应系统框架 | 1968 | Holland | 模式定理的建立 | 1971 | Hollstein | 具有交配和选择规则的二维函数优化 | 1972 | Bosworth Foo,Zeigler | 提出具有复杂变异、类似于遗传算法的基因操作 | 1972 | Frantz | 位置非线性和倒位操作研究 | 1973 | Holland | 遗传算法中试验的最优配置和双臂强盗问题 | 1973 | Martin | 类似遗传算法的概率算法理论 | 1975 | De Jong | 用于5个测试函数的研究基本遗传短发基准参数 | 1975 | Holland | 出版开创性著作《Adaptation in Natural and Artificial Systems》 |
每一次遗传算法的改进,种群大小有没有最优的一种设置,现在还是做尝试为主,每走一步,每一年都诞生了一些成果,把这个方法变得更加成熟,适用范围更广。
5、应用领域
关于组合优化问题,用动态规划法、贪心方法、回溯法已经解决了一些问题,其实这里面的很多问题都可以变成一个组合优化的问题
(1)函数优化(经典应用) (2)组合优化(旅行商问题——已成为衡量算法优劣的标准、背包问题、装箱问题等) (3)生产调度问题 (4)自动控制(如航空控制系统的优化设计、模糊控制器优化设计和在线修改隶属度函数、人工神经网络结构优化设计和调整人工神经网络的连接权等优化问题) (5)机器人智能控制(如移动机器人路径规划、关节机器人运动轨迹规划、机器人逆运动学求解等) (6)图像处理和模式识别(如图像恢复、图像边缘特征提取、几何形状识别等) (7)机器学习(将GA用于知识获取,构建基于GA的机器学习系统)
此外,遗传算法在人工生命、遗传程序设计、社会和经济领域等方面的应用尽管不是很成熟,但还是取得了一定的成功。在日后,必定有更深入的发展。
二、标准遗传算法
1、遗传算法的生物学基础
- 细胞(Cell)
- 染色体(Chromosome)
- 脱氧核糖核酸(Deoxyribonucleic Acid,DNA)
- 基因(Gene)、等位基因(Allele)
- 基因型(Genotype)
- 表现型(Phenotype)→对环境的适应性
2、标准遗传算法的基本流程
|