matlab 多目标优化的实际例子

各位大侠,哪位可以给出用matlab写的多目标优化的例子啊!什么方法也可以,GA了,NSGA,NPGA都可以!我很着急啊... 各位大侠,哪位可以给出用matlab写的多目标优化的例子啊!什么方法也可以,GA了,NSGA,NPGA 都可以!我很着急啊 展开
 我来答
昝飞燕Ap
推荐于2016-02-20 · TA获得超过1228个赞
知道答主
回答量:51
采纳率:0%
帮助的人:80.4万
展开全部
遗宏郑传算法GA求解无约睁粗束最优化问题,采用遗传算法求函数的最小值:
f(x,y)=x^4-16x^2-5xy+y^4-16y^2-5y

函数如下:
f=inline('x(1)^4-16*x(1)^2-5*x(1)*x(2)+x(2)^4-16*x(2)^2-5*x(2)','x');
l=[-5 -5];
u=[5 5];
x0=[0 0];
Np=30;
Nb=[12 12];
Pc=0.5;
Pm=0.01;
eta=0.8;
kmax=200;
[xos,fos]=fminsearch(f,x0)
[xo_gen,fo_gen]=genetic(f,x0,l,u,Np,Nb,Pc,Pm,eta,kmax)

其中调用的遗传算法函数为如下蔽早颂几个

genetic函数

function [xo,fo]=genetic(f,x0,l,u,Np,Nb,Pc,Pm,eta,kmax)

N=length(x0);

if nargin<10,kmax=100;end
if nargin<9|eta>1|eta<=0,eta=1;end
if nargin<8,Pm=0.01;end
if nargin<7,Pc=0.5;end
if nargin<6,Nb=8*ones(1,N);end
if nargin<5,Np=10;end

NNb=sum(Nb);
xo=x0(:)';l=l(:)';u=u(:)';
fo=feval(f,xo);
X(1,:)=xo;

for n=2:Np,X(n,:)=1+rand(size(x0)).*(u-1);
P=gen_encode(X,Nb,l,u);
for k=1:kmax
X=gen_decode(P,Nb,l,u);
for n=1:Np,fX(n)=feval(f,X(n,:));end
[fxb,nb]=min(fX);
if fxb<fo,fo=fxb;xo=X(nb,:);end
fX1=max(fxb)-fX;
fXm=fX1(nb);
if fXm<eps,return;end
for n=1:Np
X(n,:)=X(n,:)+eta*(fXm-fX1(n))/fXm*(X(nb,:)-X(n,:));
end
P=gen_encode(X,Nb,l,u);

is=shuffle([1:Np]);
for n=1:2:Np-1
if rand<Pc
P(is(n:n+1),:)=crossover(P(is(n:n+1),:),Nb);
end
end

P=mutation(P,Nb,Pm);
end

gen_encode函数

function P=gen_encode(X,Nb,l,u)
Np=size(X,l);
N=length(Nb);
for n=1:Np
b2=0;
for m=1:N
b1=b2+1;
b2=b2+Nb(m);
Xnm=(2^Nb(m)-1)*(X(n,m)-l(m))/(u(m)-l(m));
P(n,b1:b2)=dec2bin(Xnm,Nb(m));

end
end

gen_decode函数

function X=gen_decode(P,Nb,l,u)

Np=size(P,l);
N=length(Nb);

for n=1:Np
b2=0;
for m=1:N
b1=b2+1;
b2=b1+Nb(m)-1;
X(n,m)=bin2dec(P(n,b1:b2))*(u(m)-l(m))/(2^Nb(m)-1)+l(m);
end
end

crossover函数

function chrms2=crossover(chrms2,Nb)

Nbb=length(Nb);
b2=0;

for m=1:Nbb
b1=b2+1;
bi=b1+mod(floor(rand*Nb(m)),Nb(m));
b2=b2+Nb(m);
tmp=chrms2(1,bi:b2);
chrms2(1,bi:b2)=chrms2(2,bi:b2);
chrms2(2,bi:b2)=tmp;
end

mutation函数

function P=mutation(P,Nb,Pm)

Nbb=length(Nb);

for n=1:size(P,1)
b2=0;
for m=1:Nbb
if rand <Pm
b1=b2+1;
bi=b1+mod(floor(rand*Nb(m)),Nb(m));
b2=b2+Nb(m);
P(n,bi)=~P(n,bi);
end
end
end

shuffle函数

function is=shuffle(is)

N=length(is);
for n=N:-1:2
in=ceil(rand*(n-1));
tmp=is(in);is(in)=is(n);is(n)=tmp;
end

运行结果为

xos =

3.0453 3.1031

fos =

-186.4878

xo_gen=
2.9805 3.3150

fo_gen=
-184.2604
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
迈杰
2024-11-30 广告
RNA-seq数据分析是转录组研究的核心,包括数据预处理、序列比对、定量分析、差异表达分析、功能注释和可视化等步骤。数据预处理主要是质量控制和去除低质量序列。序列比对使用HISAT2、STAR等工具将reads比对到参考基因组。定量分析评估... 点击进入详情页
本回答由迈杰提供
手机用户82039
2011-03-17 · TA获得超过197个赞
知道答主
回答量:152
采纳率:0%
帮助的人:0
展开全部
此例子,自己修改一下就可以!

4.1理想点法
在(3)中,先求解 个单目标问题: ,设其最优值为 ,称 为氏氏值域中的一个理想点,因为一般很难达到。于是,在期望的某种度量之下,寻求距离 最近的 作为近似值。一种最直接的方法是最短距离理想点法,构造评价函数

然后极小化 ,即求解

并将它的最优解 作为(3)在这种意义下的“最优解”。

例1:利用理想点法求解

解:先分别对单目标求解:
①求解 最优解的MATLAB程序为
>> f=[3;-2]; A=[2,3;2,1]; b=[18;10]; lb=[0;0];
>> [x,fval]=linprog(f,A,b,[],[],lb)
结果输出为:x = 0.0000 6.0000
fval = -12.0000
即最优解为12.
②求解 最优解的MATLAB程序为
>> f=[-4;-3]; A=[2,3;2,1]; b=[18;10]; lb=[0;0];
>> [x,fval]=linprog(f,A,b,[],[],lb)
结果输出为:x =3.0000 4.0000
fval =-24.0000
即最优解为24.
于是得到理想点:歼世散(12,24).
然后求如下模型的最优解

MATLAB程序如下:
>> A=[2,3;2,1]; b=[18;10]; x0=[1;1]; lb=[0;0];
>> x=fmincon('((-3*x(1)+2*x(2)-12)^2+(4*x(1)+3*x(2)-24)^2)^(1/2)',x0,A,b,[],[],lb,[])
结果输出为:x = 0.5268 5.6488
则对应的目标返改值分别为 , .
追问
大师,你看还能不能给一个 多目标的,不是单目标的!真是麻烦了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钺联昱M
2011-03-16 · TA获得超过706个赞
知道小有建树答主
回答量:1789
采纳率:33%
帮助的人:899万
展开全部
优化什么的 联系我 有偿代做
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式