前言
本系列文章架构概览:
本文将介绍基本遗传算法在解决优化问题中的应用,通过实验展示其基本原理和实现过程:选取一个简单的二次函数作为优化目标,并利用基本遗传算法寻找其在指定范围内的最大值。
1. 遗传算法(GA)简介
编辑
遗传算法是一种概率搜索算法,它使用达尔文的自然选择原则,并使用在自然发生的遗传操作(如交叉(重组)和突变)之后形成的操作,迭代地将一组数学对象(通常是固定长度的二进制字符串)(通常具有相关的适应度值)转换为一个新的后代对象群体。
1.1 遗传算法vs. 自然
19世纪世界四大学说之一是达尔文的自然选择学说。其主要内容有四点:过度繁殖、生存竞争、遗传和变异、适者生存。
一切生物都具有产生变异的特性,其根本原因是环境条件的改变。在生物产生的各种变异中,有的可以遗传,有的不能够遗传。
在生存斗争中,具有有利变异的个体,容易在生存斗争中获胜而生存下去。反之,具有不利变异的个体,则容易在生存斗争中失败而死亡。这就是说,凡是生存下来的 生物都是适应环境的,而被淘汰的生物都是对环境不适应的,这就是适者生存。达尔文把在生存斗争中,适者生存、不适者被淘汰的过程叫做自然选择。自然选择过程将物种变异定向地向着一个 方向积累,于是性状逐渐和原来的祖先不同了,可以说物种也因此得到优化了。
自然 | GA |
---|---|
环境 | 优化问题 |
个体在环境中生存 | 可行的解决方案 |
个体对周围环境的适应程度 | 解的质量 (适应度函数) |
生物体(物种)的种群 | 一组可行的解决方案 |
自然进化过程中的选择、重组和突变 | 随机运算操作 |
适应环境的种群进化 | 对一组可行解迭代地应用一组随机算子 |
1.2 遗传算法vs. 自然进化
遗传算法思想来源于生物进化过程, 它是基于进化过程中的信息遗传机制和优胜劣汰的自然选择原则的搜索算法(以字符串表示状态空间)。遗传算法用概率搜索过程在该状态空间中搜索,产生新的样本
编辑
2. 基本遗传算法(SGA)
基本遗传算法(Simple Genetic Algorithm : SGA)又称为简单遗传算法,使用选择算子、交叉算子和变异算子这三种基本的遗传算子,操作简单、容易理解,是其它遗传算法的雏形和基础。
基本遗传算法由染色体编码方法、适应度函数和遗传算子三个主要要素组成,下面将对每个要素进行详细说明:
2.1 染色体编码
染色体编码方法指将问题的解空间映射到染色体上的过程。通常采用二进制编码方法,将问题的解表示为一个二进制串。例如,在解决一个优化问题时,可以将每个解编码为一个二进制串,其中每一位代表一个决策变量的取值。除了二进制编码,还可以使用整数编码、浮点数编码或字符编码,根据问题的特性选择合适的编码方法。