【智能算法】水循环算法(WCA)原理及实现

在这里插入图片描述

目录

    • 1.背景
    • 2.算法原理
      • 2.1算法思想
      • 2.2算法过程
    • 3.结果展示
    • 4.参考文献


1.背景

2012年,H Eskandar等人受到自然水循环过程启发,提出了水循环算法(Water Cycle Algorithm, WCA)。

在这里插入图片描述

在这里插入图片描述

2.算法原理

2.1算法思想

WCA模拟了大自然水循环过程,将最优解的寻找过程与自然界水循环过程相结合,以适应度函数为导向,进行溪流、河流的汇合,以蒸发降雨作用为辅助跳出局部最优解。

在这里插入图片描述

2.2算法过程

海洋、河流和溪流数量设置为:
N s r = Number of Rivers + 1 ⏟ S e a N R a i n d r o p s = N p o p − N s r (1) \begin{aligned}N_{\mathrm{sr}}&=\text{Number of Rivers}+\underbrace{1}_{\mathrm{Sea}}\\N_{\mathrm{Raindrops}}&=N_{\mathrm{pop}}-N_{\mathrm{sr}}\end{aligned}\tag{1} NsrNRaindrops=Number of Rivers+Sea 1=NpopNsr(1)

位置更新

每轮迭代中,溪流、大海都要根据引导关系进行自我的位置更新:
X S t r e a n N e w = X S t r e a n + r a n d × C × ( X R i v e r − X S t r e a n ) X S t r e a m N e w = X S t r e a m + r a n d × C × ( X S e a − X S t r e a m ) X R i v e r N e w = X R i v e r + r a n d × C × ( X S e a − X R i v e r ) (3) \begin{gathered} X_{Strean}^{New}=X_{Strean}+rand\times C\times(X_{River}-X_{Strean}) \\ X_{Stream}^{New}=X_{Stream}+rand\times C\times (X_{Sea}-X_{Stream}) \\ X_{River}^{New}=X_{River}+rand\times C\times (X_{Sea}-X_{River}) \end{gathered}\tag{3} XStreanNew=XStrean+rand×C×(XRiverXStrean)XStreamNew=XStream+rand×C×(XSeaXStream)XRiverNew=XRiver+rand×C×(XSeaXRiver)(3)

蒸发降雨

在水循环中,那些流速过慢或无法到达大海的溪流和河流,最终通过蒸发回归到大气中,这一过程有助于形成新的降水。因此,检查河流和溪流是否靠近海洋是重要的,因为距离较远的水体更有可能发生蒸发:
∣ X S e a i − X R i v e r i ∣ < d m a x (4) \left|X_{\mathrm{Sea}}^i-X_{\mathrm{River}}^i\right|<d_{\mathrm{max}}\tag{4} XSeaiXRiveri <dmax(4)
其中,dmax自适应调整:
d max ⁡ i + 1 = d max ⁡ i − d max ⁡ i max ⁡ iteration (5) d_{\max}^{i+1}=d_{\max}^{i}-\frac{d_{\max}^{i}}{\max\text{ iteration}}\tag{5} dmaxi+1=dmaximax iterationdmaxi(5)

蒸发降雨对河流和海洋的影响很小,降雨过程后溪流的位置更新:
X s t r e a m n e w = X s e a + μ × r a n d n ( 1 , N v a r ) (6) X_{{\mathrm{stream}}}^{{\mathrm{new}}}=X_{{\mathrm{sea}}}+\sqrt{\mu}\times\mathrm{randn}(1,N_{{\mathrm{var}}})\tag{6} Xstreamnew=Xsea+μ ×randn(1,Nvar)(6)

流程图

在这里插入图片描述

3.结果展示

使用测试框架,测试WCA性能 一键run.m

  • 【智能算法】省时方便,智能算法统计指标——一键运行~

CEC2017-F15
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] Eskandar H, Sadollah A, Bahreininejad A, et al. Water cycle algorithm–A novel metaheuristic optimization method for solving constrained engineering optimization problems[J]. Computers & Structures, 2012, 110: 151-166.

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

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

相关文章

稳态视觉诱发电位 (SSVEP) 分类学习系列 (1) :FFT-CNN-CCA

