Title: Diapositiva 1
 1Aprendizaje con Algoritmos Genéticos 
 2Puntos a tratar
- ð Introducción 
 - ð Componentes de un Algoritmo Genético 
 -  û Representación de individuos 
 -  û Procedimientos generales de elección 
aleatoria  -  û Operador selección 
 -  û Operador emparejamiento 
 -  û Operador mutación 
 -  Algoritmo general 
 -  Ejercicio 
 -  Problemas de Ordenación
 
  3Introducción (I)
ð Los algoritmos genéticos son adecuados cuando 
se dispone de mecanismos para establecer el 
rendimiento de un sistema, modificando ciertos 
parámetros ð El problema de aprendizaje consiste 
en encontrar una configuración adecuada de los 
parámetros, para que el rendimiento sea óptimo ð 
Ejemplo ajuste del flujo de agua de un generador 
hidroeléctrico para que la producción eléctrica 
sea máxima ð Los algoritmos genéticos se apoyan 
en las teorías evolutivas de Charles Darwin 
(1859, El Origen de las Especies) 
 4Introducción (II)
ð En cada generación se crea un nuevo conjunto de 
individuos utilizando parte del material genético 
de los mejores individuos de la generación 
anterior ð Objetivos de los algoritmos 
genéticos û abstraer y explicar los procesos 
adaptativos de los sistemas naturales û diseñar 
sistemas artificiales basados en estos procesos ð 
La principal característica es la robustez del 
sistema ð Surge una nueva rama, la Programación 
Genética generación automática de programas que 
evolucionan para resolver cada vez mejor la tarea 
encomendada 
 5Principios de Evolución por Selección Natural
1. Cada individuo tiende a transmitir sus rasgos 
a su progenie 2. La naturaleza produce individuos 
con rasgos diferentes 3. Los individuos más 
adaptados, cuyos rasgos son más favorables para 
desenvolverse en el medio, tienden a producir más 
progenie 4. Durante largos períodos de tiempo se 
puede acumular la variación produciendo nuevas 
especies completamente adaptadas a nichos 
particulares 
 6Componentes de un Algoritmo Genético
ð Los componentes básicos de un algoritmo 
genético son los siguientes û Una 
representación para los individuos û Una función 
de calidad, que da una medida del grado de 
adaptación de un individuo al medio û Un 
operador selección, con probabilidad de selección 
de cada individuo proporcional a la calidad 
(principio 3) û Un operador emparejamiento o 
reproducción, que producirá nuevos individuos en 
la siguiente generación (principio 1) û Un 
operador mutación, capaz de alterar el código de 
los nuevos individuos, incrementando la riqueza 
genética de la población (principio 2) 
 7Representación de Individuos
ð Se utiliza la idea de cromosoma, que es una 
secuencia que determina la estructura de un 
individuo ð La secuencia es de longitud L y se 
compone de caracteres que pertenecen a un 
alfabeto W. Cada carácter es un gen ð Dado un 
cromosoma C, se puede construir el individuo I al 
que representa aplicando una función ð 
Normalmente se utiliza el alfabeto binario, W  
0,1 Ej. Cromosoma de longitud 4 utilizando el 
alfabeto binario 1 0 0 
1 
 8Procedimientos Generales de Elección Aleatoria (I)
ð Se utiliza una función random(), devuelve un 
real Î 0,1) ð Hay tres situaciones en las que es 
necesario realizar elecciones aleatorias A) 
Ejecutar una acción con probabilidad p 
 IF (random() lt p) THEN ltaccióngt B) 
Elegir entre N elementos equiprobables 
Generar random() y ver dónde cae Elegir el 
elemento correspondiente al tramo en el que caiga 
el valor aleatorio 
 9Procedimientos Generales de Elección Aleatoria 
(II)
C) Elegir entre N elementos no equiprobables 
Calcular las probabilidades acumuladas Generar 
random() y ver dónde cae 
 10Operador Selección (I)
