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.

classbypreference5.m
function lg=clasbypreference5(lg,p)
%  lg=clasbypreference5(lg,p)
%     p : matrix with the ranges of preferences
%
% (c) cpoh 2006


% spref es la clasificacin segun las tablas de preferencias 'p'
% se sigue el criterio de ovo-rule, el peor de los objetivos manda
% por ejemplo: es mejor 6 deseables que 1 Tolerable con 5 altamente 
% deseables.

%% inicializa
aux=zeros(lg.numind,lg.nobj);
lg.pref=zeros(lg.numind,1);
npuntos=size(p,2);
%% Vector de valores de ponderacin de cada una de los targets
% para que se cumpla el OVO-rule (depende del nmero de rangos 
% de funciones a evaluar)
valores=zeros(1,npuntos);
valores(2)=1;
if npuntos>=3
    for i=3:npuntos
        valores(i)=lg.nobj*valores(i-1)+1;
    end
end
lg.worstpref=valores(end)*lg.nobj;
%% aux contiene en que rango esta cada objetivo segn los targets 
% definidos. 
% 0=AD,1=D, etc.  
for i=1:lg.numind
    for j=1:lg.nobj  % Para cada punto
        k=2;
        while (k<=npuntos)&& (lg.spf(i,j)>p(j,k))
            aux(i,j)=aux(i,j)+1;
            k=k+1;
        end
    end
end

%% establecimiento de preferencias 
for i=1:lg.numind
    for j=1:lg.nobj  % Para cada punto
        lg.pref(i)=lg.pref(i)+ valores(aux(i,j)+1);
    end
end

%% incluye sortbyobjective
[lg.pref,ix]=sort(lg.pref);
lg.spf=lg.spf(ix,:);
lg.sps=lg.sps(ix,:);
lg.slayer=lg.slayer(ix,:);

Contact us