Nuevas Heur´ısticas Inspiradas en la Naturaleza para...

25
Nuevas Heur´ ısticas Inspiradas en la Naturaleza para Optimizaci´on Num´ erica Efr´ en Mezura-Montes 1 , Omar Cetina-Dom´ ınguez 1 y Betania Hern´andez-Oca˜ na 2 1 Laboratorio Nacional de Inform´atica Avanzada (LANIA A.C.) ebsamen 80, Centro, Xalapa, Veracruz, 91000 MEXICO [email protected],[email protected] 2 Universidad Ju´arez Aut´onoma de Tabasco Divisi´onAcad´ emica de Inform´atica y Sistemas Km. 1 Carr. Cunduac´an-Jalpa de M´ endez betania h [email protected] Resumen En este cap´ ıtulo se presentaunaintroducci´on a las heur´ ısticas inspiradas en fen´omenos de forrajeo. Se presenta un panorama general de este tipo de prop- uestas para resolver problemas de optimizaci´on y posteriormente se introducen sus elementos principales. Despu´ es de ello, dos algoritmos bio-inspirados son detallados: La Colonia Artificial de Abejas (ABC) y la versi´on mejorada de la Optimizaci´on Mediante el Forrajeo de Bacterias (MBFOA). Se explica la forma en que ambos al- goritmos representan las soluciones de un problema, la manera de escoger las mejores soluciones para guiar a las dem´as en elproceso deb´ usqueda, los operadores que per- miten generar nuevas soluciones a partir de las ya existentes y los mecanismos de eliminaci´on para mantener aquellas soluciones m´as competitivas. El uso de ejemplos num´ ericos sencillos apoyan el entendimiento de ambos algoritmos que, en esencia, son muy simples de implementar y usar. 1. Introducci´on Dentro del quehacer humano se encuentra la resoluci´on de problem´ aticas complejas. Entre ellas, se encuentran los problemas de optimizaci´on, que con- sisten en buscar, en un conjunto de soluciones posibles para el problema en cuesti´on, aquella que satisfaga de mejor manera una serie de condiciones planteadas. Los problemas de optimizaci´on pueden clasificarse en dos tipos: 1. Problemas de optimizaci´on num´ erica: Se busca un conjunto de va- lores para las variables del problema de manera que al sustituirse en la funci´ on objetivo se maximice o minimice el valor de esta funci´ on. Un ejemplo de este problema puede ser el dise˜ no de una pieza mec´anica donde se buscan valores ´ optimos de sus dimensiones para minimizar su costo de fabricaci´on.

Transcript of Nuevas Heur´ısticas Inspiradas en la Naturaleza para...

Nuevas Heurısticas Inspiradas en la Naturalezapara Optimizacion Numerica

Efren Mezura-Montes1, Omar Cetina-Domınguez1 y BetaniaHernandez-Ocana2

1 Laboratorio Nacional de Informatica Avanzada (LANIA A.C.)Rebsamen 80, Centro, Xalapa, Veracruz, 91000 [email protected],[email protected]

2 Universidad Juarez Autonoma de TabascoDivision Academica de Informatica y SistemasKm. 1 Carr. Cunduacan-Jalpa de Mendezbetania h [email protected]

Resumen En este capıtulo se presenta una introduccion a las heurısticas inspiradasen fenomenos de forrajeo. Se presenta un panorama general de este tipo de prop-uestas para resolver problemas de optimizacion y posteriormente se introducen suselementos principales. Despues de ello, dos algoritmos bio-inspirados son detallados:La Colonia Artificial de Abejas (ABC) y la version mejorada de la OptimizacionMediante el Forrajeo de Bacterias (MBFOA). Se explica la forma en que ambos al-goritmos representan las soluciones de un problema, la manera de escoger las mejoressoluciones para guiar a las demas en el proceso de busqueda, los operadores que per-miten generar nuevas soluciones a partir de las ya existentes y los mecanismos deeliminacion para mantener aquellas soluciones mas competitivas. El uso de ejemplosnumericos sencillos apoyan el entendimiento de ambos algoritmos que, en esencia,son muy simples de implementar y usar.

1. Introduccion

Dentro del quehacer humano se encuentra la resolucion de problematicascomplejas. Entre ellas, se encuentran los problemas de optimizacion, que con-sisten en buscar, en un conjunto de soluciones posibles para el problemaen cuestion, aquella que satisfaga de mejor manera una serie de condicionesplanteadas. Los problemas de optimizacion pueden clasificarse en dos tipos:

1. Problemas de optimizacion numerica: Se busca un conjunto de va-lores para las variables del problema de manera que al sustituirse en lafuncion objetivo se maximice o minimice el valor de esta funcion. Unejemplo de este problema puede ser el diseno de una pieza mecanica dondese buscan valores optimos de sus dimensiones para minimizar su costo defabricacion.

2 Mezura-Montes, Cetina-Domınguez y Hernandez-Ocana

2. Problemas de optimizacion combinatoria: Se busca encontrar el or-denamiento de un conjunto de elementos de manera que se maximice ominimice el valor de la funcion objetivo. Un ejemplo de este tipo de prob-lemas es el del agente viajero, que debe recorrer un conjunto de ciudades,pasando por ellas solo una vez, de manera que regrese a su punto de saliday se minimice el costo del viaje. Aquı se desea encontrar el orden optimode recorrido de las ciudades.

Este capıtulo se centra en el primer tipo de problemas, conocido comoel problema general de programacion no lineal, que se define, sin perdida degeneralidad, como: Encontrar x que minimiza

f(x) (1)

sujeta a:

gi(x) ≤ 0, i = 1, . . . , m (2)

hj(x) = 0, j = 1, . . . , p (3)

donde x ∈ IRn es un vector de n variables de decision x = [x1, x2, . . . , xn]T

y cada xi, i = 1, ..., n esta acotado por lımites inferiores y superiores Li ≤xi ≤ Ui, los cuales definen el espacio de busqueda S, F es el conjunto detodas las soluciones que satisfacen las restricciones del problema y se le llamazona factible, siendo claro que F ∈ S, m es el numero de restricciones dedesigualdad y p es el numero de restricciones de igualdad. Las restricciones yla funcion objetivo pueden ser lineales y no lineales.

En este problema se pretende encontrar una solucion que minimice unacierta medida de calidad, conocida como funcion objetivo (1) que ademasdebe satisfacer un conjunto de restricciones asociadas al problema (2)-(3).Detallando el ejemplo propuesto anteriormente sobre el diseno de la piezamecanica, se quiere encontrar su costo mınimo de construccion, el cual semodela mediante una funcion (no lineal tal vez) y que depende de variablescomo el largo y el ancho de la pieza, ası como el grosor del material. Ademas,pueden existir restricciones de espacio, de manera que la pieza no puede serni muy grande ni muy chica, pues debe incorporarse a un mecanismo masgrande.

1.1. Tecnicas de Optimizacion