ð Cada vez que se necesita, se extraen ciertos 
individuos de la población. Para ello, se calcula 
la probabilidad de selección de cada individuo 
proporcional a la calidad ð Existen dos métodos 
estándar y del rango ð Método estándar û 
Establecer la calidad de cada individuo de la 
población û Calcular la probabilidad de 
selección de cada individuo dividiendo cada 
calidad por la calidad total û Elegir un 
individuo entre N elementos no equiprobables 
(procedimiento C) 
 11Operador Selección (II)
ð Método del rango û Fijar una probabilidad a 
priori de elección, p û Establecer la calidad de 
cada individuo de la población û Ordenar los 
individuos según su calidad (de mayor a 
 menor) û Para cada individuo i desde 1 
hasta N-1 Elegir, con probabilidad p, el 
individuo i (procedimiento A) û Si se ha elegido 
uno, salir y devolver dicho individuo û Si no se 
ha elegido ninguno, devolver el individuo N 
 12Operador Emparejamiento
ð Este operador intercambia información genética 
entre dos individuos seleccionados ð Dados 2 
individuos a emparejar û Ejecutar el 
emparejamiento con probabilidad Pe (procedimiento 
A). Si no hay que emparejar, salir. û Elegir un 
punto de corte de las cadenas entre 1 y L-1 
(procedimiento B) û Las cadenas que representan 
a los individuos se parten en dos trozos y se 
intercambian, dando lugar a dos individuos nuevos 
 13Operador Mutación
ð Altera aleatoriamente el código genético de un 
individuo para variar ligeramente sus 
características ð Permite que aparezcan rasgos en 
los nuevos individuos que no existían antes en la 
población original ð La probabilidad de 
aplicación de este operador debe ser pequeña ð 
Dado 1 individuo a mutar û Para cada gen del 
cromosoma, hacer Con probabilidad Pm 
(procedimiento A), cambiar el valor del gen por 
un nuevo valor. El nuevo valor se elige 
(procedimiento B) sobre los elementos del 
alfabeto W 
 14Algoritmo General
- EVOLUCIONAR (NI Pe Pm N) 
 - û Generar una POBLACION aleatoria de NI 
individuos  - û Repetir hasta haber realizado N iteraciones 
 -  Hacer NUEVA_POBLACION    
 -  Repetir hasta que NUEVA_POBLACION tenga NI 
individuos  -  Aplicar operador SELECCIÓN para 
extraer 2 individuos de  -  POBLACION 
 -  Aplicar operador EMPAREJAMIENTO 
con probabilidad  -  Pe a los individuos seleccionados. 
 -  Esto genera 2 nuevos individuos 
 -  Aplicar operador MUTACION con 
probabilidad Pm a cada  -  individuo generado en 
el paso anterior  -  Añadir el resultado a NUEVA_POBLACION 
 -  Copiar NUEVA_POBLACION en POBLACION 
 - û Devolver el individuo con mayor calidad de 
POBLACION 
  15Ejercicio (I)
Ej1. Calcular el valor entero de x que maximiza 
la función, donde el argumento del seno se da en 
radianes en el intervalo 0,15 utilizando un 
algoritmo genético. Nota 1 para calcular los 
valores de calidad obtener el n decimal 
representado por la cadena y aplicar a este 
número la función a maximizar. 
 16Ejercicio (II)
Ej1. Números aleatorios empleados en el ejemplo
Ej1. Solución Calculo de 4 generaciones Població
n Inicial -gt Tomamos valores aleatorios (de la 
tabla) y vemos a qué carácter del alfabeto (0 ó 
1) corresponden. Si el valor aleatorio cae en el 
intervalo 0,0.5) tomamos un 0 y si cae en el 
intervalo 0.5,1) tomamos un 1.
0,34 -gt 0
0,82 -gt 1
0,77 -gt 1
0,71 -gt 1
0,35 -gt 0
0,75 -gt 1
0,48 -gt 0
0,40 -gt 0
0100 
 17Ejercicio (III)
- Ej1. Solución 
 - GENERACIÓN 1 -gt Calcular tabla de calidades, 
