遗传算法初探

news/2025/2/24 14:04:32

组成要素

编码

分为二进制编码、实数编码和顺序编码

初始种群的产生

分为随机方法、基于反向学习优化的种群产生。
基于反向学习优化的种群其思想是先随机生成一个种群P(N),然后按照反向学习方法生成新的种群OP(N),合并两个种群,得到一个新的种群S(N),对S(N)按适应度排序,选择适应度最高的N个个体作为初始种群。

适应度函数的设计

f ( x ) f(x) f(x)表示目标函数, F ( x ) F(x) F(x)为适应度函数
线性关系为 F ( x ) = a f ( x ) + b F(x)=af(x) + b F(x)=af(x)+b
幂律关系为 F = f a F=f^a F=fa
对数关系为 F ( x ) = a ∗ l n f ( x ) + b F(x)=a*lnf(x) + b F(x)=alnf(x)+b
指数关系为 F ( x ) = a ∗ e b f ( x ) + c F(x)=a*e^{bf(x)} + c F(x)=aebf(x)+c

选择策略

对于个体i,其适应度为 F i F_i Fi,假定规模为n,则个体被选中的概率为 P i = F i ∑ i = 1 n F i P_i=\frac{F_i}{\sum_{i = 1}^n{F_i}} Pi=i=1nFiFi

遗传操作

有交叉和变异两种运算。
其中交叉分为有:单点交叉,双点交叉,单形杂交,球形杂交
变异有:按位变异,高斯变异,有向变异

停止条件

设置最大迭代次数或者适应值函数评估次数,也可以规定的搜索精度

算法流程

N
Y
开始
初始种群
是否满足停止条件
评价个体
输出结构
选择
遗传操作
产生新种群
结束

数据原理

称为模式定理
模式的原始长度 L ( H ) L(H) L(H):模板中总的基因位数
模板的定义矩 δ ( H ) \delta(H) δ(H):模板中从左到右第一个确定字符与最后一个确定字符的距离
模板的阶数 o ( H ) o(H) o(H):模板中确定字符的个数
模板的容量 D ( H ) D(H) D(H):模板包含字符串的个数,对于二进制编码来说, D ( H ) = 2 L ( H ) − O ( H ) D(H)= 2^{L(H)-O(H)} D(H)=2L(H)O(H)
设第(t+1)代种群 P ( t + 1 ) P(t+1) P(t+1)含有H中元素个数的期望值为 E ( H ⋂ P ( t + 1 ) ) E(H\bigcap P(t+1)) E(HP(t+1)),l为种群P(t)中个体和串长,在只有选择操作情况下时
E ( H ⋂ P ( t + 1 ) ) = ∣ H ⋂ P ( t ) ∣ ⋅ N ⋅ f ( H , t ) F ( t ) = ∣ H ⋂ P ( t ) ∣ ⋅ f ( H , t ) F ˉ ( t ) E(H\bigcap P(t+1))=|H\bigcap P(t)| \cdot N \cdot \frac{f(H,t)}{F(t)} = |H\bigcap P(t)| \cdot \frac{f(H, t)}{\bar{F}(t)} E(HP(t+1))=HP(t)NF(t)f(H,t)=HP(t)Fˉ(t)f(H,t)
在考虑杂交概率情况下 p c p_c pc时,期望值为
E ( H ⋂ P ( t + 1 ) ) = ∣ H ⋂ P ( t ) ∣ ⋅ f ( H , t ) F ˉ ( t ) ⋅ ( 1 − p c ⋅ δ ( H ) l − 1 ) E(H\bigcap P(t+1))= |H\bigcap P(t)| \cdot \frac{f(H, t)}{\bar{F}(t)} \cdot (1 - p_c \cdot \frac{\delta (H)}{l - 1}) E(HP(t+1))=HP(t)Fˉ(t)f(H,t)(1pcl1δ(H))
在考虑变异概率情况下 p m p_m pm时,期望值为 E ( H ⋂ P ( t + 1 ) ) = ∣ H ⋂ P ( t ) ∣ ⋅ f ( H , t ) F ˉ ( t ) ⋅ ( 1 − p c ⋅ δ ( H ) l − 1 ) ⋅ ( 1 − p m ) o ( H ) E(H\bigcap P(t+1))= |H\bigcap P(t)| \cdot \frac{f(H, t)}{\bar{F}(t)} \cdot (1 - p_c \cdot \frac{\delta (H)}{l - 1}) \cdot (1 - p_m)^{o(H)} E(HP(t+1))=HP(t)Fˉ(t)f(H,t)(1pcl1δ(H))(1pm)o(H)

非线性约束优化

