《进化优化》第12章 差分进化算法

news2024/11/20 1:43:01

文章目录

  • 算法流程
  • 12.1 基本差分进化算法
  • 12.2 差分进化的变种
    • 12.2.1 试验向量
    • 12.2.2 变异向量
    • 12.2.3 比例因子的调整
  • 12.3 离散优化
    • 12.3.1 混合整数差分进化
    • 12.3.2 离散差分进化
  • 12.4 差分进化与遗传算法

算法流程

在这里插入图片描述

12.1 基本差分进化算法

差分进化是为了优化n维连续域中的函数而设计的基于种群的算法。在种群中,每一个个体都是用来表示候选解的一个n维向量。

差分进化算法的基本思路如下:
取两个个体之间的差分向量,将这个差分向量的一个伸缩版加到第三个个体上从而产生一个新的候选解,如下图所示:
在这里插入图片描述

交叉方式:交叉率c大于r则替换成变异向量v,否则,不变。
在这里插入图片描述

参数描述:
在这里插入图片描述

在每一对(u,x)中,适应性更强的向量留下来作为差分进化的下一代,扔掉适应性差的向量。
在这里插入图片描述
在这里插入图片描述
差分进化具体的参数包括步长F,也称为比例因子,以及交叉率c.这些参数依赖于问题,不过通常在F属于[0.4,0.9]和c属于[0.1,1]的范围内挑选。
F的最优值一般随着种群规模N的平方根减小,c的最优值一般随着目标函数的可分离性减小。

我们常称算法12.1为经典差分进化,也称之为DE/rand/1/bin,

12.2 差分进化的变种

12.2.1 试验向量

有许多问题的适应度依赖于解的特征的组合而不是解的单个特征,所以,我们可能需要将解的特征都保留下来,称为DE/rand/1/L,工作方式如下:

在这里插入图片描述

例子说明:

在这里插入图片描述

算法12.2

在这里插入图片描述

12.2.2 变异向量

通过随机决定生成变异向量的方式,可以将不同的方法组合起来.

在这里插入图片描述

12.2.3 比例因子的调整

差分进化的比例因子F决定了差分向量对变异向量的影响,到目前为止,我们都假定F是一个常数,随机化是进化算法的标志之一.

可以用两种不同的方式改变差分进化比例因子:
首先,F仍为标量,并在算法12.1中的"for每一个个体"的循环中随机改变,这类变种称颤振.
其次,把F变为n元向量并在“for每一个个体”的循环中随机改变它的每一个元素,于是,变异向量v的每一个元素用差分向量的唯一的缩放分量修改,这类变种被称为抖动。

颤振用下面的语句替换算法12.1中生成变异向量的那一行:

在这里插入图片描述

抖动用下面的语句替换算法12.1中生成变异向量的那一行:

在这里插入图片描述
也就是说,在生成变异向量时差分向量的每一个元素会以不同的量伸缩。

一般来说,F的取常值对简单函数似乎很管用,对大多数多峰函数,随机化的F好像很管用。对于大部分可分的函数,抖动最好,对于高度不可分的函数,颤振最好。

12.3 离散优化

在离散域上差分进化只在变异向量时会遇到问题。
回顾算法12.1可知:
在这里插入图片描述

12.3.1 混合整数差分进化

显然,要保证v_i∈D的一个方法是将它投影到D上,为了能在离散域上优化,按这种方式修改得到的差分进化方法被称为混合整数差分进化。例如,如果D是n维整数向量的集合,可以用下式替换(12.12)式:

在这里插入图片描述

其中round函数对向量按元素操作,其更一般的方式为:

在这里插入图片描述

其中P是一个投影算子,对所有x,P(x)∈D. P的一个具体而简单的可能性就是(12.13)式。
一般来说,P会比(12.13)式更复杂,例如,我们仍然假设问题域D是n维整数向量的集合,可以定义P为:

在这里插入图片描述

它将取实数值的向量x投影到取整数值的向量α,α 让费用函数最小并且它的每一个元
素与x相应的元素在一个单位之内. 图12.7说明这个想法在二维时的情况.投影算子可能还有别的形式,采用哪一种形式取决于具体的问题.
在这里插入图片描述

