多目标优化遗传算法

一:运用MATLAB遗传算法工具箱求解非线性多目标优化问题,烦请高人指点!

将下属两个目标函数分别保存在两个m文件中

function f1=func1(x) %第一目标函数

f1=x(:,1).*x(:,1)./4+x(:,2).*x(:,2)./4;

function f2=func2(x) %第二目标函数

f2=x(:,1).*(1-x(:,2))+10;

function GA()

clear;clc;close all

NIND=100; %个体数目

MAXGEN=50; %最大遗传代数

NVAR=2; 埂 %变量个数

PRECI=20; %变量的二进制位数

GGAP=0.9; %代沟

trace1=[];trace2=[];trace3=[]; %性能跟踪

%建立区域描述器

% rep([PRECI],[1,NVAR])

FieldD=[rep([PRECI],[1,NVAR]);rep([1;2],[1,NVAR]);rep([1;0;1;1],[1,NVAR])];

Chrom=crtbp(NIND,NVAR*PRECI); %初始种群

v=bs2rv(Chrom,FieldD) ; %初始种群十进制转换

gen=1;

while gen

[NIND,N]=size(Chrom);

M=fix(NIND/2);

ObjV1=func1(v(1:M,:)); %分组后第一目标函数值

FitnV1=ranking(ObjV1); %分配适应度值

SelCh1=select('sus',Chrom(1:M,:),FitnV1,GGAP); %选择

ObjV2=func2(v(M+1:NIND,:)); %分组后第二目标函数值

FitnV2=ranking(ObjV2); %分配适应度值

SelCh2=select('sus',Chrom(M+1:NIND,:),FitnV2,GGAP); %选择

