首页 > 其他分享 >基于遗传优化GA的三目标优化仿真

基于遗传优化GA的三目标优化仿真

时间:2023-05-03 23:56:35浏览次数:34  
标签:仿真 下一代 变异 bi 个体 适应度 GA 遗传算法 优化

1.算法仿真效果

matlab2022a仿真结果如下:

 

三个目标函数各自的收敛过程如下:

 

 

 

2.算法涉及理论知识概要

       遗传算法的原理

 

       遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。

 

一、遗传算法的目的

        典型的遗传算法CGA(Canonical Genetic Algorithm)通常用于解决下面这一类的静态最优化问题:考虑对于一群长度为L的二进制编码bi,i=1,2,…,n;有

 

bi{0,1}L (3-84)

 

给定目标函数f,有f(bi),并且

 

0

 

同时f(bi)≠f(bi+1)求满足下式

 

max{f(bi)|bi{0,1}L}

 

的bi。很明显,遗传算法是一种最优化方法,它通过进化和遗传机理,从给出的原始解群中,不断进化产生新的解,最后收敛到一个特定的串bi处,即求出最优解。

 

二、遗传算法的基本原理

        长度为L的n个二进制串bi(i=1,2,…,n)组成了遗传算法的初解群,也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三种:

 

1.选择(Selection)

 

这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一操作为再生(Reproduction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproduction)。

 

2.交叉(Crossover)

 

这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体。

 

3.变异(Mutation)

 

这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi中,如果某位基因为1,产生变异时就是把它变成0;反亦反之。

 

遗传算法的原理可以简要给出如下:

 

choose an intial population

 

determine the fitness of each individual

 

perform selection

 

repeat

 

perform crossover

 

perform mutation

 

determine the fitness of each individual

 

perform selection

 

until some stopping criterion applies

 

        这里所指的某种结束准则一般是指个体的适应度达到给定的阀值;或者个体的适应度的变化率为零。

 

三、遗传算法的步骤和意义

1.初始化

 

选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。

 

通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。

 

2.选择

 

根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。

 

给出目标函数f,则f(bi)称为个体bi的适应度。以

 

为选中bi为下一代个体的次数。

 

显然.从式(3—86)可知:

 

(1)适应度较高的个体,繁殖下一代的数目较多。

 

