Rakstīt ziņojumu 
 
Pavediena vērtējums:
  • 0 balsis - 0 vidējais
  • 1
  • 2
  • 3
  • 4
  • 5
Matlab_Multikritēriju un Robust optimizācijas
Autors Ziņa
Chemical Power Atslēdzies
Junior Member
**

Ziņojumi: 18
Pievienojās: Jul 2009
Reputācija: 0
Ziņojums: #1
Matlab_Multikritēriju un Robust optimizācijas
Sveiki,
Studēju ķīmiju un mokos at Matlab mājasdarbu... Sad
Tātad, man nepieciešams optimizēt skriptu:
1) izmantojot multikirtērijas optimizēšanas prolēmu ar funkciju gamultiobj.
a) Ar svērtās summēšanas tehniku (uzdevumi nav konfliktējoši) [Tik tālu, ka šajā skriptā jāizmanto svērtā summēšana es sapratu (Gsum (vai gaf, tad x nomainās uz f)=w1x1+W2x2+W3X3)], kā to ielikt skriptā, man nedalec. Matlab palīdzības mājaslapā neatradu saistību starp gamultiobj un svērto sumēšanu.
b)Compromise programming sample. - Profesors man iedeva šitik informāciju (skatīt failu 11111.png), programmē pats. Jauki.

2) Robustā optimizācija - Paraugs ar vienu optimālo kritēriju var tikt pieņemts kā multikritērijas optimizācijas problēma, pievienojot standartnovirzi vai varianci no kādas izejošās vērtības kā kritērijs. - Atkal iedeva vot šitik informāciju un nekādus skripta piemērus (skatīti failu 22222.png)

Dotais pamata skripts (ar manis ievadītiem fmincon, ga un ga+fmincon un Pareto optimālo konceptu, kurā uzdevumi ir konfliktējoši):
---------------------------------------------------------------------------
clear all
%1. Initial data, Input data (variables, levels)
x1L=[1, 1.5, 2, 2.5];
x2L=[1, 1.5, 2, 2.5];
x3L=[0.5, 1.0, 1.5, 2];
% full factorial design need 4^3=64 experiments
x1=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,​1.5,1.5,1.5,1.5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,​2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5]
x2=[1,1,1,1,1.5,1.5,1.5,1.5,2,2,2,2,2.5,2.5,2.5,2.5,1,1,1,1,1.5,1.5,1.5,1.5,2,2,2,2,​2.5,2.5,2.5,2.5,1,1,1,1,1.5,1.5,1.5,1.5,2,2,2,2,2.5,2.5,2.5,2.5,1,1,1,1,1.5,1.5,​1.5,1.5,2,2,2,2,2.5,2.5,2.5,2.5]
x3=[0.5,2,2,2,0.5,0.5,1,1.5,1,1.5,1.5,2,0.5,1,1,1.5,0.5,1,1.5,1.5,0.5,0.5,1,2,1,1,1.​5,2,0.5,1.5,2,2,0.5,1,1,1.5,1.5,1.5,2,2,0.5,0.5,1.5,2,0.5,1,1,2,0.5,1,1.5,2,1,1,​1.5,2,0.5,0.5,1,2,0.5,1.5,1.5,2]

S=[x1;x2;x3];
%3. this formula we use instead of experiments
V=x1.^2+x2.^2+x3.^2;
%4. Function approximation using ANN
global net;
% defining network
net=newff(S,V, [10],{'tansig','purelin'},'trainlm');

net.trainParam.lr=0.05; % learning rate
net.trainParam.epochs=300;
%Train network
net = train(net, S, V);

%optimization
x0=[1.8,1.7,1.9];
A=[];
b=[];
% 2*x1+3x2<=20 ; 5x1-x2<=15 A=[3, 2; 5, -1] b=[20;15]
Aeq=[];
beq=[];
lb=[1, 1, 0.5];
ub=[2.5, 2.5, 2];
% using fmincon (gradient method)
[x,f,error_flag]=fmincon(@mer9020_ob1,x0,A,b,Aeq,beq,lb,ub)

% using ga (genetic algorithm)
[x,f,error_flag]=ga(@mer9020_ob1,3,A,b,Aeq,beq,lb,ub)

%hybrid approach
[xxx,f,error_flag]=ga(@mer9020_ob1,3,A,b,Aeq,beq,lb,ub)
[x,f,error_flag]=fmincon(@mer9020_ob1,xxx,A,b,Aeq,beq,lb,ub)

% multiobjective optimization
options = gaoptimset('PopulationSize',100,'Generations',30,'Display','iter','ParetoFractio​n',0.7,'PlotFcns', {@gaplotpareto});

[x,f,error_flag]=gamultiobj(@mer9020_ob2,3,A,b,Aeq,beq,lb,ub,options)
------------------------------------------------------------------------

Dotais papildskripts (Jāsaglabā kā atsevišķs fails: mer9020_ob1.m)
--------------------------
% next functions should be in separate files


