Nuevas Heur´ısticas Inspiradas en la Naturaleza para Optimización

Anuncio
Nuevas Heurı́sticas Inspiradas en la Naturaleza
para Optimización Numérica
Efrén Mezura-Montes1, Omar Cetina-Domı́nguez1 y Betania
Hernández-Ocaña2
1
2
Laboratorio Nacional de Informática Avanzada (LANIA A.C.)
Rébsamen 80, Centro, Xalapa, Veracruz, 91000 MEXICO
[email protected],[email protected]
Universidad Juárez Autónoma de Tabasco
División Académica de Informática y Sistemas
Km. 1 Carr. Cunduacán-Jalpa de Méndez
betania h [email protected]
Resumen En este capı́tulo se presenta una introducción a las heurı́sticas inspiradas
en fenómenos de forrajeo. Se presenta un panorama general de este tipo de propuestas para resolver problemas de optimización y posteriormente se introducen sus
elementos principales. Después de ello, dos algoritmos bio-inspirados son detallados:
La Colonia Artificial de Abejas (ABC) y la versión mejorada de la Optimización
Mediante el Forrajeo de Bacterias (MBFOA). Se explica la forma en que ambos algoritmos representan las soluciones de un problema, la manera de escoger las mejores
soluciones para guiar a las demás en el proceso de búsqueda, los operadores que permiten generar nuevas soluciones a partir de las ya existentes y los mecanismos de
eliminación para mantener aquellas soluciones más competitivas. El uso de ejemplos
numéricos sencillos apoyan el entendimiento de ambos algoritmos que, en esencia,
son muy simples de implementar y usar.
1.
Introducción
Dentro del quehacer humano se encuentra la resolución de problemáticas
complejas. Entre ellas, se encuentran los problemas de optimización, que consisten en buscar, en un conjunto de soluciones posibles para el problema
en cuestión, aquella que satisfaga de mejor manera una serie de condiciones
planteadas. Los problemas de optimización pueden clasificarse en dos tipos:
1. Problemas de optimización numérica: Se busca un conjunto de valores para las variables del problema de manera que al sustituirse en la
función objetivo se maximice o minimice el valor de esta función. Un
ejemplo de este problema puede ser el diseño de una pieza mecánica donde
se buscan valores óptimos de sus dimensiones para minimizar su costo de
fabricación.
2
Mezura-Montes, Cetina-Domı́nguez y Hernández-Ocaña
2. Problemas de optimización combinatoria: Se busca encontrar el ordenamiento de un conjunto de elementos de manera que se maximice o
minimice el valor de la función objetivo. Un ejemplo de este tipo de problemas es el del agente viajero, que debe recorrer un conjunto de ciudades,
pasando por ellas sólo una vez, de manera que regrese a su punto de salida
y se minimice el costo del viaje. Aquı́ se desea encontrar el orden óptimo
de recorrido de las ciudades.
Este capı́tulo se centra en el primer tipo de problemas, conocido como
el problema general de programación no lineal, que se define, sin pérdida de
generalidad, como: Encontrar x que minimiza
f (x)
(1)
gi (x) ≤ 0, i = 1, . . . , m
(2)
hj (x) = 0, j = 1, . . . , p
(3)
sujeta a:
donde x ∈ IRn es un vector de n variables de decisión x = [x1 , x2 , . . . , xn ]T
y cada xi , i = 1, ..., n está acotado por lı́mites inferiores y superiores Li ≤
xi ≤ Ui , los cuales definen el espacio de búsqueda S, F es el conjunto de
todas las soluciones que satisfacen las restricciones del problema y se le llama
zona factible, siendo claro que F ∈ S, m es el número de restricciones de
desigualdad y p es el número de restricciones de igualdad. Las restricciones y
la función objetivo pueden ser lineales y no lineales.
En este problema se pretende encontrar una solución que minimice una
cierta medida de calidad, conocida como función objetivo (1) que además
debe satisfacer un conjunto de restricciones asociadas al problema (2)-(3).
Detallando el ejemplo propuesto anteriormente sobre el diseño de la pieza
mecánica, se quiere encontrar su costo mı́nimo de construcción, el cual se
modela mediante una función (no lineal tal vez) y que depende de variables
como el largo y el ancho de la pieza, ası́ como el grosor del material. Además,
pueden existir restricciones de espacio, de manera que la pieza no puede ser
ni muy grande ni muy chica, pues debe incorporarse a un mecanismo más
grande.
1.1.
Técnicas de Optimización
La Investigación de Operaciones (IO) es el área dentro de las matemáticas
dedicada al estudio, entre otros temas, de técnicas para la resolución de problemas de optimización. La IO plantea la determinación del mejor curso de
acción de un problema de decisión con la restricción de productos limitados [1]. Deb [2] clasifica las técnicas para resolver problemas de optimización
numérica en las siguientes categorı́as:
Nuevas Heurı́sticas para Optimización Numérica
3
1. Métodos tradicionales
Técnicas de variable simple: Divididas en métodos directos (utilizan la
función a optimizar para guiar la búsqueda) y de gradiente (utilizan
información del gradiente para guiar la búsqueda).
Técnicas multivariable: Divididas en métodos directos y de gradiente.
Realizan búsquedas en múltiples dimensiones, valiéndose, en ocasiones,
de técnicas de variable simple.
Técnicas para problemas con restricciones: Realizan búsquedas en espacios restringidos, usualmente utilizando técnicas multivariable y/o
de variable simple de manera iterativa.
Técnicas especializadas: Métodos para problemas particulares como
programación entera (variables que sólo toman valores enteros).
2. Métodos no tradicionales. Métodos que incorporan conceptos heurı́sticos
para mejorar la búsqueda.
Este capı́tulo se centrará precisamente en dos propuestas novedosas que
forman parte de los métodos no tradicionales para resolver problemas de optimización numérica.
1.2.
Métodos no tradicionales (heurı́sticas)
Dada la existencia de múltiples formas de resolver el problema de optimización numérica en su forma más general, una pregunta justa es ¿Por
qué recurrir a métodos no tradicionales? La justificación para utilizar métodos heurı́sticos puede basarse en las caracterı́sticas de los problemas del mundo
real, que pueden ser tan particulares que hacen difı́cil (y a veces imposible)
el aplicar los métodos tradicionales en su resolución. Por otro lado, existen
problemas donde estos métodos pueden ser aplicados, sin embargo los resultados y/o el tiempo requerido para obtener una solución no son los esperados
por quien resuelve el problema. Se pueden distinguir fuentes de dificultad al
tratar de resolver problemas de optimización [3]:
El número de posibles soluciones (espacio de búsqueda) es demasiado
grande.
El problema es tan complicado que, con la intención de obtener alguna
solución, se deben utilizar modelos simplificados del mismo y por ende la
solución es poco útil.
La función de evaluación que describe la calidad de cada solución en el
espacio de búsqueda varı́a con el tiempo y/o tiene ruido.
Las soluciones posibles están altamente restringidas, lo cual dificulta incluso la generación de al menos una solución factible (es decir, que cumpla
con las restricciones del problema).
Los métodos tradicionales siempre deben considerarse como la primera
opción para resolver un problema de optimización, dado que pueden garantizar
la convergencia al óptimo global (la mejor de todas las posibles soluciones)
4
Mezura-Montes, Cetina-Domı́nguez y Hernández-Ocaña
bajo ciertas condiciones. Sin embargo, si la aplicación del método tradicional
es compleja, el costo computacional es alto y/o los resultados son buenos pero
no los esperados (óptimas locales, soluciones buenas en una cierta zona del
espacio de búsqueda, pero que no son mejores que el óptimo global), entonces
puede considerarse el uso de un método no tradicional, una heurı́stica.
Los métodos heurı́sticos no pueden garantizar el encontrar la mejor solución de un problema, sin embargo, devolverán una solución aceptable en un
tiempo razonable; de ahı́ la importancia de su estudio. De hecho, existe en la
literatura especializada una gran cantidad de publicaciones donde se destacan
casos de éxito del uso de métodos no tradicionales en la solución de problemas
complejos [4, 5, 6].
Heurı́sticas con probado éxito en la resolución de problemas numéricos y
combinatorios son, por ejemplo, el recocido simulado [7], que basa su funcionamiento en el proceso fı́sico del tratamiento térmico de materiales, donde
el material es calentado inicialmente a altas temperaturas y después, mediante
una variación de temperatura muy puntual, es enfriado. La intención es que el
material obtenga caracterı́sticas particulares en el proceso. Esta idea ha sido
utilizada para resolver problemas de optimización (numérica principalmente)
agregando una temperatura inicial y un horario de enfriamiento que permite
disminuirla gradualmente de manera que el algoritmo de búsqueda seleccione
una nueva solución aunque no mejore el valor de calidad de la solución que se
tenga en ese momento. Con ello, se agrega un aspecto estocástico al proceso
de búsqueda con la intención de evitar óptimos locales. Otra heurı́stica, que
en su propuesta original no agrega aspectos aleatorios, pero que pueden ser
incluidos, es la Búsqueda Tabú [8], la cual utiliza una “memoria” para almacenar movimientos (soluciones) previamente realizados (encontradas) y evitar
realizarlos (recorrerlas) de nuevo. Las estructuras de memoria pueden tener
diferente vigencia (corto, mediando o largo plazo) dependiendo de la complejidad del problema a resolver. De ahı́ que la implementación de la Búsqueda
Tabú puede requerir de mecanismos adicionales de búsqueda y estructuras de
datos adecuadas para realizar un recorrido eficaz y eficiente de la memoria y
evitar que este manejo sea aún más costoso que la optimización misma. La
búsqueda Tabú se ha aplicado principalmente en problemas de optimización
combinatoria.
Dentro de los métodos heurı́sticos (o no tradicionales) se tiene un grupo
que basa su funcionamiento en fenómenos “inteligentes” encontrados en la
naturaleza y conocidos como heurı́sticas bio-inspiradas [9] o algoritmos bioinspirados. Dos sub-grupos se distinguen de acuerdo con el tipo de fenómeno
natural en el que se basan:
1. Algoritmos evolutivos [10]
2. Inteligencia colectiva [9]
Los algoritmos evolutivos basan su funcionamiento en la teorı́a de la evolución de las especies, la supervivencia del más apto y la transmisión de caracterı́sticas de padres a hijos [11]. Por otro lado, la inteligencia colectiva toma
Nuevas Heurı́sticas para Optimización Numérica
5
comportamientos de seres vivos que interactuan de manera local con su ambiente, y de esa interacción surgen comportamientos sociales que permiten a
estos seres, simples de manera individual, resolver problemáticas complejas
de manera conjunta (parvadas de aves, bancos de peces, cúmulos de insectos,
hormigas, bacterias, entre otros) [9].
En este capı́tulo se analizarán dos heurı́sticas bio-inspiradas basadas en
inteligencia colectiva:
1. La colonia artificial de abejas.
2. La optimización mediante el forrajeo de bacterias.
Este capı́tulo está organizado como sigue: En la Sección 2 se presentan
los componentes de un algoritmo bio-inspirado. Posteriormente la Sección 3
presenta a la colonia artificial de abejas y la optimización mediante el forrajeo
de bacterias se detalla en la Sección 4. Finalmente, las conclusiones se resumen
en la Sección 5.
2.
Componentes de un algoritmo bio-inspirado
Los algoritmos evolutivos y de inteligencia colectiva, de manera general,
trabajan de la siguiente manera, véase la Figura 1:
1. Generar un conjunto (población) de soluciones (individuos) al problema.
2. Evaluar cada solución en la función objetivo a optimizar (1).
3. Seleccionar las mejores soluciones de la población con base en su valor en
la función objetivo (1).
4. Generar nuevas soluciones a partir de las mejores soluciones utilizando
operadores de variación.
5. Evaluar las nuevas soluciones.
6. Escoger las soluciones que formarán parte de la siguiente iteración (generación).
Aunque existen diferencias especı́ficas entre los diversos algoritmos evolutivos y aquellos de inteligencia colectiva, tienen componentes comunes, los
cuales se enumeran a continuación:
Representación de soluciones: Las soluciones se pueden representar de
diferentes formas (cadenas binarias, números enteros). Para el caso de la
optimización numérica, la representación más adecuada es utilizar números
reales, puesto que las variables en este tipo de problemas suelen tomar
precisamente este tipo de valores. Por ende, cada solución consistirá de un
vector de números reales.
Mecanismo de selección: La guı́a de la búsqueda se realiza mediante
este mecanismo o en el reemplazo (explicado más adelante). La intención
es escoger un subconjunto de soluciones de la población que tengan caracterı́sticas sobresalientes, de manera que puedan generar nuevas soluciones
6
Mezura-Montes, Cetina-Domı́nguez y Hernández-Ocaña
aún mejores. El criterio para escoger depende del valor de la función objetivo (1) de cada solución.
Operadores de variación: Los operadores de variación son los que permiten generar nuevas soluciones a partir de las soluciones existentes (aquellas escogidas con los mecanismos de selección). Los operadores emulan
comportamientos como la reproducción (cruzas), variaciones aleatorias a
nivel genético (mutaciones) o movimientos cooperativos (giros, nados, vuelos).
Mecanismos de reemplazo: Una vez que se tienen, tanto al conjunto de
soluciones actuales además de las recién generadas, se utilizan mecanismos
para escoger aquellas que formarán parte de la población para la siguiente
generación. Este proceso puede basarse en la calidad de cada solución (1),
en la “edad” de las soluciones, o tomando en cuenta aspectos estocásticos.
Inicio
Poblacion
Fin
Seleccion
Reemplazo
Nuevas
Soluciones
Soluciones
seleccionadas
Operadores
de variacion
Figura 1. Esquema general de un algoritmo bio-inspirado.
Con base en los componentes antes descritos se presentarán dos algoritmos
heurı́sticos de la inteligencia colectiva: La Colonia Artificial de Abejas (ABC)
y la Optimización Mediante el Forrajeo de Bacterias (BFOA).
3.
La Colonia Artificial de Abejas
El proceso de búsqueda de néctar en las flores por parte de abejas melı́feras
ha sido visto como un proceso de optimización. La forma en la que este tipo
de insectos sociales logran centrar esfuerzos en zonas con altas cantidades de
fuentes de alimento se ha modelado como una heurı́stica para optimización.
A pesar de que existen diversos modelos basados en abejas [12], para efectos
de este trabajo la explicación se basará en el modelo propuesto por Karaboga
Nuevas Heurı́sticas para Optimización Numérica
7
[13] que resuelve problemas de optimización numérica mediante dos comportamientos: El reclutamiento de abejas en una fuente de alimento y el abandono
de una fuente.
El modelo biológico de recolección de alimento en abejas melı́feras consta
de los siguientes elementos mı́nimos [13]:
Fuentes de alimento: El valor de una fuente de alimento depende de
muchos factores, como lo son la cercanı́a a la colmena, la concentración de
alimento y la facilidad para extraerlo. Por simplicidad es posible representar la rentabilidad de una fuente en un solo valor numérico.
Recolectoras empleadas: Estas abejas están asociadas con una fuente
particular de alimento la cual están explotando, es decir, están empleadas
para con ella. Las abejas empleadas comparten la información sobre su
fuente de alimento, como la ubicación y rentabilidad hacia las abejas
recolectoras.
Recolectoras desempleadas: Están constantemente buscando una fuente
de alimento a la cual explotar. Hay dos tipos de recolectora desempleada:
la exploradora, que busca en las cercanı́as de la colmena por nuevas fuentes
de alimento y la observadora, que espera en la colmena y elige una fuente
de alimento con base en la información compartida por una recolectora
empleada.
La información sobre las fuentes de alimento es compartida por las recolectoras empleadas por medio de una danza cuya duración indica la rentabilidad
de la fuente, el ángulo con respecto al sol indica la dirección de la fuente y el
número de movimientos en zig-zag durante la danza indica la distancia. Dado
que las danzas de las fuentes más rentables son de mayor duración, existe una
mayor probabilidad de ser observada por recolectoras desempleadas, aumentando la probabilidad de que una recolectora elija dicha fuente de alimento.
Cuando una fuente de alimento se agota, la abeja o abejas empleadas en
ellas se convierten en abejas desempleadas y tendrán que decidir entre convertirse en abejas exploradoras o regresar a la colmena como abejas observadoras.
En el algoritmo ABC la colonia de abejas artificiales se compone también
de 3 grupos de abejas: abejas empleadas, abejas observadoras y abejas exploradoras. El número de abejas empleadas es usualmente igual al número de
fuentes de alimento y se asignará una abeja empleada a cada una de las fuentes.
Al llegar a dicha fuente, la abeja calculará una nueva solución (volará hacia
otra fuente de alimento cercana) a partir de ésta y conservará la mejor solución. El número de abejas observadoras es también usualmente igual al de
abejas empleadas y se asignarán a una fuente de alimento con base en la aptitud de éstas, al igual que las abejas empleadas, calculará una nueva solución
a partir de su fuente de alimento. Cuando una fuente no mejora después de
un cierto número de iteraciones se abandona, siendo reemplazado por aquella
encontrada por una abeja exploradora, lo cual implica calcular una nueva solución aleatoriamente. Una de las ventajas de este algoritmo es el bajo número
de parámetros que requiere como puede verse en la Tabla 1.
8
Mezura-Montes, Cetina-Domı́nguez y Hernández-Ocaña
Tabla 1. Parámetros del ABC.
Nombre
Sı́mbolo
Descripción
Número de soluciones SN Número de soluciones (fuentes de alimento)
Número de ciclos
M CN Número total de ciclos (iteraciones) que
ejecutará el ABC
Lı́mite
limit Número de ciclos que se conservará una
solución sin mejora antes de ser reemplazada por una nueva generada por una abeja
exploradora
3.1.
Elementos del ABC
Representación de soluciones
La representación de las soluciones se lleva a cabo mediante fuentes de
alimento, que no son más que vectores de D-dimensiones (donde D es el
número de variables del problema). La representación gráfica se muestra en
la Figura 2 y la representación vectorial de la solución i en el ciclo g es la
presentada en (4):
xi,g , i = 1, . . . , SN, g = 1, . . . , M CN
2.1
2.9
10.1
(4)
7.0
Figura 2. Representación de una solución asumiendo 4 variables con números reales.
Cada una de las variables que forma parte de la solución está asociada a
un rango (Li ≤ xi ≤ Ui ), el cual se debe de tomar en cuenta al momento
de generar de manera aleatoria, con una distribución uniforme, las soluciones
(fuentes de alimento) iniciales.
Mecanismos de selección
La forma en que se seleccionan las mejores soluciones es mediante la comunicación entre abejas empleadas y abejas observadoras, de manera que
aquellas fuentes de comida con mejor calidad serán más visitadas. El detalle
de este funcionamiento se verá más adelante.
Nuevas Heurı́sticas para Optimización Numérica
9
Operadores de variación (las abejas)
En el ABC, las abejas son vistas como operadores de variación, pues cuando una de ellas llega a una fuente de alimento, calcula una nueva solución
candidata vi,g utilizando la fórmula dada en (5). En donde xi,g representa la
solución en la que la abeja se encuentra en ese momento, xk,g es una fuente
de alimento aleatoria (y distinta de xi,g ), g es el número de ciclo actual del
programa y φ es un número real aleatorio en el intervalo [-1,1].
vi,g = xi,g + φ · (xi,g − xk,g )
(5)
En la Figura 3 puede verse un ejemplo gráfico de este cálculo. En primer
lugar se observa en la Figura 3(a) el vector que es generado mediante la diferencia entre xi y xk . Posteriormente se genera la solución candidata utilizando
(5) en la Figura 3(b). Se nota que v y v ′ se generaron utilizando el mismo
valor de φ pero con signo opuesto. Ésto es posible porque el intervalo de φ lo
permite ([-1,1]).
Y
Y
xk
xk
xi− xk
v
xi
xi
v’
X
(a)
X
(b)
Figura 3. (a) El vector generado por la diferencia entre xi y xk . (b) Dos posibles
soluciones candidatas generadas utilizando (5) y el mismo valor φ con signo opuesto.
Mecanismos de reemplazo
La forma de eliminar soluciones (fuentes de comida) es mediante las abejas exploradoras, que dado el abandono de fuentes de comida no mejoradas
en varios ciclos del algoritmo, generan nuevas fuentes de comida de manera
totalmente aleatoria.
3.2.
Pasos del algoritmo ABC
A continuación se detalla el funcionamiento del algoritmo ABC, que puede
observarse en la Figura 4. Se comienza inicializando las soluciones que representarán las fuentes de alimento iniciales, siendo SN el número de soluciones
10
Mezura-Montes, Cetina-Domı́nguez y Hernández-Ocaña
(uno de los parámetros del algoritmo). Se evalúan estas soluciones y se procede
con un ciclo que se repetirá M CN veces, dónde M CN es el número de ciclos
máximo. Dentro de este ciclo se comienza con enviar a las abejas empleadas
a las fuentes de alimento y calcular nuevas soluciones candidatas utilizando
(5), posteriormente se utiliza una selección ambiciosa en la cual se conserva la
mejor solución entre la fuente de alimento y su respectiva solución candidata.
Con base en la aptitud de las fuentes de alimento que se conserven después
del paso anterior se determina cuáles soluciones serán visitadas por abejas
observadoras. Las abejas observadoras visitarán estas soluciones y generarán
soluciones candidatas utilizando (5). Posteriormente se realizará una selección
ambiciosa entre las soluciones candidatas y la solución respectiva (de manera
similar que con las abejas empleadas).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Begin
Inicializar la población de soluciones xi,0 , i = 1, . . . , SN
Evaluar la población
g=1
Repeat
Producir nuevas soluciones vi,g para las abejas empleadas
utilizando (5) y evaluarlas
Conservar la mejor solución entre la actual y la candidata
Seleccionar las soluciones que serán visitadas por una abeja
observadora según su aptitud
Producir nuevas soluciones vi,g para las abejas observadoras
utilizando (5) y evaluarlas
Conservar la mejor solución entre la actual y la candidata
Determinar si existe una fuente abandonada y reemplazarla
utilizando una abeja exploradora
Memorizar la mejor solución encontrada hasta este momento
g =g+1
Until g = M CN
End
Figura 4. Algoritmo Colonia Artificial de Abejas (ABC)
Posteriormente se determina si existe alguna solución abandonada; ésto
sucede cuando una solución no es mejorada (no es reemplazada por una solución candidata), durante el número de ciclos establecido por la variable Lı́mite.
Lı́mite esta dada por la fórmula (SN ∗ D) donde SN es el número de soluciones y D es el número de variables del problema. De encontrarse alguna
fuente abandonada se reemplaza con una nueva encontrada por una abeja
exploradora, que en este caso es una nueva solución calculada aleatoriamente
dentro del espacio de búsqueda.
Nuevas Heurı́sticas para Optimización Numérica
11
Finalmente la mejor solución encontrada durante el ciclo se compara con
la mejor solución en memoria y si tiene una mejor aptitud la reemplazará. Se
repite el ciclo M CN veces.
3.3.
Ejemplo de funcionamiento
A continuación se presenta un ejemplo de funcionamiento del ABC aplicado a una función conocida como la esfera, detallada en (6):
Minimizar: f (x1 , x2 ) = x21 + x22
(6)
Los intervalos para las variables se muestran en (7):
−5 ≤ x1 ≤ 5
−5 ≤ x2 ≤ 5
x1 , x2 ∈ R
(7)
Los valores de los parámetros del ABC para este ejemplo se muestran en
la Tabla 2.
Tabla 2. Parámetros de ABC empleados en la función de la esfera.
Parámetro Valor
SN
5
M CN
2
limit
10
Siguiendo el algoritmo mostrado en la Figura 4, primero se inicializa el
contador de generaciones con el valor de 0, posteriormente se crea población
inicial de manera aleatoria (la cual está dentro del rango especificado en la
Tabla 2) y se muestra en la Tabla 3.
Tabla 3. Población inicial, el valor de la función para cada individuo se encuentra
en la cuarta columna.
Fuente
1 (x1,0 )
2 (x2,0 )
3 (x3,0 )
4 (x4,0 )
5 (x5,0 )
x1
0.5
-0.2
-0.4
0.2
0.1
x2
0.3
0.1
-0.7
0.05
0.9
f (xi )
0.34
0.05
0.65
0.0425
0.82
Posteriormente se tiene que evaluar cada una de las fuentes de alimento
en la función objetivo. Estos valores se muestran en la cuarta columna de la
Tabla 3.
12
Mezura-Montes, Cetina-Domı́nguez y Hernández-Ocaña
Se inician ahora los ciclos del algoritmo donde el primer paso es enviar
las abejas empleadas a las fuentes de alimento y generar nuevas soluciones
candidatas, para ello se utilizan los siguientes valores aleatorios que pueden
verse en la Tabla 4.
Tabla 4. Valores aleatorios para las abejas empleadas en el ciclo 1.
Empleada
1
2
3
4
5
k
3
1
5
2
1
φ1
-0.1
0.2
0.7
-0.5
0.3
φ2
0.2
0.5
-0.3
0.7
-0.1
Para la primera abeja empleada se calcula la nueva solución candidata
utilizando la fórmula definida por el algoritmo (5) v11 = (0.5) + (−0.1 ∗ (0.5 −
(−0.4))) = 0.41 y de la misma forma v12 = (0.3) + (0.2 ∗ (0.3 − (−0.7))) = 0.5,
resultando en un valor de la función objetivo de 0.4181.
Para la abeja empleada 2 se tiene v21 = (−0.2) + (0.2 ∗ (−0.2 − (0.5))) =
−0.34 y v22 = (0.1) + (0.5 ∗ (0.1 − (0.3))) = 0 y un valor de la función objetivo
de 0.1156.
Para la abeja empleada 3 se tiene v31 = (−0.4) + (0.7 ∗ (−0.4 − (0.1))) =
−0.75 y v32 = (−0.7)+(−0.3∗(−0.7−(0.9))) = −0.22 y un valor de la función
objetivo de 0.6109.
Para la abeja empleada 4 se tiene v41 = (0.2) + (−0.5 ∗ (0.2 − (−0.2))) = 0
y v42 = (0.05) + (0.7 ∗ (0.05 − (0.1))) = 0.015 y un valor de la función objetivo
de 0.000225.
Para la abeja empleada 5 se tiene v51 = (0.1) + (0.3 ∗ (0.1 − (0.5))) = −0.02
y v52 = (0.9) + (−0.1 ∗ (0.9 − (0.3))) = 0.84 y un valor de la función objetivo
de 0.706.
Se compara el valor de la fuente de alimento con el de la solución candidata
calculada a partir de ella y se conserva la mejor solución, quedando por lo tanto
como soluciones hasta el momento los que se muestran en la Tabla 5.
Tabla 5. Fuentes de alimento después de la primera ronda de abejas empleadas.
Fuente
1 (x1,1a )
2 (x2,1a )
3 (x3,1a )
4 (x4,1a )
5 (x5,1a )
x1
0.5
-0.2
-0.75
0
-0.02
x2
0.3
0.1
-0.22
0.015
0.84
f (x)
0.34
0.05
0.6109
0.000225
0.706
Nuevas Heurı́sticas para Optimización Numérica
13
El siguiente paso es enviar las abejas observadoras a las mejores fuentes de
alimento (con base en su aptitud), utilizando algún mecanismo de selección
proporcional. Por motivos de simplicidad, para este ejemplo se determinó enviar tres abejas observadoras a la mejor solución (fuente de alimento 4) y
las dos restantes a la segunda mejor (fuente 2). Los valores aleatorios para
calcular las soluciones candidatas pueden verse en la Tabla 6.
Tabla 6. Valores aleatorios para las abejas observadoras en el ciclo 1.
Observadora Fuente elegida
1
4
2
4
3
4
4
2
5
2
k
3
2
5
4
1
φ1
0.2
-0.16
-0.3
0.23
-0.1
φ2
-0.15
0.2
0.12
-0.02
0.3
Se calculan las soluciones candidatas para las abejas observadoras a partir
de la fuente seleccionada. Para la observadora 1 v11 = 0.1725, v12 = 0.0103
y f (x) = 0.02986234. La observadora 2 v21 = 0.046, v22 = 0.0167 y f (x) =
0.00239489. Para la observadora 3 v31 = 0.0046, v32 = 0.0315 y f (x) =
0.00101341. En la observadora 4 encontramos v41 = −0.168, v42 = 0.117 y
f (x) = 0.041913. Para la observadora 5 v51 = −0.088, v52 = 0.06 y f (x) =
0.011344.
Se verifica si alguna de las soluciones candidatas mejora su respectiva
fuente de alimento. Ésto sucede para la abeja observadora 5 y la fuente de
alimento 2. Realizando el reemplazo las fuentes de alimento al final del ciclo
1 quedan como se muestra en la Tabla 7.
Tabla 7. Fuentes de alimento después de la primera ronda de abejas observadoras.
Fuente
1 (x1,1 )
2 (x2,1 )
3 (x3,1 )
4 (x4,1 )
5 (x5,1 )
x1
0.5
-0.088
-0.75
0
-0.02
x2
0.3
0.06
-0.22
0.015
0.84
f (x)
0.34
0.011344
0.6109
0.000225
0.706
El ciclo 2 inicia con el cálculo de soluciones candidatas para cada fuente
de alimento, es decir, con las abejas empleadas. A continuación se presenta la
tabla con los valores aleatorios utilizados para el cálculo en la Tabla 8.
La empleada 1 da los siguientes resultados v11 = 0.5588, v12 = 0.084 y
f (x) = 0.31931344. La empleada 2: v21 = −0.0616, v22 = 0.07125 y f (x) =
0.008871123. Empleada 3: v31 = −1.042, v3,2 = 0.0662 y f (x) = 1.09014644.
14
Mezura-Montes, Cetina-Domı́nguez y Hernández-Ocaña
Tabla 8. Valores aleatorios para las abejas empleadas en el ciclo 2.
Empleada
1
2
3
4
5
k
2
4
5
2
3
φ1
0.1
-0.3
0.4
-0.05
0.3
φ2
-0.9
0.25
-0.27
0.2
-0.1
Empleada 4: v41 = −0.0044, v42 = 0.006 y f (x) = 5.536E-05. Empleada 5:
v51 = 0.199, v52 = 0.734 y f (x) = 0.578357.
Las fuentes de alimento que son mejoradas por una solución candidata son
reemplazadas y se presentan los resultados a continuación en la Tabla 9.
Tabla 9. Fuentes de alimento después de la segunda ronda de abejas empleadas.
Fuente
1 (x1,2a )
2 (x2,2a )
3 (x3,2a )
4 (x4,2a )
5 (x5,2a )
x1
0.5588
-0.0616
-0.75
-0.0044
0.199
x2
0.084
0.07125
-0.22
0.006
0.734
f (x)
0.31931344
0.008871123
0.6109
5.536E-05
0.578357
Para las abejas observadoras nuevamente se utilizan tres abejas en la mejor
solución (fuente 4) y dos abejas en la segunda mejor (fuente 2) con la intención
de representar una selección proporcional con base en la aptitud de la fuente
de alimento. Los valores aleatorios utilizados se muestran en la Tabla 10.
Tabla 10. Valores aleatorios para las abejas observadoras en el ciclo 2.
Observadora Fuente elegida
1
4
2
4
3
4
4
2
5
2
k
1
2
3
5
4
φ1
0.2
-0.51
-0.3
0.01
-0.1
φ2
-0.15
0.2
0.12
0.9
0.3
Se calculan las soluciones candidatas para las abejas observadoras a partir
de la fuente seleccionada. Para la observadora 1 v11 = −0.010032, v12 =
−0.0642 y f (x) = 0.004222281. La observadora 2 v21 = −0.003828, v22 =
−0.052725 y f (x) = 0.002794579. Para la observadora 3 v31 = 0.003056, v32 =
0.2094 y f (x) = 0.043857699. En la observadora 4 se tiene v41 = 0.071306,
Nuevas Heurı́sticas para Optimización Numérica
15
v42 = −0.0613 y f (x) = 0.008842236. Para la observadora 5 v51 = −0.032428,
v52 = 0.0843 y f (x) = 0.008158065.
Se verifica si alguna solución candidata mejora una fuente de alimento
y es claro que ésto se cumple con la observadora 5 y la fuente de alimento
2, después de realizar el reemplazo el resultado final después del ciclo 2 se
presenta a continuación en la Tabla 11
Tabla 11. Fuentes de alimento después de la segunda ronda de abejas observadoras.
Fuente
1 (x1,2 )
2 (x2,2 )
3 (x3,2 )
4 (x4,2 )
5 (x5,2 )
x1
0.5588
-0.032428
-0.75
-0.0044
0.199
x2
0.084
0.0843
-0.22
0.006
0.734
f (x)
0.31931344
0.008158065
0.6109
5.536E-05
0.578357
La solución a reportar será la fuente 4, con x1 = −0.0044, x2 = 0.006 y
f (x) = 5.536E-05
Como datos adicionales, el mı́nimo global de esta función se encuentra en
el punto [0,0], en donde f (x) = 0. En este ejemplo la variable lı́mite y las
abejas exploradoras no fueron utilizadas ya que el número de ciclos era menor
al valor de lı́mite que está definido por el número de fuentes de alimento por
el número de variables del problema a resolver (5 ∗ 2 = 10).
4. Optimización Mediante el Forrajeo de Bacterias
(BFOA)
El BFOA original, fue propuesto por K.M. Passino [14], el cual simula
el proceso completo de forrajeo de la bacteria E. Coli: Chemotaxis o paso quimiotáctico (movimientos de giro y nado), reproducción y eliminacióndispersión. El modelado de la búsqueda de alimento (concentración de nutrientes óptima) que realizan las bacterias contempla las siguientes etapas:
Inicialmente, las bacterias son distribuidas al azar sobre el mapa de nutrientes.
En una primera etapa las bacterias (E. Coli) se mueven hacia los puntos de concentración de nutrientes (dentro de esta generación ocurre una
eliminación y dispersión, algunas bacterias se encuentran en puntos malos
(sustancias nocivas), después ocurre la reproducción y posteriormente casi
todas las bacterias se colocan en puntos de concentración de nutrientes.
En una segunda etapa las bacterias han encontrado los puntos de concentración de nutrientes, aunque no todos estos puntos son óptimos, es decir,
los más altos de concentración de nutrientes. Sin embargo, se agrupan
utilizando una comunicación mediante segregación de atrayentes.
16
Mezura-Montes, Cetina-Domı́nguez y Hernández-Ocaña
En una tercera etapa las bacterias encuentran el punto más alto de concentración de nutrientes.
En una cuarta etapa las bacterias permanecen en ese punto y la búsqueda
de alimento ha terminado; se dispersan nuevamente y buscan una nueva
fuente de nutrientes (las etapas se repiten).
Durante estas etapas las bacterias se enfrentan a varias problemáticas en la
búsqueda de sus alimentos, por ejemplo: Ambientes nocivos que deben detectar y evitar en su viaje pues causan la eliminación y dispersión (para ello estas
bacterias se agrupan y son capaces de producir y segregar sustancias quı́micas
que son usadas como mecanismos de señalización y comunicación entre ellas),
el tiempo de vida de las bacterias y finalmente el recorrido que tienen que
hacer para encontrar el punto óptimo de concentración de nutrientes, entre
otros.
Debido a que el algoritmo de Passino (BFOA) requiere de muchos parámetros y su costo computacional es alto, la versión modificada del BFOA, propuesta en [15] y llamada MBFOA es la utilizada en este capı́tulo.
4.1.
Elementos del MBFOA
Representación de soluciones
La representación de las soluciones, al igual que para el caso del ABC,
se lleva a cabo mediante vectores de números reales llamados bacterias y
representados en (8) por la letra θ, donde θi (j, G) representa la bacteria i, en
su ciclo quimiotáctico j, en la generación G y Sb es el número total de bacterias
en la población. La representación gráfica es similar a la de las soluciones del
ABC en la Figura 2.
θi (j, G), ∀i = 1, . . . , Sb
(8)
Mecanismos de selección
Para el caso de las bacterias, el proceso de selección se realiza dentro del
paso quimiotáctico, donde cada bacteria se moverá de manera constante en
una misma dirección, generada de manera aleatoria, hacia una nueva posición
siempre y cuando sea de mejor calidad que la previa. A este proceso dentro del
ciclo quimiotáctico se le conoce como nado. Si al pasar a una nueva posición y
ésta es de menor calidad, la bacteria realizará un giro para buscar una nueva
dirección de búsqueda siempre buscando mejorar la calidad de su posición.
Operadores de variación
Existen dos operadores a utilizar en MBFOA, el nado-giro (mencionado
anteriormente) y el swarming. El nado giro consiste en generar una dirección
aleatoria mediante un vector normalizado usando (9):
Nuevas Heurı́sticas para Optimización Numérica
∆(i)
φ(i) = p
∆(i)T ∆(i)
17
(9)
donde ∆(i) es un vector del mismo número de dimensiones que las variables
del problema a resolver y generado aleatoriamente con sus elementos dentro
del intervalo: [−1, 1]. A este paso se le conoce como giro. Después de ello,
cada bacteria θi (j, G) modifica su posición mediante el nado como se indica
en (10).
θi (j + 1, G) = θi (j, G) + Cnew (i)φ(i)
(10)
donde θi (j + 1, G) es la nueva posición de la bacteria i, θi (j, G) es la posición
actual de la bacteria i, φ(i) es el vector de dirección aleatoria calculado en (9)
y Cnew (i) es el tamaño de paso (la “longitud de movimiento” de la bacteria
calculada mediante (11)).
√ Cnew (i) = R ∗ ∆xi / n
(11)
donde ∆xi se calcula restando los lı́mites superior e inferior de cada variable
i, Ui − Li , n es el número de variables del problema y R es el porcentaje de
este tamaño de paso total a ser utilizado en el proceso de búsqueda (se sugiere
0.2 ≤ R ≤ 0.5. Estos tamaños de paso permanecen constantes durante todo
el funcionamiento del algoritmo.
El nado, representado en (10), se repite Ns veces si la nueva posición es
mejor que la previa : f (θi (j + 1, G)) < f (θi (j, G)).
El operador de swarming se lleva a cabo cuando la mejor bacteria de la
población atrae hacia sı́ a las demás. Este proceso sucede a la mitad y al
final de cada ciclo quimiotáctico (en los restantes pasos se usa el nado-giro)
utilizando (12).
i
θi (j + 1, G) = θi (j, G) + β(θB (G) − θi (j, G))
(12)
B
donde θ (j + 1, G) es la nueva posición de la bacteria i, θ (G) es la posición
actual de la mejor bacteria en la generación G y 0 ≤ β ≤ 1 es un factor
de escalamiento que determina qué tan cerca estará la bacteria i de la mejor
bacteria B.
Mecanismos de reemplazo
En MBFOA se tienen dos etapas de eliminación de soluciones: En el momento de la reproducción se mantiene sólamente a la mitad de la población
de soluciones y se elimina a la otra mitad, sustituyéndolas por copias de las
mejores bacterias (simulando la división de una bacteria en dos nuevas bacterias). Posteriormente, el proceso de eliminación-dispersión elimina la peor
bacteria de la población.
18
Mezura-Montes, Cetina-Domı́nguez y Hernández-Ocaña
4.2.
Pasos del algoritmo MBFOA
Dados los operadores y mecanismos de selección y reemplazo, los operadores requeridos por MBFOA se resumen en la Tabla 12. Además, el pseudocódigo de este algoritmo heurı́stico se encuentra en la Figura 5.
Tabla 12. Parámetros del MBFOA
Nombre
Bacterias
Generaciones
Sı́mbolo Descripción
Sb
Número de bacterias en la población.
GMAX Número de generaciones que se ejecutará
todo el procedimiento: Ciclo quimiotáctico, de
reproducción y eliminación-dispersión.
Ciclo quimiotáctico
Nc
Número de veces que cada bacteria en la
población podrá nadar o girar.
Reproducción
Sr
Número de bacterias a reproducirse.
Escalamiento
β
Factor de escalamiento que determina cuánto
avanzará una bacteria hacia la mejor bacteria
de la población.
Porcentaje del tamaño
R
Porcentaje del rango permitido para las
de paso
variables que se usará como tamaño de paso.
Begin
Inicializar la población de soluciones (bacterias) θi (0, 0) ∀i, i = 1, . . . , Sb
Evaluar la población de bacterias f (θi (0, 0)) ∀i, i = 1, . . . , Sb
For G=1 to GM AX Do
For i=1 to Sb Do
For j=1 to Nc Do
Realizar el paso quimiotáctico (giro-nado y swarming)
para la bacteria θi (j, G) usando (10) y (12)
End For
End For
Realizar la reproducción eliminando las Sr peores
bacterias y duplicando cada una de las (Sb − Sr ) mejores bacterias
Eliminar la peor bacteria θw (j, G) en la población actual
End For
End
Figura 5. Algoritmo del MBFOA
De acuerdo al pseudocódigo en la Tabla 5, se describe el proceso que se
realiza durante su ejecución al resolver un problema de optimización.
Nuevas Heurı́sticas para Optimización Numérica
1.
2.
3.
4.
5.
6.
7.
8.
19
Se inicializan los parámetros del algoritmo (Tabla 12).
Se genera la población inicial aleatoria de bacterias θi (0, 0)∀i, i = 1, ..., Sb .
Se evalúa cada una de las bacterias f(θi (0, 0))∀i, i = 1, ...Sb .
En cada generación, todas las bacterias llevarán a cabo su ciclo quimiotáctico Nc veces. Se ejecutará la fase de reproducción y la de eliminacióndispersión.
En cada paso del ciclo quimiotáctico, las bacterias realizan su búsqueda, nadando y avanzando hacia una nueva posición o girando porque su
avance no fue favorable en la búsqueda de nutrientes (el valor de la función objetivo no mejoró en el nuevo punto al cual se habı́an dirigido). En
ambos casos se utilizan (9) y (10).
En la parte intermedia y al final del ciclo quimiotáctico, en vez de realizar
el nado y giro, se utiliza el operador de swarming (12), favoreciendo la
comunicación entre bacterias y, a su vez, la convergencia del algoritmo.
A continuación se realiza el proceso de reproducción, en el cual se duplican
a las mejores Sr (usualmente la mitad) bacterias y se elimina al resto (la
otra mitad).
Finalmente se realiza el proceso de eliminación-dispersión en el cual se
elimina únicamente a la peor bacteria de la población θw (j, G).
4.3.
Ejemplo de funcionamiento
Ahora, se presenta un ejemplo de funcionamiento del MBFOA aplicado al
mismo problema que el ABC, la función de la esfera detallada en (6) y (7).
Los valores de los parámetros de inicio del MBFOA se muestran en la Tabla
13. De acuerdo al pseudocódigo del MBFOA, primero se crea una población de
bacterias de manera aleatoria, el número de bacterias es definido por Sb (dicha
población está dentro del rango especificado), ver Tabla 14. Posteriormente se
calculan los tamaños de paso utilizando (11), n = 2, R = 2.1E-2, L1 = L2 =
−5 y U1 = U2 = 5, dando como resultado Cnew (1) = Cnew (2) = 0.1485.
Tabla 13. Parámetros del MBFOA empleados en la función de la esfera
Parámetro Valor
Sb
3
Nc
3
GMAX
4
Sr
2
R
2.1E-2
β
0.44
A continuación, se tiene que evaluar cada una de las bacterias en la función
objetivo, estos valores se muestran en la cuarta columna de la Tabla 14.
20
Mezura-Montes, Cetina-Domı́nguez y Hernández-Ocaña
Tabla 14. Población inicial, el valor de la función para cada bacteria se encuentra
en la cuarta columna
Bacteria θ1i (0, 0) = x1 θ2i (0, 0) = x2
1
-1.728921
0.564320
2
1.595993
1.107934
3
1.082393
1.011439
f (θi (0, 0))
3.307624
3.774711
2.194583
El siguiente paso consiste en inicializar el contador del número de generaciones (G), el contador del número de bacterias Sb y el contador del número
de iteraciones del ciclo quimiotáctico Nc con el valor de 1. En el primer ciclo
quimiotáctico, para la bacteria 1 θ1 (j, G) se aplica el operador de nado-giro,
(9) y (10), recordando que a la mitad del ciclo quimiotáctico y al final del mismo se aplicará el swarming (12). Supóngase que los valores que se emplean
para la dirección aleatoria son (9):
φ1 (1) = −0.289841
φ2 (1) = −0.029217
Se calcula la nueva posición de la bacteria 1 usando el operador de nado
(9) de la siguiente manera:
Nc = 1
θ11 (1, 1) = −1.728921 + (0.1485 ∗ −0.289841) = −1.77190
θ21 (1, 1) = 0.564320 + (0.1485 ∗ −0.029217) = 0.55998
A continuación se evalúa la calidad de la nueva posición de la bacteria 1,
quedando de la siguiente manera:
f (θ1 (1, 1)) = (−1.77190)2 + (0.55998)2 = 3.45320
Ahora se determina si la bacteria continuará nadando en esa dirección
definida por φ(i) o si tendrá que girar, generando nuevos valores para φ(i).
Observando la función objetivo de la nueva posición de la bacteria 1 se nota
que no se mejora el valor actual de la misma (3.307624), por lo tanto, se
deberá generar una nueva dirección de búsqueda (un nuevo φ(i)) e intentar
mejorar (nadar) en esa dirección.
Dado que en este ejemplo el valor para el ciclo quimiotáctico es de Nc =3,
las siguientes dos iteraciones se consideran la mitad y la final del proceso.
Por ende, se aplicará el operador de swarming (12). Con base en la población
actual de bacterias detallada en la Tabla 14, la mejor es la bacteria 3 (pues
tiene el menor valor para la función objetivo). Utilizando entonces el operador
de swarming (12), se genera una nueva posición para la bacteria 1 como sigue:
Nuevas Heurı́sticas para Optimización Numérica
21
Nc = 2
θ11 (2, 1) = (−1.728921) + (0.44 ∗ (1.082393 − (−1.728921))) = −0.491942
θ21 (2, 1) = (0.564320) + (0.44 ∗ (1.011439 − (0.564320))) = 0.761052
A continuación se evalúa la nueva posición de la bacteria 1 después de
acercarse a la mejor bacteria en la población actual, quedando de la siguiente
manera:
f (θ1 (2, 1)) = (−0.491942)2 + (0.761052)2 = 0.821207
En esta ocasión la nueva posición es mejor que la previa, por lo que la
bacteria asumirá esta nueva posición y eliminará la anterior.
Para el tercer paso del ciclo quimiotáctico de la bacteria 1, se aplica de
nuevo el operador de swarming (12).
Nc = 3
θ11 (3, 1) = (−0.491942) + (0.44 ∗ (1.082393 − (−0.491942))) = 0.200765
θ21 (3, 1) = (0.761052) + (0.44 ∗ (1.011439 − (0.761052))) = 0.871222
Se evalua la nueva posición de la bacteria 1 :
f (θ1 (3, 1)) = (0.200765)2 + (0.871222)2 = 0.799334
Dada la nueva mejora de la posición con respecto a la previa (0.799334 <
0.821207). La bacteria tomará esta nueva posición:
θ11 (3, 1) = 0.200765
θ21 (3, 1) = 0.871222
f (θ1 (3, 1)) = 0.799334
Los cálculos para el ciclo quimiotáctico de la segunda bacteria se resumen
a continuación:
Nc = 1
θ12 (1, 1) = (1.595993) + (0.1485 ∗ 0.825212) = 1.718537
θ22 (1, 1) = (1.107934) + (0.1485 ∗ −0.564822) = 1.024058
f (θ2 (1, 1)) = (1.718537)2 + (1.024058)2 = 4.002064
Nc = 2
θ12 (2, 1) = (1.595993) + (0.44 ∗ (1.082393 − 1.595993)) = 1.370009
θ22 (2, 1) = (1.107934) + (0.44 ∗ (1.011439 − (1.107934))) = 1.065476
f (θ2 (2, 1)) = (1.370009)2 + (1.065476)2 = 3.012164
Nc = 3
θ12 (3, 1) = (1.370009) + (0.44 ∗ (1.082393 − 1.370009)) = 1.243458
θ22 (3, 1) = (1.065476) + (0.44 ∗ (1.011439 − 1.065476)) = 1.041700
f (θ2 (3, 1)) = (1.243458)2 + (1.041700)2 = 2.631326
22
Mezura-Montes, Cetina-Domı́nguez y Hernández-Ocaña
Los cálculos para la tercera bacteria se presentan a continuación:
Nc = 1
θ13 (1, 1) = (1.082393) + (0.1485 ∗ −0.519574) = 1.005236
θ23 (1, 1) = (1.011439) + (0.1485 ∗ 0.854426) = 1.138321
f (θ3 (1, 1)) = (1.005236)2 + (1.138321)2 = 2.306275
Nc = 2
θ13 (2, 1) = (1.082393) + (0.44 ∗ (1.082393 − 1.082393)) = 1.082393
θ23 (2, 1) = (1.011439) + (0.44 ∗ (1.011439 − 1.011439)) = 1.011439
f (θ3 (2, 1)) = (1.082393)2 + (1.011439)2 = 2.194583
Nc = 3
θ13 (3, 1) = (1.082393) + (0.44 ∗ (1.082393 − 1.082393)) = 1.082393
θ23 (3, 1) = (1.011439) + (0.44 ∗ (1.011439 − 1.011439)) = 1.011439
f (θ3 (3, 1)) = (1.082393)2 + (1.011439)2 = 2.194583
Los valores para cada una de las bacterias después de haber pasado el
proceso quimiotáctico es presentado a continuación en la Tabla 15
Tabla 15. Resultado de las bacterias después del proceso quimiotáctico
Bacteria θ1i (0, 1) = x1 θ2i (0, 1) = x2
1
0.200765
0.871222
2
1.243458
1.041700
3
1.082393
1.011439
f (θi (0, 1))
0.799334
2.631326
2.194583
Aquı́ se pueden observar dos comportamientos interesantes: La mejor bacteria de la población inicial (la número 3) guió a las otras dos bacterias hacia
mejores zonas (mejores soluciones) ya que las direcciones aleatorias no reportaron mejoras para estas dos soluciones y, por otro lado, la mejor bacteria de
la población inicial no fue capaz de mejorar su posición y no se movió, dado
que esta mejor solución sólo puede mejorar mediante direcciones aleatorias de
búsqueda y no mediante el operador de swarming.
El siguiente proceso es la reproducción, el cual consiste en duplicar a las
mejores bacterias (la mitad de la población con mejor valor en la función objetivo). La Tabla 16 muestra el resultado de la reproducción, donde la bacteria
2 fue eliminada y ahora una copia de la nueva mejor bacteria (posición 1),
quien fue la única en reproducirse, tomó su lugar.
El siguiente proceso es la eliminación y dispersión, en el cual se elimina a
la peor bacteria de la población. La Tabla 17 refleja el resultado del proceso de
eliminación, donde la bacteria en la posición 3 (curiosamente la mejor bacteria
Nuevas Heurı́sticas para Optimización Numérica
23
Tabla 16. Resultados del proceso de reproducción
Bacteria θ1i (0, 1) = x1 θ2i (0, 1) = x2
1
0.200765
0.871222
2
0.200765
0.871222
3
1.082393
1.011439
f (θi (0, 1))
0.799334
0.799334
2.194583
de la población anterior) es eliminada y una nueva bacteria localizada en
una posición aleatoria toma su lugar. Ésto favorece la exploración de nuevas
soluciones y previene la convergencia en óptimos locales.
Tabla 17. Resultados del proceso de eliminación-dispersión
Bacteria θ1i (0, 1) = x1 θ2i (0, 1) = x2
1
0.200765
0.871222
2
0.200765
0.871222
3
1.546781
0.345621
f (θi (0, 1))
0.799334
0.799334
2.511985
La primera generación del MBFOA termina después de la eliminacióndispersión. Los resultados finales después de 4 generaciones se reportan en la
Tabla 18.
Tabla 18. Población final y el valor de aptitud de cada bacteria.
Bacteria θ1i (3, 4) = x1 θ2i (3, 4) = x2
1
-0.042711
-0.040718
2
-0.042711
-0.040718
3
0.496293
0.631932
f (θi (3, 4))
0.003482
0.003482
0.645644
La solución a reportar será la bacteria 1 y 2 que tienen los mismo valores,
con x1 = −0.042711, x2 = −0.040718 y f (x) = 0.003482.
5.
Conclusiones
En este capı́tulo se han presentado dos algoritmos heurı́sticos recientes de
inteligencia colectiva, basados en comportamientos colaborativos encontrados
en la naturaleza, ambos para resolver problemas de optimización numérica.
Después de una introducción a la optimización en general, de centrarse en la
24
Mezura-Montes, Cetina-Domı́nguez y Hernández-Ocaña
optimización en espacios continuos y de motivar el uso de heurı́sticas, se han
presentado los elementos de las heurı́sticas bio-inspiradas. Dos algoritmos, la
colonia artificial de abejas (ABC) y la versión mejorada de la optimización
mediante el forrajeo de bacterias (MBFOA) fueron presentados y dos ejemplos numéricos en una función de prueba muy sencilla se incluyeron para
apoyar al lector en el uso de estos algoritmos en algún problema en particular. Dado lo reciente en la aparición de estas dos heurı́sticas, se visualiza en
el futuro cercano una gran cantidad de investigación al respecto, con la intención de generar versiones aún más robustas al resolver, sobre todo, problemas
del mundo real. Finalmente, se destaca la sencillez de implementación y uso
de ambos algoritmos bio-inspirados, caracterı́sticas que pueden ser atractivas
para especialistas de otras áreas que requieran utilizarlos.
Agradeciemientos
El primer autor agradece al Consejo Nacional de Ciencia y Tecnologı́a
(CONACyT) por el apoyo mediante el proyecto 79809-Y titulado: “Nuevos
Modelos Bio-Inspirados en Optimización con Restricciones”. El segundo autor
agradece el apoyo de CONACyT mediante una beca para cursar estudios de
Maestrı́a en el Laboratorio Nacional de Informática Avanzada (LANIA A.C.).
El tercer autor agradece a CONACyT por el apoyo otorgado mediante el
proyecto 102299 titulado “Optimización con Restricciones Usando Modelos
Basados en Bacterias”.
Referencias
1. H.A. Taha. Investigación de Operaciones. Alfa Omega, second edition, 1991.
2. K. Deb. Optimization for Engineering Design Algorithms and Examples. Prentice Hall of India, fourth edition, 2000.
3. Z. Michalewicz and D.B. Fogel. How to Solve It: Modern Heuristics. SpringerVerlag, second edition, 2004.
4. E. Mezura-Montes, C.A. Coello Coello, and R. Landa-Becerra. Engineering
Optimization Using a Simple Evolutionary Algorithm. In Proceedings of the
Fiftheenth International Conference on Tools with Artificial Intelligence (ICTAI’2003), pages 149–156, Los Alamitos, CA, November 2003. Sacramento,
California, IEEE Computer Society.
5. A. Angantyr and J.O. Aidanpää. A Pareto-Based Genetic Algorithm Search
Approach to Handle Damped Natural Frequency Constraints in Turbo Generator Rotor System Design. Journal of Engineering for Gas Turbines and Power,
126(3):619–625, July 2004.
6. J. Alvarez-Gallegos, C.A. Cruz-Villar, and E.A. Portilla-Flores. Evolutionary
Dynamic Optimization of a Continuously Variable Transmission for Mechanical Efficiency Maximization. In Alexander Gelbukh, Álvaro de Albornoz, and
Hugo Terashima-Marı́n, editors, MICAI 2005: Advances in Artificial Intelligence, pages 1093–1102, Monterrey, México, November 2005. Springer. Lecture
Notes in Artificial Intelligence Vol. 3789,.
Nuevas Heurı́sticas para Optimización Numérica
25
7. S. Kirkpatrick, C. D. Gelatt Jr., and M. P. Vecchi. Optimization by Simulated
Annealing. Science, 220(4598):671–680, May 1983.
8. F.W. Glover and M. Laguna. Tabu Search. Kluwer Academic Publishers, London, UK, 1997.
9. A.P. Engelbrecht. Fundamentals of Computational Swarm Ingelligence. John
Wiley & Sons, Sussex, England, 2005.
10. A. E. Eiben and J. E. Smith. Introduction to Evolutionary Computing. Springer,
first edition, 2003.
11. D.B. Fogel. An introduction to simulated evolutionary optimization. Neural
Networks, IEEE Transactions on, 5:3–14, 1994.
12. A. Baykasoglu, L. Ozbakir, and P. Tapkan. Artificial bee colony algorithm
and its application to generalized assignment problem. In Felix T.S. Chan and
Manoj Kumar Tiwari, editors, Swarm Intelligence: Focus on Ant and Particle
Swarm Optimization, pages 113–144. Itech Education and Pub., Vienna, Austria, 2007. ISBN 978-3-902613-09-7.
13. D. Karaboga and B. Basturk. A powerful and efficient algorithm for numerical
function optimization: Artificial bee colony (ABC) algorithm. Journal of Global
Optimization, 39(3):459–471, 2007.
14. K.M. Passino. Biomimicry of bacterial foraging for distributed optimization
andcontrol. IEEE Control Systems Magazine, 22(3):52–67, 2002.
15. E. Mezura-Montes and B. Hernández-Ocaña. Bacterial foraging for engineering
design problems: Preliminary results. In Arturo Hernández-Aguirre et al., editor,
Fourth Mexican Conference on Evolutionary Computation (COMCEV’2008),
pages 33–38, Guanajuato, Mexico, October 2008. CIMAT.
Descargar