(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。

 

这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。

 

3.交叉

 

对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。

 

例如有个体

 

S1=100101

 

S2=010111

 

选择它们的左边3位进行交叉操作,则有

 

S1=010101

 

S2=100111

 

一般而言,交 婊显譖。取值为0.25—0.75。

 

4.变异

 

根据生物遗传中基因变异的原理,以变异概率Pm对某些个体的某些位执行变异。在变异时,对执行变异的串的对应位求反,即把1变为0,把0变为1。变异概率Pm与生物变异极小的情况一致,所以,Pm的取值较小,一般取0.01-0.2。

 

例如有个体S=101011。

 

对其的第1,4位置的基因进行变异,则有

 

S'=001111

 

单靠变异不能在求解中得到好处。但是,它能保证算法过程不会产生无法进化的单一群体。因为在所有的个体一样时,交叉是无法产生新的个体的,这时只能靠变异产生新的个体。也就是说,变异增加了全局优化的特质。

 

3.MATLAB核心程序

 

%初始参数设置
M      = 5;
N      = 3;
%表示子任务Ti的任务量
Ci     = floor(1*rand(1,M)+10);
%表示通信任务Eij的任务量
Cij    = floor(1*rand(M,M)+10);
%节点完成任务的平均速度
v      = 25; 
%节点间单位通信量所需要的时间
fai    = 0.1;  
%节点PEi上的最大任务吞吐量
ECTLj  = floor(5*ones(N,1)+35);
%客户允许完成任务的最长时间
L0     = 100;
lemda1 = 0.2;
lemda2 = 0.1;
%下面的变量是通过优化得到的
%为0-1变量,取1时,表示任务Ti分到了节点PEj上
%初始设置,通过随机方式产生
xij = zeros(M,N);
 
for i = 1:M
    tmps  = rand(1,N);
    [V,I] = max(tmps);
    xij(i,I) = 1; 
end
%为0-1变量,取1时,表示任务Ti和Tj分到了同一个节点上
rij = zeros(M,M);
for i = 1:M
    t1   = xij(i,:);
    ind1 = find(t1 == 1); 
    for j = 1:M
        t2   = xij(j,:);
        ind2 = find(t2 == 1); 
        if ind1 == ind2
           rij(i,j) = 1; 
        end
    end
end

 

  

 

标签:仿真,下一代,变异,bi,个体,适应度,GA,遗传算法,优化
From: https://www.cnblogs.com/51matlab/p/17369930.html

相关文章

  • m基于整数序列的QC-LDPC的稀疏校验矩阵构造算法性能对比matlab仿真,对比差分序列,PEG,
    1.算法仿真效果matlab2013b仿真结果如下:  2.算法涉及理论知识概要       QC-LDPC(Quasi-CyslicLow-DensityParity-CheckCodes)即准循环LDPC码。之前介绍的LDPC码基本属于随机构造法,构造出的码性能很好,但校验矩阵具有不规律性,存在校验矩阵存储于读取困难、编码复......
  • m基于大衍数无高阶环稀疏校验矩阵H构造算法和RMP消息传递的QC-LDPC性能matlab仿真
    1.算法仿真效果matlab2017b仿真结果如下:   2.算法涉及理论知识概要LDPC码早于1962年由Gallager提出,可以看成是一个具有稀疏校验矩阵的线性分组码。自从Mackay和Neal发现LDPC码的性能非常接近香农限以后,LDPC码越来越受到人们的重视。基于准循环LDPC(QC-LDPC)码结......
  • Apache深入优化​
    拓扑图在Cetntos01安装Apache服务,配置Apache服务器设置网站主页在Centos02配置Dns服务器使用www.bdqn.com在Centos01配置Apache优化prefork和worker工作模式配置压力测试在Cetntos01安装Apache服务,配置Apache服务器设置网站主页配置安装编译安装添加执行权限修改配置文件添加系统服......
  • keil5 ARM Compiler5和6的优化等级以及对比
    keil5ARMCompiler5和6的优化等级以及对比 链接:ARMCompiler6优化等级_zhuimeng_ruili的博客-CSDN博客_armcompiler6链接:对keilMdk优化等级的理解_zhuimeng_ruili的博客-CSDN博客_mdk优化等级1、ARM Compiler6优化等级    -O0:没有优化,不推荐在ARMCompile......
  • SpringCloud gateway谓词
    1、AfterRoutePredicateFactoryAfter路由谓词工厂接受一个参数,一个日期时间(它是一个javaZonedDateTime)。此谓词匹配在指定日期时间之后发生的请求。例如:spring:cloud:gateway:enabled:trueroutes:-id:Goods-Server#路由id,唯一标识......
  • mysql优化参数
    --隔离级别select*from`performance_schema`.variables_by_threadwherevariable_name='transaction_isolation';--全局级别和回话级参数作用于setsessionbinlog_rows_query_log_events=on;setGLOBALbinlog_rows_query_log_events=on;--缓冲区大小setgloba......
  • SpringCloud之gateway使用
    使用SpringCloudGateway是为了取代Zuul而开发出来的新一代网关,采用了响应式编程。 新建ModuleGatewayServer,添加依赖:<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></depe......
  • 单片机原理及应用——基于C51和Proteus仿真(微课版)
    单片机原理及应用——基于C51和Proteus仿真(微课版)主编:张同光出版单位:清华大学出版社ISBN:ISBN:出版时间:2023.9CIP:页数:260 内容简介前  言三级目录 第1章8051单片机基本结构11.1单片机概述11.2单片机入门首选8051单片机41......
  • Apache网站优化
    Apache网页优化拓补图:推荐步骤:在centos01上安装apache配置网站,修改apache网站根目录/www/设置网站主页在centos02上安装DNS使用域名访问Centos01上使用域名www.benet.com访问,centos03使用yum安装apache使用域名www.accp.com访问在centos03上使用yum安装apache,设置网站主页访问网站......
  • 【SpringBoot系列】三、SpringBoot特性_SpringApplication类(自定义Banner)
        SpringApplication类作为SpringBoot最基本、最核心的类,在main方法中用来启动SpringBoot项目。一般情况下,只需在main方法中使用SpringApplication.run静态方法来启动项目:packagecom.xcbeyond.springboot;importorg.springframework.boot.SpringApplication;importorg.......