% File : mer9020_ob1.m
function [ f ] = mer9020_ob1( x )
global net;
f(1)=sim(net,x');
% f(2)=..... Needed only in case of multiobjective problems
end


------------------
Dotais papildskripts (Jāsaglabā kā atsevišķs fails: mer9020_ob2.m)

-----------------------------
% b) File : mer9020_ob2.m
function [ f ] = mer9020_ob2( x )
global net;
f(1)=sim(net,x');
f(2)=x(1)+x(2)^2+x(3)*x(2);
end

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

Kā saprotat, esmu pilnīgs idiots Matlabā, bet profesors uzskata mani par ģēniju, jo esmu kaut kā ticis līdz trešā mājasdarba pildīšanai, bet parādīt risinājuma piemērus kā negrib, tā negrib. Man principā pietiktu ar nepieciešamajām skripta daļām pēc minētajiem principiem, bet ja iedosiet pilnu atrisinājumu, konjaks no manis. Smile

Jau iepriekš paldies!


Pievienotie faili
.png  22222.png (Izmērs: 28,22 KB / Lejupielādes: 776)
.png  11111.png (Izmērs: 34,51 KB / Lejupielādes: 773)
19.11.2015 11:56
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Chemical Power Atslēdzies
Junior Member
**

Ziņojumi: 18
Pievienojās: Jul 2009
Reputācija: 0
Ziņojums: #2
RE: Matlab_Multikritēriju un Robust optimizācijas
Nupat uztaisīju 1a risinājumu. Skripts it kā strādā, bet man neliekas, ka pilnīgi pareizi.

------------------------
clear all
%1. Initial data, Input data (variables, levels)
x1L=[1, 1.5, 2, 2.5];
x2L=[1, 1.5, 2, 2.5];
x3L=[0.5, 1.0, 1.5, 2];
% full factorial design need 4^3=64 experiments
x1=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,1.5,​1.5,1.5,1.5,1.5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,​2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5]
x2=[1,1,1,1,1.5,1.5,1.5,1.5,2,2,2,2,2.5,2.5,2.5,2.5,1,1,1,1,1.5,1.5,1.5,1.5,2,2,2,2,​2.5,2.5,2.5,2.5,1,1,1,1,1.5,1.5,1.5,1.5,2,2,2,2,2.5,2.5,2.5,2.5,1,1,1,1,1.5,1.5,​1.5,1.5,2,2,2,2,2.5,2.5,2.5,2.5]
x3=[0.5,2,2,2,0.5,0.5,1,1.5,1,1.5,1.5,2,0.5,1,1,1.5,0.5,1,1.5,1.5,0.5,0.5,1,2,1,1,1.​5,2,0.5,1.5,2,2,0.5,1,1,1.5,1.5,1.5,2,2,0.5,0.5,1.5,2,0.5,1,1,2,0.5,1,1.5,2,1,1,​1.5,2,0.5,0.5,1,2,0.5,1.5,1.5,2]

S=[x1;x2;x3];
%3. this formula we use instead of experiments
V=x1.^2+x2.^2+x3.^2;
%4. Function approximation using ANN
global net;
% defining network
net=newff(S,V, [10],{'tansig','purelin'},'trainlm');

net.trainParam.lr=0.05; % learning rate
net.trainParam.epochs=300;
%Train network
net = train(net, S, V);

%optimization
x0=[1.8,1.7,1.9];
A=[];
b=[];
% 2*x1+3*x2<=20 ; 5*x1-x2<=15 A=[3, 2; 5, -1] b=[20;15]
Aeq=[];
beq=[];
lb=[1, 1, 0.5];
ub=[2.5, 2.5, 2];
% using fmincon (gradient method)
[x,f,error_flag]=fmincon(@mer9020_ob3,x0,A,b,Aeq,beq,lb,ub)

% using ga (genetic algorithm)
[x,f,error_flag]=ga(@mer9020_ob3,3,A,b,Aeq,beq,lb,ub)

%hybrid approach
[xxx,f,error_flag]=ga(@mer9020_ob3,3,A,b,Aeq,beq,lb,ub);
[x,f,error_flag]=fmincon(@mer9020_ob3,xxx,A,b,Aeq,beq,lb,ub)

--------------------------------------
Dotais papildskripts (Jāsaglabā kā atsevišķs fails: mer9020_ob3.m)
-------------------------------
% b) File : mer9020_ob3.m
function [ f ] = mer9020_ob3( x )
global net;
ff(1)=sim(net,x');
ff(2)=x(1)*sin(x(2));
ff(3)=x(2)*3;

w(1)=(1/3);
w(2)=(1/3);
w(3)=(1/3);

f=w(1)*ff(1)+w(2)*ff(2)+w(3)*ff(3);

end
---------------------------------------------
19.11.2015 17:16
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Chemical Power Atslēdzies
Junior Member
**

Ziņojumi: 18
Pievienojās: Jul 2009
Reputācija: 0
Ziņojums: #3
RE: Matlab_Multikritēriju un Robust optimizācijas
Sekojošo papildfaila skriptu profesors atzina par labu esam:
Funkcijas ff(2) un ff(3) - ieliek pēc brīvas izvēles.
---------------------------------------------------------------
% b) File : mer9020_ob3.m
function [ f ] = mer9020_ob3( x )
global net;
ff(1)=sim(net,x');
ff(2)=x(1)*sin(x(2));
ff(3)=4*(x(1))^3+3*(x(2))^2+2*(x(3))+1;

w(1)=(1/3);
w(2)=(1/3);
w(3)=(1/3);

f=w(1)*ff(1)+w(2)*ff(2)+w(3)*ff(3);

end
20.11.2015 11:11
Atrast visus šī lietotāja rakstītos ziņojumus Citēt šo ziņu atbildē
Rakstīt ziņojumu 


Lēciens uz forumu:



Kontaktifizmati.lvAtgriezties uz augšuAtgriezties pie saturaArhīva skatsRSS sindikācija