Skip to content
Browse files

Poursuite debug enrichissement

  • Loading branch information...
1 parent ca4f2d9 commit f630e2540985a6406a6b2c55d1ef6c6ee5af117e @l2 committed
Showing with 52 additions and 58 deletions.
  1. +3 −2 doe/ajout_tir_doe.m
  2. +1 −1 doe/ajout_tir_meta.m
  3. +15 −11 exec/aff_doe.m
  4. +2 −2 exec/enrich_meta.m
  5. +5 −5 exec/gene_aff.m
  6. +9 −19 exec/gene_doe.m
  7. +5 −2 exec/init_doe.m
  8. +1 −0 meta/estim_para_krg_ckrg.m
  9. +1 −8 meta/eval_krg_ckrg.m
  10. +10 −8 meta_enrich.m
View
5 doe/ajout_tir_doe.m
@@ -1,10 +1,11 @@
-%% Fonction assurant l'enrichissemsnt de la base de points echantillonnes
+%% Fonction assurant l'enrichissement de la base de points echantillonnes
%% L. LAURENT -- 04/12/2011 -- laurent@lmt.ens-cachan.fr
function new_tir=ajout_tir_doe(old_tirages)
-global doe;
+global doe
+doe
Xmin=doe.Xmin;
Xmax=doe.Xmax;
View
2 doe/ajout_tir_meta.m
@@ -41,7 +41,7 @@
figure
end
if ~enrich.aff_iter_cmd
- options_ga=optimset(options_ga,'Display', 'notify');
+ options_ga=optimset(options_ga,'Display', 'off');
end
%% Minimisation par algo genetique
switch enrich.algo
View
26 exec/aff_doe.m
@@ -4,11 +4,17 @@
function aff_doe(tirages,doe)
-%recupŽration bornes espace de conception
-esp=doe.bornes;
+%recupeŽration bornes espace de conception
+if isfield(doe,'Xmin')&&isfield(doe,'Xmax')
+ Xmin=doe.Xmin;
+ Xmax=doe.Xmax;
+elseif isfield(doe,'bornes')
+ Xmin=doe.bornes(:,1);
+ Xmax=doe.bornes(:,2);
+end
%nombre de variables
-nbv=size(esp,1);
+nbv=numel(Xmin);
if doe.aff
para=0.1;
@@ -16,16 +22,16 @@ function aff_doe(tirages,doe)
figure
yy=0.*tirages;
plot(tirages,yy,'o','MarkerEdgeColor','b','MarkerFaceColor','b')
- xmin=esp(:,1);
- xmax=esp(:,2);
+ xmin=Xmin;
+ xmax=Xmax;
dep=xmax-xmin;
axis([(xmin-para*dep) (xmax+para*dep) -1 1])
elseif nbv==2
figure
- xmin=esp(1,1);
- xmax=esp(1,2);
- ymin=esp(2,1);
- ymax=esp(2,2);
+ xmin=Xmin(1);
+ xmax=Xmax(1);
+ ymin=Xmin(2);
+ ymax=Xmax(2);
depx=xmax-xmin;
depy=ymax-ymin;
plot(tirages(:,1),tirages(:,2),'o','MarkerEdgeColor','b','MarkerFaceColor','b')
@@ -34,8 +40,6 @@ function aff_doe(tirages,doe)
else
figure
it=0;
- Xmin=esp(:,1);
- Xmax=esp(:,2);
Depx=Xmax-Xmin;
for ii=1:nbv
for jj=1:nbv
View
4 exec/enrich_meta.m
@@ -101,10 +101,10 @@
switch enrich.type
% en se basant sur l'Expected Improvement
case {'EI','VAR','WEI','LCB'}
- new_tirages=ajout_tir_meta(old_meta,approx,enrich);
+ new_tirages=ajout_tir_meta(meta,approx,enrich);
%en ajoutant des points dans le tirages
case {'DOE'}
- new_tirages=ajout_tir_doe(doe,old_tirages);
+ new_tirages=ajout_tir_doe(old_tirages);
otherwise
fprintf(' >> Mode d''enrichissement non défini <<\n');
end
View
10 exec/gene_aff.m
@@ -4,18 +4,18 @@
function [XY,aff]=gene_aff(doe,aff)
%dimension de l'espace
-dim_esp=size(doe.bornes,1);
+dim_esp=numel(doe.Xmin);
% on genere la grille d'étude du métamodèle en fonction du nb de variables
% prises en compte.
if dim_esp==1
- XY=linspace(doe.bornes(1),doe.bornes(2),aff.nbele);
+ XY=linspace(doe.Xmin,doe.Xmax,aff.nbele);
% en 2D on définit une grille à partir de meshgrid
elseif dim_esp==2
- x=linspace(doe.bornes(1,1),doe.bornes(1,2),aff.nbele);
- y=linspace(doe.bornes(2,1),doe.bornes(2,2),aff.nbele);
+ x=linspace(doe.Xmin(1),doe.Xmax(1),aff.nbele);
+ y=linspace(doe.Xmin(2),doe.Xmax(2),aff.nbele);
[grid_X,grid_Y]=meshgrid(x,y);
XY=zeros(size(grid_X,1),size(grid_X,2),2);
@@ -36,4 +36,4 @@
end
%pas de la grille d'affichage selon les deux variables
-aff.pas=abs(doe.bornes(:,2)-doe.bornes(:,1))./aff.nbele;
+aff.pas=abs(doe.Xmax-doe.Xmin)./aff.nbele;
View
28 exec/gene_doe.m
@@ -10,10 +10,16 @@
fprintf('===== DOE =====\n');
%recupŽration bornes espace de conception
-esp=doe.bornes;
+if isfield(doe,'Xmin')&&isfield(doe,'Xmax')
+ Xmin=doe.Xmin;
+ Xmax=doe.Xmax;
+elseif isfield(doe,'bornes')
+ Xmin=doe.bornes(:,1);
+ Xmax=doe.bornes(:,2);
+end
%nombre de variables
-nbv=size(esp,1);
+nbv=numel(Xmin);
%recuperation nombre d'échantillons souhaités
nbs=doe.nb_samples;
@@ -25,23 +31,15 @@
tirages=factorial_design(nbs,esp);
% Latin Hypercube Sampling avec R (et préenrichissement)
case 'LHS_R'
- Xmin=esp(:,1);
- Xmax=esp(:,2);
tirages=lhsu_R(Xmin,Xmax,prod(nbs(:)));
% Improved Hypercube Sampling avec R (et préenrichissement)
case 'IHS_R'
- Xmin=esp(:,1);
- Xmax=esp(:,2);
tirages=ihs_R(Xmin,Xmax,prod(nbs(:)));
% Latin Hypercube Sampling (à loi uniforme)
case 'LHS'
- Xmin=esp(:,1);
- Xmax=esp(:,2);
tirages=lhsu(Xmin,Xmax,prod(nbs(:)));
% LHS avec stockage des données
case 'LHS_manu'
- Xmin=esp(:,1);
- Xmax=esp(:,2);
%on verifie si le dossier de stockage existe (si non on le cree)
if exist('TIR_MANU','dir')~=7
unix('mkdir TIR_MANU');
@@ -63,8 +61,6 @@
tirages=tirages.*repmat(Xmax(:)'-Xmin(:)',prod(nbs(:)),1)+repmat(Xmin(:)',prod(nbs(:)),1);
case 'LHS_R_manu'
- Xmin=esp(:,1);
- Xmax=esp(:,2);
%on verifie si le dossier de stockage existe (si non on le cree)
if exist('TIR_MANU','dir')~=7
unix('mkdir TIR_MANU');
@@ -86,8 +82,6 @@
tirages=tirages.*repmat(Xmax(:)'-Xmin(:)',prod(nbs(:)),1)+repmat(Xmin(:)',prod(nbs(:)),1);
case 'IHS_R_manu'
- Xmin=esp(:,1);
- Xmax=esp(:,2);
%on verifie si le dossier de stockage existe (si non on le cree)
if exist('TIR_MANU','dir')~=7
unix('mkdir TIR_MANU');
@@ -109,8 +103,6 @@
tirages=tirages.*repmat(Xmax(:)'-Xmin(:)',prod(nbs(:)),1)+repmat(Xmin(:)',prod(nbs(:)),1);
% tirages aléatoires
case 'IHS_R_manu_enrich'
- Xmin=esp(:,1);
- Xmax=esp(:,2);
%on verifie si le dossier de stockage existe (si non on le cree)
if exist('TIR_MANU','dir')~=7
unix('mkdir TIR_MANU');
@@ -133,8 +125,6 @@
tirages=tirages(1:nbs,:).*repmat(Xmax(:)'-Xmin(:)',prod(nbs(:)),1)+repmat(Xmin(:)',prod(nbs(:)),1);
% tirages aléatoires
case 'LHS_R_manu_enrich'
- Xmin=esp(:,1);
- Xmax=esp(:,2);
%on verifie si le dossier de stockage existe (si non on le cree)
if exist('TIR_MANU','dir')~=7
unix('mkdir TIR_MANU');
@@ -151,7 +141,7 @@
fprintf('Tirage inexistant >> execution!!\n')
t_init=lhsu_R(0*Xmin,0*Xmax+1,doe.nbs_min); % on initialise le tirage
[tirages,~]=lhsu_R(0*Xmin,0*Xmax+1,doe.nbs_min,t_init,doe.nbs_max);
- save(fi,'tirages');
+ save(fi,'tirages');
end
% on corrige le tirage pourobetnir le bon espace
tirages=tirages(1:nbs,:).*repmat(Xmax(:)'-Xmin(:)',prod(nbs(:)),1)+repmat(Xmin(:)',prod(nbs(:)),1);
View
7 exec/init_doe.m
@@ -7,6 +7,7 @@
switch fct
case 'manu'
esp=[0 15];
+ dim=1;
case 'rosenbrock'
val=2.048;
esp=val*[-ones(dim,1),ones(dim,1)];
@@ -67,9 +68,11 @@
%definition manuelle
if nargin==3&&~isempty(def)
- doe.bornes=def;
+ doe.Xmin=def(:,1);
+ doe.Xmax=def(:,2);
else
- doe.bornes=esp;
+ doe.Xmin=esp(:,1);
+ doe.Xmax=esp(:,2);
end
%nom de la fonction a appeler
View
1 meta/estim_para_krg_ckrg.m
@@ -62,6 +62,7 @@
if ~meta.para.aff_iter_cmd
options_fmincon=optimset(options_fmincon,'Display', 'notify');
options_fminbnd=optimset(options_fminbnd,'Display', 'notify');
+ options_ga=optimset(options_ga,'Display', 'off');
end
%minimisation de la log-vraisemblance suivant l'algorithme choisi
View
9 meta/eval_krg_ckrg.m
@@ -157,15 +157,13 @@
eval_min=min(donnees.in.eval);
diff_ei=(eval_min-Z);
if variance~=0
- u=diff_ei/variance^2;
+ u=diff_ei/variance;
end
%pour calcul Expected Improvement (Schonlau 1997/Jones 1999/Bompard
%2011/Sobester 2005...)
%exploration (densite probabilite)
if variance~=0
explor=variance*1/sqrt(2*pi)*exp(-0.5*u^2);
- explor
- exp(-0.5*u^2)
else
explor=0;
end
@@ -176,11 +174,6 @@
else
exploit=0;
end
- diff_ei
- variance
- u
- explor
- exploit
%critere Weigthed Expected Improvement (Sobester 2005)
wei=donnees.enrich.para_wei*exploit+(1-donnees.enrich.para_wei)*explor;
%critere Expected Improvement (Schonlau 1997)
View
18 meta_enrich.m
@@ -3,7 +3,7 @@
%effacement du Workspace
clear all
-global aff
+global aff doe
%chargement des repertoires de travail
init_rep;
@@ -18,7 +18,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%fonction etudiee
-fct='peaks';
+fct='manu';
%beale(2),bohachevky1/2/3(2),booth(2),branin(2),coleville(4)
%dixon(n),gold(2),michalewicz(n),mystery(2),peaks(2),rosenbrock(n)
%sixhump(2),schwefel(n),sphere(n),sumsquare(n)
@@ -41,25 +41,25 @@
doe.nb_samples=3;
% Parametrage du metamodele
-data.para.deg=0;
+data.deg=0;
data.para.long=[0.5 20];
data.para.swf_para=4;
data.para.rbf_para=1;
%long=3;
data.corr='matern32';
-data.rbf='gauss';
+data.rbf='matern32';
data.type='KRG';
data.grad=true;
meta=init_meta(data);
%parametrage enrichissement
-enrich.crit_type={'NB_PTS','CV_MSE'};
-enrich.val_crit={100,10^-2};
-enrich.type='DOE';
+enrich.crit_type={'NB_PTS'};%,'CV_MSE'};
+enrich.val_crit={10};%,10^-4};
+enrich.type='VAR';
enrich.on=true;
enrich.algo='ga';
-enrich.aff_iter_graph=true;
+enrich.aff_iter_graph=false;
enrich.aff_iter_cmd=true;
@@ -186,3 +186,5 @@
if meta.save
save([aff.doss '/WS.mat']);
end
+
+extract_aff_nD

0 comments on commit f630e25

Please sign in to comment.
Something went wrong with that request. Please try again.