www.gusucode.com > 《matlab在数学建模中的应用》一书 所有的 源代码 > 第12章/P12-2/Gamain.m

    % GA main
% using toolbox of GAOT version 5
clc
clf
clear
bounds=ones(12,2);

global r

xmin=0; ymin=0; xmax=200; ymax=150;
r=25; n=6;
bounds(:,1)=zeros(12,1) + r;
bounds(1:6,2)=ones(6,1).*xmax - r;
bounds(7:12,2)=ones(6,1).*ymax - r;

[x,endPop] = ga(...
                bounds,'myfGAPLP',[],[],[1e-6 1 1]);

myfplotcircleGA(x,r,xmax,ymax);

%% 以下为辅助函数的程序,放于独立的的m文件中
function [x,fval]=myfGAPLP(x,options)
% options is required by the format of GAOT ver 5.

fval=1; dfo=0;
global r

n=6;lamdao=1e30;
for i=1:(n-1)
    for j=(i+1):n
        rtmp=sqrt((x(i)-x(j)).^2+(x(n+i)-x(n+j)).^2);
        fval=fval.*rtmp;
        if rtmp < 2*r
            dfo=dfo+1;
        end
    end
end
fval=fval-dfo.*lamdao;