遗传算法经典实例_遗传算法优化BP神经网络

遗传算法经典实例_遗传算法优化BP神经网络下面用手工计算来简单地模拟遗传算法的各个主要执行步骤。      例:求下述二元函数的最大值: (1)个体编码          遗传算法的运算对象是表示个体的符号串,所以必须把变量x1,x2编码为一种      符号串。本题中,用无符号二进制整数来表示。          因x1,x2为0~7之间的整数,所以分别用3位无符号二进制整数来表示,将它      …

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

下面用手工计算来简单地模拟遗传算法的各
个主要执行步骤。
  
     例:求下述二元函数的最大值:

遗传算法经典实例_遗传算法优化BP神经网络

 (1) 个体编码
           遗传算法的运算对象是表示个体的符号串,所以必须把变量 x1, x2 编码为一种
       符号串。本题中,用无符号二进制整数来表示。
           因 x1, x2 为 0 ~ 7之间的整数,所以分别用3位无符号二进制整数来表示,将它
       们连接在一起所组成的6位无符号二进制数就形成了个体的基因型,表示一个可
       行解。
           例如,基因型 X=101110 所对应的表现型是:x=[ 5,6 ]。
           个体的表现型x和基因型X之间可通过编码和解码程序相互转换。

(2) 初始群体的产生
          遗传算法是对群体进行的进化操作,需要给其淮备一些表示起始搜索点的初始
      群体数据。
         本例中,群体规模的大小取为4,即群体由4个个体组成,每个个体可通过随机
     方法产生。
          如:011101,101011,011100,111001
         
 (3) 适应度汁算
          遗传算法中以个体适应度的大小来评定各个个体的优劣程度,从而决定其遗传
       机会的大小。
          本例中,目标函数总取非负值,并且是以求函数最大值为优化目标,故可直接
       利用目标函数值作为个体的适应度。

 (4)  选择运算
          选择运算(或称为复制运算)把当前群体中适应度较高的个体按某种规则或模型遗传到下一代群体中。一般要求适应度较高的个体将有更多的机会遗传到下一代
      群体中。                   
本例中,我们采用与适应度成正比的概率来确定各个个体复制到下一代群体中
     的数量。其具体操作过程是:
         •  先计算出群体中所有个体的适应度的总和  fi  ( i=1.2,…,M );
         •  其次计算出每个个体的相对适应度的大小 fi / fi ,它即为每个个体被遗传
             到下一代群体中的概率,
         •  每个概率值组成一个区域,全部概率值之和为1;
         •  最后再产生一个0到1之间的随机数,依据该随机数出现在上述哪一个概率区
             域内来确定各个个体被选中的次数。

遗传算法经典实例_遗传算法优化BP神经网络

(5)  交叉运算
        交叉运算是遗传算法中产生新个体的主要操作过程,它以某一概率相互交换某
    两个个体之间的部分染色体。
       本例采用单点交叉的方法,其具体操作过程是:
       • 先对群体进行随机配对;
       • 其次随机设置交叉点位置;
       • 最后再相互交换配对染色体之间的部分基因。

遗传算法经典实例_遗传算法优化BP神经网络

(6)  变异运算
         变异运算是对个体的某一个或某一些基因座上的基因值按某一较小的概率进
     行改变,它也是产生新个体的一种操作方法。
        本例中,我们采用基本位变异的方法来进行变异运算,其具体操作过程是:
        • 首先确定出各个个体的基因变异位置,下表所示为随机产生的变异点位置,
          其中的数字表示变异点设置在该基因座处;
        • 然后依照某一概率将变异点的原有基因值取反。

遗传算法经典实例_遗传算法优化BP神经网络

对群体P(t)进行一轮选择、交叉、变异运算之后可得到新一代的群体p(t+1)。

遗传算法经典实例_遗传算法优化BP神经网络

从上表中可以看出,群体经过一代进化之后,其适应度的最大值、平均值都得
    到了明显的改进。事实上,这里已经找到了最佳个体“111111”。       
