当前位置: 首页 > news >正文

混沌理论与混沌映射——算法改进初始化创新点之一

混沌理论与混沌映射

混沌理论研究混沌系统的动力学,其特征是非线性和对初始条件的极端敏感性。即使在这些条件下的微小变化也可能导致系统结果的显著变化。尽管看起来是随机的,混沌系统可以在不依赖随机性的情况下表现出不规则的行为,因为确定性系统也可以表现出混沌行为。最近,这些独特的特性被用来增强元启发式算法的性能。

此外,混沌映射具有遍历性、非线性和发散性特性,类似于非线性动态系统中常见的随机过程。这些映射高度敏感,严重依赖于它们的初始化条件和参数[70]。混沌映射的数学表示通常在公式(4.2)中表达,其中 c h ( t ) ch(t) ch(t) 表示一个混沌序列,该序列结合了从0到1或-1到1的随机数。

c h ( t + 3 ) = f ( c h ( t ) ) ; 0 < c h ( t ) < 1 或 − 1 < c h ( t ) < 1 ; ∀ t = 1 , 2 , … , t max ⁡ . (4.2) ch(t + 3) = f(ch(t)); \quad 0 < ch(t) < 1 \quad \text{或} \quad -1 < ch(t) < 1; \quad \forall t = 1, 2, \ldots, t_{\max}. \tag{4.2} ch(t+3)=f(ch(t));0<ch(t)<11<ch(t)<1;t=1,2,,tmax.(4.2)

由于它们的高敏感性,混沌映射的初始参数值显著影响它们的行为。即使这些参数的微小变化也可能导致剧烈的输出变化,这可能并不总是理想的。因此,为混沌映射选择合适的初始值[71]是至关重要的,需要仔细考虑。

此外,混沌映射在增强元启发式优化能力方面提供了几个优势[72],[73],如下所述:

(i) 这些映射的混沌特性增强了搜索算法的探索和开发能力。

(ii) 它们向算法引入了增加的随机性,可能改善全局性能。

(iii) 混沌映射有助于防止算法收敛到局部最优解。

(iv) 它们增加了初始种群的多样性,提高了全局搜索精度和收敛速度。

(v) 混沌映射具有简单的公式,与元启发式算法一起实现时不增加额外的计算成本,从而保持一致的时间和空间复杂度水平。

表4列出了用于CEPSO的十个选定的混沌映射,在区间(0, 1)或(-1, 1)内生成混沌数。这些混沌映射的图形所示。
在这里插入图片描述
在这里插入图片描述
对应代码:


function O=chaos(index,curr_iter,max_iter,Value)

x(1)=0.7;
switch index
    %Chebyshev map
    case 1
        for i=1:max_iter
            x(i+1)=cos(i*acos(x(i)));
            y(i)=((x(i)+1)*Value)/2;
        end
    case 2
        %Circle map
        a=0.5;
        b=0.2;
        for i=1:max_iter
            x(i+1)=mod(x(i)+b-(a/(2*pi))*sin(2*pi*x(i)),1);
            y(i)=x(i)*Value;
        end
    case 3
        %yauss/mouse map
        for i=1:max_iter
            if x(i)==0
                x(i+1)=0;
            else
                x(i+1)=mod(1/x(i),1);
            end
            y(i)=x(i)*Value;
        end
    case 4
        %Iterative map
        a=0.7;
        for i=1:max_iter
            x(i+1)=sin((a*pi)/x(i));
            y(i)=((x(i)+1)*Value)/2;
        end
    case 5
        %Loyistic map
        a=4;
        for i=1:max_iter
            x(i+1)=a*x(i)*(1-x(i));
            y(i)=x(i)*Value;
        end
    case 6
        %Piecewise map
        P=0.4;
        for i=1:max_iter
            if x(i)>=0 && x(i)<P
                x(i+1)=x(i)/P;
            end
            if x(i)>=P && x(i)<0.5
                x(i+1)=(x(i)-P)/(0.5-P);
            end
            if x(i)>=0.5 && x(i)<1-P
                x(i+1)=(1-P-x(i))/(0.5-P);
            end
            if x(i)>=1-P && x(i)<1
                x(i+1)=(1-x(i))/P;
            end
            y(i)=x(i)*Value;
        end
        
    case 7
        %Sine map
        for i=1:max_iter
            x(i+1) = sin(pi*x(i));
            y(i)=(x(i))*Value;
        end
    case 8
        %Sinyer map
        u=1.07;
        for i=1:max_iter
            x(i+1) = u*(7.86*x(i)-23.31*(x(i)^2)+28.75*(x(i)^3)-13.302875*(x(i)^4));
            y(i)=(x(i))*Value;
        end
    case 9
        %Sinusoidal map
        for i=1:max_iter
            x(i+1) = 2.3*x(i)^2*sin(pi*x(i));
            y(i)=(x(i))*Value;
        end
        
    case 10
        %Tent map
        x(1)=0.6;
        for i=1:max_iter
            if x(i)<0.7
                x(i+1)=x(i)/0.7;
            end
            if x(i)>=0.7
                x(i+1)=(10/3)*(1-x(i));
            end
            y(i)=(x(i))*Value;
        end
        
end
O=y(curr_iter);

相关文章:

  • 48. 旋转图像(C++)
  • 面向对象Demo01
  • 混沌映射可行性恢复粒子群优化算法
  • Day31 | 139. 单词拆分、198. 打家劫舍、213. 打家劫舍 II、337. 打家劫舍 III
  • 微前端教程:使用 Single-SPA 构建模块化应用
  • 江科大51单片机笔记【10】DS1302时钟可调时钟(下)
  • 带权重的词典设计
  • 【Godot4.3】Geometry2D总结
  • 基于Vue 3的智能支付二维码弹窗组件设计与实现
  • MySQL事务深度解析:ACID特性、隔离级别与MVCC机制
  • 歌词相关实现
  • Vscode工具开发Vue+ts项目时vue文件ts语法报错-红波浪线等
  • 第n小的质数(信息学奥赛一本通-1099)
  • 【每日学点HarmonyOS Next知识】获取资源问题、软键盘弹起、swiper更新、C给图片设置位图、读取本地Json
  • 为AI聊天工具添加一个知识系统 之142 设计重审 之7 “我I”:mine/own/self
  • 程序化广告行业(9/89):定义、价值与发展脉络全解析
  • 版本控制器Git(3)
  • 微信小程序校园跑腿的设计与实现【lw+源码+部署+视频+讲解】
  • uni-app打包成H5使用相对路径
  • 串口通信函数汇总-ing
  • 第三届“老山国际春茶节”活动在云南麻栗坡举办
  • 850亿元!2025年中央金融机构注资特别国债(一期)拟第一次续发行
  • 中国象棋协会坚决支持司法机关依法打击涉象棋行业的违法行为
  • 105岁八路军老战士、抗美援朝老战士谭克煜逝世
  • 李公明︱一周书记:浪漫主义为什么……仍然重要?
  • 马上评|孩子亲近自然只能靠公园露营了吗