La Investigacion de Operaciones (IO) es el area dentro de las matematicasdedicada al estudio, entre otros temas, de tecnicas para la resolucion de prob-lemas de optimizacion. La IO plantea la determinacion del mejor curso deaccion de un problema de decision con la restriccion de productos limita-dos [1]. Deb [2] clasifica las tecnicas para resolver problemas de optimizacionnumerica en las siguientes categorıas:

Nuevas Heurısticas para Optimizacion Numerica 3

1. Metodos tradicionalesTecnicas de variable simple: Divididas en metodos directos (utilizan lafuncion a optimizar para guiar la busqueda) y de gradiente (utilizaninformacion del gradiente para guiar la busqueda).Tecnicas multivariable: Divididas en metodos directos y de gradiente.Realizan busquedas en multiples dimensiones, valiendose, en ocasiones,de tecnicas de variable simple.Tecnicas para problemas con restricciones: Realizan busquedas en es-pacios restringidos, usualmente utilizando tecnicas multivariable y/ode variable simple de manera iterativa.Tecnicas especializadas: Metodos para problemas particulares comoprogramacion entera (variables que solo toman valores enteros).

2. Metodos no tradicionales. Metodos que incorporan conceptos heurısticospara mejorar la busqueda.

Este capıtulo se centrara precisamente en dos propuestas novedosas queforman parte de los metodos no tradicionales para resolver problemas de op-timizacion numerica.

1.2. Metodos no tradicionales (heurısticas)

Dada la existencia de multiples formas de resolver el problema de op-timizacion numerica en su forma mas general, una pregunta justa es ¿Porque recurrir a metodos no tradicionales? La justificacion para utilizar meto-dos heurısticos puede basarse en las caracterısticas de los problemas del mundoreal, que pueden ser tan particulares que hacen difıcil (y a veces imposible)el aplicar los metodos tradicionales en su resolucion. Por otro lado, existenproblemas donde estos metodos pueden ser aplicados, sin embargo los resul-tados y/o el tiempo requerido para obtener una solucion no son los esperadospor quien resuelve el problema. Se pueden distinguir fuentes de dificultad altratar de resolver problemas de optimizacion [3]:

El numero de posibles soluciones (espacio de busqueda) es demasiadogrande.El problema es tan complicado que, con la intencion de obtener algunasolucion, se deben utilizar modelos simplificados del mismo y por ende lasolucion es poco util.La funcion de evaluacion que describe la calidad de cada solucion en elespacio de busqueda varıa con el tiempo y/o tiene ruido.Las soluciones posibles estan altamente restringidas, lo cual dificulta in-cluso la generacion de al menos una solucion factible (es decir, que cumplacon las restricciones del problema).

Los metodos tradicionales siempre deben considerarse como la primeraopcion para resolver un problema de optimizacion, dado que pueden garantizarla convergencia al optimo global (la mejor de todas las posibles soluciones)

4 Mezura-Montes, Cetina-Domınguez y Hernandez-Ocana

bajo ciertas condiciones. Sin embargo, si la aplicacion del metodo tradicionales compleja, el costo computacional es alto y/o los resultados son buenos perono los esperados (optimas locales, soluciones buenas en una cierta zona delespacio de busqueda, pero que no son mejores que el optimo global), entoncespuede considerarse el uso de un metodo no tradicional, una heurıstica.

Los metodos heurısticos no pueden garantizar el encontrar la mejor solu-cion de un problema, sin embargo, devolveran una solucion aceptable en untiempo razonable; de ahı la importancia de su estudio. De hecho, existe en laliteratura especializada una gran cantidad de publicaciones donde se destacancasos de exito del uso de metodos no tradicionales en la solucion de problemascomplejos [4, 5, 6].

Heurısticas con probado exito en la resolucion de problemas numericos ycombinatorios son, por ejemplo, el recocido simulado [7], que basa su fun-cionamiento en el proceso fısico del tratamiento termico de materiales, dondeel material es calentado inicialmente a altas temperaturas y despues, medianteuna variacion de temperatura muy puntual, es enfriado. La intencion es que elmaterial obtenga caracterısticas particulares en el proceso. Esta idea ha sidoutilizada para resolver problemas de optimizacion (numerica principalmente)agregando una temperatura inicial y un horario de enfriamiento que permitedisminuirla gradualmente de manera que el algoritmo de busqueda seleccioneuna nueva solucion aunque no mejore el valor de calidad de la solucion que setenga en ese momento. Con ello, se agrega un aspecto estocastico al procesode busqueda con la intencion de evitar optimos locales. Otra heurıstica, queen su propuesta original no agrega aspectos aleatorios, pero que pueden serincluidos, es la Busqueda Tabu [8], la cual utiliza una “memoria” para alma-cenar movimientos (soluciones) previamente realizados (encontradas) y evitarrealizarlos (recorrerlas) de nuevo. Las estructuras de memoria pueden tenerdiferente vigencia (corto, mediando o largo plazo) dependiendo de la comple-jidad del problema a resolver. De ahı que la implementacion de la BusquedaTabu puede requerir de mecanismos adicionales de busqueda y estructuras dedatos adecuadas para realizar un recorrido eficaz y eficiente de la memoria yevitar que este manejo sea aun mas costoso que la optimizacion misma. Labusqueda Tabu se ha aplicado principalmente en problemas de optimizacioncombinatoria.

Dentro de los metodos heurısticos (o no tradicionales) se tiene un grupoque basa su funcionamiento en fenomenos “inteligentes” encontrados en lanaturaleza y conocidos como heurısticas bio-inspiradas [9] o algoritmos bio-inspirados. Dos sub-grupos se distinguen de acuerdo con el tipo de fenomenonatural 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 evolu-cion de las especies, la supervivencia del mas apto y la transmision de carac-terısticas de padres a hijos [11]. Por otro lado, la inteligencia colectiva toma

Nuevas Heurısticas para Optimizacion Numerica 5

comportamientos de seres vivos que interactuan de manera local con su am-biente, y de esa interaccion surgen comportamientos sociales que permiten aestos seres, simples de manera individual, resolver problematicas complejasde manera conjunta (parvadas de aves, bancos de peces, cumulos de insectos,hormigas, bacterias, entre otros) [9].

En este capıtulo se analizaran dos heurısticas bio-inspiradas basadas eninteligencia colectiva:

1. La colonia artificial de abejas.2. La optimizacion mediante el forrajeo de bacterias.

Este capıtulo esta organizado como sigue: En la Seccion 2 se presentanlos componentes de un algoritmo bio-inspirado. Posteriormente la Seccion 3presenta a la colonia artificial de abejas y la optimizacion mediante el forrajeode bacterias se detalla en la Seccion 4. Finalmente, las conclusiones se resumenen la Seccion 5.

2. Componentes de un algoritmo bio-inspirado

Los algoritmos evolutivos y de inteligencia colectiva, de manera general,trabajan de la siguiente manera, vease la Figura 1:

1. Generar un conjunto (poblacion) de soluciones (individuos) al problema.2. Evaluar cada solucion en la funcion objetivo a optimizar (1).3. Seleccionar las mejores soluciones de la poblacion con base en su valor en

