Optimality之GA遗传算法思路理解相关配图资料

目录

GA遗传算法思路理解

GA算法过程

1、总体思路

2、各个步骤

GA算法代码

1、伪代码

SGA实例讲解

1、求函数最值

2、求连续函数的最值

Matlab的实现之GAOT工具箱


GA遗传算法思路理解

遗传算法Genetic Algorithm

GA算法过程

1、总体思路

2、各个步骤

(1)、编码

(2)、选择

(3)、变异

T3、循环交叉CX

GA算法代码

1、伪代码

Procedure Genetic Algorithmbegint  =  0  ;初始化  P(t)  ;计算  P(t)  的适应值  ;while  (不满足停止准则)  do begint  =  t+1  ; 从P(t-1)中选择  P(t)  ;  %selection重组  P(t)  ;           % crossover  and  mutationend
end

SGA实例讲解

1、求函数最值

求函数f(x)=x^2的最大值,x为自然数且0≤x≤31。

编码

编码方式:二进制码
    00000 ↔ 0;    01101 ↔    13;  11111 ↔ 31

随机初始群体 种群规模:4
 
  “转盘赌”选择
一点杂交,二进制变异
 

2、求连续函数的最值

求f ( x) = x sin(10π x) + 2.0  x ∈ [−1, 2]

Fitness.m文件
function [sol,eval]=fitness(sol,options) x=sol(1);eval = x*sin(10*pi*x)+2.0;
编码

实数问题:变量x为实数,如何把z∈[x,y] → {a1,…,aL} ∈{0,1}L

{a1,…,aL} ∈{0,1}L 必须可逆(一个表现型对应一个基因型) .

解码算子:Γ: {0,1}L  → [x,y]

染色体长度L决定可行解的最大精度。高精度  ⇄  长染色体(慢进化)

设定求解精确到6位小数,因区间长度位2-(-1)=3,则需将区间分为 3X106等份。因 2097152=221< 3X106≤222=4194304。故编码 的二进制串长L=22。

比如:
<0000000000000000000000>    ↔ -1;
<1111111111111111111111>          ↔ 2
<1110000000111111000101>       ↔ 1.627 888
1.627888 = -1+3x(1110000000111111000101) 2 /(222-1) = -1+3x3674053/(222-1)

随机初始化种群  

适应度评估

适应函数

本实例目标函数在定义域内均大于0,且是求函数最大值, 故直接引用目标函数作为适应函数:

f(s) = f(x) 其中二进制串s对于变量x的值。

s1 =<0000001110000000010000> ↔ x1= -0.958 973       适应值: f(s1) = f(x1) =1.078 878

s2=<1110000000111111000101>    ↔ x2= 1.627 888       适应值: f(s2) = f(x2) = 3.250 650

 

选择操作(“轮盘赌”选择)

交叉操作(单点交叉)

交叉前(父):

s1=<00000 | 01110000000010000>

s2=<11100 | 00000111111000101>

交叉后(子):

s’1=<00000 | 00000111111000101>

s’2=<11100 | 01110000000010000>

适应值:

f(s’1) = f(-0.998 113) =1.940 865

f(s’2) = f(1.666 028) = 3.459 245

s’2的适应值比其双亲个体的适应值高。

遗传算法的参数

种群规模: 50
染色体长度: L=22
最大进化代数: 150
交叉概率: Pc=0.25
变异概率: Pm=0.01

模拟结果

模拟结果(最佳个体进化情况)

3、无约束优化问题

GA编码

X=(x1,x2,…,xn)的各个变量可以按二进制编码方法分别编码。

对于变量xi 的上、下限约束li≤xi ≤ ui(i=1,2,…,n),依据解的精度要求(有效位数) 求得各个变量X=(x1,x2,…,xn)的二进制码位数(m1,m2,…,mn),确定方法 类似于SGA实例2,

因此将n个二进制位串顺序连接起来,构成一个个 体的染色体编码,编码的总位数m=m1+m2+…+mn。

GA解码

解码时仍按各个变量的编码顺序分别实现常规的二进制编码解码方法。

4、约束最优化问题

Matlab的实现之GAOT工具箱

1、核心函数:
(1) [pop]=initializega(num,bounds,eevalFN,eevalOps,options)-----初始种群的 生成函数
【输出参数】
pop-----生成的初始种群
【输入参数】
num-----种群中的个体数目
bounds-----代表变量的上下界的矩阵 eevalFN-----适应度函数
eevalOps-----传递给适应度函数的参数
options-----选择编码形式(浮点编码或是二进制编码)与精度,如 [type prec], type-----为1时选择浮点编码,否则为二进制编码
prec-----变量进行二进制编码时指定的精度,默认[1e-6 1]

(2) [x,endPop,bPop,traceInfo] =ga(bounds,evalFN,evalOps,startPop,opts,termFN,termOps,selectFN,…
selectOps,xOverFNs,xOverOps,mutFNs,mutOps)
-------遗传算法函数
  【输出参数】
x------求得的最优解
endPop------最终得到的种群
bPop------最优种群的一个搜索轨迹
traceInfo------每代种群中最优及平均个体构成的矩阵
  【输入参数】
bounds------代表变量上下界的矩阵 evalFN------适应度函数
evalOps------传递给适应度函数的参数 startPop------初始种群

