基于粒子群算法PSO、帝国殖民算法ICA 和萤火虫算法 FA 求解最小生成树附matlab代码

简介: 基于粒子群算法PSO、帝国殖民算法ICA 和萤火虫算法 FA 求解最小生成树附matlab代码

作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

  何为:连通且不含圈的图称为树。

  图T=(V,E),|V|=n,|E|=m,下列关于树的说法等价:

  1. T是一个树。
  2. T无圈,且m=n-1。
  3. T连通,且m=n-1。
  4. T无圈,但每加一新边记得到唯一一个圈。
  5. T连通,但任舍去一边就不连通。
  6. T中任意两点,有唯一道路相连。

 

  何为生成树:若图G=(V,E)的生成子图是一棵树,则称该树为图G的生成树,也称支撑树,简称为图G的数。图G中属于生成树的边称为数枝(Branch)。

  何为最小生成树:连通图G=(V,E),每条边上有非负权L(e)。一棵树上所有树枝权的总和,称为这个生成树的权。具有最小权的生成树称为最小生成树,也就是说最小支撑树,简称最小树。

  私以为,两种算法其实都是贪心,所以需要严格的证明。由于最近时间零散、数学久置未学、对算法领域没有系统了解。所以不进行深入探讨(也就是说证明),仅以一个简单实例做一个入门级的了解。

  Prim算法:

  给定连通赋权图G=(V,E,W),其中W为邻接矩阵,设两个集合P和Q,其中P用于存放G的最小生成树中的节点,集合Q存放G的最小G的最小生成树中的边。另集合P的初值为P={v1}(假设构造最小生成树时从v1出发),集合Q的初值为P={空集}。

  (1)P = {v1},Q = {空集};

  (2)while P ~= Q

    找到最小边pv,其中p∈P,v∈V-P;

    P = P + {v};

    Q = Q + {pv};

    end

  Kruskal算法

  (1)选e1∈E(G),使得w(e1) = min(选e1的权值最小)。

  (2)e1,e2,...,ei已选好,则从E(G)-{e1,e2,...,ei}中选取ei+1,使得G[{e1,e2,...,ei,ei+1}]中无圈,且,w(ei+1) = min。

  (3)直到选得en-1为止。

  以下是问题:

一个乡有9个自然村,其间道路及各道路长度如图所示,各边上数字代表距离。问如何架设电线最短。

  

⛄ 部分代码

clc

clear all

close all


Choices = {'Particle Swarm Optimization', 'Firefly Algorithm', 'Imperialist Competitive Algorithm'};


ANSWER = questdlg('Select the algorithm:', ...

                 'Minimum Spanning Tree', ...

                 Choices{1}, Choices{2}, Choices{3}, ...

                 Choices{1});


if strcmpi(ANSWER, Choices{1})

   pso;

   return;

end


if strcmpi(ANSWER, Choices{2})

   fa;

   return;

end


if strcmpi(ANSWER, Choices{3})

   ica;

   return;

end

⛄ 运行结果

⛄ 参考文献


⛄ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
8天前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
|
8天前
|
机器学习/深度学习 传感器 算法
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)
89 14
|
8天前
|
机器学习/深度学习 运维 算法
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
|
8天前
|
算法 数据可视化 异构计算
【车辆路径问题VRPTW】基于北极海鹦优化(APO)算法求解带时间窗的车辆路径问题VRPTW研究(Matlab代码实现)
【车辆路径问题VRPTW】基于北极海鹦优化(APO)算法求解带时间窗的车辆路径问题VRPTW研究(Matlab代码实现)
|
9天前
|
算法 计算机视觉
【MPDR & SMI】失配广义夹角随输入信噪比变化趋势、输出信干噪比随输入信噪比变化趋势研究(Matlab代码实现)
【MPDR & SMI】失配广义夹角随输入信噪比变化趋势、输出信干噪比随输入信噪比变化趋势研究(Matlab代码实现)
|
9天前
|
编解码 人工智能 算法
【采用BPSK或GMSK的Turbo码】MSK、GMSK调制二比特差分解调、turbo+BPSK、turbo+GMSK研究(Matlab代码实现)
【采用BPSK或GMSK的Turbo码】MSK、GMSK调制二比特差分解调、turbo+BPSK、turbo+GMSK研究(Matlab代码实现)
|
9天前
|
机器学习/深度学习 编解码 并行计算
【改进引导滤波器】各向异性引导滤波器,利用加权平均来实现最大扩散,同时保持图像中的强边缘,实现强各向异性滤波,同时保持原始引导滤波器的低低计算成本(Matlab代码实现)
【改进引导滤波器】各向异性引导滤波器,利用加权平均来实现最大扩散,同时保持图像中的强边缘,实现强各向异性滤波,同时保持原始引导滤波器的低低计算成本(Matlab代码实现)
|
9天前
|
机器学习/深度学习 传感器 边缘计算
【故障诊断】基于时滞反馈随机共振的增强型旋转电机故障诊断(Matlab代码实现)
【故障诊断】基于时滞反馈随机共振的增强型旋转电机故障诊断(Matlab代码实现)
|
9天前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
|
9天前
|
运维 算法
【故障诊断】基于最小熵反卷积、最大相关峰度反卷积和最大二阶环平稳盲反卷积等盲反卷积方法在机械故障诊断中的应用研究(Matlab代码实现)
【故障诊断】基于最小熵反卷积、最大相关峰度反卷积和最大二阶环平稳盲反卷积等盲反卷积方法在机械故障诊断中的应用研究(Matlab代码实现)

热门文章

最新文章