Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
普通会员
注册日期: 2008-10-06
年龄: 25
帖子: 53
声望力: 18 ![]() |
![]()
本无线MESH网络中,在分配信道的时候,信道数不可超过接口数,这是造成此问题求解困难的关键,下面的源码是基于冲突图的粒子群优化算法。源码由GreenSim团队原创,转载请注明,有意购买源码或代写相关程序,请与GreenSim团队联系(主页http://blog.sina.com.cn/greensim)
function [BESTX,BESTY,ALLX,ALLY]=MNCAPSO(N,M,Alpha1,Alpha2,Alpha3,G,Gc,VA,VB,K,R) %% 基于粒子群优化的无线MESH网信道分配算法通用MATLAB函数 %% 输入参数列表 % N 粒子群规模 % M 迭代次数 % Alpha1 向历史最优个体学习的控制系数 % Alpha2 向上一代最优个体学习的控制系数 % Alpha3 随机游动控制系数 % G 网络邻接矩阵 % Gc 冲突图邻接矩阵 % VA 对偶图各边的起点在原图中对应的节点标号 % VB 对偶图各边的终点在原图中对应的节点标号 % K 总的信道数目 % R 网络节点的接口数目,NodeNum×1列向量 % GreenSim团队原创作品,转载请注明 % Email:[email protected] % GreenSim团队主页:http://blog.sina.com.cn/greensim % 欢迎访问GreenSim——算法仿真团队→http://blog.sina.com.cn/greensim %% 输出参数列表 % BESTX M×1细胞结构,每一个元素是EdgeNum×1向量,记录每一代的最优个体 % BESTY M×1向量,记录每一代的最优个体的评价函数值 % ALLX M×1细胞结构,每一个元素是EdgeNum×N向量,记录全部个体 % ALLY M×N矩阵,记录全部个体的评价函数值 %% 第一步:初始化 NodeNum=size(G,1);%网络节点的个数 Degree=zeros(NodeNum,1);%网络节点的度数向量 %计算节点度数 for i=1:NodeNum Gi=G(i,:); p1=find(Gi==1); Degree(i)=length(p1); end EdgeNum=size(Gc,1);%网络边的个数 %输出变量初始化 ALLX=cell(M,1); ALLY=zeros(M,N); BESTX=cell(M,1); BESTY=zeros(M,1); %粒子群初始化 farm=zeros(EdgeNum,N); for i=1:N farm(:,i)=unidrnd(K,EdgeNum,1); end %历史最优个体和当代最优个体初始化 DY=zeros(1,N);%适应度函数 for i=1:N DY(i)=ObjFun(farm(:,i),Gc); end minDY=min(DY); posminDY=find(DY==minDY); DDZY=farm(:,posminDY(1)); LSZY=DDZY; FDD=minDY; FLS=minDY; %% 第二步:迭代过程 k=1; while k<=M newfarm=farm; disp(k) for i=1:N x1=farm(:,i); x2=SpeciAdd(x1,LSZY,Alpha1);%向历史最优个体学习 x3=SpeciAdd(x2,DDZY,Alpha2);%向当代最优个体学习 x4=SpeciAdd(x3,unidrnd(K,EdgeNum,1),Alpha3);%随机扰动 x5=ReCorrect(x4,G,Gc,VA,VB,K,R);%校正个体以满足约束 newfarm(:,i)=x5; end %更新当代最优和历史最优 for i=1:N DY(i)=ObjFun(newfarm(:,i),Gc); end minDY=min(DY); posminDY=find(DY==minDY); newDDZY=farm(:,posminDY(1)); newFDD=minDY; if newFDD<FLS LSZY=newDDZY; FLS=newFDD; end DDZY=newDDZY; FDD=newFDD; farm=newfarm; %更新记录 BESTX{k}=LSZY; BESTY(k)=FLS; ALLX{k}=farm; ALLY(k,:)=DY; k=k+1; end
__________________
算法设计、代写程序,欢迎访问GreenSim团队主页→ http://blog.sina.com.cn/greensim |
![]() |
![]() |