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]


相关文章
|
1月前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a实现时间序列预测,采用CNN-GRU-SAM网络结构。卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征。完整代码含中文注释和操作视频,运行效果无水印展示。算法通过数据归一化、种群初始化、适应度计算、个体更新等步骤优化网络参数,最终输出预测结果。适用于金融市场、气象预报等领域。
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
|
2月前
|
机器学习/深度学习 算法 索引
单目标问题的烟花优化算法求解matlab仿真,对比PSO和GA
本项目使用FW烟花优化算法求解单目标问题,并在MATLAB2022A中实现仿真,对比PSO和GA的性能。核心代码展示了适应度计算、火花生成及位置约束等关键步骤。最终通过收敛曲线对比三种算法的优化效果。烟花优化算法模拟烟花爆炸过程,探索搜索空间,寻找全局最优解,适用于复杂非线性问题。PSO和GA则分别适合快速收敛和大解空间的问题。参数调整和算法特性分析显示了各自的优势与局限。
174 11
|
2月前
|
算法
基于GA遗传算法的PID控制器参数优化matlab建模与仿真
本项目基于遗传算法(GA)优化PID控制器参数,通过空间状态方程构建控制对象,自定义GA的选择、交叉、变异过程,以提高PID控制性能。与使用通用GA工具箱相比,此方法更灵活、针对性强。MATLAB2022A环境下测试,展示了GA优化前后PID控制效果的显著差异。核心代码实现了遗传算法的迭代优化过程,最终通过适应度函数评估并选择了最优PID参数,显著提升了系统响应速度和稳定性。
268 15
|
1月前
|
传感器 算法
基于GA遗传优化的WSN网络最优节点部署算法matlab仿真
本项目基于遗传算法(GA)优化无线传感器网络(WSN)的节点部署,旨在通过最少的节点数量实现最大覆盖。使用MATLAB2022A进行仿真,展示了不同初始节点数量(15、25、40)下的优化结果。核心程序实现了最佳解获取、节点部署绘制及适应度变化曲线展示。遗传算法通过初始化、选择、交叉和变异步骤,逐步优化节点位置配置,最终达到最优覆盖率。
|
4月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA遗传优化的GroupCNN分组卷积网络时间序列预测算法matlab仿真
该算法结合了遗传算法(GA)与分组卷积神经网络(GroupCNN),利用GA优化GroupCNN的网络结构和超参数,提升时间序列预测精度与效率。遗传算法通过模拟自然选择过程中的选择、交叉和变异操作寻找最优解;分组卷积则有效减少了计算成本和参数数量。本项目使用MATLAB2022A实现,并提供完整代码及视频教程。注意:展示图含水印,完整程序运行无水印。
|
3月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA-PSO-SVM算法的混沌背景下微弱信号检测matlab仿真
本项目基于MATLAB 2022a,展示了SVM、PSO、GA-PSO-SVM在混沌背景下微弱信号检测中的性能对比。核心程序包含详细中文注释和操作步骤视频。GA-PSO-SVM算法通过遗传算法和粒子群优化算法优化SVM参数,提高信号检测的准确性和鲁棒性,尤其适用于低信噪比环境。
|
4月前
|
算法 决策智能
基于GA-PSO遗传粒子群混合优化算法的TSP问题求解matlab仿真
本文介绍了基于GA-PSO遗传粒子群混合优化算法解决旅行商问题(TSP)的方法。TSP旨在寻找访问一系列城市并返回起点的最短路径,属于NP难问题。文中详细阐述了遗传算法(GA)和粒子群优化算法(PSO)的基本原理及其在TSP中的应用,展示了如何通过编码、选择、交叉、变异及速度和位置更新等操作优化路径。算法在MATLAB2022a上实现,实验结果表明该方法能有效提高求解效率和解的质量。
|
6月前
|
机器学习/深度学习 分布式计算 算法
【算法工程师】成为一名优秀的机器学习算法工程师所需知识及资料汇总-附思维导图
成为一名优秀的机器学习算法工程师所需要具备的技能和知识,包括理论基础、数学能力、编程技能、实践经验以及对特定领域的深入了解,并提供了学习资源和面试准备建议。
195 3
【算法工程师】成为一名优秀的机器学习算法工程师所需知识及资料汇总-附思维导图
|
6月前
|
算法
基于GA-PSO遗传粒子群混合优化算法的CVRP问题求解matlab仿真
本文介绍了一种基于GA-PSO混合优化算法求解带容量限制的车辆路径问题(CVRP)的方法。在MATLAB2022a环境下运行,通过遗传算法的全局搜索与粒子群算法的局部优化能力互补,高效寻找最优解。程序采用自然数编码策略,通过选择、交叉、变异操作及粒子速度和位置更新,不断迭代直至满足终止条件,旨在最小化总行驶距离的同时满足客户需求和车辆载重限制。
|
6月前
|
机器学习/深度学习 算法 网络性能优化
【博士每天一篇文献-算法】A brain-inspired algorithm that mitigates catastrophic forgetting of
本文提出了一种受大脑启发的神经调节辅助信用分配(NACA)算法,该算法通过模拟大脑中的神经调节机制,有效减轻了人工神经网络(ANNs)和脉冲神经网络(SNNs)在学习过程中的灾难性遗忘问题,并具有较低的计算成本。
75 1

热门文章

最新文章