SelCh=[SelCh1;SelCh......余下全文>>

二:遗传算法可以用来求多目标优化么

我给你一个标准遗传算法程序供你参考:

该程序是遗传算法优化BP神经网络函数极值寻优:

%% 该代码为基于神经网络遗传算法的系统极值寻优

%% 清空环境变量

clc

clear

%% 初始化遗传算法参数

%初始化参数

maxgen=100; %进化代数,即迭代次数

sizepop=20; %种群规模

pcross=[0.4]; %交叉概率选择,0和1之间

pmutation=[0.2]; %变异概率选择,0和1之间

lenchrom=[1 1]; %每个变量的字串长度,如果是浮点变量,则长度都为1

bound=[-5 5;-5 5]; %数据范围

individuals=struct('fitness',zeros(1,sizepop), 'chrom',[]); %将种群信息定义为一个结构体

avgfitness=[]; %每一代种群的平均适应度

bestfitness=[]; %每一代种群的最佳适应度

bestchrom=[]; %适应度最好的染色体

%% 初始化种群计算适应度值

% 初始化种群

for i=1:sizepop

%随机产生一个种群

individuals.chrom(i,:)=Code(lenchrom,bound);

x=individuals.chrom(i,:);

%计算适应度

individuals.fitness(i)=fun(x); %染色体的适应度

end

%找最好的染色体

[bestfitness bestindex]=min(individuals.fitness);

bestchrom=individuals.chrom(bestindex,:); %最好的染色体

avgfitness=sum(individuals.fitness)/sizepop; %染色体的平均适应度

% 记录每一代进化中最好的适应度和平均适应度

trace=[avgfitness bestfitness];

%% 迭代寻优

% 进化开始

for i=1:maxgen

i

% 选择

individuals=Select(individuals,sizepop);

avgfitness=sum(individuals.fitness)/sizepop;

%交叉

individuals.chrom=Cross(pcross,lenchrom,individuals.chrom,sizepop,bound);

% 变异

individuals.chrom=Mutation(pmutation,lenchrom,individuals.chrom,sizepop,[i maxgen],bound);

% 计算适应度

for j=1:sizepop

x=individuals.chrom(j,:); %解码

individuals.fitness(j)=fun(x);

end

%找到最小和最大适应度的染色体及它们在种群中的位置

[newbestfitness,newbestindex]=min(individuals.fit......余下全文>>

三:matlab遗传算法工具箱多目标函数优化的例子谁有, 50分

Matlab遗传算法工具箱帮助文件自带多目标函数优化例子。

四:MATLAB遗传算法工具箱求解非线性多目标优化问题

将下属两个目标函数分别保存在两个m文件中

function f1=func1(x) %第一目标函数

f1=x(:,1).*x(:,1)./4+x(:,2).*x(:,2)./4;

function f2=func2(x) %第二目标函数

f2=x(:,1).*(1-x(:,2))+10;

function GA()

clear;clc;close all

NIND=100; %个体数目

MAXGEN=50; %最大遗传代数

NVAR=2; %变量个数

PRECI=20; %变量的二进制位数

GGAP=0.9; %代沟

trace1=[];trace2=[];trace3=[]; %性能跟踪

%建立区域描述器

% rep([PRECI],[1,NVAR])

FieldD=[rep([PRECI],[1,NVAR]);rep([1;2],[1,NVAR]);rep([1;0;1;1],[1,NVAR])];

Chrom=crtbp(NIND,NVAR*PRECI); %初始种群

v=bs2rv(Chrom,FieldD) ; %初始种群十进制转换

gen=1;

while gen

[NIND,N]=size(Chrom);

M=fix(NIND/2);

ObjV1=func1(v(1:M,:)); %分组后第一目标函数值

FitnV1=ranking(ObjV1); %分配适应度值

SelCh1=select('sus',Chrom(1:M,:),FitnV1,GGAP); %选择

ObjV2=func2(v(M+1:NIND,:)); %分组后第二目标函数值

FitnV2=ranking(ObjV2); %分配适应度值

SelCh2=select('sus',Chrom(M+1:NIND,:),FitnV2,GGAP); %选择

SelCh=[SelCh1;SelCh2]; ......余下全文>>

五:跪求一份多目标优化遗传算法 matlab源代码,不甚感激。邮 箱991882239

我给你一个标准遗传算法程序供你参考:

该程序是遗传算法优化BP神经网络函数极值寻优:

%% 该代码为基于神经网络遗传算法的系统极值寻优

%% 清空环境变量

clc

clear

%% 初始化遗传算法参数

%初始化参数

maxgen=100; %进化代数,即迭代次数

sizepop=20; %种群规模

pcross=[0.4]; %交叉概率选择,0和1之间

pmutation=[0.2]; %变异概率选择,0和1之间

lenchrom=[1 1]; %每个变量的字串长度,如果是浮点变量,则长度都为1

bound=[-5 5;-5 5]; %数据范围

individuals=struct('fitness',zeros(1,sizepop), 'chrom',[]); %将种群信息定义为一个结构体

avgfitness=[]; %每一代种群的平均适应度

bestfitness=[]; %每一代种群的最佳适应度

bestchrom=[]; %适应度最好的染色体

%% 初始化种群计算适应度值

% 初始化种群

for i=1:sizepop

%随机产生一个种群

individuals.chrom(i,:)=Code(lenchrom,bound);

x=individuals.chrom(i,:);

%计算适应度

individuals.fitness(i)=fun(x); %染色体的适应度

end

%找最好的染色体

[bestfitness bestindex]=min(individuals.fitness);

bestchrom=individuals.chrom(bestindex,:); %最好的染色体

avgfitness=sum(individuals.fitness)/sizepop; %染色体的平均适应度

% 记录每一代进化中最好的适应度和平均适应度

trace=[avgfitness bestfitness];

%% 迭代寻优

% 进化开始

for i=1:maxgen

i

% 选择

individuals=Select(individuals,sizepop);

avgfitness=sum(individuals.fitness)/sizepop;

%交叉

individuals.chrom=Cross(pcross,lenchrom,individuals.chrom,sizepop,bound);

% 变异

individuals.chrom=Mutation(pmutation,lenchrom,individuals.chrom,sizepop,[i maxgen],bound);

% 计算适应度

for j=1:sizepop

x=individuals.chrom(j,:); %解码

individuals.fitness(j)=fun(x);

end

......余下全文>>

六:MATLAB遗传算法编程(多目标优化) 90分

多目标是通过分布性 和非劣解来进行评价的

七:matlab 非线性多目标的遗传算法问题

用matlab的ga()遗传算法函数求非线性多目标的最小值(或最大值),其解决帮助如下:

1、首先建立自定义目标函数,y=FitFun(x)

2、其二建立自定义约束函数,[c,ceq]=NonCon(x)

3、最后,根据已知条件,用ga()函数求解。

为了说明问题,没有用你随意给的问题。下面,给你一个例子作参考。

FitFun.m

function f = FitFun(x,a1)

f = exp(x(1))*(4*x(1)^2 + 2*x(2)^2 + 4*x(1)*x(2) + 2*x(2) + a1);

end

NonCon.m

function [c,ceq] = NonCon(x,a2)

c = [1.5 + x(1)*x(2) - x(1) - x(2);-x(1)*x(2) - a2];

ceq = [];

end

ga_main.m

a1 = 1; a2 = 10;

options = gaoptimset('MutationFcn',@mutationadaptfeasible);

x = ga(@(x) FitFun(x,a1),2,[],[],[],[],[],[],@(x) NonCon(x,a2),options)

运行结果

八:多目标优化遗传算法求解混合整数规划问题

可以参考多目标寻优遗传方法的进化思路,把遗传算法修改为针对整数规划的方法就可以

扫一扫手机访问

发表评论