[注意]      
      需要说明的是,表中有些栏的数据是随机产生的。这里为了更好地说明问题,
 我们特意选择了一些较好的数值以便能够得到较好的结果,而在实际运算过程中
 有可能需要一定的循环次数才能达到这个最优结果。
遗传算法经典实例_遗传算法优化BP神经网络

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197602.html原文链接:https://javaforall.net

(0)
上一篇 2025年8月31日 下午6:15
下一篇 2025年8月31日 下午6:43


相关推荐

  • AI智能体全面爆发:字节Coze三件套正式开源,打造企业级Agent开发闭环

    AI智能体全面爆发:字节Coze三件套正式开源,打造企业级Agent开发闭环

    2026年3月15日
    1
  • gateway网关的作用_gateway网关集群

    gateway网关的作用_gateway网关集群为啥要有网关大型系统在设计之初就会拆分为多个微服务,客户不可能都按每个服务的服务器地址进行访问,因为每个服务对应一个指定的Url,人咋记那么多的地址,这样我们是不是需要一个统一的入口公开给客户,去解决这种调用问题,同时,AJAX虽说可以进行异步请求实现局部刷新,但是不能解决跨域对吧,之前我们怎么进行跨域处理的,用的是在controller层添加@CrossOrign注解,解决跨域问题。单体项目还好说,那么在微服务项目中可能又成千上百的服务,那我都要一个个加吗?而且有的服务还可能存在着没有controll

    2022年10月11日
    8
  • 国外破解网站大全

    国外破解网站大全国外破解网站大全http://www.cracks.am(出名破解网站之一,包含各类型破解软件,注冊机等等,更新速度极快)推荐http://cracks.lomalka.ru(一个破解软件,注冊机网站,更新速度快)http://www.crackway.com(一个破解,注冊机网站,更新速度一般)http://cracks4u.us(一个破解软件,注冊机,注冊码储存网站,

    2022年6月3日
    60
  • Scrapy框架介绍

    Scrapy框架介绍Scrapy 框架介绍 Scrapy 是一个为了爬取网站信息 提取结构性数据而编写的应用框架 Scrapy 用途广泛 可用于数据挖掘 监测和自动化测试等 1 网络爬虫原理网络爬虫的英文为 WebSpider 又称做网络蜘蛛或网络机器人 简单来说就是一种按照一定的规则 自动地抓取互联网中信息的程序或脚本 1 1 爬虫执行的流程我们知道 网络爬虫的基本流程是 模拟用户使用浏览器向网站发送请求 网站响应请求后将网页文档发送过来 爬虫对网页做信息提取和存储 具体流程如图 3 1 所示 1 发送请求 爬

    2026年3月26日
    2
  • JavaScript split() 方法的第二个参数

    JavaScript split() 方法的第二个参数记录目的补充记录冷门知识点 记录日常工作使用 split 将字符串分割为数组 基本只会使用一个参数 即分割字符串的字符 如空字符 空格 逗号 特殊符号 amp 等等 查看官方 api 可以看到此方法拥有第二个参数 howmany 根据传入的 howmany 数值 返回切割后的长度为 howmany 的数组 使用场景比较少 但懂得多一点总归是好的 示例场景 只需要切割后的前 n 项 数据存在规律性 从某个分割点之后无效 获取有效数据 或是装 x 显摆 或是欺负小白 你

    2026年3月19日
    3
  • 详细后端开发知识讲解

    详细后端开发知识讲解一 前言本片文章面向后端开发 讲述后端在进行开发时所使用的 WEB 服务器的工作流程 正所谓知根知底 WEB 服务器是后端开发人员日常用于调试 WEB 程序和与前端通讯的一种方式 WEB 服务器最为强大的地方是能够执行 WEB 程序 其 WEB 程序的编程语言并没有明确的规定 因为只要你所使用的服务器支持这样的程序就可以了 WEB 服务器更像是一个平台 在此平台上编写软件我们称其为 WEB 编程 注 WEB 编程下有许多规

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号