资源简介

用遗传算法对RBF网络的权值进行了优化,并与未进行优化的RBF网络进行了对比分析,结果表明经过优化的rbf网络逼近能力要好于未优化的网络

资源截图

代码片段和文件信息

%函数功用:利用GA算法来优化RBF网络中的各种权值
%编写时间:2009.3.17

clear all
close all

G = 15;
Size = 30;
CodeL = 10;

for i = 1:3
    MinX(i) = 0.1*ones(1);
    MaxX(i) = 3*ones(1);
end
for i = 4:1:9
    MinX(i) = -3*ones(1);
    MaxX(i) = 3*ones(1);
end
for i = 10:1:12
    MinX(i) = -ones(1);
    MaxX(i) = ones(1);
end

E = round(rand(Size12*CodeL));  %Initial Code!

BsJ = 0;

for kg = 1:1:G
    time(kg) = kg
    
    for s = 1:1:Size
        m = E(s:);
        
        for j = 1:1:12
            y(j) = 0;
            
            mj = m((j-1)*CodeL + 1:1:j*CodeL);
            for i = 1:1:CodeL
                y(j) = y(j) + mj(i)*2^(i-1);
            end
            f(sj) = (MaxX(j) - MinX(j))*y(j)/1023 + MinX(j);
        end
        
        % ************Step 1:Evaluate BestJ *******************
        p = f(s:);
        
        [pBsJ] = RBF(pBsJ);
        
        BsJi(s) = BsJ;
    end
    
    [OderJiIndexJi] = sort(BsJi);
    BestJ(kg) = OderJi(1);
    BJ = BestJ(kg);
    Ji = BsJi+1e-10;
    
    fi = 1./Ji;
    [OderfiIndexfi] = sort(fi);
    Bestfi = Oderfi(Size);
    BestS = E(Indexfi(Size):);
    
    % ***************Step 2:Select and Reproduct Operation*********
    fi_sum = sum(fi);
    fi_Size = (Oderfi/fi_sum)*Size;
    
    fi_S = floor(fi_Size);
    
    kk = 1;
    for i = 1:1:Size
        for j = 1:1:fi_S(i)
            TempE(kk:) = E(Indexfi(i):);
            kk = kk + 1;
        end
    end
    
    % ****************Step 3:Crossover Operation*******************
    pc = 0.60;
    n = ceil(20*rand);
    for i = 1:2:(Size - 1)
        temp = rand;
        if pc>temp
            for j = n:1:20
                TempE(ij) = E(i+1j);
                TempE(i+1j) = E(ij);
            end
        end
    end
        TempE(Size:) = BestS;
        E = TempE;
        
     %*****************Step 4:Mutation Operation*********************
     pm = 0.001 - [1:1:Size]*(0.001)/Size;
     for i = 1:1:Size
         for j = 1:1:12*CodeL
             temp = rand;
             if pm>temp
                 if TempE(ij) == 0
                     TempE(ij) = 1;
                 else
                     TempE(ij) = 0;
                 end
             end
         end
     end
     
     %Guarantee TempE(Size:) belong to the best individual
     TempE(Size:) = BestS;
     E = TempE;
     %********************************************************************
 end

 
 Bestfi
 BestS
 fi
 Best_J = BestJ(G)
 figure(1);
 plot(timeBestJ);
 xlabel(‘Times‘);ylabel(‘BestJ‘);
 save pfile p;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2548  2009-03-17 23:27  RBF网络遗传算法优化程序\GA.m

     文件       1279  2009-03-17 23:26  RBF网络遗传算法优化程序\RBF.m

     文件       1181  2009-03-13 21:24  RBF网络遗传算法优化程序\RBF.asv

     文件       2439  2009-03-15 23:23  RBF网络遗传算法优化程序\GA.asv

     文件        280  2009-03-15 23:40  RBF网络遗传算法优化程序\pfile.mat

     文件       1303  2009-03-18 00:20  RBF网络遗传算法优化程序\Test.m

     文件       1303  2009-03-18 00:17  RBF网络遗传算法优化程序\Test.asv

     目录          0  2009-03-13 20:53  RBF网络遗传算法优化程序

     文件        183  2009-02-02 09:47  Matlab中文论坛--助努力的人完成毕业设计.url

     文件       3543  2009-02-01 16:19  使用帮助:新手必看.htm

----------- ---------  ---------- -----  ----

                14059                    10


评论

共有 条评论