Está en la página 1de 35

Curso: Optimización II.

Clase 4: Algoritmo Genético y Aplicación de


Metaheurística a programas lineales entero.
Estructura del curso
Clase 1: Heurística codiciosa.

Clase 2: Algoritmo de búsqueda tabú.


Unidad 1: Métodos Heurísticos y Metaheurísticos.
Clase 3: Algoritmo de recocido simulado.
Clase 4: Algoritmo genético y aplicación de
metaheurística a programas lineales entero.
Clase 5: Procesos Estocáticos.

Clase 6: Solemne
Unidad 2: Cadenas de Markov
Optimización II
Clase 7: Cadenas de Markov.
Clase 8: Ecuaciones de Chapman-Kolmogorov y
clasificación de estados.
9: Modelo de colas y Proceso de nacimiento y
muerte
Clase 10: Teoría de espera en procesos
exponenciales de nacimiento y muerte
Clase 11: Modelo de colas con distribuciones no
Unidad 3: Sistemas de Colas
exponenciales
Clase 12: Modelo de colas con disciplina de
prioridades y disciplina de cola.
Clase 13: Solemne
Estructura del curso
Clase 1: Heurística codiciosa.

Clase 2: Algoritmo de búsqueda tabú.


Unidad 1: Métodos Heurísticos y Metaheurísticos.
Clase 3: Algoritmo de recocido simulado.
Clase 4: Algoritmo genético y aplicación de
metaheurística a programas lineales entero.
Clase 5: Procesos Estocáticos.

Clase 6: Solemne
Unidad 2: Cadenas de Markov
Optimización II
Clase 7: Cadenas de Markov.
Clase 8: Ecuaciones de Chapman-Kolmogorov y
clasificación de estados.
9: Modelo de colas y Proceso de nacimiento y
muerte
Clase 10: Teoría de espera en procesos
exponenciales de nacimiento y muerte
Clase 11: Modelo de colas con distribuciones no
Unidad 3: Sistemas de Colas
exponenciales
Clase 12: Modelo de colas con disciplina de
prioridades y disciplina de cola.
Clase 13: Solemne
Resultado de Aprendizaje de la Clase
Utiliza el algoritmo genético para encontrar una mejor solución
que el óptimo local.
¿Por qué es importante este tema?
Este tema es importante debido a que presenta al estudiante el método de
algoritmo genético para encontrar mejores soluciones que las obtenidas en la
heurística codiciosa.
Introducción
En la clase 2 se definió la metaheurística, la cual en términos generales, está
diseñada para escapar del entrampamiento en el óptimo local con el
propósito de obtener una mejor solución.
Hasta el momento han sido estudiado los algoritmos de búsqueda tabú y
recocido simulado.
La clase de hoy contempla el estudio del algoritmo genético, el cual imita el
proceso de evolución biológica de sobrevivencia del más apto.
Algoritmo Genético
Tal como se mencionó en la introducción, el algoritmo genético (AG) imita el
proceso de evolución biológica de sobrevivencia del más apto.

Cada solución factible de un problema se considera como un cromosoma


codificado por un conjunto de genes.

Los códigos genéticos más comunes son:


1. Código binario (0,1)
2. Código numérico (0, 1, 2,…,n).
Algoritmo Genético
Un ejemplo:
• Los cromosomas de una sola variable cuyos valores factibles son 0, 1, 2, 3,
4, 5, 6, 7 y 8 pueden ser representados por códigos binarios de la siguiente
manera:
Valores Factibles 0 1 2 3 4 5 6 7 8
Código Binario 0000 1000 0100 1100 0010 1010 0110 1110 0001

