Algoritmo genetico

Solo disponible en BuenasTareas
  • Páginas : 4 (808 palabras )
  • Descarga(s) : 0
  • Publicado : 18 de junio de 2011
Leer documento completo
Vista previa del texto
Como hacer un programa con algoritmos genéticos usando ECJ

Resumen: El presente articulo pretende mostrar los procedimientos necesarios para implementar un algoritmos genético en JAVA mediante lalibrería ECJ.

Problema

Queremos buscar un vector con la mayor cantidad de 1 en su interior aunque la solución es trivial. Nos sirve para ver como se ejecuta la librería ECJ para JAVA.Representación

Una matriz de individuos llamada GENOMA en el algoritmo o algorítmicamente un vector de vectores donde se encontraran los individuos.

Función fitness

Es la suma de los elementos decada vector o individuo dentro del genoma dividido sobre la longitud del individuo (Esto me da 1 si todos los elementos son 1) buscando el valor mas alto en el vector.(float)(((double)sum)/ind2.genome.length), sum == ind2.genome.length);

Pasos para solucionar el problema

1. Inicializar la población (Población inicial)
2. remplazar la población con el nuevo resultado función evaluador dael primer fitness
3. Si el evaluador encuentra un individuo ideal salta al paso 9 (El algoritmo no se ejecuta)
4. Si no llama la función Exchanger para remplazar la nueva población con el resultado5. Llama la función BREEDER para crear una nueva población
6. Incrementa el contador de generaciones
7. Termina si encuentra un fitness de 1/1 = 1.0 es decir todos los elementos llenos de 1 en elvector

Solución

Paso 1. Descargue la librería ECJ versión 10 del sitio

· http://www.cs.umd.edu/projects/plus/ec/ecj/ec.zip
· http://www.cs.umd.edu/projects/plus/ec/ecj/ec.tar.gz
·http://www.cs.umd.edu/projects/plus/ec/ecj/docs (Documentacion)

Paso 2:

Descomprima el archivo ec.zip sobre el directorio c:\ec

Paso 3:

Cambiese al directorio c:\ec\app y con ayuda de un editor detexto cree un archivo llamado “prueba. params” y en el escriba los parámetros de la ejecución del algoritmo genetico

· verbosity= 0 // Para que no saque mensajes inutiles
· flush= true...
tracking img