la funcion objetivo (1).4. Generar nuevas soluciones a partir de las mejores soluciones utilizando

operadores de variacion.5. Evaluar las nuevas soluciones.6. Escoger las soluciones que formaran parte de la siguiente iteracion (gen-

eracion).

Aunque existen diferencias especıficas entre los diversos algoritmos evo-lutivos y aquellos de inteligencia colectiva, tienen componentes comunes, loscuales se enumeran a continuacion:

Representacion de soluciones: Las soluciones se pueden representar dediferentes formas (cadenas binarias, numeros enteros). Para el caso de laoptimizacion numerica, la representacion mas adecuada es utilizar numerosreales, puesto que las variables en este tipo de problemas suelen tomarprecisamente este tipo de valores. Por ende, cada solucion consistira de unvector de numeros reales.Mecanismo de seleccion: La guıa de la busqueda se realiza medianteeste mecanismo o en el reemplazo (explicado mas adelante). La intenciones escoger un subconjunto de soluciones de la poblacion que tengan carac-terısticas sobresalientes, de manera que puedan generar nuevas soluciones

6 Mezura-Montes, Cetina-Domınguez y Hernandez-Ocana

aun mejores. El criterio para escoger depende del valor de la funcion ob-jetivo (1) de cada solucion.Operadores de variacion: Los operadores de variacion son los que per-miten generar nuevas soluciones a partir de las soluciones existentes (aque-llas escogidas con los mecanismos de seleccion). Los operadores emulancomportamientos como la reproduccion (cruzas), variaciones aleatorias anivel genetico (mutaciones) o movimientos cooperativos (giros, nados, vue-los).Mecanismos de reemplazo: Una vez que se tienen, tanto al conjunto desoluciones actuales ademas de las recien generadas, se utilizan mecanismospara escoger aquellas que formaran parte de la poblacion para la siguientegeneracion. Este proceso puede basarse en la calidad de cada solucion (1),en la “edad” de las soluciones, o tomando en cuenta aspectos estocasticos.

NuevasSoluciones

Soluciones

Operadores

seleccionadas

FinInicio

de variacion

Poblacion

Seleccion

Reemplazo

Figura 1. Esquema general de un algoritmo bio-inspirado.

Con base en los componentes antes descritos se presentaran dos algoritmosheurısticos de la inteligencia colectiva: La Colonia Artificial de Abejas (ABC)y la Optimizacion Mediante el Forrajeo de Bacterias (BFOA).

3. La Colonia Artificial de Abejas

El proceso de busqueda de nectar en las flores por parte de abejas melıferasha sido visto como un proceso de optimizacion. La forma en la que este tipode insectos sociales logran centrar esfuerzos en zonas con altas cantidades defuentes de alimento se ha modelado como una heurıstica para optimizacion.A pesar de que existen diversos modelos basados en abejas [12], para efectosde este trabajo la explicacion se basara en el modelo propuesto por Karaboga

Nuevas Heurısticas para Optimizacion Numerica 7

[13] que resuelve problemas de optimizacion numerica mediante dos compor-tamientos: El reclutamiento de abejas en una fuente de alimento y el abandonode una fuente.

El modelo biologico de recoleccion de alimento en abejas melıferas constade los siguientes elementos mınimos [13]:

Fuentes de alimento: El valor de una fuente de alimento depende demuchos factores, como lo son la cercanıa a la colmena, la concentracion dealimento y la facilidad para extraerlo. Por simplicidad es posible represen-tar la rentabilidad de una fuente en un solo valor numerico.Recolectoras empleadas: Estas abejas estan asociadas con una fuenteparticular de alimento la cual estan explotando, es decir, estan empleadaspara con ella. Las abejas empleadas comparten la informacion sobre sufuente de alimento, como la ubicacion y rentabilidad hacia las abejasrecolectoras.Recolectoras desempleadas: Estan constantemente buscando una fuentede alimento a la cual explotar. Hay dos tipos de recolectora desempleada:la exploradora, que busca en las cercanıas de la colmena por nuevas fuentesde alimento y la observadora, que espera en la colmena y elige una fuentede alimento con base en la informacion compartida por una recolectoraempleada.

La informacion sobre las fuentes de alimento es compartida por las recolec-toras empleadas por medio de una danza cuya duracion indica la rentabilidadde la fuente, el angulo con respecto al sol indica la direccion de la fuente y elnumero de movimientos en zig-zag durante la danza indica la distancia. Dadoque las danzas de las fuentes mas rentables son de mayor duracion, existe unamayor probabilidad de ser observada por recolectoras desempleadas, aumen-tando la probabilidad de que una recolectora elija dicha fuente de alimento.

Cuando una fuente de alimento se agota, la abeja o abejas empleadas enellas se convierten en abejas desempleadas y tendran que decidir entre conver-tirse en abejas exploradoras o regresar a la colmena como abejas observadoras.

En el algoritmo ABC la colonia de abejas artificiales se compone tambiende 3 grupos de abejas: abejas empleadas, abejas observadoras y abejas ex-ploradoras. El numero de abejas empleadas es usualmente igual al numero defuentes de alimento y se asignara una abeja empleada a cada una de las fuentes.Al llegar a dicha fuente, la abeja calculara una nueva solucion (volara haciaotra fuente de alimento cercana) a partir de esta y conservara la mejor solu-cion. El numero de abejas observadoras es tambien usualmente igual al deabejas empleadas y se asignaran a una fuente de alimento con base en la apti-tud de estas, al igual que las abejas empleadas, calculara una nueva soluciona partir de su fuente de alimento. Cuando una fuente no mejora despues deun cierto numero de iteraciones se abandona, siendo reemplazado por aquellaencontrada por una abeja exploradora, lo cual implica calcular una nueva solu-cion aleatoriamente. Una de las ventajas de este algoritmo es el bajo numerode parametros que requiere como puede verse en la Tabla 1.

8 Mezura-Montes, Cetina-Domınguez y Hernandez-Ocana

Tabla 1. Parametros del ABC.

Nombre Sımbolo Descripcion

Numero de soluciones SN Numero de soluciones (fuentes de alimen-to)

Numero de ciclos MCN Numero total de ciclos (iteraciones) queejecutara el ABC

Lımite limit Numero de ciclos que se conservara unasolucion sin mejora antes de ser reemplaza-da por una nueva generada por una abejaexploradora

3.1. Elementos del ABC

Representacion de soluciones

La representacion de las soluciones se lleva a cabo mediante fuentes dealimento, que no son mas que vectores de D-dimensiones (donde D es elnumero de variables del problema). La representacion grafica se muestra enla Figura 2 y la representacion vectorial de la solucion i en el ciclo g es lapresentada en (4):

xi,g, i = 1, . . . , SN, g = 1, . . . , MCN (4)

2.1 2.9 10.1 7.0

Figura 2. Representacion de una solucion asumiendo 4 variables con numeros reales.

