Algorithm之OP:OP之GA遗传算法思路理解相关配图资料(二)

本文涉及的产品
全球加速 GA,每月750个小时 15CU
简介: Algorithm之OP:OP之GA遗传算法思路理解相关配图资料

GA算法代码


1、伪代码


Procedure Genetic Algorithm

begin

   t  =  0  ;

   初始化  P(t)  ;

   计算  P(t)  的适应值  ;

   while  (不满足停止准则)  do begin

       t  =  t+1  ;

       从P(t-1)中选择  P(t)  ;  %selection

       重组  P(t)  ;       % crossover  and  mutation

   end

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]

image.png




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

模拟结果

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

image.png



3、无约束优化问题


image.png


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]


相关文章
|
3天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA遗传优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
该算法结合了遗传算法(GA)与分组卷积神经网络(GroupCNN),利用GA优化GroupCNN的网络结构和超参数,提升时间序列预测精度与效率。遗传算法通过模拟自然选择过程中的选择、交叉和变异操作寻找最优解;分组卷积则有效减少了计算成本和参数数量。本项目使用MATLAB2022A实现,并提供完整代码及视频教程。注意:展示图含水印,完整程序运行无水印。
|
2月前
|
机器学习/深度学习 分布式计算 算法
【算法工程师】成为一名优秀的机器学习算法工程师所需知识及资料汇总-附思维导图
成为一名优秀的机器学习算法工程师所需要具备的技能和知识,包括理论基础、数学能力、编程技能、实践经验以及对特定领域的深入了解,并提供了学习资源和面试准备建议。
80 3
【算法工程师】成为一名优秀的机器学习算法工程师所需知识及资料汇总-附思维导图
|
2月前
|
算法
基于GA-PSO遗传粒子群混合优化算法的CVRP问题求解matlab仿真
本文介绍了一种基于GA-PSO混合优化算法求解带容量限制的车辆路径问题(CVRP)的方法。在MATLAB2022a环境下运行,通过遗传算法的全局搜索与粒子群算法的局部优化能力互补,高效寻找最优解。程序采用自然数编码策略,通过选择、交叉、变异操作及粒子速度和位置更新,不断迭代直至满足终止条件,旨在最小化总行驶距离的同时满足客户需求和车辆载重限制。
|
2月前
|
机器学习/深度学习 算法 网络性能优化
【博士每天一篇文献-算法】A brain-inspired algorithm that mitigates catastrophic forgetting of
本文提出了一种受大脑启发的神经调节辅助信用分配(NACA)算法,该算法通过模拟大脑中的神经调节机制,有效减轻了人工神经网络(ANNs)和脉冲神经网络(SNNs)在学习过程中的灾难性遗忘问题,并具有较低的计算成本。
42 1
|
3月前
|
传感器 机器学习/深度学习 算法
基于GA遗传算法的WSN网络节点覆盖优化matlab仿真
本研究应用遗传优化算法于无线传感器网络(WSN),优化节点布局与数量,以最小化节点使用而最大化网络覆盖率。MATLAB2022a环境下,算法通过选择、交叉与变异操作,逐步改进节点配置,最终输出收敛曲线展现覆盖率、节点数及适应度值变化。无线传感器网络覆盖优化问题通过数学建模,结合遗传算法,实现目标区域有效覆盖与网络寿命延长。算法设计中,采用二进制编码表示节点状态,适应度函数考量覆盖率与连通性,通过选择、交叉和变异策略迭代优化,直至满足终止条件。
|
3月前
|
算法 数据安全/隐私保护
基于GA遗传优化算法的Okumura-Hata信道参数估计算法matlab仿真
在MATLAB 2022a中应用遗传算法进行无线通信优化,无水印仿真展示了算法性能。遗传算法源于Holland的理论,用于全局优化,常见于参数估计,如Okumura-Hata模型的传播损耗参数。该模型适用于150 MHz至1500 MHz的频段。算法流程包括选择、交叉、变异等步骤。MATLAB代码执行迭代,计算目标值,更新种群,并计算均方根误差(RMSE)以评估拟合质量。最终结果比较了优化前后的RMSE并显示了SNR估计值。
55 7
|
4月前
|
算法
基于GA遗传优化的混合发电系统优化配置算法matlab仿真
**摘要:** 该研究利用遗传算法(GA)对混合发电系统进行优化配置,旨在最小化风能、太阳能及电池储能的成本并提升系统性能。MATLAB 2022a用于实现这一算法。仿真结果展示了一系列图表,包括总成本随代数变化、最佳适应度随代数变化,以及不同数据的分布情况,如负荷、风速、太阳辐射、弃电、缺电和电池状态等。此外,代码示例展示了如何运用GA求解,并绘制了发电单元的功率输出和年变化。该系统原理基于GA的自然选择和遗传原理,通过染色体编码、初始种群生成、适应度函数、选择、交叉和变异操作来寻找最优容量配置,以平衡成本、效率和可靠性。
|
3月前
|
机器学习/深度学习 数据采集 算法
Python实现GA(遗传算法)对SVM分类模型参数的优化
Python实现GA(遗传算法)对SVM分类模型参数的优化
103 0
|
4月前
|
算法
m基于GA遗传优化的高斯白噪声信道SNR估计算法matlab仿真
**MATLAB2022a模拟展示了遗传算法在AWGN信道中估计SNR的效能。该算法利用生物进化原理全局寻优,解决通信系统中复杂环境下的SNR估计问题。核心代码执行多代选择、重组和突变操作,逐步优化SNR估计。结果以图形形式对比了真实SNR与估计值,并显示了均方根误差(RMSE),体现了算法的准确性。**
51 0
|
2天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真
### 算法简介 1. **算法运行效果图预览**:展示算法效果,完整程序运行后无水印。 2. **算法运行软件版本**:Matlab 2017b。 3. **部分核心程序**:完整版代码包含中文注释及操作步骤视频。 4. **算法理论概述**: - **MSER**:用于检测显著区域,提取图像中稳定区域,适用于光照变化下的交通标志检测。 - **HOG特征提取**:通过计算图像小区域的梯度直方图捕捉局部纹理信息,用于物体检测。 - **SVM**:寻找最大化间隔的超平面以分类样本。 整个算法流程图见下图。