1+2=3 1+4=5
Algoritmo Genético
Un conjunto de N soluciones factibles se conoce como población con N
cromosomas.
• La aptitud de un cromosoma se mide en términos de una función objetivo
apropiada.
• Un cromosoma más apto da un mejor valor a la función objetivo.
Algoritmo Genético
La idea general del AG es seleccionar dos padres a partir de una población.
Los genes de los dos padres se cruzan entonces y (posiblemente) mutan para
producir dos hijos.
La descendencia reemplaza a los dos cromosomas más débiles (menos aptos)
en la población, y el proceso de seleccionar nuevos padres se repite.
Las reglas para seleccionar padres y crear hijos pueden variar. Por ejemplo,
los padres pueden ser seleccionados totalmente al azar de una población, o
se pueden componer de los dos cromosomas más aptos.
Algoritmo Genético
Minimización de una función de una sola variable:
Se retornará el ejemplo visto en la clase 1 para aplicar la solución con el
algoritmo genético
Para el ejemplo dado, el dominio
factible es X = {1, 2, 3, 4, 5, 6, 7, 8}.
Se especifica de forma arbitraria una
población de tamaño N = 4 padres cuyos
cromosomas se determinan a partir de X
mediante muestreo aleatorio uniforme.

Fuente: Taha (2004)


Algoritmo Genético
Minimización de una función de una sola variable:

Para generar los miembros de la población de padres, se utilizará El


número aleatorio R. Como el dominio factible está formado por 8
números, y los números aleatorios van desde 0,000 hasta 1,000, se divide
1/8 para obtener el tamaño de cada rango de resultados.

X 1 2 3 4 5 6 7 8
Probabilidad acumulativa, P(x) 0,125 0,250 0,375 0,500 0,625 0,750 0,875 1,000
Algoritmo Genético
Minimización de una función de una sola variable:

En la tabla que se presenta a continuación, se muestra la generación de la


población con N=4, a partir de los número aleatorios Ri.

i Ri Xi Código binario Xi F(Xi)


1 0,9842 8 0001 70
2 0,3025 3 1100 50
3 0,5839 5 1010 100
4 0,5712 5 Se descarta
5 0,0926 1 1000 90

La población inicial es X0 = (8, 3, 5, 1), y la mejor solución asociada es x* = 3


con F(x*) = 50.
Algoritmo Genético
Para la selección de los dos padres de la población inicial X0 = {8, 3, 5, 1}
existen varias maneras, algunas de ellas se mencionan a continuación:

(1) Seleccione los dos miembros más aptos.


(2) Seleccione el miembro más apto y luego uno al azar de entre los
miembros restantes.
(3) Seleccione dos padres al azar a partir de X0.

Para efectos del ejemplo, se seleccionarán dos padres al azar a partir de X0


Algoritmo Genético
De forma análoga a la explicada en láminas anteriores, es importante tener
en cuenta el rango de números aleatorios asociados a cada elemento de la
población, estos datos se presentan en la siguiente tabla:

X 8 3 5 1
Probabilidad acumulativa, P(x) 0,250 0,500 0,750 1,000

A continuación se presentan los Ri obtenidos y los padres seleccionados en


concordancia con cada Ri.

Ri Padres F(xi)
0,2869 3 50
0,0281 8 70
Algoritmo Genético
Los dos hijos se crean con los dos padres seleccionados por medio de un
cruce genético. Hay varios métodos para implementar el cruce.
1. Cruce uniforme. En esta regla, los genes comunes se aplican a ambos
hijos. Los genes restantes de un hijo se determinan al azar, mientras que el
otro hijo obtiene el gen complemento.
2. Cruce de un punto. Los genes de los padres P1 y P2 se dividen al azar en el
mismo punto y luego se intercambian; es decir, P1 = (P11, P12) y P2 = (P21,
P22) producen los cromosomas hijos como C1 = {P11, P22} y C2 = {P21,
P12}.
3. Cruce de múltiples puntos. Esta regla amplía el cruce de un punto a
múltiples puntos aleatorios. Por ejemplo, en un cruce de dos puntos, P1 =
(P11, P12, P13) y P2 5 (P21, P22, P23) producen C1 = (P11, P22, P13) y C2
= (P21, P12, P23).
Algoritmo Genético
Este ejemplo utiliza la regla de cruce uniforme.
Para los dos padres (3,8) tenemos:
• P1 = (1 1 0 0)
• P2 = (0 0 0 1)
Para el cruce uniforme se asignará de manera arbitraria como gen común el
tercer gen, los restantes se seleccionarán al azar de acuerdo al criterio
siguiente:
el gen es 1 si 0 ≤ R < 0,5
• Para el hijo 1:
el gen es 0 si 0,5 ≤ R ≤ 1