probabilidades y probs. acumuladas para todos los 
individuos de la población actual. La calidad se 
obtiene utilizando la función que se quiere 
maximizar.  -  Establecer la calidad de cada individuo de la 
población  -  I 0111 DECIMAL 7 F.CALIDAD 
 -  I 0100 DECIMAL 4 F.CALIDAD 
 -  F.CALIDAD TOTAL 0,75  0,80  1,55 
 -  Calcular la probabilidad de selección de cada 
individuo dividiendo  -  cada calidad por la calidad total 
 -  I 0111 P.SELEC 0,75/1,55  0,48 
 P.ACUM. 0,48  -  I 0100 P.SELEC 0,80/1,55  0, 
52 P.ACUM. 0,48  0,52  1, 00 
  18Ejercicio (IV)
- Ej1. Solución 
 - SELECCIÓN -gt Operador selección utilizando el 
método estándar.  - Para ello generamos un número aleatorio entre 0 y 
1. En este caso, según la tabla de calidades  - Si el número aleatorio cae en el intervalo 
0,0.48) el individuo elegido será el 0111.  - Si el valor aleatorio cae dentro del intervalo 
0.48,1) elegiremos el individuo 0100.  - 0,41 -gt 0,74 -gt 
 - EMPAREJAMIENTO 
 - Ejecutar el emparejamiento con probabilidad Pe 
(procedimiento A). Si no hay que emparejar, 
salir.  -  0,15 lt 0,7 -gt si hay emparejamiento
 
0100
0111 
 19Ejercicio (V)
- Ej1. Solución 
 - EMPAREJAMIENTO 
 - Elegir un punto de corte de las cadenas entre 1 y 
L-1 (procedimiento B). Miro el punto de corte con 
una elección equiprobable entre los 3 posibles 
puntos.  -  0,85 -gt como cae en el tercer intervalo, el 
punto de corte es 3  - Las cadenas que representan a los individuos se 
parten en dos trozos (por el punto de corte) y se 
intercambian, dando lugar a dos individuos 
nuevos.  -  011  1 010  0 
 - Por tanto los 2 nuevos individuos son 0110 y 0101
 
1
0
0,33
0,66 
 20Ejercicio (IV)
- Ej1. Solución 
 - MUTACIÓN 
 - Para cada gen miro si hay que mutar generando un 
número aleatorio  - Si el número aleatorio es menor que la P. 
Mutación (0,3) entontes cambiar el gen por su 
complementario (con alfabeto no binario para 
elegir un elemento del alfabeto se utiliza el 
procedimiento de elección equiprobable).  - Si no se deja el gen como está.
 
0,51 -gt 0
0,44 -gt 1
0,89 -gt 1
0,85 -gt 0
0,43 -gt 0
0,07 -gt 0
0,97 -gt 0
0,93 -gt 0
0001
0101 
 21Ejercicio (V)
- Ej1. Solución 
 - GENERACIÓN 2 -gt Calcular tabla de calidades, 
probabilidades y probs. acumuladas para todos los 
individuos de la población actual. La calidad se 
obtiene utilizando la función que se quiere 
maximizar.  -  Establecer la calidad de cada individuo de la 
población  -  I 0110 DECIMAL 6 F.CALIDAD 
 -  I 0001 DECIMAL 1 F.CALIDAD 
 -  F.CALIDAD TOTAL 0,58  1,41  1,99 
 -  Calcular la probabilidad de selección de cada 
individuo dividiendo  -  cada calidad por la calidad total 
 -  I 0110 P.SELEC 0,58/1,99  0,29 
 P.ACUM. 0,29  -  I 0001 P.SELEC 1,41/1,99  0,71 
 P.ACUM. 0,29  0,71  1, 00 
  22Ejercicio (VI)
- Ej1. Solución 
 - SELECCIÓN -gt Operador selección utilizando el 