Cada una de las variables que forma parte de la solucion esta asociada aun rango (Li ≤ xi ≤ Ui), el cual se debe de tomar en cuenta al momentode generar de manera aleatoria, con una distribucion uniforme, las soluciones(fuentes de alimento) iniciales.

Mecanismos de seleccion

La forma en que se seleccionan las mejores soluciones es mediante la co-municacion entre abejas empleadas y abejas observadoras, de manera queaquellas fuentes de comida con mejor calidad seran mas visitadas. El detallede este funcionamiento se vera mas adelante.

Nuevas Heurısticas para Optimizacion Numerica 9

Operadores de variacion (las abejas)

En el ABC, las abejas son vistas como operadores de variacion, pues cuan-do una de ellas llega a una fuente de alimento, calcula una nueva solucioncandidata vi,g utilizando la formula dada en (5). En donde xi,g representa lasolucion en la que la abeja se encuentra en ese momento, xk,g es una fuentede alimento aleatoria (y distinta de xi,g), g es el numero de ciclo actual delprograma y φ es un numero real aleatorio en el intervalo [-1,1].

vi,g = xi,g + φ · (xi,g − xk,g) (5)

En la Figura 3 puede verse un ejemplo grafico de este calculo. En primerlugar se observa en la Figura 3(a) el vector que es generado mediante la difer-encia entre xi y xk. Posteriormente se genera la solucion candidata utilizando(5) en la Figura 3(b). Se nota que v y v′ se generaron utilizando el mismovalor de φ pero con signo opuesto. Esto es posible porque el intervalo de φ lopermite ([-1,1]).

x

x − x k

i

i

k

X

Y

x

Y

X

k

i

x

x

v

v’

(a) (b)

Figura 3. (a) El vector generado por la diferencia entre xi y xk. (b) Dos posiblessoluciones 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 abe-jas exploradoras, que dado el abandono de fuentes de comida no mejoradasen varios ciclos del algoritmo, generan nuevas fuentes de comida de maneratotalmente aleatoria.

3.2. Pasos del algoritmo ABC

A continuacion se detalla el funcionamiento del algoritmo ABC, que puedeobservarse en la Figura 4. Se comienza inicializando las soluciones que repre-sentaran las fuentes de alimento iniciales, siendo SN el numero de soluciones

10 Mezura-Montes, Cetina-Domınguez y Hernandez-Ocana

(uno de los parametros del algoritmo). Se evaluan estas soluciones y se procedecon un ciclo que se repetira MCN veces, donde MCN es el numero de ciclosmaximo. Dentro de este ciclo se comienza con enviar a las abejas empleadasa las fuentes de alimento y calcular nuevas soluciones candidatas utilizando(5), posteriormente se utiliza una seleccion ambiciosa en la cual se conserva lamejor solucion entre la fuente de alimento y su respectiva solucion candidata.

Con base en la aptitud de las fuentes de alimento que se conserven despuesdel paso anterior se determina cuales soluciones seran visitadas por abejasobservadoras. Las abejas observadoras visitaran estas soluciones y generaransoluciones candidatas utilizando (5). Posteriormente se realizara una seleccionambiciosa entre las soluciones candidatas y la solucion respectiva (de manerasimilar que con las abejas empleadas).

1 Begin

2 Inicializar la poblacion de soluciones xi,0, i = 1, . . . , SN

3 Evaluar la poblacion4 g = 15 Repeat

6 Producir nuevas soluciones vi,g para las abejas empleadasutilizando (5) y evaluarlas

7 Conservar la mejor solucion entre la actual y la candidata8 Seleccionar las soluciones que seran visitadas por una abeja

observadora segun su aptitud9 Producir nuevas soluciones vi,g para las abejas observadoras

utilizando (5) y evaluarlas10 Conservar la mejor solucion entre la actual y la candidata11 Determinar si existe una fuente abandonada y reemplazarla

utilizando una abeja exploradora12 Memorizar la mejor solucion encontrada hasta este momento13 g = g + 114 Until g = MCN

15 End

Figura 4. Algoritmo Colonia Artificial de Abejas (ABC)

Posteriormente se determina si existe alguna solucion abandonada; estosucede cuando una solucion no es mejorada (no es reemplazada por una solu-cion candidata), durante el numero de ciclos establecido por la variable Lımite.Lımite esta dada por la formula (SN ∗ D) donde SN es el numero de solu-ciones y D es el numero de variables del problema. De encontrarse algunafuente abandonada se reemplaza con una nueva encontrada por una abejaexploradora, que en este caso es una nueva solucion calculada aleatoriamentedentro del espacio de busqueda.

Nuevas Heurısticas para Optimizacion Numerica 11

Finalmente la mejor solucion encontrada durante el ciclo se compara conla mejor solucion en memoria y si tiene una mejor aptitud la reemplazara. Serepite el ciclo MCN veces.

3.3. Ejemplo de funcionamiento

A continuacion se presenta un ejemplo de funcionamiento del ABC apli-cado a una funcion conocida como la esfera, detallada en (6):

Minimizar: f(x1, x2) = x2

1 + x2

2 (6)

Los intervalos para las variables se muestran en (7):

−5 ≤ x1 ≤ 5−5 ≤ x2 ≤ 5

x1, x2 ∈ R

(7)

Los valores de los parametros del ABC para este ejemplo se muestran enla Tabla 2.

Tabla 2. Parametros de ABC empleados en la funcion de la esfera.

Parametro Valor

SN 5MCN 2limit 10

Siguiendo el algoritmo mostrado en la Figura 4, primero se inicializa elcontador de generaciones con el valor de 0, posteriormente se crea poblacioninicial de manera aleatoria (la cual esta dentro del rango especificado en laTabla 2) y se muestra en la Tabla 3.

Tabla 3. Poblacion inicial, el valor de la funcion para cada individuo se encuentraen la cuarta columna.

Fuente x1 x2 f(xi)

1 (x1,0) 0.5 0.3 0.342 (x2,0) -0.2 0.1 0.053 (x3,0) -0.4 -0.7 0.654 (x4,0) 0.2 0.05 0.04255 (x5,0) 0.1 0.9 0.82

Posteriormente se tiene que evaluar cada una de las fuentes de alimentoen la funcion objetivo. Estos valores se muestran en la cuarta columna de laTabla 3.

12 Mezura-Montes, Cetina-Domınguez y Hernandez-Ocana

Se inician ahora los ciclos del algoritmo donde el primer paso es enviarlas abejas empleadas a las fuentes de alimento y generar nuevas solucionescandidatas, para ello se utilizan los siguientes valores aleatorios que puedenverse en la Tabla 4.

Tabla 4. Valores aleatorios para las abejas empleadas en el ciclo 1.

Empleada k φ1 φ2

1 3 -0.1 0.22 1 0.2 0.53 5 0.7 -0.34 2 -0.5 0.75 1 0.3 -0.1

Para la primera abeja empleada se calcula la nueva solucion candidatautilizando la formula 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 funcion 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 funcion objetivode 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 funcionobjetivo de 0.6109.