稳态视觉诱发电位分类学习系列:FFT-CNN-CCA 0. 引言1. 主要贡献2. 提出的方法2.1 数据处理2.2 卷积神经网络的结构 3. 结果3.1 健康参与者结果比较3.2 卒中患者结果比较 4. 总结欢迎来稿 论文地址&#xff1a;https://ieeexplore.ieee.org/document/8708243 论文题目&#xff1…

日志分析简单总结

1、分析日志的目的 误报&#xff1a;不是攻击而上报成攻击 漏报&#xff1a;是攻击而没有防御的情况 日志分析可以判断是否误判或者漏判&#xff0c;可以溯源攻击行为 在护网作为防守方必备的技能&#xff08;分析NGAF和态势感知&#xff0c;发现异常&#xff09; 2、攻击出现…

探索比特币符文热:市场趋势与持续性分析

在加密货币世界中&#xff0c;比特币一直是备受关注的焦点之一。然而&#xff0c;近年来&#xff0c;随着DeFi&#xff08;去中心化金融&#xff09;的兴起&#xff0c;一种新的潮流开始崭露头角——比特币符文。本文将探讨比特币符文的兴起&#xff0c;分析市场趋势&#xff0…

iOS 17上如何恢复数据?iOS 17 数据恢复软件

“您好&#xff0c;我正在为我的 iPhone 寻找一款iOS 17 数据恢复软件。升级到 iOS 17 后&#xff0c;我丢失了 iPhone 上的所有照片、联系人和消息。有什么建议吗&#xff1f;” ——丹尼 iOS 17数据恢复软件下载 升级到iOS 17后如何恢复丢失的数据&#xff1f;由于在 iPhone…

聊聊 Linux iowait

哈喽大家好&#xff0c;我是咸鱼。 我们在使用 top 命令来查看 Linux 系统整体 CPU 使用情况的时候&#xff0c;往往看的是下面这一列&#xff1a; %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 68.0 wa, 0.0 hi, 0.0 si, 0.0 st其中&#xff0c;man 手册解释 wa 表示 …

异地组网、内部网络需求同时满足,贝锐企业路由器G300开箱体验

由于公司最近新增了办事处&#xff0c;作为IT管理员的我不仅需要搞定办事处的网络&#xff0c;还需要解决远程访问公司内部办公系统以及文件存储服务器的问题。 在此之前&#xff0c;只有少量人员出差时&#xff0c;我们采用了虚拟专网方案来进行远程访问。然而&#xff0c;新…

深度学习基础之《TensorFlow框架(15)—神经网络》

一、神经网络基础 1、什么是神经网络 人工神经网络&#xff08;Artificial Neural Network&#xff0c;简写为ANN&#xff09;。也简称为神经网络&#xff08;NN&#xff09; 是一种模仿生物神经网络&#xff08;动物的中枢神经系统&#xff0c;特别是大脑&#xff09;结构和功…

电脑虚拟机有免费的吗?常见的虚拟机工具软件有哪些?Parallels Desktop19最新版本好用吗

PD虚拟机&#xff0c;即Parallels Desktop&#xff0c;是一款专为Mac用户设计的虚拟机软件&#xff0c;由Parallels公司开发&#xff0c;它允许用户在Mac操作系统上无缝运行Windows、Linux以及其他操作系统&#xff0c;并在这些系统中安装程序或者游戏&#xff0c;无需重启即可…

MySQL权限管理大揭秘:用户、组、权限解析

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 MySQL权限管理大揭秘&#xff1a;用户、组、权限解析 前言用户和组的概念用户和组的概念创建和管理用户创建和管理角色 权限的类型和分配MySQL中的权限类型分配不同类型的权限给用户和组 权限验证与日…

Unity系统学习笔记

文章目录 1.基础组件的认识1.0.组件继承关系图1.1.项目工程文件结构&#xff0c;各个文件夹都是做什么的&#xff1f;1.2.物体变化组件1.2.3.三维向量表示方向1.2.4.移动物体位置附录&#xff1a;使用变换组件实现物体WASD移动 1.3.游戏物体和组件的显示和禁用1.3.1.界面上的操…