método estándar.  - Para ello generamos un número aleatorio entre 0 y 
1. En este caso, según la tabla de calidades  - Si el número aleatorio cae en el intervalo 
0,0.29) el individuo elegido será el 0110.  - Si el valor aleatorio cae dentro del intervalo 
0.29,1) elegiremos el individuo 0001.  - 0,11 -gt 0,58 -gt 
 - EMPAREJAMIENTO 
 - Ejecutar el emparejamiento con probabilidad Pe 
(procedimiento A). Si no hay que emparejar, 
salir.  -  0,75 gt 0,7 -gt no hay emparejamiento, salir. 
Los individuos quedan igual. 
0001
0110 
 23Ejercicio (VII)
- Ej1. Solución 
 - MUTACIÓN 
 - Para cada gen miro si hay que mutar generando un 
número aleatorio  - Si el número aleatorio es menor que la P. 
Mutación (0,3) entontes cambiar el gen por su 
complementario.  - Si no se deja el gen como está.
 
0,90 -gt 0
0,51 -gt 1
0,62 -gt 1
0,67 -gt 0
0,15 -gt 1
0,89 -gt 0
0,87 -gt 0
0,86 -gt 0
1001
0001 
 24Ejercicio (VIII)
- Ej1. Solución 
 - GENERACIÓN 3 -gt Calcular tabla de calidades, 
probabilidades y probs. acumuladas para todos los 
individuos de la población actual. La calidad se 
obtiene utilizando la función que se quiere 
maximizar.  -  Establecer la calidad de cada individuo de la 
población  -  I 0110 DECIMAL 6 F.CALIDAD 
 -  I 1001 DECIMAL 9 F.CALIDAD 
 -  F.CALIDAD TOTAL 0,58  1,65  2,23 
 -  Calcular la probabilidad de selección de cada 
individuo dividiendo  -  cada calidad por la calidad total 
 -  I 0110 P.SELEC 0,58/2,23  0,26 
 P.ACUM. 0,26  -  I 1001 P.SELEC 1,65/2,23  0,74 
 P.ACUM. 0,26  0,74  1, 00 
  25Ejercicio (IX)
- Ej1. Solución 
 - SELECCIÓN -gt Operador selección utilizando el 
método estándar.  - Para ello generamos un número aleatorio entre 0 y 
1. En este caso, según la tabla de calidades  - Si el número aleatorio cae en el intervalo 
0,0.26) el individuo elegido será el 0110.  - Si el valor aleatorio cae dentro del intervalo 
0.26,1) elegiremos el individuo 1001.  - 0,77 -gt 0,92 -gt 
 - En este caso el individuo es el mismo. 
 - EMPAREJAMIENTO 
 - Ejecutar el emparejamiento con probabilidad Pe 
(procedimiento A). Si no hay que emparejar, 
salir.  -  0,84 gt 0,7 -gt no hay emparejamiento, salir. 
Los individuos quedan igual. 
1001
1001 
 26Ejercicio (X)
- Ej1. Solución 
 - MUTACIÓN 
 - Para cada gen miro si hay que mutar generando un 
número aleatorio  - Si el número aleatorio es menor que la P. 
Mutación (0,3) entontes cambiar el gen por su 
complementario.  - Si no se deja el gen como está.
 
0,98 -gt 1
0,33 -gt 0
0,25 -gt 1
0,07 -gt 0
0,18 -gt 0
0,84 -gt 0
0,27 -gt 1
0,08 -gt 0
0010
1001 
 27Ejercicio (XI)
- Ej1. Solución 
 - GENERACIÓN 4 -gt Calcular tabla de calidades, 
probabilidades y probs. acumuladas para todos los 
individuos de la población actual. La calidad se 
obtiene utilizando la función que se quiere 
maximizar.  -  Establecer la calidad de cada individuo de la 
población  -  I 1010 DECIMAL 10 F.CALIDAD 
 -  I 0010 DECIMAL 2 F.CALIDAD 
 -  F.CALIDAD TOTAL 3,43  1,03  4,46 
 -  Calcular la probabilidad de selección de cada 
