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

news2024/11/28 7:32:04

 

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

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

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

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

目录

💥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.coloradmin.cn/o/719884.html

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

相关文章

byte字节值与ASCII表中char之间的转换

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

三款小游戏功能:让孩子在运动中享受智力挑战

最近看到一款很有趣的小玩具&#xff0c;是一种专门为儿童设计的益智训练器&#xff0c;功能很丰富&#xff0c;可以为孩子带来不少乐趣&#xff0c;起到一些体能和智力训练的作用。这款叫做益智感统摸高训练器的小工具&#xff0c;主要功能就是帮助儿童进行摸高训练&#xff0…

C/C++内存管理详解

去年的今日&#xff0c;博主第一次发文&#xff0c;那时初出茅庐&#xff0c;没什么经验。时隔一年&#xff0c;更加优质的博文献上&#xff0c;希望可以帮助到更多的人❤️❤️❤️ 文章目录 &#x1f4ac; 前言一、C/C内存分布二、C语言中动态内存管理方式三、C内存管理方式1…

AlexNet实战

前言&#xff1a;之前学了挺多卷积神经网络模型&#xff0c;但是都只停留在概念。代码都没自己敲过&#xff0c;肯定不行&#xff0c;而且这代码也很难很多都看不懂。所以想着先从最先较简单的AlexNet开始敲。不过还是好多没搞明白&#xff0c;之后逐一搞清楚。 文章目录 Alex…

Spark弹性分布式数据集

1. Spark RDD是什么 RDD&#xff08;Resilient Distributed Dataset&#xff0c;弹性分布式数据集&#xff09;是一个不可变的分布式对象集合&#xff0c;是Spark中最基本的数据抽象。在代码中RDD是一个抽象类&#xff0c;代表一个弹性的、不可变、可分区、里面的元素可并行计…

BottomNavigationView(自带角标)无法添加角标的解决问题

android studio的报错提示&#xff1a;java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant). 解决&#xff0c;改主题&#xff1a;

跨境平台做测评、采退、Lu卡、lu货要怎么做安全?

大家好&#xff0c;我是珑哥测评&#xff0c;今天和大家聊聊比较小众的圈子&#xff0c;也就是测评衍生出来的分支&#xff0c;采购和退款。因为最近也有很多客户咨询这个问题&#xff0c;由于沃尔玛风控升级了&#xff0c;很多客户下不成功的问题。 大家都知道无论是做测评还是…

BPM流程引擎适用于哪些类型企业管理系统

看到标题的童鞋们&#xff0c;估计在搜索办公软件系统时都会留意到BPM&#xff0c;那BPM到底是何方神圣&#xff1f;它与管理系统有什么区别呢&#xff1f;今天我们一一解答。 什么是BPM&#xff1f; BPM&#xff08;即业务流程管理&#xff09;&#xff0c;是企业信息化发展的…

[网络] ifconfig down掉的网口,插上网线网口灯依然亮?

1、软硬件环境 环境1&#xff1a; 硬件&#xff1a; 飞腾E2000Q ARM64 平台 YT8521SH (phy) 软件&#xff1a; linux 4.19.246 环境2&#xff1a; 硬件&#xff1a; NXP T1042 PowerPC 平台 YT8521SH (phy) 软件&#xff1a; linux 4.1.35 备注&#xff1a; 1、环境1的网…

Rdkit|分子可视化

Rdkit|分子可视化 Github&#xff1a; 地址 单个展示 从mol对象到图片&#xff1a;MolToImage(mol, size, kekulize, wedgeBonds, fitImage, …) mol&#xff1a;mol对象 size&#xff1a;图片尺寸&#xff0c;默认(300, 300) kekulize&#xff1a;是否展示kekule形式&#…

Apikit 自学日记:新建 API 请求

进入流程测试用例详情页&#xff0c;点击添加测试步骤&#xff0c;在下拉菜单中选择 添加API请求 &#xff0c;系统会自动进入API测试步骤编辑页面&#xff0c;接下来你可以编辑API的请求参数、返回结果、校验规则等内容。 设置 API 测试步骤 API测试步骤设置分为以下几个部分…

react笔记_07类组件

目录 复习展开运算符 组件什么叫做组件&#xff1f;分类类组件es6新增构造函数语法类组件渲染类组件的this指向类组件的三大属性state作用语法-初始化数据语法-修改state数据语法-获取state中的数据案例 propspropTypes属性(prop-types库)defaultProps属性 refs[1] 字符串形式的…

搞定HashMap

搞定HashMap 1.Map是个啥&#xff1f; HashMap隶属于Java中集合这一块&#xff0c;我们知道集合这块有list&#xff0c;set和map&#xff0c;这里的HashMap就是Map的实现类&#xff0c;那么在Map这个大家族中还有哪些重要角色呢&#xff1f; 上图展示了Map的家族&#xff0c;…

Cernox 温度传感器碳陶瓷基体结构

Cernox 温度传感器具有高灵敏度、稳定性好、遵循单一电阻与温度曲线&#xff0c;磁场性能优良和耐辐射等特性。适用于低温系统中1.5-375K范围内的测量。传感器在及其严格的质量控制下制造&#xff0c;并在强磁场、中子伽马辐射、热循环和机械耐久条件下证明长期稳定性。与其他可…

基于springboot+mysql+jsp高校社团管理系统

基于springbootmysqljsp高校社团管理系统 一、系统介绍二、所用技术三、功能展示三、其它系统四、获取源码 一、系统介绍 管理员&#xff1a;登录注册、个人中心&#xff08;个人信息、密码修改、注销&#xff09;、近期活动&#xff08;所有活动、文体类活动、学术类活动、公…

微服务学习1——微服务环境搭建

微服务学习1——微服务环境搭建 &#xff08;参考黑马程序员项目&#xff09; 个人仓库地址&#xff1a;https://gitee.com/jkangle/springboot-exercise.git 微服务就是将单体应用进一步拆分&#xff0c;拆成更小的服务&#xff0c;拆完之后怎么调用&#xff0c;主流的技术有…

【分布式】zabbix 6.0部署讲解

目录 一、 序章二、zabbix概念2.1 zabbix是什么&#xff1f;2.2 zabbix 监控原理2.3 zabbix 6.0 新特性2.4 zabbix 6.0 功能组件 三、zabbix 6.0 部署部署服务端3.1 部署 Nginx PHP 环境并测试3.1.1 安装nginx3.1.2 安装php3.1.3 修改 Nginx 配置3.1.4 修改 php 配置3.1.5 创建…

Python +selenium 自动化之元素定位

selenium之八大元素定位&#xff1a; 1、通过ID的方式定位 id是页面的唯一标识 例如&#xff1a;找到百度的搜索输入框 driver.findElement(By.id("kw")) 2、通过tagName的方式定位 用标签名定位非常少 ---一般会重复 driver.findElements(By.tagName(&qu…

Vue2 Diff 算法简易版

背景 最近复习的过程中&#xff0c;准备对比一下Vue2和Vue3的diff算法区别&#xff0c;好知道两者直接的差异和优缺点。刚好看了网上的文章&#xff0c;但是对方写的代码不太正确&#xff0c;所以特意记录一下我的学习过程~ 双端比较法 Vue2采用的双端比较法&#xff0c;即新…

MBD开发 STM32 Timer

开两个定时器 一快一慢 两个中断都要使能 没有自动更新&#xff0c;切换下timerx就好了&#xff0c;但是触发UP要手动勾选