Para la abeja empleada 4 se tiene v41 = (0.2)+ (−0.5 ∗ (0.2− (−0.2))) = 0y v42 = (0.05)+ (0.7∗ (0.05− (0.1))) = 0.015 y un valor de la funcion objetivode 0.000225.

Para la abeja empleada 5 se tiene v51 = (0.1)+(0.3∗(0.1−(0.5))) = −0.02y v52 = (0.9) + (−0.1 ∗ (0.9 − (0.3))) = 0.84 y un valor de la funcion objetivode 0.706.

Se compara el valor de la fuente de alimento con el de la solucion candidatacalculada a partir de ella y se conserva la mejor solucion, quedando por lo tantocomo soluciones hasta el momento los que se muestran en la Tabla 5.

Tabla 5. Fuentes de alimento despues de la primera ronda de abejas empleadas.

Fuente x1 x2 f(x)

1 (x1,1a) 0.5 0.3 0.342 (x2,1a) -0.2 0.1 0.053 (x3,1a) -0.75 -0.22 0.61094 (x4,1a) 0 0.015 0.0002255 (x5,1a) -0.02 0.84 0.706

Nuevas Heurısticas para Optimizacion Numerica 13

El siguiente paso es enviar las abejas observadoras a las mejores fuentes dealimento (con base en su aptitud), utilizando algun mecanismo de seleccionproporcional. Por motivos de simplicidad, para este ejemplo se determino en-viar tres abejas observadoras a la mejor solucion (fuente de alimento 4) ylas dos restantes a la segunda mejor (fuente 2). Los valores aleatorios paracalcular las soluciones candidatas pueden verse en la Tabla 6.

Tabla 6. Valores aleatorios para las abejas observadoras en el ciclo 1.

Observadora Fuente elegida k φ1 φ2

1 4 3 0.2 -0.152 4 2 -0.16 0.23 4 5 -0.3 0.124 2 4 0.23 -0.025 2 1 -0.1 0.3

