• 基于文化算法优化的神经网络预测研究(Matlab代码实现)


    目录

    1 文化优化算法

    2 人工神经网络

    4 参考文献 

    5 Matlab代码实现


    1 文化优化算法

    大自然里的各种生物在生存环境中相互竞争,优胜劣汰,不断进化,对环境具有良好的适应性,人们细心观察着周围神奇的大自然,激发出无限的想象,模拟生物的进化机制,提出了一系列进化计算方法,如进化规划、遗传算法、粒子群优化算法以及鱼群算法等。然而,这些方法仍拘泥于在种群空间中进行,能够利用的信息资源只是当前的或者上一步进化信息,而未充分挖掘和利用进化过程中的历史知识,和对未来搜索的有效预测。所以,如何提取有效信息并有效利用进化过程中隐含的各类信息,以提高进化效率,成为该领域的一个研究热点文化是用符号、价值意义和社会规范表示整个人类群体的生产方式和生活过程的集合,文就是知识的结构性积累;化就是教化与人。人类一代代继承着在文化,以超越其他所有物种的速度进化着,才有了文明如此发达的今天。如果没有文化就没有可以借鉴的经验,人类社会就会在不断地重复试错中徘徊不前。

    文化算法,从两个层面分别模拟生物的进化和文化的进化,两个过程既相互独立又相互影响,是一种基于知识的双层进化系统。该算法优点就在于,可以从每次的搜索中提取解决问题的有效信息,并反馈指导种群的搜索过程,在精度和效率上都使算法有效提升。



    人工神经网络


    人工神经网络可以实现有监督和无监督条件下的分类和回归工作,通过适当地调节权重系数,使神经网络的输出收敛于正确的目标7。而这些权重系数,是通过网络的学习训练得到的,训练过程是通过预先提供的一批数据,经由网络分析找出输入一输出之间潜在的规律。之后,网络的输出数据就是根据这些规律推算出来的。人工神经网络有以下主要特点:
    (1)较强的学习能力;


    (2)较好地模拟人的思维感知过程的能力;

    (3)较强的联想能力和容错能力

    (4)较好的并行协同处理能力;

    (5)是一个非线性动力系统。

    本文仅展现部分代码,

    1. function Culture = AdjustCulture(Culture, spop)
    2. n = numel(spop);
    3. nVar = numel(spop(1).Position);
    4. for i = 1:n
    5. if spop(i).Cost<Culture.Situational.Cost
    6. Culture.Situational = spop(i);
    7. end
    8. for j = 1:nVar
    9. if spop(i).Position(j)<Culture.Normative.Min(j) ...
    10. || spop(i).Cost<Culture.Normative.L(j)
    11. Culture.Normative.Min(j) = spop(i).Position(j);
    12. Culture.Normative.L(j) = spop(i).Cost;
    13. end
    14. if spop(i).Position(j)>Culture.Normative.Max(j) ...
    15. || spop(i).Cost<Culture.Normative.U(j)
    16. Culture.Normative.Max(j) = spop(i).Position(j);
    17. Culture.Normative.U(j) = spop(i).Cost;
    18. end
    19. end
    20. end
    21. Culture.Normative.Size = Culture.Normative.Max-Culture.Normative.Min;
    22. end

    function Culture = AdjustCulture(Culture, spop)
    n = numel(spop);
    nVar = numel(spop(1).Position);
    for i = 1:n
    if spop(i).Cost Culture.Situational = spop(i);
    end
    for j = 1:nVar
    if spop(i).Position(j) || spop(i).Cost Culture.Normative.Min(j) = spop(i).Position(j);
    Culture.Normative.L(j) = spop(i).Cost;
    end
    if spop(i).Position(j)>Culture.Normative.Max(j) ...
    || spop(i).Cost Culture.Normative.Max(j) = spop(i).Position(j);
    Culture.Normative.U(j) = spop(i).Cost;
    end
    end
    end
    Culture.Normative.Size = Culture.Normative.Max-Culture.Normative.Min;
    end

    function Culture = AdjustCulture(Culture, spop)
    n = numel(spop);
    nVar = numel(spop(1).Position);
    for i = 1:n
    if spop(i).Cost Culture.Situational = spop(i);
    end
    for j = 1:nVar
    if spop(i).Position(j) || spop(i).Cost Culture.Normative.Min(j) = spop(i).Position(j);
    Culture.Normative.L(j) = spop(i).Cost;
    end
    if spop(i).Position(j)>Culture.Normative.Max(j) ...
    || spop(i).Cost Culture.Normative.Max(j) = spop(i).Position(j);
    Culture.Normative.U(j) = spop(i).Cost;
    end
    end
    end
    Culture.Normative.Size = Culture.Normative.Max-Culture.Normative.Min;
    end

    function Culture = AdjustCulture(Culture, spop)
    n = numel(spop);
    nVar = numel(spop(1).Position);
    for i = 1:n
    if spop(i).Cost Culture.Situational = spop(i);
    end
    for j = 1:nVar
    if spop(i).Position(j) || spop(i).Cost Culture.Normative.Min(j) = spop(i).Position(j);
    Culture.Normative.L(j) = spop(i).Cost;
    end
    if spop(i).Position(j)>Culture.Normative.Max(j) ...
    || spop(i).Cost Culture.Normative.Max(j) = spop(i).Position(j);
    Culture.Normative.U(j) = spop(i).Cost;
    end
    end
    end
    Culture.Normative.Size = Culture.Normative.Max-Culture.Normative.Min;
    end

    function Culture = AdjustCulture(Culture, spop)
    n = numel(spop);
    nVar = numel(spop(1).Position);
    for i = 1:n
    if spop(i).Cost Culture.Situational = spop(i);
    end
    for j = 1:nVar
    if spop(i).Position(j) || spop(i).Cost Culture.Normative.Min(j) = spop(i).Position(j);
    Culture.Normative.L(j) = spop(i).Cost;
    end
    if spop(i).Position(j)>Culture.Normative.Max(j) ...
    || spop(i).Cost Culture.Normative.Max(j) = spop(i).Position(j);
    Culture.Normative.U(j) = spop(i).Cost;
    end
    end
    end
    Culture.Normative.Size = Culture.Normative.Max-Culture.Normative.Min;
    end 

     完整代码:基于文化算法优化的神经网络预测研究

    4 参考文献 

    [1]魏秀. 文化算法优化RBF神经网络及应用研究[D].太原理工大学,2011.

    5 Matlab代码实现

  • 相关阅读:
    WinApp自动化测试之工具的选择
    Save POJO to MongoDB
    服务器日志事件ID4107:从自动更新 cab 中提取第三方的根目录列表失败,错误为: 已处理证书链,但是在不受信任提供程序信任的根证书中终止。
    什么是生成器 — 一篇文章让你看懂
    1panel + Pbootcms 设置伪静态规则
    巨控GRM530远程模块与西门子上-300PLC远程上下载程序,远程在线调试程序
    【译】.NET 7 中的性能改进(一)
    microk8s 报错tls: failed to verify certificate: x509:
    uniapp快速入门系列(3)- CSS技巧与布局
    java和kotlin 对于for循环和forEach里面的return分别有何不同
  • 原文地址:https://blog.csdn.net/weixin_66436111/article/details/128110882