【多种优化算法比较】混沌引力搜索算法(CGSA)(Matlab代码实现)

 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码及文献


💥1 概述

文献来源:

自过去十年以来,启发式优化算法正在国际计算智能界的研究人员中引起涟漪。启发式算法在各个领域的研究工作和应用是惊人的。启发式算法因其随机性和简单性而越来越受欢迎。根据无免费午餐定理(NFLT)(Wolpert and Macready,1997),单一算法无法解决所有优化问题。简单来说,如果一个优化算法以高性能解决了某个问题,那么它在解决其他类型的优化问题时很有可能表现不佳。因此,研究人员发明了许多优化算法,并且每年都有新的算法被提出。著名的优化算法包括受鸟类和鱼类社会行为启发的PSO(Kennedy and Eberhart,1995),基于蚂蚁搜索行为的ACO (Dorigo and Caro, 1995),BBO (Simon, 2008)灵感来自物种的分布和迁移模型,以及DE(Storn and Price, 1995)和GA(Tang, 1996) 这是由进化论驱动的。此外,还有数学驱动的优化算法,如SCA(Mirjalili,2016),它在数学上模拟正弦和余弦函数的行为。此外,Mirjalili等人(2017)最近开发了一种基于salps的组和导航行为的新型元启发式算法,即SSA。它们已被应用于解决计算机科学和其他研究领域的各种问题,如电子、生物学和石油工业。在计算机科学中,它们被用于函数优化(Du和Li,2008; 姚等,1999),控制目标(宝江和世勇,2007; 卡拉库祖,2008年; Kim等人,2008),模式识别(Liu等人,2008; Tan和Bhanu,2006),过滤器建模(Kalinlia和Karabogab,2005)和图像的最佳处理(Cordon等人,2006; Nezamabadi-pour 等人,2006 年)。在电子科学中,负载调度(Beigvand 等人,2016,2017)和最优潮流(Bhowmik and Chakraborty,2015)问题已通过优化算法得到有效解决。

所有优化算法都由随机的代理群体组成,用于在搜索空间中查找候选解决方案。该过程从问题域中的代理初始化开始。然后,该算法经过多次迭代,每次迭代都给出可行的候选解决方案,直到满足条件的结束。所有迭代中的最佳可行候选解是最优解。令人惊讶的是,随机算法由一些基本步骤组成,例如探索和开发。探索是指算法的搜索空间。在此阶段,候选解决方案将经历许多更改。此外,开发是围绕不同的可行解决方案找到局部最优的能力。候选解决方案会导致开发阶段的微小变化。已经看到,如果优化算法具有良好的探索能力,那么它将缺乏良好的开发能力,反之亦然(Eiben and Schippers, 1998)。因此,它们彼此成反比。以前,研究人员分别使用随机游走和梯度下降方法来改善勘探和开发。但它的缺点是增加了算法的整体计算成本。自过去十年以来,研究人员正在使用混沌地图来增加搜索空间的多样化和局部开发,以找到最佳解决方案(Mirjalili 等人,2017 年; 甘多米等人,2012 年)。

混沌理论是对动态系统的研究。这些系统的有趣特性是,当系统中发生微小变化时,整个系统都会受到影响。简而言之,初始参数的变化会在整个系统中产生变化。此外,随机性对于混沌系统不是必需的,而确定性系统也表现出混沌行为(Kellert,2017)。该优化算法利用混沌图的初始参数敏感度(IPS)特性,快速开发、全局探索,缓解局部极小值陷阱问题。

元启发式算法在基准函数上显示出良好的结果,但它们在实际问题上表现不佳。实际问题是检查优化算法解决问题能力的实际测试。

