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