基于遺傳模擬退火算法的聚類算法-matlab

源碼如下: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %功能:遺傳模擬優(yōu)化初始聚類中心示例 %環(huán)境:Win7,Matlab2015b %Modi: C.S %時(shí)間:2022-07-09 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 清空環(huán)境 clc clear all close all tic load X m=size(X,2);% 樣本特征維數(shù) % 中心點(diǎn)范圍[lb;ub] lb=min(X); ub=max(X); %% 模糊C均值聚類參數(shù) % 設(shè)置冪指數(shù)為3,最大迭代次數(shù)為20,目標(biāo)函數(shù)的終止容限為1e-6 options=[3,20,1e-6]; % 類別數(shù)cn cn=4; %% 模擬退火算法參數(shù) q =0.8;     % 冷卻系數(shù) T0=100;    % 初始溫度 Tend=99.999;  % 終止溫度 %% 定義 遺傳算法參數(shù) sizepop=10;               %個(gè)體數(shù)目(Numbe of individuals) MAXGEN=100;                %最大遺傳代數(shù)(Maximum number of generations) NVAR=m*cn;                %變量的維數(shù) PRECI=10;                 %變量的二進(jìn)制位數(shù)(Precision of variables) pc=0.7; pm=0.01; trace=zeros(NVAR+1,MAXGEN); %建立區(qū)域描述器(Build field descriptor) FieldD=[rep([PRECI],[1,NVAR]);rep([lb;ub],[1,cn]);rep([1;0;1;1],[1,NVAR])]; Chrom=crtbp(sizepop, NVAR*PRECI); % 創(chuàng)建初始種群 V=bs2rv(Chrom, FieldD); ObjV=ObjFun(X,cn,V,options); %計(jì)算初始種群個(gè)體的目標(biāo)函數(shù)值 T=T0; while T>Tend     gen=0;                                               %代計(jì)數(shù)器     while gen newObjV(i) ObjV(i)=newObjV(i); Chrom(i,:)=newChrom(i,:); else p=rand; if p<=exp((newObjV(i)-ObjV(i))/T) ObjV(i)=newObjV(i); Chrom(i,:)=newChrom(i,:); end end 添加完畢,點(diǎn)擊“運(yùn)行”,即可開(kāi)始仿真
登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP

2