12.3.2 离散差分进化

为离散问题修改差分进化的另一个方式是改变变异向量的生成方法,直接生成落在离散域D中的变异向量。这种修改方式被称为离散差分进化,利用这个方法,将(12.12)式替换为:

在这里插入图片描述
其中,G(·)∈D如果它的所有自变量都在D中,这是(12.14)式的一般化,可见离散差分进化的混合整数差分进化的一般化。我们可以编写函数G(·),用它来处理一般的离散问题,或者把**G(·)**描述为具体问题的函数.例如,仍然假设D是n维整数向量的集合,则可以用下面的方案生成变异向量:
在这里插入图片描述
其中,round和sign的函数运算按向量的元素逐个进行。

12.4 差分进化与遗传算法

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1149799.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能云服务(Alaas)

目录 1、概念介绍 2、人工智能云服务解决了什么问题? 2.1 节约部署成本 2.2 海量数据和机器学习 2.3 降低用户使用人工智能服务的成本 3、人工智能云服务的类型 3.1 公有云 3.2 私有云 3.3 混合云 4、人工智能云服务案例 4.1 微信小程序 “识花君” 4.2…

文件改名,轻松添加前缀顺序编号,文件改名更高效!

您是否曾经需要批量修改文件名,并希望在文件名中添加特定的前缀或顺序编号?现在,我们为您带来了一款全新的文件改名工具,帮助您轻松解决这个问题! 第一步,进入文件批量改名高手主页面,在板块栏…

为什么我觉得Rust比C++复杂得多?

为什么我觉得Rust比C复杂得多? Rust自学确实有一定门槛,很多具体问题解决起来搜索引擎也不太帮的上忙,会出现卡住的情况,卡的时间长了就放弃了。最近很多小伙伴找我,说想要一些c语言资料,然后我根据自己从…

MySQL扩展语句和约束条件