individuo dividiendo  -  cada calidad por la calidad total 
 -  I 1010 P.SELEC 3,43/4,46  0,77 
 P.ACUM. 0,77  -  I 0010 P.SELEC 1,03/4,46  0,23 
 P.ACUM. 0,77  0,23  1, 00 
  28Ejercicio (XII)
- Ej1. Solución 
 - SELECCIÓN -gt Operador selección utilizando el 
método estándar.  - Para ello generamos un número aleatorio entre 0 y 
1. En este caso, según la tabla de calidades  - Si el número aleatorio cae en el intervalo 
0,0.77) el individuo elegido será el 1010.  - Si el valor aleatorio cae dentro del intervalo 
0.77,1) elegiremos el individuo 0010.  - 0,01 -gt 0,57 -gt 
 - En este caso el individuo es el mismo. 
 - EMPAREJAMIENTO 
 - Ejecutar el emparejamiento con probabilidad Pe 
(procedimiento A). Si no hay que emparejar, 
salir.  -  0,28 lt 0,7 -gt Si hay emparejamiento.
 
1010
1010 
 29Ejercicio (XIII)
- Ej1. Solución 
 - EMPAREJAMIENTO 
 - Elegir un punto de corte de las cadenas entre 1 y 
L-1 (procedimiento B). Miro el punto de corte 
(aunque nos vaya a dar lo mismo porque los dos 
individuos son iguales).  -  0,6 -gt como cae en el segundo intervalo, el 
punto de corte es 2  - Las cadenas que representan a los individuos se 
parten en dos trozos (por el punto de corte) y se 
intercambian, dando lugar a dos individuos 
nuevos.  -  10  10 10  10 
 - Por tanto los 2 nuevos individuos son 1010 y 1010
 
1
0
0,33
0,66 
 30Ejercicio (XIV)
- Ej1. Solución 
 - MUTACIÓN 
 - Para cada gen miro si hay que mutar generando un 
número aleatorio  - Si el número aleatorio es menor que la P. 
Mutación (0,3) entontes cambiar el gen por su 
complementario.  - Si no se deja el gen como está.
 
0,81 -gt 1
0,75 -gt 0
0,82 -gt 1
0,80 -gt 0
0,83 -gt 1
0,94 -gt 0
0,97 -gt 1
1,00 -gt 0
1010
1010
Ya hemos realizado 4 iteraciones. Devolvemos el 
individuo de mayor calidad, que será el resultado 
del algoritmo 1010 que en decimal es 10. 
 31Problemas de Ordenación (I)
- ð En problemas de ordenación, no es válida la 
generación de cromosomas en los que se repiten 
valores. Ej problema del viajante  - ð Es necesario redefinir los operadores mutación, 
emparejamiento y la generación de la población 
inicial  -  
 -   a, b, c i1 bca i2abc 
 - Mutar primer gen de bca gt cca /aca 
 - Emparejar por punto1 gt bbc , aca
 
  32Problemas de Ordenación (II)
- ð Generación de la población inicial de 
individuos  -  û Construir una lista con todos los elementos 
del alfabeto  - û Para cada individuo a generar 
 -  Repetir hasta que no queden elementos en la 
lista  -  Seleccionar al azar un elemento de la lista y 
eliminarlo de ella  -  Añadir dicho elemento al nuevo individuo 
 -  Mutación 
 -  û Elegir dos genes al azar e intercambiarlos 
 
  33Problemas de Ordenación (III)
- ð Emparejamiento Dados 2 individuos a emparejar 
i1 e i2  - û Generar una plantilla binaria con la misma 
longitud  - û Construimos h1 copiando los valores de i1 que 
coincidan con un 1 de la plantilla, dejando 
huecos en los 0  - û Construir una lista con los elementos de i2 que 
no estén en h1 , de forma ordenada  - û Introducir los elementos de la lista en los 
huecos de h1, de forma ordenada  - û Construimos h2 copiando los valores de i2 que 
coincidan con un 0 de la plantilla, dejando 
huecos en los 1  - û Construir una lista con los elementos de i1 que 
no estén en h2 , de forma ordenada  - û Introducir los elementos de la lista en los 
huecos de h2, de forma ordenada