function f=proce_cerveza(t,poblac,Tfin)
%
% Función de evaluación de la población
%
% USO:	F=GM_EVAL(T,POBL,TFIN)
%
%	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=procein(poblac,interv);



function [J]=procein(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 

% Las exponeciales sirven para poner las restricciones donde queremos

J=proce_basic(perfil,inter);
J1=-1.16e-29*exp(4.6*J(:,1)); %EA (minimizar -> lo cambio de signo, y elevo, para poner restriccion en 15 (==.15))
J2=10*J(:,2);						%alcohol			
J3=-J(:,3);							%sumabulb (minimizar -> cambio de signo)
J4=-5.73e-8*exp(95*J(:,4));	%vdk (minimizar -> lo cambio de signo y elevo, para poner la restriccion en .2)
%J5=-0.1*J(:,5);					%perfil (minimizar -> cambio de signo)
%J6=-0.0001*J(:,6);				%calor (minimizar -> cambio de signo)
J5=-0.1*J(:,5);					%perfil (minimizar -> cambio de signo)
%J6=-0.00001*J(:,6);				%calor (minimizar -> cambio de signo)


J=J1+J2+J3+J4+J5;

%a=find(J<=0);
%J(a)=.2;