MySQL扩展语句 create TABLE if not exists ky32 (id int(4) zerofill primary key auto_inc rement, #表示该字段可以自增长,默认从1开始每条记录会自动递增1name varchar(10) not null,cradid int(10) not null unique key,hobby varchar (50))&#x…

如何找现货黄金代理

虽然现货黄金并不是非常难以掌握的投资品种,但投资新手在刚刚进入这个市场的时候,有很方面的事情都不太了解,需要比较专业的人士从旁提供一些适切的指导,才可以在交易中做到趋利避害,在控制风险的前提下,获…

前端环境的安装 Node npm yarn

一 node npm 1.下载NodeJS安装包 下载地址:Download | Node.js 2.开始安装 打开安装包后,一直Next即可。当然,建议还是修改一下安装位置,NodeJS默认安装位置为 C:\Program Files 3.验证是否安装成功 打开DOS命令界面&#…

Keil Map信息解析

基本功能: 1.在Keil里面,通过App.Map复制所有信息。然后解析剪辑版内容。 2.随意输入一个函数内存地址,即可遍历出该内存地址属于哪个.c或者函数名。或者能遍历出变量。 强化功能: 1.通过Keil5 命令 Save xxxxxxx\1.Hex 0x200173…

一文了解什么是JWT 与sessions

​session 和 JSON Web 令牌 (JWT) 是在调用之间维护此身份验证状态的两种最流行的方法。两者各有利弊,在它们之间进行选择需要了解这些权衡以及它们与应用程序的特定需求之间的关系。 一、基于session的身份验证 在基于session的身份验证(也称为基于 c…

GoLong的学习之路(十六)基础工具之Gin框架

Gin框架介绍及使用,这张不用看内容就知道非常重要,重要到什么地步呢?重要到开发java不会Spring全家桶这种概念。 上几篇文章写的是如何构建骨架,经脉。这一章是将血肉注入。 文章目录 Gin框架RESTful API Gin渲染HTML渲染静态文件…

编程实例:钟表维修保养管理系统软件编程,支持拍图留存查询

编程实例:钟表维修保养管理系统软件编程,支持拍图留存查询 软件文件为压缩包文件,将解压后文件夹目录下的程序图标,按鼠标右键 发送到 桌面快捷方式,即可完成安装。如不明白可以咨询客服。 软件特色: …

Qt QWidget、QDialog、QMainWindow的区别

QWidget QWidget是Qt框架中最基础的窗口类,可以理解为用户界面的最基本单元。QWidget类提供了一个空白窗口,可以通过继承该类来创建自定义的窗口类。QWidget类提供了基本的窗口属性和方法,如大小、位置、标题、图标等。 QDialog QDialog是…

Pap.er for Mac:高清壁纸应用打造你的专属视觉盛宴

在浩瀚的互联网海洋中,你是否曾为寻找一张心仪的高清壁纸而烦恼?或者是在大量的壁纸应用中感到困扰,不知道哪一个能满足你的需求?今天,我要向你介绍的,是一款独特的5K高清壁纸应用——Pap.er for Mac。 Pa…

IPv6+ 3.0关键技术解析与应用实践探索

IPv6作为面向5G和云计算的智能IP技术,其核心是以IPv6技术架构为底座,并基于用户的新兴业务进行创新发展而来的。任何一项技术创新的背后都有一只看不见的推手-用户的需求,也就是用户的业务发展所需,进一步来说是用户的应用系统在驱…

Ubuntu 诞生 19 年

导读2004 年 10 月 20 日,Ubuntu 4.10 正式发布,代号‘Warty Warthog’。 作为 Ubuntu 第一个版本,4.10 问世后立刻受到广大 Linux 用户欢迎。它搭载了当时最新的 GNOME 2.8 桌面环境,以及一系列实用软件,比如 Mozilla…

【WSL 2】Windows10 安装 WSL 2,并配合 Windows Terminal 和 VSCode 使用

【WSL 2】Windows10 安装 WSL 2,并配合 Windows Terminal 和 VSCode 使用 1 安装 Windows Terminal2 安装 WSL 23 在 Windows 文件资源管理器中打开 WSL 项目4 在 VSCode 中使用 WSL 24.1 必要准备4.2 从 VSCode 中 Connect WSL4.3 从 Linux 中打开 VSCode 1 安装 W…

Amaon CloudFront助力出海业务访问优化

企业的展示网站需要面向多个国家的客户时,由于地理位置的原因。往往会出现一个痛点,网络延迟太高,以至于图片、视频播放时会非常卡顿。客户的访问体验非常差,直接影响到企业收益。此篇文章九河云综合分析Amaon CloudFront&#xf…

UEditorPlus v3.6.0 图标补全,精简代码,快捷操作重构,问题修复

UEditor是由百度开发的所见即所得的开源富文本编辑器,基于MIT开源协议,该富文本编辑器帮助不少网站开发者解决富文本编辑器的难点。 UEditorPlus 是有 ModStart 团队基于 UEditor 二次开发的富文本编辑器,主要做了样式的定制,更符…

在重生奇迹MU中如何选择最佳的挂机点?

如何寻找最适合自己的挂机地点呢?小编建议玩家朋友从以下几点着手加以抉择。 怪物的等级不能过高 你的最佳挂机点要结合自己的实际情况来定,如果你刷怪比较吃力的话,那么此游戏地图并不适合你挂机,一旦挂机过程中,你…

1400*C. Team(模拟构造)

Problem - 401C - Codeforces 解析&#xff1a; 因为0不能相邻&#xff0c;所以0之间最少 n-1 个位置&#xff0c;最多 n1 个位置&#xff0c;如果 m<n-1显然不符题意。 并且1最多连续两个&#xff0c;所以 m>2*n2 同样不符题意。 其余情况构造即可 #include<bits/st…

RocketMQ笔记

科普&#xff1a; 把数据放到消息队列叫做生产者从消息队列里边取数据叫做消费者 一、为什么要用消息队列&#xff1f; 消息队列主要有三大用途 &#xff1a;解耦、异步、削峰&#xff0c;是消息队列最主要的三大作用。 二、为什么选择RocketMQ 选择中间件的可以从这些维度来…