研究人员使用各种优化技术,如GA,PSO,DE,GSA,BBO,来解决其他领域的应用问题。大多数算法本质上是进化的,但GSA是一种基于物理学的最新元启发式算法。GSA(Rashedi 等人,2009 年)是一种优化算法,其灵感来自牛顿的万有引力定律和运动定律。标准GSA中增加了<>个混沌图,并已应用于三个工程设计问题,用于研究其杂交潜力和处理复杂的非线性基准。所有这些问题都有未知的搜索空间,非常适合检查算法的问题解决能力。此外,还将检查CGSA的约束处理和工程设计问题的参数优化。

📚2 运行结果

 

 部分代码:

N = 50;                              % Number of Searcher Agents "
Max_Iteration  = 100;                % Maximum number of "iterations"
Q=1;            % ACO Parameter
tau0=10;        % Initial Phromone             (ACO)
alpha=0.3;      % Phromone Exponential Weight  (ACO)
rho=0.1;        % Evaporation Rate             (ACO)
beta_min=0.2;   % Lower Bound of Scaling Factor (DE)
beta_max=0.8;   % Upper Bound of Scaling Factor (DE)
pCR=0.2;        % Crossover Probability         (DE)
 ElitistCheck=1; % GSA Parameter
 Rpower=1;       % GSA Parameter
 min_flag=1; % 1: minimization, 0: maximization (GSA)
 Algorithm_num=2;  %% These are 10 chaotic maps mentioned in the paper. So, change the value of Algorithm_num from 2 to 11 as 1 is for standard GSA.
 chValueInitial=20; % CGSA

 Benchmark_Function_ID=1 %Benchmark function ID

    RunNo  = 20; 
    
for k = [ 1 : 1 : RunNo ]   
% % %   
[gBestScore,gBest,GlobalBestCost]= CPSOGSA(Benchmark_Function_ID, N, Max_Iteration);
BestSolutions1(k) = gBestScore;
[Fbest,Lbest,BestChart]=GSA(Benchmark_Function_ID,N,Max_Iteration,ElitistCheck,min_flag,Rpower);
BestSolutions2(k) = Fbest;
  [PcgCurve,GBEST]=pso(Benchmark_Function_ID,N,Max_Iteration);
     BestSolutions3(k) = GBEST.O;
 [BestCost,BestSol] = bbo( Benchmark_Function_ID, N, Max_Iteration);
     BestSolutions4(k) = BestSol.Cost;
[BestSolDE,DBestSol,BestCostDE] = DE(Benchmark_Function_ID, N, Max_Iteration,beta_min,beta_max,pCR);
BestSolutions5(k) = BestSolDE.Cost ;
  [BestSolACO,BestAnt,BestCostACO] = ACO(Benchmark_Function_ID, N, Max_Iteration,Q,tau0,alpha,rho);
BestSolutions6(k) = BestSolACO.Cost ;
[Best_score,Best_pos,SSA_cg_curve]=SSA(Benchmark_Function_ID, N, Max_Iteration);
BestSolutions7(k) = Best_score ;
[Best_scoreSCA,Best_pos,SCA_cg_curve]=SCA(Benchmark_Function_ID, N, Max_Iteration);
BestSolutions8(k) = Best_scoreSCA ;
[Best_scoreGWO,Best_pos,GWO_cg_curve]=GWO(Benchmark_Function_ID, N, Max_Iteration);
BestSolutions9(k) = Best_scoreGWO ;

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]Rather, S. and Bala, P. (2020), "Swarm-based chaotic gravitational search algorithm for solving mechanical engineering design problems", World Journal of Engineering, Vol. 17 No. 1, pp. 97-114. 

🌈4 Matlab代码及文献

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

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

相关文章

CentOS Linux MySQL 数据库 的安装方法

一、简单了解MySQL数据库的体系结构 &#xff08;一&#xff09;MySQL架构图 &#xff08;二&#xff09;MySQL体系结构&#xff1a;连接层、服务层、引擎层、存储层 1、连接层--主要职责&#xff1a;身份认证&#xff0c;连接管理&#xff0c;获取权限信息 &#xff08;1&am…

Basler相机一丢包就断开问题解决

