gusucode.com > matlab编程DPSO离散二进制粒子群算法编程以及实现源码程序 > code3/matlab编程DPSO离散二进制粒子群算法编程以及实现源码程序/code/BF.m

    % 穷举法解决二进制问题
% 使用平台:Matlab7.0
% 作者:胡健,哈尔滨工业大学大学

%---------------------------------------------------
clear all
close all
clc
a=[0 0 0 0 0 0 0 0 0 0 0 0];
b=[1 0 0 0 0 0 0 0 0 0 0 0];
n=12;
m=pow2(12)-1;
f=zeros(1,m);
globe=zeros(1,n);
z=zeros(m,n);
G_g=zeros(m,n);

%---------------------------------------------------
% 穷举问题的所有解
for k=1:m
    a=a+b;
    for i=1:n
        if(a(i)==2)
            a(i)=0;
            a(i+1)=a(i+1)+1;   
        end       
    end
    f(k)=swarmeval(a);
    %disp(a);
    z(k,:)=a;
end

%---------------------------------------------------
% 计算每个解的适应值,输出最优解
[G_g,I]=min(f);
globe=z(I,:);
disp(globe);
disp(min(f));