package optimizacion;

/**
 * <p>Title: Ejemplo de minimizacion de una funcion
 * utilizando algoritmos geneticos binarios</p>
 * <p>Description: Minimiza la funcion dada</p>
 * <p>Copyright: Copyright (c) 2007</p>
 * <p>Company: UMSNH</p>
 * @author Dr. Felix Calderon Solorio
 * @version 1.0
 */

public class ejemplo12 extends geneticos_binarios {
    public static void main(String[] args) {
       double r[][] = {{0, 10}, {0, 10}};
       ejemplo12 aplica = new ejemplo12(48, 2, 150, 10, r);
       aplica.Itera();
       aplica.imprime();
   }

   /**
    * Constructor local
    * @param poblacion int Tamano de la poblacion
    * @param parametros int Numero de parametros de la funcion
    * @param iter int numero de generaciones
    * @param genes int numeros de genes por parametro
    * @param Ran double[][] Rangos de busqueda
    */

   public ejemplo12(int poblacion, int parametros, int iter, int genes, double Ran[][])
   {
       super(poblacion, parametros, iter, genes, Ran);
   }

   /**
    * Funci�n a minimiza
    * @param x double[]
    * @return double
    */

   public double funcion(int vector[][]) {
       double f, x, y;
       x = decodificar(vector[0], 0);
       y = decodificar(vector[1], 1);

       f = x*Math.sin(4.0*x) + 1.1*y*Math.sin(2.0*y);

       return (f);
   }
}
