image thumbnail

Leveldiagrams for multiobjective decision making

by

 

08 May 2009 (Updated )

A tool to draw Leveldiagrams for Pareto Set/Front, allowingsome basics graphics manipulations.

buildlgstruct5.m
function lgstruct=buildlgstruct5(pf,ps,norma)
% lgstruct=buildlgstruct5(pf,ps,norma)
% Generate a struct 'lgstruct' for Graph Layer representation
%    pf: pareto front matrix
%    ps: pareto set matrix
%    norma: norm
%
% Description of lgstruct:
%
% lgstruct.norma
% lgstruct.numind
% lgstruct.nobj
% lgstruct.npar
% lgstruct.maxpf
% lgstruct.minpf
% lgstruct.maxps
% lgstruct.minps
% lgstruct.slayer
% lgstruct.spf
% lgstruct.sps
% lgstruct.figuras
% lgstruct.axis
% lgstruct.pref
% lgstruct.selpoint
% lgstruct.layout
% lgstruct.worstpref
%
% Beta version 
% Copyright 2006 - 2008 - CPOH  
% Grupo de Control Predictivo y Optimizacin Heurstica.
% Universidad Politcnica de Valencia - Spain.
% http://ctl-predictivo.upv.es
%% Norma por defecto
if nargin==2
    lgstruct.norma=2;
elseif nargin>3
    error('demasiados parametros')
else
    lgstruct.norma=norma;
end
%% Tamaos de los conjuntos.
lgstruct.numind=size(pf,1);
lgstruct.nobj=size(pf,2);
lgstruct.npar=size(ps,2);

%% normaliza el frente de pareto (de 0 a 1)
lgstruct.maxpf=max(pf);
lgstruct.minpf=min(pf);
maxpf=repmat(lgstruct.maxpf,lgstruct.numind,1);
minpf=repmat(lgstruct.minpf,lgstruct.numind,1);
norpf=(pf-minpf)./(maxpf-minpf);

lgstruct.maxps=max(ps);
lgstruct.minps=min(ps);

%% Calcula la distancia de cada punto (normalizado) al cero
% Asigna cada individuo a una capa.
distancia=zeros(lgstruct.numind,1);
for i=1:lgstruct.numind
    distancia(i)=norm(norpf(i,:),lgstruct.norma);
end

%% Ordena segn el valor de la distancia
% slayer contiene el valor de la distancia
[lgstruct.slayer,indices]=sort(distancia);
%snorpf=norpf(indices,:);
lgstruct.spf=pf(indices,:); %Ordena el pareto front 
lgstruct.sps=ps(indices,:); %Ordena el pareto set

%% Manejadores grficos
lgstruct.figuras=[];
lgstruct.axis=[];
lgstruct.pref=0.37*ones(lgstruct.numind,1); %15/40=0.37 para color rojo
lgstruct.selpoint=[];
lgstruct.worstpref=1;

Contact us