【输入参数】
opts------- [epsilon prob_ops display],opts(1:2)等同于initializega的 options参数,第三个参数控制是否输出,一般为0。如[1e-6 1 0]
termFN-------终止函数的名称,如['maxGenTerm']
termOps-------传递个终止函数的参数,如[100] selectFN-------选择函数的名称,如['normGeomSelect'] selectOps-------传递个选择函数的参数,如[0.08]
xOverFNs-------交叉函数名称表,以空格分开,如['arithXover heuristicXover simpleXover']
xOverOps-------传递给交叉函数的参数表,如[2 0;2 3;2 0] mutFNs-------变异函数表,如['boundaryMutation
multiNonUnifMutation nonUnifMutation unifMutation']
mutOps-------传递给交叉函数的参数表,如[4 0 0;6 100 3;4 100 3;4 0 0]

Algorithm之OP:OP之GA遗传算法思路理解相关配图资料相关推荐

  1. GA遗传算法及相关代码

    GA遗传算法解决TSP问题 Matlab函数 随机数生成函数: rand(n,1):返回n个0到1随机数排列的列向量. randn(n,1):类似,服从标准正态分布. randperm(n):返回n以 ...

  2. Matlab:基于Matlab实现人工智能算法应用的简介(SVM支撑向量机GA遗传算法PSO粒子群优化算法)、案例应用之详细攻略

    Matlab:基于Matlab实现人工智能算法应用的简介(SVM支撑向量机&GA遗传算法&PSO粒子群优化算法).案例应用之详细攻略 目录 1.SVM算法使用案例 1.1.Libsvm ...

  3. ML与Optimality:最优化理论(GD随机梯度下降/QN拟牛顿法/CG共轭梯度法/L-BFGS/TR置信域/GA遗传算法/SA模拟退火算法)在机器学习中的简介、常用方法、案例应用之详细攻略

    ML与Optimality:最优化理论(GD随机梯度下降/QN拟牛顿法/CG共轭梯度法/L-BFGS/TR置信域/GA遗传算法/SA模拟退火算法)在机器学习中的简介.常用方法.案例应用之详细攻略 目录 ...

  4. CORS跨域实现思路及相关解决方案

    CORS跨域实现思路及相关解决方案 参考文章: (1)CORS跨域实现思路及相关解决方案 (2)https://www.cnblogs.com/safoie/p/10547788.html 备忘一下.

  5. ML之XGBoost:XGBoost算法模型(相关配图)的简介(XGBoost并行处理)、关键思路、代码实现(目标函数/评价函数)、安装、使用方法、案例应用之详细攻略

    ML之XGBoost:XGBoost算法模型(相关配图)的简介.关键思路.代码实现(目标函数/评价函数).安装.使用方法.案例应用之详细攻略 目录 XGBoost算法模型(相关配图)的简介 1.XGB ...

  6. ML之Clustering之LPA:LPA算法主要思路、输出结果、代码实现等相关配图之详细攻略

    ML之Clustering之LPA:LPA算法主要思路.输出结果.代码实现等相关配图之详细攻略 目录 LPA算法的主要思路 LPA算法的输出结果 LPA算法的代码实现 LPA算法的主要思路 更新-- ...

  7. ML之Clustering之普聚类算法:普聚类算法的相关论文、主要思路、关键步骤、代码实现等相关配图之详细攻略

    ML之Clustering之普聚类算法:普聚类算法的相关论文.主要思路.关键步骤.代码实现等相关配图之详细攻略 目录 普聚类算法的相关论文 普聚类算法的主要思路 普聚类算法的关键步骤 普聚类算法的代码 ...

  8. ML之Clustering之H-clustering:Hierarchical clustering算法相关论文、主要思路、关键步骤、代码实现等相关配图之详细攻略

    ML之Clustering之H-clustering:Hierarchical clustering算法相关论文.主要思路.关键步骤.代码实现等相关配图之详细攻略 目录 H-clustering算法相 ...

  9. CV之Image Caption:Image Caption算法的相关论文、设计思路、关键步骤相关配图之详细攻略

    CV之Image Caption:Image Caption算法的相关论文.设计思路.关键步骤相关配图之详细攻略 目录 IC算法的相关论文 1.<Show and Tell: A Neural ...

最新文章

  1. view5.3登录桌面提示当前可用桌面资源不足
  2. fMRI在认知心理学上的研究
  3. 回调函数和闭包的理解
  4. 【风险管理】信贷核心业务流程
  5. 【攻防世界008】answer_to_everything
  6. time,gettimeofday,clock_gettime,_ftime
  7. Intellij IDEA 那些隐藏好用的小技巧
  8. 注意力机制可视化_目标跟踪中的(STAM)时空注意力机制
  9. java集合AbstractMap_Java 集合中的 AbstractMap 抽象类
  10. oracle排名怎么去除空值影响,Oracle排序中常用的NULL值处理方法
  11. GitHub的基础使用入门
  12. wangeditor上传html,自定义上传事件
  13. eks volumn s3_云顶棋弈研习社 游玩S3赛季 PBE注册、下载与汉化教程
  14. xp系统突然上不了网【解决方案】
  15. win10下pycharm+Qtdesigner+Pyqt 成功配置
  16. 被迷惑了,两个不相关的文件也有相同的地方
  17. 由_exit()引起的对于缓冲区的理解
  18. Alexa | Alexa Auto SDK 概述
  19. 正整数变成英文输出c语言,C语言,输入一个正整数,然后从个位开始一次输出每一位数字对应的英文字母...
  20. python创始人国籍_2018年4月TIOBE排行榜前10的编程语言创始人

热门文章

  1. 中文分词算法python代码_python实现中文分词FMM算法实例
  2. python类介绍说明_python 中类
  3. hashmap::begin() 坑
  4. grub光盘修复,硬盘修复
  5. 正则 ?= 和 ?= 用法 以及零宽断言等概念
  6. 比原链Bytom错误码一览
  7. 希捷推2TB 2.5英寸SSHD和5TB 2.5英寸机械硬盘
  8. 汉字内码UNICODE转换表
  9. Angular 2/Ionic 2 @input和@output理解
  10. Dos中@符号的使用演示(屏蔽echo off的回显)