• Para el hijo 2: los genes corresponderán a los complementos de los


asignados al hijo 1.
Algoritmo Genético
Por ejemplo:
Ri Hijo 1 Hijo
2
0,2307 1 0
0,7346 0 1
0,6220 0 1

Finalmente, los cromosomas hijo serán:


• C1 = (1 0 0 0) (o x = 1)
• C2 = (0 1 0 1) (o x = 10)
Algoritmo Genético
El hijo 2 corresponde a una solución no factible (el intervalo factible es
x = (1, 2,…,8).
Sin embargo, antes de descartar una solución de hijo no factible, primero se
aplica la mutación aleatoria (reemplazando un gen con otro) y luego se
verifica la descendencia mutada en cuanto factibilidad.
Si persiste la no factibilidad, se debe crear en su totalidad una nueva
descendencia (a partir de los mismos padres).
El proceso puede repetirse cuantas veces sea necesario hasta que se logre la
factibilidad.
Algoritmo Genético
La probabilidad de mutación suele ser de aproximadamente 0.1: es decir, un
gen muta si 0 ≤ R < 0.1
• Para el hijo 1, la secuencia de números aleatorios 0.6901, 0.7698, 0.0871,
0.9535 muestra que sólo el tercer gen muta de 0 a 1, lo que produce
C1 = (1 0 1 0) [o x = 5 con F(5) = 100].
• Para el hijo 2, la secuencia 0.5954, 0.2632, 0.6731, 0.0983 muta al gen 4 y
produce C2 = (0 1 0 0) [o x = 2 con F(2) = 60].
Los cromosomas de ambos hijos son factibles, pero ninguno produce una
mejor solución.
De ahí que hasta ahora la solución x* = 3 de la población inicial siga siendo la
mejor.
Algoritmo Genético
Los padres menos aptos en X0 (x =5 y x = 1) ahora son reemplazados con las
dos soluciones descendientes (x = 5 y x = 2).
Esto, en realidad, dice que la siguiente población es X1 = (8, 3, 5, 2). De esta
manera, es posible utilizar X1 para iniciar una nueva iteración.
Algoritmo Genético
El ejemplo de aplicación para la secuenciación de tareas será explicado en la
guía online
Aplicación de Metaheurística a Programas
Lineales Enteros
Los modelos de programación lineal entera (PLE) tienen la siguiente
estructura general:
n
Maximizar Z   c j x j
j1

Sujeto a:
n

 a x (, , o )b , i  1, 2, ..., m


j 1
ij j i

L j  x j  U j , j  1, 2, ..., n
x j entera, j  1, 2, ..., n
Aplicación de Metaheurística a Programas
Lineales Enteros
Los elementos básicos de una metaheurística de PLE incluyen:
1. Selección de la solución de inicio: La metaheurística utiliza la solución
óptima continua redondeada como solución de inicio.
2. Definición de la vecindad: Es más manejable computacionalmente buscar
las variables una a la vez
Las vecindades para la variable xj se definen como:
N(xj) = {(x1, ..., xj - 1, ... , xn), (x1, ..., xj + 1, ... , xn)}
Las soluciones no factibles que violan las cotas superior e inferior se
excluyen de la vecindad.
3. Determinación del siguiente movimiento de búsqueda.
Aplicación de Metaheurística a Programas
Lineales Enteros
3. Determinación del siguiente movimiento de búsqueda: El siguiente
movimiento de búsqueda se determina a partir de una vecindad como la
solución X = (x1,x2, … ,xn) con no factibilidad mínima.
La medida de no factibilidad se calcula como:
n n
I X   máx{0, aij x j  bi }   máx{0, bi   aij x j }
() j 1 () j 1

n n
  máx{0,  aij x j  bi }   (máx{0, L j  x j }  máx{0, x j  U j })
() j 1 j 1

Si Ix=0, entonces el siguiente movimiento de búsqueda es factible


Ejemplo de Aplicación de Búsqueda Tabú a
PLE
Maximizar z = 2x1 + x2 + 3x3 + 2x4
Sujeto a:
x1 + 2x2 - 3x3 - x4 ≤ 10
3x1 - 2x2 + x3 - x4 ≤ 14
2x1 + x2 - 2x3 + 2x4 ≤ 9
-x1 + x2 + x3 ≤ 10
x1, x2, x3, x4 enteros no negativos

La solución continua óptima es:


x1 = 4.625, x2 = 0, x3 = 14.625, x4 = 14.5 con z = 82.125
La solución redondeada es:
X1 = (5, 0, 15, 14) o X2 = (5, 0, 15, 15).
Ejemplo de Aplicación de Búsqueda Tabú a
PLE
Se calcula la medida de no factibilidad para las dos soluciones redondeadas.

Para X1 = (5, 0, 15, 14), Ix1 = 2

Para X2 = (5, 0, 15, 15), Ix2 = 2

(ver cálculos en las siguientes diapositivas)


Para X1 = (5, 0, 15, 14)
Símbolo Expresión Resultado Ref. (2) Máx entre
(1) (1) y (2)
≤ (se consideran todas las restricciones)
5 + 2(0) – 3(15) – 14 -10 -64 0 0
3(5) – 2(0) + 15 -14 - 14 2 0 2
2(5) + 0 – 2(15) + 2(14) -9 -1 0 0
-5 + 0 +15 - 10 0 0 0
≥ N.A.
= N.A.
Lj y Uj (se consideran las variables de decisión)
J=5 {-5} {-∞} {0} {0} 0

J=0 {0} {-∞} {0} {0} 0


J=15 {-15} {-∞} {0} {0} 0
J=14 {-14} {-∞} {0} {0} 0
Sumatoria 2
Para X2 = (5, 0, 15, 15)
Símbolo Expresión Resultado Ref. (2) Máx entre
(1) (1) y (2)
≤ (se consideran todas las restricciones)
5 + 2(0) – 3(15) – 15 -10 -65 0 0
3(5) – 2(0) + 15 -15 - 14 1 0 1
2(5) + 0 – 2(15) + 2(15) -9 1 0 1
-5 + 0 +15 - 10 0 0 0
≥ N.A.
= N.A.
Lj y Uj (se consideran las variables de decisión)
J=5 {-5} {-∞} {0} {0} 0

J=0 {0} {-∞} {0} {0} 0


J=15 {-15} {-∞} {0} {0} 0
J=15 {-15} {-∞} {0} {0} 0
Sumatoria 2
Ejemplo de Aplicación de Búsqueda Tabú a
PLE
En virtud de que Ix1 = Ix2 se inicia arbitrariamente, con la solución X1
En la tabla que se presenta a continuación, se muestra la aplicación del
algoritmo BT con período de permanencia T = 4.

Fuente: Taha (2004)


Preguntas
• ¿Cuáles son los códigos genéticos más comunes?
• ¿Puede describir brevemente un método de cruce genético?
Resumen de la clase

Aplicaciones de la
Algoritmo
metaheurística en
Genético
la solución de PLE

Minimización de
una función de
una variable
Bibliografía
Bibliografía Obligatoria:
• Investigación de Operaciones
– Taha Hamdy (2004), Pearson Educación.
Taller Práctico Colaborativo
Título
• Algoritmo Genético. Función de una sola
variable

Resultado de Aprendizaje
• Utiliza el algoritmo genético para encontrar
una mejor solución que el óptimo local.

Tiempo
• 80 minutos (5 min. organización, 75 min. desarrollo del
taller)
Actividad on line Clase 4
Guía
• Algoritmo Genético. Secuencia de tareas
• Tiempo de Desarrollo: 40 minutos
• Lleve el desarrollo de la Guía y las principales dudas a la siguiente
Clase presencial

Control
• Control sumativo
• Tiempo para el desarrollo: 40 minutos

También podría gustarte