1、第4章 遗传算法,4.1 基本概念 4.2 选择算子 4.3 交叉算子 4.4 变异算子4.5 基本遗传算法 4.6 基本实现技术4.7 遗传算法应用,第4章 遗传算法,生物进化自然法则优胜劣汰适者生存有性繁殖基因通过有性繁殖不断进行混合和重组遗传算法从生物界按照自然选择和有性繁殖、遗传变异的自然进化现象中得到启发,而设计的一种优化搜索算法,第4章 遗传算法,应用函数优化组合优化:旅行商、图形化分生产调度:车间调度、生产规划自动控制:控制器、参数辨识机器人智能控制:机器人路径规划、运动轨迹规划图像处理与模式识别:特征提取、图像分割人工生命:进化模型、学习模型、行为模型遗传程序设计机器学习,4.
2、1 基本概念,个体个体就是模拟生物个体而对问题中的对象(一般就是问题的解)的一种称呼一个个体也就是搜索空间中的一个点种群 种群(population)就是模拟生物种群而由若 干个体组成的群体它一般是整个搜索空间的一个很小的子集通过对种群实施遗传操作,使其不断更新换代而实现对整个论域空间的搜索,4.1 基本概念,适应度(fitness)借鉴生物个体对环境的适应程度,而对问题中的个体对象所设计的表征其优劣的一种测度适应度函数(fitness function)问题中的全体个体与其适应度之间的一个对应关系一般是一个实值函数该函数就是遗传算法中指导搜索的评价函数,4.1 基本概念,染色体(chromo
3、some)染色体是由若干基因组成的位串(生物学)个体对象由若干字符串组成来表示(遗传算法)遗传算法(genetic algorithm)染色体就是问题中个体的某种字符串形式的编码表示染色体以字符串来表示基因是字符串中的一个个字符,个体 染色体 9 - 1001 (2,5,6)- 010 101 110,4.1 基本概念,遗传算子(genetic operator)选择(selection)交叉(crossover)变异(mutation),4.2 选择算子,选择算子模拟生物界优胜劣汰的自然选择法则的一种染色体运算从种群中选择适应度较高的染色体进行复制,以生成下一代种群算法:个体适应度计算在被选
4、集中每个个体具有一个选择概率选择概率取决于种群中个体的适应度及其分布个体适应度计算,即个体选择概率计算个体选择方法按照适应度进行父代个体的选择,4.2 选择算子,个体适应度计算按比例的适应度计算(proportional fitness assignment)基于排序的适应度计算(rank-based fitness assignment)个体选择方法轮盘赌选择(roulette wheel selection)随机遍历抽样(stochastic universal sampling)局部选择(local selection)截断选择(truncation selection)锦标赛选择(to
5、urnament selection),4.2.1 按比例的适应度计算,算法: 对一个规模为N的种群S,按每个染色体xiS的选择概率P(xi)所决定的选中机会,分N次从S中随机选择N个染色体,并进行复制 其中:f为适应度函数f(xi)为xi的适应度,优胜劣汰概率越高,随机选中概率越大概率越高,选中次数越多适应度高的染色体后代越多,4.2.3 轮盘赌选择,原理:做一个单位圆,然后按各个染色体的选择概率将圆面划分为相应的扇形区域转动轮盘,轮盘静止时指针指向某一扇区,即为选中扇区,相应的个体/染色体即被选中,4.2.3 轮盘赌选择,算法:在0, 1区间,产生一个均匀分布的伪随机数r若rq1,则染色体
6、1被选中若qk-10)指数比例法:g(x) = exp(a f(x) (a0)幂指数比例法:g(x) = (f(x)a (a为偶数),4.7 算法举例,例7.1 利用遗传算法求解区间0,31上的二次函数y=x2的最大值分析原问题转化为0,31中寻找能使y取最大值的点x区间0,31为论域空间/解空间x为个体对象函数f(x)= x2 可作为适应度函数,4.7 算法举例,解:定义适应度函数,编码染色体适应度函数取f(x)= x2 用5位二进制数作为个体x的基因型编码/染色体设定种群规模,产生初始种群种群规模N=4初始种群S=s1=01101(13),s2=11000(24), s3=01000(8)
7、, s4=10011(19),4.7 算法举例,计算各代种群中各染色体的适应度,并进行遗传操作 选择设从区间0,1产生4个随机数r1=0.45, r2=0.11, r3=0.57, r4=0.98按轮盘赌选择法,染色体s1,s2,s3,s4依次选中次数为1,2,0,1选择产生种群S1=s1=11000(24),s2=01101(13), s3=11000(24), s4=10011(19),4.7 算法举例,交叉设交叉率Pc=100%,即S1全部染色体参与交叉将s1与s2配对,s3与s4配对,交换后两位基因新种群S2=s1=11001(25),s2=01100(12), s3=11011(27
8、),s4=10000(16)变异设变异率Pm=0.001种群变异基因位数: Pm*L*N=0.001*5*4=0.020.02不足1,本轮不做变异-第一代遗传操作完成-第二代种群S=s1=11001(25),s2=01100(12), s3=11011(27),s4=10000(16),4.7 算法举例,选择设从区间0,1产生4个随机数r1=0.25, r2=0.41, r3=0.77, r4=0.98按轮盘赌选择法,染色体s1,s2,s3,s4依次选中次数为1,1,1,1选择产生种群S1=s1=11001(25),s2=01100(12), s3=11011(27), s4=10000(16
9、),4.7 算法举例,交叉将s1与s2配对,s3与s4配对,交换后三位基因新种群S2=s1=11100(28),s2=01001(9), s3=11000(24),s4=10011(19)变异种群变异基因位数: Pm*L*N=0.001*5*4=0.020.02不足1,本轮不做变异-第二代遗传操作完成-第三代种群S=s1=11100(28),s2=01001(9), s3=11000(24),s4=10011(19),4.7 算法举例,选择设从区间0,1产生4个随机数r1=0.25, r2=0.41, r3=0.77, r4=0.98按轮盘赌选择法,染色体s1,s2,s3,s4依次选中次数为2
10、,0,1,1选择产生种群S1=s1=11100(28),s2=11100(28), s3=11000(24), s4=10011(19),4.7 算法举例,交叉将s1与s4配对,s2与s3配对,交换后两位基因新种群S2=s1=11111(31),s2=11100(28), s3=11000(24),s4=10000(16)变异种群变异基因位数: Pm*L*N=0.001*5*4=0.020.02不足1,本轮不做变异-第三代遗传操作完成-第四代种群S=s1=11111(31),s2=11100(28), s3=11000(24),s4=10000(16),4.7 算法举例,在这一代种群中已经出现
11、了适应度最高的染色体s1=11111。遗传操作终止,将染色体“11111”作为最终结果输出。将染色体“11111”解码为表现型,得所求最优解:31将31代入函数y=x2中,即得原问题的解,即函数y=x2的最大值为961,4.7 算法举例,Y,小结,遗传算法模拟自然选择和有性繁殖、遗传变异的自然原理实现优化搜索和问题求解遗传操作选择算子交叉算子变异算子,小结,特点直接对结构对象操作,不存在求导和函数连续性的限定;遗传算法不是从单个点,而是从一个点地群体开始搜索;具有内在的隐并行性和较好的全局寻优能力;采用概率化寻优方法,能自动获取搜索过程中的有关知识并用于指导优化,自适应地调整搜索方向,不需要确定地规则;鲁棒性,小结,算法比较,参考书目,遗传算法:理论、应用与软件实现,王小平,曹立明著,西安交通大学出版社,2002.1 遗传算法与工程优化,玄光男,程润伟著 ,清华大学出版社,2004.1,