Se calculan las soluciones candidatas para las abejas observadoras a partirde la fuente seleccionada. Para la observadora 1 v11 = 0.1725, v12 = 0.0103y 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 yf(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 respectivafuente de alimento. Esto sucede para la abeja observadora 5 y la fuente dealimento 2. Realizando el reemplazo las fuentes de alimento al final del ciclo1 quedan como se muestra en la Tabla 7.

Tabla 7. Fuentes de alimento despues de la primera ronda de abejas observadoras.

Fuente x1 x2 f(x)

1 (x1,1) 0.5 0.3 0.342 (x2,1) -0.088 0.06 0.0113443 (x3,1) -0.75 -0.22 0.61094 (x4,1) 0 0.015 0.0002255 (x5,1) -0.02 0.84 0.706

El ciclo 2 inicia con el calculo de soluciones candidatas para cada fuentede alimento, es decir, con las abejas empleadas. A continuacion se presenta latabla con los valores aleatorios utilizados para el calculo en la Tabla 8.

La empleada 1 da los siguientes resultados v11 = 0.5588, v12 = 0.084 yf(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 Hernandez-Ocana

Tabla 8. Valores aleatorios para las abejas empleadas en el ciclo 2.

Empleada k φ1 φ2

1 2 0.1 -0.92 4 -0.3 0.253 5 0.4 -0.274 2 -0.05 0.25 3 0.3 -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 solucion candidata sonreemplazadas y se presentan los resultados a continuacion en la Tabla 9.

Tabla 9. Fuentes de alimento despues de la segunda ronda de abejas empleadas.

Fuente x1 x2 f(x)

1 (x1,2a) 0.5588 0.084 0.319313442 (x2,2a) -0.0616 0.07125 0.0088711233 (x3,2a) -0.75 -0.22 0.61094 (x4,2a) -0.0044 0.006 5.536E-055 (x5,2a) 0.199 0.734 0.578357

Para las abejas observadoras nuevamente se utilizan tres abejas en la mejorsolucion (fuente 4) y dos abejas en la segunda mejor (fuente 2) con la intencionde representar una seleccion proporcional con base en la aptitud de la fuentede 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 k φ1 φ2

1 4 1 0.2 -0.152 4 2 -0.51 0.23 4 3 -0.3 0.124 2 5 0.01 0.95 2 4 -0.1 0.3

Se calculan las soluciones candidatas para las abejas observadoras a partirde 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 Optimizacion Numerica 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 solucion candidata mejora una fuente de alimentoy es claro que esto se cumple con la observadora 5 y la fuente de alimento2, despues de realizar el reemplazo el resultado final despues del ciclo 2 sepresenta a continuacion en la Tabla 11

Tabla 11. Fuentes de alimento despues de la segunda ronda de abejas observadoras.

Fuente x1 x2 f(x)

1 (x1,2) 0.5588 0.084 0.319313442 (x2,2) -0.032428 0.0843 0.0081580653 (x3,2) -0.75 -0.22 0.61094 (x4,2) -0.0044 0.006 5.536E-055 (x5,2) 0.199 0.734 0.578357

La solucion a reportar sera la fuente 4, con x1 = −0.0044, x2 = 0.006 yf(x) = 5.536E-05

Como datos adicionales, el mınimo global de esta funcion se encuentra enel punto [0,0], en donde f(x) = 0. En este ejemplo la variable lımite y lasabejas exploradoras no fueron utilizadas ya que el numero de ciclos era menoral valor de lımite que esta definido por el numero de fuentes de alimento porel numero de variables del problema a resolver (5 ∗ 2 = 10).

4. Optimizacion Mediante el Forrajeo de Bacterias(BFOA)

El BFOA original, fue propuesto por K.M. Passino [14], el cual simulael proceso completo de forrajeo de la bacteria E. Coli: Chemotaxis o pa-so quimiotactico (movimientos de giro y nado), reproduccion y eliminacion-dispersion. El modelado de la busqueda de alimento (concentracion de nutri-entes optima) que realizan las bacterias contempla las siguientes etapas:

Inicialmente, las bacterias son distribuidas al azar sobre el mapa de nutri-entes.En una primera etapa las bacterias (E. Coli) se mueven hacia los pun-tos de concentracion de nutrientes (dentro de esta generacion ocurre unaeliminacion y dispersion, algunas bacterias se encuentran en puntos malos(sustancias nocivas), despues ocurre la reproduccion y posteriormente casitodas las bacterias se colocan en puntos de concentracion de nutrientes.En una segunda etapa las bacterias han encontrado los puntos de concen-tracion de nutrientes, aunque no todos estos puntos son optimos, es decir,los mas altos de concentracion de nutrientes. Sin embargo, se agrupanutilizando una comunicacion mediante segregacion de atrayentes.

16 Mezura-Montes, Cetina-Domınguez y Hernandez-Ocana

En una tercera etapa las bacterias encuentran el punto mas alto de con-centracion de nutrientes.En una cuarta etapa las bacterias permanecen en ese punto y la busquedade alimento ha terminado; se dispersan nuevamente y buscan una nuevafuente de nutrientes (las etapas se repiten).

Durante estas etapas las bacterias se enfrentan a varias problematicas en labusqueda de sus alimentos, por ejemplo: Ambientes nocivos que deben detec-tar y evitar en su viaje pues causan la eliminacion y dispersion (para ello estasbacterias se agrupan y son capaces de producir y segregar sustancias quımicasque son usadas como mecanismos de senalizacion y comunicacion entre ellas),el tiempo de vida de las bacterias y finalmente el recorrido que tienen quehacer para encontrar el punto optimo de concentracion de nutrientes, entreotros.

Debido a que el algoritmo de Passino (BFOA) requiere de muchos paramet-ros y su costo computacional es alto, la version modificada del BFOA, prop-uesta en [15] y llamada MBFOA es la utilizada en este capıtulo.

4.1. Elementos del MBFOA

Representacion de soluciones

La representacion de las soluciones, al igual que para el caso del ABC,se lleva a cabo mediante vectores de numeros reales llamados bacterias yrepresentados en (8) por la letra θ, donde θi(j, G) representa la bacteria i, ensu ciclo quimiotactico j, en la generacion G y Sb es el numero total de bacteriasen la poblacion. La representacion grafica es similar a la de las soluciones delABC en la Figura 2.

θi(j, G), ∀i = 1, . . . , Sb (8)

Mecanismos de seleccion

Para el caso de las bacterias, el proceso de seleccion se realiza dentro delpaso quimiotactico, donde cada bacteria se movera de manera constante enuna misma direccion, generada de manera aleatoria, hacia una nueva posicionsiempre y cuando sea de mejor calidad que la previa. A este proceso dentro delciclo quimiotactico se le conoce como nado. Si al pasar a una nueva posicion yesta es de menor calidad, la bacteria realizara un giro para buscar una nuevadireccion de busqueda siempre buscando mejorar la calidad de su posicion.

Operadores de variacion

Existen dos operadores a utilizar en MBFOA, el nado-giro (mencionadoanteriormente) y el swarming. El nado giro consiste en generar una direccionaleatoria mediante un vector normalizado usando (9):

Nuevas Heurısticas para Optimizacion Numerica 17

φ(i) =∆(i)

∆(i)T ∆(i)(9)

donde ∆(i) es un vector del mismo numero de dimensiones que las variablesdel problema a resolver y generado aleatoriamente con sus elementos dentrodel intervalo: [−1, 1]. A este paso se le conoce como giro. Despues de ello,cada bacteria θi(j, G) modifica su posicion mediante el nado como se indicaen (10).

θi(j + 1, G) = θi(j, G) + Cnew(i)φ(i) (10)

donde θi(j + 1, G) es la nueva posicion de la bacteria i, θi(j, G) es la posicionactual de la bacteria i, φ(i) es el vector de direccion aleatoria calculado en (9)y Cnew(i) es el tamano de paso (la “longitud de movimiento” de la bacteriacalculada mediante (11)).

Cnew(i) = R ∗(

∆xi/√

n)

(11)

donde ∆xi se calcula restando los lımites superior e inferior de cada variablei, Ui − Li, n es el numero de variables del problema y R es el porcentaje deeste tamano de paso total a ser utilizado en el proceso de busqueda (se sugiere0.2 ≤ R ≤ 0.5. Estos tamanos de paso permanecen constantes durante todoel funcionamiento del algoritmo.

El nado, representado en (10), se repite Ns veces si la nueva posicion esmejor 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 lapoblacion atrae hacia sı a las demas. Este proceso sucede a la mitad y alfinal de cada ciclo quimiotactico (en los restantes pasos se usa el nado-giro)utilizando (12).

θi(j + 1, G) = θi(j, G) + β(θB(G) − θi(j, G)) (12)

donde θi(j + 1, G) es la nueva posicion de la bacteria i, θB(G) es la posicionactual de la mejor bacteria en la generacion G y 0 ≤ β ≤ 1 es un factorde escalamiento que determina que tan cerca estara la bacteria i de la mejorbacteria B.

Mecanismos de reemplazo

En MBFOA se tienen dos etapas de eliminacion de soluciones: En el mo-mento de la reproduccion se mantiene solamente a la mitad de la poblacionde soluciones y se elimina a la otra mitad, sustituyendolas por copias de lasmejores bacterias (simulando la division de una bacteria en dos nuevas bac-terias). Posteriormente, el proceso de eliminacion-dispersion elimina la peorbacteria de la poblacion.

18 Mezura-Montes, Cetina-Domınguez y Hernandez-Ocana

4.2. Pasos del algoritmo MBFOA

Dados los operadores y mecanismos de seleccion y reemplazo, los oper-adores requeridos por MBFOA se resumen en la Tabla 12. Ademas, el pseu-docodigo de este algoritmo heurıstico se encuentra en la Figura 5.

Tabla 12. Parametros del MBFOA

Nombre Sımbolo Descripcion

Bacterias Sb Numero de bacterias en la poblacion.

Generaciones GMAX Numero de generaciones que se ejecutaratodo el procedimiento: Ciclo quimiotactico, dereproduccion y eliminacion-dispersion.

Ciclo quimiotactico Nc Numero de veces que cada bacteria en lapoblacion podra nadar o girar.

Reproduccion Sr Numero de bacterias a reproducirse.

Escalamiento β Factor de escalamiento que determina cuantoavanzara una bacteria hacia la mejor bacteriade la poblacion.

Porcentaje del tamano R Porcentaje del rango permitido para lasde paso variables que se usara como tamano de paso.

Begin

Inicializar la poblacion de soluciones (bacterias) θi(0, 0) ∀i, i = 1, . . . , Sb

Evaluar la poblacion de bacterias f(θi(0, 0)) ∀i, i = 1, . . . , Sb

For G=1 to GMAX Do

For i=1 to Sb Do

For j=1 to Nc Do

Realizar el paso quimiotactico (giro-nado y swarming)para la bacteria θi(j, G) usando (10) y (12)

End For

End For

Realizar la reproduccion eliminando las Sr peoresbacterias y duplicando cada una de las (Sb − Sr) mejores bacteriasEliminar la peor bacteria θw(j, G) en la poblacion actual

End For

End

Figura 5. Algoritmo del MBFOA

De acuerdo al pseudocodigo en la Tabla 5, se describe el proceso que serealiza durante su ejecucion al resolver un problema de optimizacion.

Nuevas Heurısticas para Optimizacion Numerica 19

1. Se inicializan los parametros del algoritmo (Tabla 12).2. Se genera la poblacion inicial aleatoria de bacterias θi(0, 0)∀i, i = 1, ..., Sb.3. Se evalua cada una de las bacterias f(θi(0, 0))∀i, i = 1, ...Sb.4. En cada generacion, todas las bacterias llevaran a cabo su ciclo quimiotacti-

co Nc veces. Se ejecutara la fase de reproduccion y la de eliminacion-dispersion.

5. En cada paso del ciclo quimiotactico, las bacterias realizan su busque-da, nadando y avanzando hacia una nueva posicion o girando porque suavance no fue favorable en la busqueda de nutrientes (el valor de la fun-cion objetivo no mejoro en el nuevo punto al cual se habıan dirigido). Enambos casos se utilizan (9) y (10).

6. En la parte intermedia y al final del ciclo quimiotactico, en vez de realizarel nado y giro, se utiliza el operador de swarming (12), favoreciendo lacomunicacion entre bacterias y, a su vez, la convergencia del algoritmo.

7. A continuacion se realiza el proceso de reproduccion, en el cual se duplicana las mejores Sr (usualmente la mitad) bacterias y se elimina al resto (laotra mitad).

8. Finalmente se realiza el proceso de eliminacion-dispersion en el cual seelimina unicamente a la peor bacteria de la poblacion θw(j, G).

4.3. Ejemplo de funcionamiento

Ahora, se presenta un ejemplo de funcionamiento del MBFOA aplicado almismo problema que el ABC, la funcion de la esfera detallada en (6) y (7).

Los valores de los parametros de inicio del MBFOA se muestran en la Tabla13. De acuerdo al pseudocodigo del MBFOA, primero se crea una poblacion debacterias de manera aleatoria, el numero de bacterias es definido por Sb (dichapoblacion esta dentro del rango especificado), ver Tabla 14. Posteriormente secalculan los tamanos 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. Parametros del MBFOA empleados en la funcion de la esfera

Parametro Valor

Sb 3Nc 3GMAX 4Sr 2R 2.1E-2β 0.44

A continuacion, se tiene que evaluar cada una de las bacterias en la funcionobjetivo, estos valores se muestran en la cuarta columna de la Tabla 14.

20 Mezura-Montes, Cetina-Domınguez y Hernandez-Ocana

Tabla 14. Poblacion inicial, el valor de la funcion para cada bacteria se encuentraen la cuarta columna

Bacteria θi1(0, 0) = x1 θi

2(0, 0) = x2 f(θi(0, 0))

1 -1.728921 0.564320 3.3076242 1.595993 1.107934 3.7747113 1.082393 1.011439 2.194583

El siguiente paso consiste en inicializar el contador del numero de genera-ciones (G), el contador del numero de bacterias Sb y el contador del numerode iteraciones del ciclo quimiotactico Nc con el valor de 1. En el primer cicloquimiotactico, para la bacteria 1 θ1(j, G) se aplica el operador de nado-giro,(9) y (10), recordando que a la mitad del ciclo quimiotactico y al final del mis-mo se aplicara el swarming (12). Supongase que los valores que se empleanpara la direccion aleatoria son (9):

φ1(1) = −0.289841φ2(1) = −0.029217

Se calcula la nueva posicion de la bacteria 1 usando el operador de nado(9) de la siguiente manera:

Nc = 1θ1

1(1, 1) = −1.728921 + (0.1485 ∗ −0.289841) = −1.77190θ12(1, 1) = 0.564320 + (0.1485 ∗ −0.029217) = 0.55998

A continuacion se evalua la calidad de la nueva posicion 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 continuara nadando en esa direcciondefinida por φ(i) o si tendra que girar, generando nuevos valores para φ(i).Observando la funcion objetivo de la nueva posicion de la bacteria 1 se notaque no se mejora el valor actual de la misma (3.307624), por lo tanto, sedebera generar una nueva direccion de busqueda (un nuevo φ(i)) e intentarmejorar (nadar) en esa direccion.

Dado que en este ejemplo el valor para el ciclo quimiotactico es de Nc=3,las siguientes dos iteraciones se consideran la mitad y la final del proceso.Por ende, se aplicara el operador de swarming (12). Con base en la poblacionactual de bacterias detallada en la Tabla 14, la mejor es la bacteria 3 (puestiene el menor valor para la funcion objetivo). Utilizando entonces el operadorde swarming (12), se genera una nueva posicion para la bacteria 1 como sigue:

Nuevas Heurısticas para Optimizacion Numerica 21

Nc = 2θ1

1(2, 1) = (−1.728921) + (0.44 ∗ (1.082393− (−1.728921))) = −0.491942θ1

2(2, 1) = (0.564320) + (0.44 ∗ (1.011439− (0.564320))) = 0.761052

A continuacion se evalua la nueva posicion de la bacteria 1 despues deacercarse a la mejor bacteria en la poblacion actual, quedando de la siguientemanera:

f(θ1(2, 1)) = (−0.491942)2 + (0.761052)2 = 0.821207

En esta ocasion la nueva posicion es mejor que la previa, por lo que labacteria asumira esta nueva posicion y eliminara la anterior.

Para el tercer paso del ciclo quimiotactico de la bacteria 1, se aplica denuevo el operador de swarming (12).

Nc = 3θ1

1(3, 1) = (−0.491942) + (0.44 ∗ (1.082393− (−0.491942))) = 0.200765θ1

2(3, 1) = (0.761052) + (0.44 ∗ (1.011439− (0.761052))) = 0.871222

Se evalua la nueva posicion de la bacteria 1 :

f(θ1(3, 1)) = (0.200765)2 + (0.871222)2 = 0.799334

Dada la nueva mejora de la posicion con respecto a la previa (0.799334 <0.821207). La bacteria tomara esta nueva posicion:

θ1

1(3, 1) = 0.200765

θ1

2(3, 1) = 0.871222f(θ1(3, 1)) = 0.799334

Los calculos para el ciclo quimiotactico de la segunda bacteria se resumena continuacion:

Nc = 1θ2

1(1, 1) = (1.595993) + (0.1485 ∗ 0.825212) = 1.718537

θ22(1, 1) = (1.107934) + (0.1485 ∗ −0.564822) = 1.024058f(θ2(1, 1)) = (1.718537)2 + (1.024058)2 = 4.002064

Nc = 2θ2

1(2, 1) = (1.595993) + (0.44 ∗ (1.082393− 1.595993)) = 1.370009

θ2

2(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θ2

1(3, 1) = (1.370009) + (0.44 ∗ (1.082393− 1.370009)) = 1.243458

θ2

2(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 Hernandez-Ocana

Los calculos para la tercera bacteria se presentan a continuacion:

Nc = 1θ3

1(1, 1) = (1.082393) + (0.1485 ∗ −0.519574) = 1.005236

θ32(1, 1) = (1.011439) + (0.1485 ∗ 0.854426) = 1.138321f(θ3(1, 1)) = (1.005236)2 + (1.138321)2 = 2.306275

Nc = 2θ3

1(2, 1) = (1.082393) + (0.44 ∗ (1.082393− 1.082393)) = 1.082393

θ32(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θ3

1(3, 1) = (1.082393) + (0.44 ∗ (1.082393− 1.082393)) = 1.082393

θ3

2(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 despues de haber pasado elproceso quimiotactico es presentado a continuacion en la Tabla 15

Tabla 15. Resultado de las bacterias despues del proceso quimiotactico

Bacteria θi1(0, 1) = x1 θi

2(0, 1) = x2 f(θi(0, 1))

1 0.200765 0.871222 0.7993342 1.243458 1.041700 2.6313263 1.082393 1.011439 2.194583

Aquı se pueden observar dos comportamientos interesantes: La mejor bac-teria de la poblacion inicial (la numero 3) guio a las otras dos bacterias haciamejores zonas (mejores soluciones) ya que las direcciones aleatorias no repor-taron mejoras para estas dos soluciones y, por otro lado, la mejor bacteria dela poblacion inicial no fue capaz de mejorar su posicion y no se movio, dadoque esta mejor solucion solo puede mejorar mediante direcciones aleatorias debusqueda y no mediante el operador de swarming.

El siguiente proceso es la reproduccion, el cual consiste en duplicar a lasmejores bacterias (la mitad de la poblacion con mejor valor en la funcion obje-tivo). La Tabla 16 muestra el resultado de la reproduccion, donde la bacteria2 fue eliminada y ahora una copia de la nueva mejor bacteria (posicion 1),quien fue la unica en reproducirse, tomo su lugar.

El siguiente proceso es la eliminacion y dispersion, en el cual se elimina ala peor bacteria de la poblacion. La Tabla 17 refleja el resultado del proceso deeliminacion, donde la bacteria en la posicion 3 (curiosamente la mejor bacteria

Nuevas Heurısticas para Optimizacion Numerica 23

Tabla 16. Resultados del proceso de reproduccion

Bacteria θi1(0, 1) = x1 θi

2(0, 1) = x2 f(θi(0, 1))

1 0.200765 0.871222 0.7993342 0.200765 0.871222 0.7993343 1.082393 1.011439 2.194583

de la poblacion anterior) es eliminada y una nueva bacteria localizada enuna posicion aleatoria toma su lugar. Esto favorece la exploracion de nuevassoluciones y previene la convergencia en optimos locales.

Tabla 17. Resultados del proceso de eliminacion-dispersion

Bacteria θi1(0, 1) = x1 θi

2(0, 1) = x2 f(θi(0, 1))

1 0.200765 0.871222 0.7993342 0.200765 0.871222 0.7993343 1.546781 0.345621 2.511985

La primera generacion del MBFOA termina despues de la eliminacion-dispersion. Los resultados finales despues de 4 generaciones se reportan en laTabla 18.

Tabla 18. Poblacion final y el valor de aptitud de cada bacteria.

Bacteria θi1(3, 4) = x1 θi

2(3, 4) = x2 f(θi(3, 4))

1 -0.042711 -0.040718 0.0034822 -0.042711 -0.040718 0.0034823 0.496293 0.631932 0.645644

La solucion a reportar sera 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 deinteligencia colectiva, basados en comportamientos colaborativos encontradosen la naturaleza, ambos para resolver problemas de optimizacion numerica.Despues de una introduccion a la optimizacion en general, de centrarse en la

24 Mezura-Montes, Cetina-Domınguez y Hernandez-Ocana

optimizacion en espacios continuos y de motivar el uso de heurısticas, se hanpresentado los elementos de las heurısticas bio-inspiradas. Dos algoritmos, lacolonia artificial de abejas (ABC) y la version mejorada de la optimizacionmediante el forrajeo de bacterias (MBFOA) fueron presentados y dos ejem-plos numericos en una funcion de prueba muy sencilla se incluyeron paraapoyar al lector en el uso de estos algoritmos en algun problema en particu-lar. Dado lo reciente en la aparicion de estas dos heurısticas, se visualiza enel futuro cercano una gran cantidad de investigacion al respecto, con la inten-cion de generar versiones aun mas robustas al resolver, sobre todo, problemasdel mundo real. Finalmente, se destaca la sencillez de implementacion y usode ambos algoritmos bio-inspirados, caracterısticas que pueden ser atractivaspara especialistas de otras areas 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: “NuevosModelos Bio-Inspirados en Optimizacion con Restricciones”. El segundo autoragradece el apoyo de CONACyT mediante una beca para cursar estudios deMaestrıa en el Laboratorio Nacional de Informatica Avanzada (LANIA A.C.).El tercer autor agradece a CONACyT por el apoyo otorgado mediante elproyecto 102299 titulado “Optimizacion con Restricciones Usando ModelosBasados en Bacterias”.

Referencias

1. H.A. Taha. Investigacion de Operaciones. Alfa Omega, second edition, 1991.2. K. Deb. Optimization for Engineering Design Algorithms and Examples. Pren-

tice Hall of India, fourth edition, 2000.3. Z. Michalewicz and D.B. Fogel. How to Solve It: Modern Heuristics. Springer-

Verlag, 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 theFiftheenth International Conference on Tools with Artificial Intelligence (IC-TAI’2003), pages 149–156, Los Alamitos, CA, November 2003. Sacramento,California, IEEE Computer Society.

5. A. Angantyr and J.O. Aidanpaa. A Pareto-Based Genetic Algorithm SearchApproach to Handle Damped Natural Frequency Constraints in Turbo Genera-tor 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. EvolutionaryDynamic Optimization of a Continuously Variable Transmission for Mechani-cal Efficiency Maximization. In Alexander Gelbukh, Alvaro de Albornoz, andHugo Terashima-Marın, editors, MICAI 2005: Advances in Artificial Intelli-gence, pages 1093–1102, Monterrey, Mexico, November 2005. Springer. LectureNotes in Artificial Intelligence Vol. 3789,.

Nuevas Heurısticas para Optimizacion Numerica 25

7. S. Kirkpatrick, C. D. Gelatt Jr., and M. P. Vecchi. Optimization by SimulatedAnnealing. Science, 220(4598):671–680, May 1983.

8. F.W. Glover and M. Laguna. Tabu Search. Kluwer Academic Publishers, Lon-don, UK, 1997.

9. A.P. Engelbrecht. Fundamentals of Computational Swarm Ingelligence. JohnWiley & 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. NeuralNetworks, IEEE Transactions on, 5:3–14, 1994.

12. A. Baykasoglu, L. Ozbakir, and P. Tapkan. Artificial bee colony algorithmand its application to generalized assignment problem. In Felix T.S. Chan andManoj Kumar Tiwari, editors, Swarm Intelligence: Focus on Ant and ParticleSwarm Optimization, pages 113–144. Itech Education and Pub., Vienna, Aus-tria, 2007. ISBN 978-3-902613-09-7.

13. D. Karaboga and B. Basturk. A powerful and efficient algorithm for numericalfunction optimization: Artificial bee colony (ABC) algorithm. Journal of GlobalOptimization, 39(3):459–471, 2007.

14. K.M. Passino. Biomimicry of bacterial foraging for distributed optimizationandcontrol. IEEE Control Systems Magazine, 22(3):52–67, 2002.

15. E. Mezura-Montes and B. Hernandez-Ocana. Bacterial foraging for engineeringdesign problems: Preliminary results. In Arturo Hernandez-Aguirre et al., editor,Fourth Mexican Conference on Evolutionary Computation (COMCEV’2008),pages 33–38, Guanajuato, Mexico, October 2008. CIMAT.