【Linux】实现一个进度条

我们之前也学了gcc/vim/make和makefile&#xff0c;那么我们就用它们实现一个进度条。 在实现这个进度条之前&#xff0c;我们要先简单了解一下缓冲区和回车和换行的区别 缓冲区其实就是一块内存空间&#xff0c;我们先看这样一段代码 它的现象是先立马打印&#xff0c;三秒后程…

《QT实用小工具·三十八》QT炫酷的菜单控件

1、概述 源码放在文章末尾 非常飘逸的 Qt 菜单控件&#xff0c;带有各种动画效果&#xff0c;用起来也十分方便。 无限层级&#xff0c;响应键盘、鼠标单独操作&#xff0c;支持单快捷键。 允许添加自定义 widget、layout&#xff0c;当做特殊的 QDialog 使用。 项目demo演示…

大数据学习第四天

文章目录 yaml 三大组件的方式交互流程hive 使用安装mysql(hadoop03主机)出现错误解决方式临时密码 卸载mysql (hadoop02主机)卸载mysql(hadoop01主机执行)安装hive上传文件解压解决版本差异修改hive-env.sh修改 hive-site.xml上传驱动包初始化元数据在hdfs 创建hive 存储目录启…

pytorch-MNIST测试实战

目录 1. 为什么test2. 如何做test3. 什么时候做test4. 完整代码 1. 为什么test 如下图&#xff1a;上下两幅图中蓝色分别表示train的accuracy和loss&#xff0c;黄色表示test的accuracy和loss&#xff0c;如果单纯看train的accuracy和loss曲线就会认为模型已经train的很好了&a…

23年新算法,SAO-SVM,基于SAO雪消融算法优化SVM支持向量机回归预测(多输入单输出)-附代码

SAO-SVM是一种基于SAO雪消融算法优化的支持向量机&#xff08;SVM&#xff09;回归预测方法&#xff0c;适用于多输入单输出的情况。下面是一个简要的概述&#xff0c;包括如何使用SAO-SVM进行回归预测的步骤&#xff1a; 步骤&#xff1a; 1. 数据准备&#xff1a; 收集并准…

勾八头歌之RNN

一、RNN快速入门 1.学习单步的RNN&#xff1a;RNNCell # -*- coding: utf-8 -*- import tensorflow as tf# 参数 a 是 BasicRNNCell所含的神经元数, 参数 b 是 batch_size, 参数 c 是单个 input 的维数&#xff0c;shape [ b , c ] def creatRNNCell(a,b,c):# 请在此添加代码…

sprinboot+人大金仓配置

1. .yml 配置 spring:datasource:type: com.alibaba.druid.pool.DruidDataSource#driverClassName: dm.jdbc.driver.DmDriver## todo 人大金仓driverClassName: com.kingbase8.Driverdruid:## todo 人大金仓master:url: jdbc:kingbase8://111.111.111.111:54321/dbname?cu…

粘合聚酰亚胺PI塑料材料使用UV胶的优势有哪些? (三十四)

聚酰亚胺PI难于粘接&#xff0c;在PI粘接方法中使用UV胶粘剂粘接PI的优势有哪些&#xff1f; 聚酰亚胺&#xff08;PI&#xff09;是一种具有耐高低温性能、高绝缘性、耐化性、低热膨胀系数的材料&#xff0c;广泛用于FPC基材和各种耐高温电机电器的绝缘材料。然而&#xff0c;…

MySQL常见的约束

什么是约束&#xff1f; 限制&#xff0c;限制我们表中的数据&#xff0c;保证添加到数据表中的数据准确和可靠性&#xff01;凡是不符合约束的数据&#xff0c;插入时就会失败&#xff0c;插入不进去的&#xff01; 比如&#xff1a;学生信息表中&#xff0c;学号就会约束不…

Java | Leetcode Java题解之第45题跳跃游戏II

题目&#xff1a; 题解&#xff1a; class Solution {public int jump(int[] nums) {int length nums.length;int end 0;int maxPosition 0; int steps 0;for (int i 0; i < length - 1; i) {maxPosition Math.max(maxPosition, i nums[i]); if (i end) {end maxP…