lunes, 27 de mayo de 2013

Algoritmos geneticos

En este blog se han visto sobre unas practicas sobre los temas de automatización, ACO (ant colony optimization), algo de redes neuronales y como instalar un sistema multiagentes.

Pero ahora se vera una explicación sobre un tema no visto, el de algoritmos genéticos.

¿En que consiste?
El algoritmo genético consiste en obtener un resultado mediante los valores de una población o grupo y de esa población determinar quien tiene el valor mas alto. Para que esa población pueda incrementar sus valores se rendara que mejorar la población, para ello la población anterior hereda sus valores a unos nuevos individuos aunque esto signifique que la población anterior tenga que morir.

Pasos de un algoritmo genético
1.- Se crea la población de la primera generación, cada uno con un valor aleatorio.
2.- De esa población se determina quien tiene el valor mas alto.
3.- Se toma el valor mas alto y se guarda para hacer una comparación en las futuras generaciones.
4.- Se toman todos los valores, se suman y con el valor total se divide esto
valor del individuo/valor total, y el que tenga el mayor porcentaje es el que tendrá mas posibilidades de heredar sus valores.
5.- Para la nueva generación se toman todos los valores y se selecciona al azar dos individuos para heredar sus funciones, el cual consiste en separar sus valores de cadena binaria en dos y estos se juntan para hacer los hijos, este proceso se repite hasta que se tenga el mismo numero de individuos.
Ej: padre: 1110 madre:1001 → hijo1: 1101 hijo2: 1010
5.5.- En cualquier momento puede ocurrir una mutación al momento de que los dos individuos hagan un hijo, este valor puede cambiar significativamente al hijo y puede tomar el valor que el programador desee, pero se recomienda que sea pequeño ya que el objetivo es tener valores mediante la formación de hijos, no mediante la alteración de los valores.
6.- De la nueva generación se determina el valor mas alto, si es mayor que el registrado entonces se cambia el valor anterior por el nuevo.
7.- Se repiten los procesos del 3 al 6 por un determinado tiempo hasta que se obtenga un valor satisfactorio.

¿Para qué sirve un algoritmo genético?
Sirve para buscar soluciones de optimización para ahorrar tiempo, sirve para ver cual es la mejor combinación en un juego o en un problema, básicamente es utilizado en situaciones en las cuales se tiene una combinación y se quiere saber cual es la mejor opción para resolverlo.

Ademas es una técnica mejor que la fuerza bruta.

No hay comentarios:

Publicar un comentario