问题描述&#xff1a; 两个相机&#xff0c; 一个相机aca2500-14gm连接电脑主板100M网卡没问题&#xff0c;帧率3帧&#xff0c;但是不会断。 一个相机aca2500-14gm连接USB转网口&#xff08;千兆&#xff09;&#xff0c;pylon Viewer采图丢包严重并且几秒后相机断开。 解决…

Nacos架构与原理 - 寻址机制

文章目录 前提设计MemberLookup内部实现单机寻址 StandaloneMemberLookup文件寻址 FileConfigMemberLookup地址服务器寻址 AddressServerMemberLookup 未来可扩展点 前提 Nacos 支持单机部署以及集群部署 针对单机模式&#xff0c;Nacos 只是自己和自己通信&#xff1b;对于集…

认识 SpringCloud 核心组件

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; 微服务探索之旅 ✨特色专…

黑马微服务课程cloud-demo项目出现No instances available for userservice错误解决办法

错误描述 如果你的cloud-demo项目当输入http://localhost:8080/order/101&#xff0c;想查看订单编号为101的数据&#xff0c;网页前端显示如下错误 IDEA显示错误&#xff1a; 07-05 16:39:16:251 ERROR 10056 — [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] …

windows系统中常用的cmd命令(白帽黑帽必备知识)

文章目录 前言一、我们也来学习下二、windows系统中常用命令介绍1.netstat 命令2.ping 命令3.arp 命令4.route 命令5.tracert 命令6.telnet 命令7.nmap 命令8.SMB 命令9.tasklist 命令10.at 命令11.nslookup 命令12.ftp 命令13.net 命令14.ipconfig 命令 总结 前言 在计算机领…

学习 | 药品GMP认证和药厂GMP认证是怎么回事?

可能本身从事药品生产经营的朋友会知道&#xff0c;药品的GMP认证是怎么一回事&#xff0c;但是对于一些想要进入药品生产行业的企业&#xff0c;例如化工产品想进入原料药生产、药用辅料生产&#xff0c;塑料等材料制作商进入药品包装材料生产&#xff0c;只是听这说听那说&am…

Nginx配置

server模块 其中&#xff0c;这里并不是真的启动一个服务&#xff0c;是一个逻辑服务&#xff0c;是去匹配来请求服务的路径&#xff0c;listen是匹配请求者访问了什么端口&#xff0c;server_name是匹配请求者用了什么域名&#xff0c;location是将匹配上的请求转发到哪个地…

黑马点评(达人探店)

达人探店 一、发布探店笔记 发布探店笔记功能是项目本身就完成了的功能&#xff0c;他会把图片存在本地&#xff0c;有兴趣可以去看源码&#xff0c;在UploadCOntroller类下 二、查看探店笔记 这个功能项目本身是没有完成这个接口的&#xff0c;所以需要我们自己去完成。 …

MySQL体系结构及各结构的功能

MySQL体系结构 MySQL的体系结构实际就是MySQL数据库是由那些部分构成&#xff0c;每个部分的具体作用是什么。 Connectors&#xff1a; 用于不同的编程语言连接MySQL数据库&#xff0c;即对外提供的API。 Management Service &Utilities&#xff1a; 用于管理系统&…

MySQL不常用但非常实用的函数在项目中的应用

MySQL内置了不少函数&#xff0c;利用这些函数可以很好地在进行数据查询时候&#xff0c;进行数据处理&#xff0c;如果要查看MySQL所有的内置函数&#xff0c;可以在官网的文档中&#xff1a;Built-In Function and Operator Reference 有很详细的表格&#xff0c;列举了所有…

Redis【实战篇】---- 分布式锁

Redis【实战篇】---- 分布式锁 1. 基本原理和实现方式对比2. Redis分布式锁的实现核心思路3. 实现分布式锁版本一4. Redis分布式锁误删情况说明5. 解决Redis分布式锁误删问题6. 分布式锁的原子性问题7. Lua脚本解决多条命令原子性问题8. 利用Java代码调试Lua脚本改造分布式锁 1…