Documentos de Académico
Documentos de Profesional
Documentos de Cultura
REFERENCIAS
• Operación en Matlab Problemas con Algoritmos Genéticos.
• Ejemplo 1
(Aula Virtual)
> (García Martínez R. et al., 2003). Sistemas Inteligentes.
• Problema del viajante Cap. 3: Algoritmos genéticos.
CONCEPTO / DEFINICIÓN
OPERACIÓN EN MATLAB
Desde la línea de comando:
>> [x, fval] = ga(@fitnessfun, nvars, options)
donde
• @fitnessfun: función de ajuste.
• nvars: número de variables independientes de la función de
ajuste.
• options: estructura que contiene las opciones operativas del
algoritmo. Si no se especifica usa las opciones por defecto.
produce los siguientes resultados
• x: Punto correspondiente al valor final.
• fval: Valor final de la función objetivo.
Ref. [MathWorks] Global Optimization Toolbox User’s Guide. 2018.
OPERACIÓN EN MATLAB
Variantes desde la línea de comando:
[x,fval] = ga(fitnessfcn,nvars)
[x,fval] = ga(fitnessfcn,nvars,A,b)
[x,fval] = ga(fitnessfcn,nvars,A,b,Aeq,beq)
[x,fval] = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB)
OPERACIÓN EN MATLAB
Desde la línea de comando >> optimtool(‘ga’) Parámetros y
opciones gráficas
Elegir
solver ga
Función
ajuste
Nro.
variables
Restric- Menú
ciones ayuda
Ejecu-
ción
Resultados
fitness(x)
Punto X
EJEMPLO 1
Problema del viajante: Una persona debe recorrer varias ciudades distintas,
con la condición de pasar solamente una vez por cada una y volver a la ciudad
de origen, recorriendo la menor distancia posible.
En este caso ha sido restringido y simplificado para ser presentado como un problema
didáctico que se resuelve mediante algoritmos genéticos.
EJEMPLO 1
Problema del viajante: Introducción... (continuación)
El viajante parte inicialmente de la ciudad A y puede ir hacia cualquiera de las
restantes ciudades. En la figura se muestran todas las posibles combinaciones
que puede realizar el viajante.
EJEMPLO 1
Problema del viajante: Codificación... (continuación)
Para la formulación de los individuos se ha optado por codificar la existencia
de tramos recorridos. Los tramos posibles son seis: AB, BC, CD, DA, AC y BD,
luego los individuos pueden representarse como cadenas binarias de 6 bits.
individuo genérico
wi = [b5 b4 b3 b2 b1 b0] = [AB BC CD DA AC BD]
Si bi = 1 el tramo se recorre
Si bi = 0 el tramo no se recorre
Dist=4 Dist=4 wi = [1 1 1 1 0 0]
Dist = 2 + 2 2
wi = [1 0 1 0 1 1]
EJEMPLO 1
Problema del viajante: Codificación... (continuación)
wi = [b5 b4 b3 b2 b1 b0] = [AB BC CD DA AC BD]
Se pueden generar representaciones incorrectas:
wi = [1 1 1 0 0 0]
No vuelve al origen
wi = [1 1 1 1 1 0]
Pasa 2 veces por
la misma ciudad
EJEMPLO 1
Problema del viajante: Evaluación... (continuación)
wi = [b5 b4 b3 b2 b1 b0] = [AB BC CD DA AC BD]
El procedimiento utiliza dos funciones de evaluación parciales para controlar
dos condiciones importantes del problema. Luego se unifican.
Requerimientos de la 1º función de evaluación:
El número de tramos recorridos debe ser igual a 4. Requiere que se maximice
la ecuación:
L-1
C¯ åb
i=0
i
Fitness1(w i ) = 1 ¯
C
donde C es el número de ciudades, L es la longitud de la cadena de bits y bi es
el bit i-ésimo de la cadena de bits. De esta forma los individuos que recorran
sólo cuatro tramos obtendrán el valor máximo de la función de evaluación, es
decir:
Fitness1(wi)Sbi=4 = 1
Mg. Sergio L. Martínez - Cátedra de Inteligencia Artificial - FI.UNJu 4.2. #11/36
U4 ALGORITMOS GENÉTICOS
EJEMPLO 1
Problema del viajante: Evaluación... (continuación)
wi = [b5 b4 b3 b2 b1 b0] = [AB BC CD DA AC BD]
å b .T i i å b .T i i
Fitness2(w i ) = i =0
L-1
Fitness2(w i ) = i =0
L-1
åb i
(corrección) åT
i =0
i
i =0
EJEMPLO 1
Problema del viajante: Evaluación... (continuación)
EJEMPLO 1
Problema del viajante: Población inicial... (continuación)
• 6 individuos iniciales elegidos de forma aleatoria.
(Heurística de Población = longitud de la cadena).
• La probabilidad de cruce PRcruce es del 40%.
• La probabilidad de mutación PRmut es del 1%.
• La selección de los individuos se realiza por selección
estocástica (dependiente de la aptitud relativa).
• Cruce monopunto.
FitTOT = 4,8638
Mg. Sergio L. Martínez - Cátedra de Inteligencia Artificial - FI.UNJu 4.2. #14/36
U4 ALGORITMOS GENÉTICOS
EJEMPLO 1
Problema del viajante: Evolución... (continuación)
EJEMPLO 1
Problema del viajante: Conclusión... (continuación)
EJEMPLO 2
Ejemplo desde la línea de comando:
Encontrar el mínimo de f(x)
function two_min.m
[x,fval] = ga(fitnessfcn,nvars)
>> [x,fval]=ga(@two_min,1)
Optimization terminated: average change in the fitness value less than options.
TolFun.
x = 0.0028
fval = -1.0000 (Parámetros por defecto)
EJEMPLO 2
Ejemplo desde la línea de comando:
Encontrar el mínimo de f(x)
function two_min.m
[x,fval] = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB)
>> [x,fval] = ga(@two_min,1,[ ],[ ],[ ],[ ],5,30)
Optimization terminated: average change in the fitness value less than options.
TolFun.
x = 21.0000
fval = -1.3679
Reconfigurando los límites encuentra el mínimo global → x [5,30]
Mg. Sergio L. Martínez - Cátedra de Inteligencia Artificial - FI.UNJu 4.2. #18/36
U4 ALGORITMOS GENÉTICOS
EJEMPLO 3
Resolución de sistemas de ecuaciones
Idea general
Función de ajuste
Codificación de individuos
EJEMPLO 3
Resolución de sistemas de ecuaciones
Función de ajuste
Esto se Esto se datos
busca mide
datos
incógnitas
m
Fitness = å bisistema - bicalculado
i =1
EJEMPLO 3
Resolución de sistemas de ecuaciones
Sistema de 3 x 3
Parámetros del AG
§ Tamaño de población:
10 individuos
§ Elitismo: 2 individuos
§ Algoritmo selección:
torneo determinístico+aleatorio
§ Algoritmo cruce: 1 punto
§ Tasa de Cruce (Pc): 90%
§ Tasa de Mutación (Pm): 2.5%
§ Algoritmo mutación: puntual
EJEMPLO 3
Resolución de sistemas de ecuaciones 3x3
estos rangos
se estiman →
codificación →
Generación 0
EJEMPLO 3
Resolución de sistemas de ecuaciones 3x3
Generación temporal 0 - 1
primera inserción
elitismo →
elitismo →
EJEMPLO 3
Resolución de sistemas de ecuaciones 3x3
Primer cruce: Se seleccionan dos individuos mediante el algoritmo de torneo
determinístico (p=2), por ej. 3 y 8 de la población; queda el que tenga mejor
fitness (3), que será el primer progenitor. El segundo progenitor se
seleccionará al azar, por ejemplo el individuo número 7.
Se deberá determinar si se procede o no la cruza, aplicando la probabilidad de
cruza (Pc=0.9 ; 90%). Se genera un número al azar en [0 ; 1] y, si este es
menor que la tasa de cruce Pc, se procede. Supóngase que el número
aleatorio generado es 0,69 la cruza procede. Se selecciona un punto de cruce
aleatorio entre 1 y 2, resultando 1.
I 3 - fitness 28,97
EJEMPLO 3
Resolución de sistemas de ecuaciones 3x3
Mutación luego del primer cruce: Se generan dos números aleatorios para
determinar si procede la mutación, que deben ser menores a la tasa de
mutación (Pm=0,025 ; 2,5%).
Sea por ejemplo N1=0,013 y N2=0,234. La mutación será para el primer
descendiente. Se selecciona un gen (casillero) al azar, siendo el número 2.
EJEMPLO 3
Resolución de sistemas de ecuaciones 3x3
Generación temporal 0 - 1
segunda inserción
elitismo →
elitismo →
2º descendiente
de cruza →
1º desc. de
cruza mutado →
EJEMPLO 3
Resolución de sistemas de ecuaciones 3x3
Segundo cruce: Se seleccionan dos individuos, por ej. 8 y 9 de la población;
queda el que tenga mejor fitness (8), que será el primer progenitor. El segundo
progenitor se seleccionará al azar, por ejemplo el individuo número 3.
I 8 - fitness 117,15
4,50 0,69 -4,58
directamente a la
I 3 - fitness 28,97 cruza población temporal
-6,36 5,67 0,74
EJEMPLO 3
Resolución de sistemas de ecuaciones 3x3
Generación temporal 0 - 1
tercera inserción
elitismo →
elitismo →
2º descendiente
de cruza →
I3→
I8→
1º desc. de
cruza mutado →
EJEMPLO 3
Resolución de sistemas de ecuaciones 3x3
Tercer cruce: Se seleccionan dos individuos mediante el algoritmo de torneo
determinístico (p=2), por ej. 8 y 9 de la población; queda el que tenga mejor
fitness (8), que será el primer progenitor. El segundo progenitor se seleccionará
al azar, por ejemplo el individuo número 10.
Se deberá determinar si procede o no la cruza, aplicando la probabilidad de
cruza (Pc=0,9 ; 90%). Se genera un número al azar en [0 ; 1] y, si este es menor
que la tasa de cruce Pc, se procede. El número aleatorio generado es 0,62 la
cruza procede. Se selecciona un punto de cruce aleatorio entre 1 y 2,
resultando 1.
I 8 - fitness 117,15
EJEMPLO 3
Resolución de sistemas de ecuaciones 3x3
Mutación luego del tercer cruce: Se generan dos números aleatorios para
determinar si procede la mutación, que deben ser menores a la tasa de
mutación (Pm=0,025 ; 2,5%).
Sea por ejemplo N1=0,731 y N2=0,026. La mutación NO procede.
directamente a la
muta población temporal
Desc. 4 - fitness 117,33
EJEMPLO 3
Resolución de sistemas de ecuaciones 3x3
Generación temporal 0 - 1
cuarta inserción
elitismo →
elitismo →
2º descendiente
de cruza →
I3→
I8→
4º desc. de
cruza sin mutar →
1º desc. de
cruza mutado →
3º desc. de
cruza sin mutar → C
EJEMPLO 3
Resolución de sistemas de ecuaciones 3x3
Cuarto cruce: Se seleccionan dos individuos mediante el algoritmo de torneo
determinístico (p=2), por ej. 2 y 6 de la población; queda el que tenga mejor
fitness (2), que será el primer progenitor. El segundo progenitor se seleccionará
al azar, por ejemplo el individuo número 8.
Se deberá determinar si procede o no la cruza, aplicando la probabilidad de
cruza (Pc=0,9 ; 90%). Se genera un número al azar en [0 ; 1] y, si este es menor
que la tasa de cruce Pc, se procede. El número aleatorio generado es 0,27 la
cruza procede. Se selecciona un punto de cruce aleatorio entre 1 y 2,
resultando 2.
I 2 - fitness 14,64
EJEMPLO 3
Resolución de sistemas de ecuaciones 3x3
Mutación luego del cuarto cruce: Se generan dos números aleatorios para
determinar si procede la mutación, que deben ser menores a la tasa de
mutación (Pm=0,025 ; 2,5%).
Sea por ejemplo N1=0,551 y N2=0,020. La mutación será para el segundo
descendiente (sexto general). Se selecciona un gen (casillero) al azar, siendo
el número 3.
EJEMPLO 3
Resolución de sistemas de ecuaciones 3x3
Generación temporal 0 - 1
quinta inserción
6º desc. de
cruza mutado →
elitismo →
6º desc. de cruza
no mutado →
elitismo →
2º descendiente
de cruza →
I3→
I8→
4º desc. de cruza
sin mutar →
1º desc. de
cruza mutado →
3º desc. de cruza
sin mutar →
EJEMPLO 3
Resolución de sistemas de ecuaciones 3x3
Generación 1
Se verifica la solución con el mejor
individuo de la Generación 1 → I 1.
APLICACIONES DE LOS AG
Considerando que la habilidad principal de los AG es la búsqueda y
optimización, tienen aplicaciones en los más diversos campos.
Algunas de estas aplicaciones:
• Diseño de circuitos VLSI.
• Optimización del tamaño de enlaces en una red de comunicaciones.
• Optimización del cableado de circuitos eléctricos.
• Problema del viajante.
• Minimización/maximización de funciones.
• Procesamiento de imágenes.
• Reconocimiento de patrones.
• Optimización de reglas en una base.
Mg. Sergio L. Martínez - Cátedra de Inteligencia Artificial - FI.UNJu 4.2. #36/36