function f=proce_cerveza(t,poblac,Tfin)
%
% PROCE_CERVEZA Función de evaluación de la cerveza
%
% USO:	F=proce_cerveza(T,POBL,TFIN)
%
%   T: Not used
%	POBL,	(NxG) Población de N individuos y G genes cada uno.
%	TFIN,	Tiempo final de la simulación.
%
%	F,	(Nx1) Valor de la función evaluación para cada individuo.
%   

% APRENDIZAJE AUTOMÁTICO (G. Pajares y J. M. de la Cruz, Eds.)
% Editorial: RA-MA
% Capítulo 9: El Aprendizaje con Algoritmos Genéticos
% Autores: Bonifacio de Andres y Toro


[Ni,Ng]=size(poblac);
interv=ones(1,Ng-1)*(Tfin/(Ng-1)); 	%Valor de intervalo en horas.
f=proce(poblac,interv);


function [J]=proce(perfil,inter),
%
% Programa que simula la fermentacion de la cerveza.  
% 6 de abril 2001
%
% USO: 	J=PROCE(T,PERFIL,INTER)
%
%	PERFIL,	(Lch)x1 Perfil de temperaturas.
%	INTER,	(N-1)x1 Intervalo temperaturas.
%
%	J,	Valor a optimizar 

limitar=1;

J=proce_basic(perfil,inter);

J(:,1)=-floor(J(:,1)*100)/100; 						%EA, (minimizar -> lo cambio de signo)
if (limitar)
   lm=find(J(:,1)>=-15);
   J(lm,1)=0;
end

J(:,2)=floor(J(:,2)*10)/10;							%alcohol			
if (limitar)
   lm=find(J(:,2)>=60);
   J(lm,2)=60;
end

lm=find(J(:,3)>=2);
J(lm,3)=ceil(J(lm,3)/5)*5;						%sumabulb (minimizar -> cambio de signo)
J(:,3)=-J(:,3);



J(:,4)=-floor(J(:,4)*100)/100;	 						%vdk, (minimizar -> lo cambio de signo)

if (limitar)
   lm=find(J(:,4)>=-.2);
   J(lm,4)=0;
end

J(:,5)=-J(:,5);						%perfil (minimizar -> cambio de signo)

J(:,6)=-round(J(:,6)/10)*10;						%calor (minimizar -> cambio de signo)

%J(:,7)=-round(J(:,7)/10)*10;						%dercalor (minimizar ->
%cambio de signo)