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


正在登陆。。。
正在登陆。。。 2022-09-19 16:42:40 51286
分类专栏: 资讯

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、伪代码

  1. Procedure Genetic Algorithm
  2. begin
  3. t = 0 ;
  4. 初始化 P(t) ;
  5. 计算 P(t) 的适应值 ;
  6. while (不满足停止准则) do begin
  7. t = t+1 ;
  8. 从P(t-1)中选择 P(t) ; %selection
  9. 重组 P(t) ; % crossover and mutation
  10. end
  11. 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]

  1. Fitness.m文件
  2. function [sol,eval]=fitness(sol,options)
  3. x=sol(1);
  4. 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]

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=3670
赞同 0
评论 0 条
正在登陆。。。L0
粉丝 0 发表 10 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2672
【软件正版化】软件正版化工作要点  2637
统信UOS试玩黑神话:悟空  2532
信刻光盘安全隔离与信息交换系统  2216
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1092
grub引导程序无法找到指定设备和分区  743
WPS City Talk · 校招西安站来了!  15
看到某国的寻呼机炸了,就问你用某水果手机发抖不?  14
金山办公2024算法挑战赛 | 报名截止日期更新  14
有在找工作的IT人吗?  13
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!