min ⁡ f ( x ) s.t. g i ( x ) ≤ 0 , i = 1 , 2 , … , m h j ( x ) = 0 , j = 1 , 2 , … , p \begin{equation} \begin{aligned} \min & \quad f(x) \\ \text{s.t.} \quad & g_i(x) \le 0, \quad i = 1, 2, \ldots, m \\ & h_j(x) = 0, \quad j=1,2,\ldots, p \end{aligned} \end{equation} mins.t.f(x)gi(x)0,i=1,2,,mhj(x)=0,j=1,2,,p
其中 x = [ x 1 , x 2 , … , x n ] x=[x_1, x_2, \ldots, x_n] x=[x1,x2,,xn]
选择策略有

  • 约束违背的度数
    p ( x ) = ∑ i = 1 m + p q i ( x ) 2 q j ( x ) = { m a x ( 0 , g j ( x ) ) , 1 ≤ j ≤ m ∣ h j ( x ) ∣ , 1 ≤ j ≤ p p(x)=\sum_{i=1}^{m+p} {q_i(x)^2} \\ \begin{equation} q_j(x)=\left\{ \begin{aligned} & max(0, g_j(x)), \quad 1 \le j \le m \\ & |h_j(x)|, \quad 1 \le j \le p \end{aligned} \right. \end{equation} p(x)=i=1m+pqi(x)2qj(x)={max(0,gj(x)),1jmhj(x),1jp
  • 约束违背的数目
    s ( x ) = ∑ j = 1 m + p n u m j ( x ) n u m ( x ) = { 0 , q j ( x ) ≤ 0 1 , 其他 s(x)=\sum_{j=1}^{m+p} {num_j(x)} \\ \begin{equation} num(x)=\left\{ \begin{aligned} & 0, \quad q_j(x) \le 0 \\ & 1,其他 \end{aligned} \right. \end{equation} s(x)=j=1m+pnumj(x)num(x)={0,qj(x)01,其他
    个体的特征向量表达为
    v ( x ) = ( f ( x ) , p ( x ) , s ( x ) ) v(x)=(f(x), p(x), s(x)) v(x)=(f(x),p(x),s(x))

http://www.niftyadmin.cn/n/5864439.html

相关文章

NebulaAI - 企业级 AI Agent 构建平台

NebulaAI 是什么 行云创新的 NebulaAI 是一款专为企业打造的 AI 应用开发平台,旨在通过自然语言交互和云原生技术,帮助企业实现智能化转型。 NebulaAI 核心功能 NebulaAI 的核心功能包括: 自然语言交互:用户可以通过语音或文本…

Ollama API 交互

Ollama 提供了基于 HTTP 的 API,允许开发者通过编程方式与模型进行交互。 本文将详细介绍 Ollama API 的详细使用方法,包括请求格式、响应格式以及示例代码。 1. 启动 Ollama 服务 在使用 API 之前,需要确保 Ollama 服务正在运行。可以通过…

【每日八股】Redis篇(二):数据结构

Redis 数据类型? 主要有 STRING、LIST、ZSET、SET 和 HASH。 STRING String 类型底层的数据结构实现主要是 SDS(简单动态字符串),其主要应用场景包括: 缓存对象:可以用 STRING 缓存整个对象的 JSON&…

CSS中伪类选择器

作用:选中特殊状态的元素 如何理解"伪"?--虚假的,不真实的 如何理解"伪类"?--像类(class),但是不是类,是元素的一种特殊的状态. 一.动态伪类选择器 1. :link 超链接未被访问的状态; 2. :visited 超链接访问过的状态; 3. :hover 鼠标悬停在元素…

ESP32S3:解决RWDT无法触发中断问题,二次开发者怎么才能使用内部RTC看门狗中断RWDT呢?

目录 基于ESP32S3:解决RWDT无法触发中断问题引言解决方案1. 查看报错日志2. 分析报错及一步一步找到解决方法3.小结我的源码基于ESP32S3:解决RWDT无法触发中断问题 引言 在嵌入式系统中,RWDT(看门狗定时器)是确保系统稳定性的重要组件。然而,在某些情况下,RWDT可能无法…

Android 实现 RTMP 推流:快速集成指南

简介 在 Android 设备上实现 RTMP 推流,可以用于直播、远程监控等应用场景。本文将基于 rtmp-rtsp-stream-client-java 库,介绍如何在 Android 端快速集成 RTMP 推流,包括权限管理、相机预览、推流控制等关键步骤。 步骤 1. 配置 Maven 仓库 在 settings.gradle.kts 中添…

利用Ai对生成的测试用例进行用例评审

利用AI对生成的测试用例进行用例评审,可以从用例的完整性、有效性、一致性等多个维度展开,借助自然语言处理、机器学习等技术,提高评审效率和准确性。以下为你详细介绍具体方法: 1. 需求匹配度评审 利用自然语言处理(NLP)技术 步骤:首先将软件需求文档和生成的测试用例…

基于范围选择的进化多目标优化PESA-II-可用于(汽车发动机多目标优化设计/飞机机翼多目标外形优化/电动汽车充电设施布局优化)

基于范围选择的进化多目标优化 PESA-II(Pareto Envelope-Based Selection Algorithm II)是一种经典的多目标遗传算法,以下是对它的详细介绍:基于范围选择的进化多目标优化PESA-II-可用于(汽车发动机多目标优化设计/飞机…