domingo, 30 de noviembre de 2014

Ejemplos redes neuronales

Ejemplos del framework Neuroph Java: http://neuroph.sourceforge.net/sample_projects.html
Reconocimiento de imágenes
Manual de Neuroph

Ejemplo de Algoritmo Genético

Los pasos de todo algoritmo genético deben de ser
  • Generar población
  • Seleccionar a los individuos mas aptos (Torneo, selección por ruleta, etc)
  • Cruzarlos (recombinacion)
  • Mutación
Podemos ubicar las ciudades en un plano cartesiano y verlas como si fueran puntos, desde esa perspectiva es posible sacar la distancia total del recorrido aplicando distancia euclidiana entre los puntos.
Después de eso podemos realizar una selección, entre los métodos mas comunes están el de selección por ruleta o el de selección por torneo, en este ultimo tan solo tenemos que ordenar la lista de caminos de menor a mayor y en mi caso elegir n * 3 individuos que representaran a los padres de la siguiente generación, ahora, en este punto es importante saber cuales tenemos que elegir ya que en probabilidad es poco posible que si cruzamos los 2 individuos mejor adaptados de la generación salga uno aun mas adaptado, por el contrario podría “des evolucionar” el hijo, es por eso que yo recomiendo, si vemos la población como si estuviera ordenada en una pila, tomar de los de arriba (los mejores adaptados) y algunos de en medio.
En este punto ya tenemos a los que serán los padres, ahora debemos de cruzarlos, existen varias técnicas de cruza como recombinación en 1 punto, recombinación en 2 puntos, corte y empalme, Recombinación uniforme y uniforme media y Recombinación de cromosomas ordenados, mas información aqui.
En este caso se hace una recombinación en 2 puntos y después se un algoritmo de mi creación para corregir el camino en caso de que hubiera ciudades repetidas en el.
Código de ejemplo:
8 Reinas con algoritmos genéticos: https://www.youtube.com/watch?v=L3mQ7fYdK_k