Professional Documents
Culture Documents
RESUMEN
NDICE
0. PREFACIO....................................................................................................................... 5
1. INTRODUCCIN ............................................................................................................. 8
3. METAHEURSTICAS ...................................................................................................... 19
3.5. Optimizacin por colonia de hormigas (ACO, ant colony optimization) ..................... 25
6. RALBP........................................................................................................................... 53
7. RALBP-MMAS .............................................................................................................. 59
8. EXPERIENCIA COMPUTACIONAL.................................................................................. 86
9. CONCLUSIONES............................................................................................................ 90
10. PRESUPUESTO.............................................................................................................. 96
0. PREFACIO
La produccin en serie es el principal sistema productivo utilizado en la industria actual, siendo las
lneas de montaje el mximo exponente de este sistema. Las lneas o cadenas de montaje son siste-
mas orientados al flujo productivo donde se realiza un producto final a partir del ensamblaje de sus
componentes. Las lneas estn compuestas por estaciones, donde se agrupan un subconjunto defini-
do de tareas del ensamblaje total. El tiempo de ciclo de una lnea es el tiempo mximo durante el
cual se han de realizar las tareas asignadas a cada estacin antes de que el producto intermedio pase
a la siguiente estacin. El equilibrado de una lnea de montaje consiste en la asignacin de las tareas
a las estaciones de forma que se cumplan las restricciones impuestas por el proceso intentando
maximizar la eficiencia de la lnea.
La organizacin del trabajo que introducen en el proceso productivo hace que sean eficaces en la
produccin de grandes volmenes de producto estandarizado con unos costes competitivos. La ten-
dencia actual hacia la disminucin del ciclo de vida de los productos, con el consiguiente aumento del
nmero de nuevos lanzamientos que comporta, entra en conflicto con la concepcin clsica de las
cadenas de montaje. Este hecho ha provocado que cobren mayor importancia las lneas de montaje
flexibles, que gracias a la incorporacin de robots, posibilitan la produccin de cantidades menores
de producto, adems, cada vez ms personalizados.
En primer lugar, la introduccin de robots en las lneas de montaje permite aumentar la tasa de
produccin, gracias a su rapidez en la ejecucin de operaciones. Por otro lado, debido a la baja tasa
de errores que los caracteriza, aumenta la calidad del producto y favorece la seguridad en el entorno
productivo. Aunque la caracterstica clave de los robots es su versatilidad para incorporar herramien-
tas que permiten realizar multitud de operaciones distintas y, por tanto, adaptarse a los cambios en
el ensamblaje rpidamente. Por todos estos motivos, el uso de los robots se ha hecho extensible en
todos los sectores, desde la industria de la automocin hasta el sector alimentario.
La resolucin del problema de equilibrado de lneas de montaje robotizadas (RALBP, Robotic As-
sembly Line Balancing Problem) cobra entonces especial importancia por las siguientes razones:
- La regularidad de los robots a la hora de realizar las tareas permite una mayor exactitud en la
medicin de los tiempos de tarea y, por tanto, unas soluciones al equilibrado ms ajustadas a la
realidad. Esto no sucede cuando los operarios son humanos, ya que las duraciones de las tareas
tienen una mayor variabilidad.
6 Daniel Aparicio Guirao
- Las herramientas que se acoplan a los robots se disean en funcin de las tareas que se asignan
al robot.
- Los cambios en las lneas de montaje requieren de nuevos equilibrados, por ello es necesario
contar con mtodos de resolucin veloces y potentes que permitan extraer el mxima rendi-
miento a la disposicin de los robots.
Rubinovitz y Bukchin (1993)[1] plantearon por primera vez el problema de equilibrado de lneas
de montaje robotizadas, donde se introduce la asignacin de robots a las estaciones como parte del
equilibrado. En ese estudio resolvan la versin RALBP-I del problema que consiste en minimizar el
nmero de estaciones fijado el tiempo de ciclo (o la tasa de produccin).
En este trabajo, se pretende resolver la versin RALBP-II del mismo problema: fijado el nmero de
estaciones encontrar el equilibrado que minimiza el tiempo de ciclo de la lnea. Por tanto, esta ver-
sin del problema plantea la reestructuracin de lneas de montaje existentes para mejorar su efi-
ciencia, donde el nmero de estaciones de la lnea est fijado por el total de robots disponibles, para
aprovechar todos los recursos posibles. A continuacin se listan las hiptesis sobre las que se funda-
menta el RALBP-II:
- Se conocen las relaciones de precedencia entre las tareas del proceso de montaje y son invaria-
bles.
- Las tareas estn compuestas por tareas bsicas y son indivisibles.
- Las duraciones de las tareas son deterministas.
- Las duraciones de las tareas dependen del robot seleccionado para realizarlas.
- Las tareas se pueden asignar a cualquier estacin, siempre que el robot asignado a dicha esta-
cin la pueda realizar y que se cumplan las relaciones de precedencia.
- Un robot se asigna a una nica estacin de la lnea.
- El equilibrado de la lnea se realiza para un nico producto.
- Los tiempos de carga, descarga y flujo de materiales, as como los tiempos de preparacin de las
herramientas, se consideran despreciables o estn incluidos en las duraciones de las tareas y
son independientes de la secuencia de operaciones.
El RALBP-II, como el resto de problemas de equilibrado de lneas de montaje (ALBP, Assembly Line
Balancing Problem), es un problema de optimizacin combinatoria NP-duro. Para este tipo de pro-
blemas no se conoce un mtodo de resolucin capaz de resolver todos los casos particulares (o ins-
tancias) que emplee un procedimiento acotado en el tiempo por un polinomio; incluso es posible que
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 7
tal mtodo no exista. Por ello es necesario plantear mtodos alternativos que, al menos, puedan
encontrar la solucin ptima al mximo nmero de instancias en el menor tiempo posible, como son
las metaheursticas.
La optimizacin por colonia de hormigas (ACO, Ant Colony Optimization) es una metaheurstica,
propuesta por Dorigo[2], que simula el comportamiento de las hormigas en la formacin de carrete-
ras que usan para desplazarse del nido a la fuente de comida. stas se forman porque las hormigas
siguen el camino donde perciben una mayor cantidad de feromonas, depositadas por el resto de
individuos de la colonia. A su vez, ellas mismas depositan cierta cantidad de feromonas por donde
pasan. De este manera, contra ms corto sea el camino del nido al alimento, mayor cantidad de fe-
romonas se deposita y los individuos tendrn ms tendencia a seguirlo.
Los algoritmos ACO se han usado con xito en muchos problemas de optimizacin combinatoria,
entre ellos los ALBP. Es por ello que se ha optado por implementar un algoritmo ACO para la resolu-
cin del RALBP-II.
8 Daniel Aparicio Guirao
1. INTRODUCCIN
El presente trabajo se inicia con una introduccin (ver Captulo 2) a los conceptos bsicos de la
optimizacin combinatoria, donde se muestra la dicotoma que existe en este campo entre los pro-
blemas y los mtodos de resolucin. A continuacin, en el Captulo 3, se realiza una descripcin de
las metaheursticas ms extendidas para la resolucin de los ALBP[3], como son el templado simula-
do, la bsqueda tab, los algoritmos genticos y los GRASP, adems de los ACO.
En el Captulo 4, dedicado por completo a los algoritmos ACO, se realiza una descripcin del pro-
ceso natural en el cual estn inspirados, del procedimiento que permite la bsqueda de soluciones,
de las principales versiones propuestas hasta el momento y, por ltimo, de las diferentes aplicacio-
nes que han tenido en el campo de la optimizacin.
Con la intencin de evitar referencias a posteriori en el trabajo y, sobretodo, no focalizar los algo-
ritmos ACO sobre los ALBP, es en el Captulo 5 donde se inicia el tratamiento de los problemas de
equilibrado. Partiendo del problema simple, se desarrolla la explicacin de los problemas generales,
donde se engloba el RALBP-II.
La experiencia computacional (ver Captulo 8) incluye la generacin de instancias sobre las que
probar el rendimiento del RALBP-MMAS, la seleccin de la mejor de las ochos versiones del algorit-
mo y el ajuste de parmetros. En este captulo tambin se exponen los resultados obtenidos con el
RALBP-MMAS para las instancias creadas junto con los resultados obtenidos con un software comer-
cial para las mismas instancias,
Tras la experiencia computacional se exponen las conclusiones (ver Captulo 9) que se han extra-
do del experimento. Finalmente, se detalla el propuesto de ejecucin del proyecto (ver Captulo 10) y
se discute el impacto medioambiental del mismo (ver Captulo 11).
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 9
1.1. Motivacin
La principal motivacin para la realizacin de este proyecto es poder llegar a dar solucin al pro-
blema de equilibrado de lneas de montaje robotizadas, uno de los principales problemas de equili-
brado que se plantean en la industria real.
A ttulo personal, como estudiante especializado en organizacin industrial, deber servir para
ampliar los conocimientos sobre los mtodos de resolucin de los problemas de optimizacin y, en
concreto, los algoritmos de optimizacin por colonia de hormigas.
1.2. Objetivo
El objetivo de este trabajo es demostrar la capacidad de los algoritmos de optimizacin por colo-
nia de hormigas para la resolucin de la versin II del problema de equilibrado de lneas de montaje
robotizadas mediante la comparacin de los resultados del procedimiento propuesto con los de un
software de optimizacin comercial.
Para ello se implementar un algoritmo con diferentes versiones, de las cuales se seleccionar la
mejor. Para esta versin se realizar un ajuste de parmetros y se compararn los resultados con el
software IBM ILOG CPLEX Optimization Studio.
1.3. mbito
Este estudio se enmarca dentro del mbito terico de la optimizacin combinatoria. El problema a
solucionar se trata del RALBP-II pero la perspectiva se amplia para incluir los ALBP, indispensable
para la comprensin del problema a tratar. En cuanto a los mtodos de resolucin, el estudio se basa
en los algoritmos ACO pero sin dejar de lado otros procedimientos metaheursticos.
10 Daniel Aparicio Guirao
2. OPTIMIZACIN COMBINATORIA
Los seres humanos nos encontramos enfrentados continuamente a la resolucin de todo tipo de
problemas como parte de la existencia. Gracias a la capacidad racional que nos caracteriza, decidi-
mos afrontarlas de manera que las acciones que realicemos nos aporten la mayor utilidad segn
nuestras preferencias personales y el entorno donde se produce la decisin. Aunque se realiza de
forma inconsciente en la mayora de ocasiones, se puede decir que estamos optimizando constante-
mente: de cada situacin extraemos unos parmetros y, a su a vez, nos impone ciertas restricciones a
las decisiones posibles, a partir de las cuales nosotros evaluamos las diferentes posibilidades y esco-
gemos la que creemos que nos reportar mayor satisfaccin.
Definicin 2.1. La optimizacin combinatoria es un rea multidisciplinar que estudia aquellos pro-
blemas cuya complejidad radica en el gran nmero de soluciones posibles para las que se debe en-
contrar la mejor solucin posible. En adelante se usar el trmino optimizacin para referirse a la
optimizacin combinatoria.
2.1. Problemas
Los problemas de optimizacin surgen en multitud de situaciones diferentes, que pueden ir desde
el clculo de rutas de una flota de transporte o la planificacin de los horarios de vuelo del personal
areo hasta el diseo por ordenador o la programacin de inteligencias artificiales. Formalmente:
Definicin 2.2. Un problema se refiere a la cuestin general a resolver, que cuenta con unos
parmetros que lo definen y con unas variables de decisin con valores sin especificar[4]. Una solu-
cin consiste en asignar un valor concreto a las variables de decisin.
Definicin 2.3. Una instancia es un problema con valores especificados para todos los parme-
tros. Formalmente, una instancia se define por una tripla (, , ), donde es el dominio de solu-
ciones candidatas, es la funcin objetivo que asigna un valor = () a cada solucin candidata
, y es el conjunto de restricciones. Las soluciones que pertenecen al dominio de solu-
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 11
ciones candidatas que cumplen las restricciones se llaman soluciones factibles[4]. Si el objetivo es
minimizar el valor de la funcin objetivo, la solucin ptima es aquella solucin tal que
= ( ) (), ; si el objetivo es maximizar el valor de la funcin objetivo, entonces el
ptimo es tal que = ( ) (), .
A continuacin se presentan tres de los problemas bsicos e intuitivos que se pueden enunciar. El
primero de ellos es el problema de viajante de comercio (TSP), el problema ms clsico de la optimi-
zacin combinatoria. En segundo lugar se describe el problema de empaquetamiento (BPP) y el pro-
blema de asignacin (AP), que son la base del problema de equilibrado de lneas de montaje con
operarios robotizados que se estudiar en este trabajo.
Dado un conjunto de ciudades y las distancias entre ellas, consiste en encontrar la ruta cerrada de
distancia mnima que visita todas las ciudades una nica vez. Formalmente el TSP se puede represen-
tar con un grafo = (, ), con siendo el conjunto de = || nodos (ciudades), siendo el con-
junto de arcos que conectan todos los nodos entres s. A cada arco se le asigna un peso que re-
presenta la distancia entre la ciudad y la ciudad . El TSP es el problema de encontrar el circuito
Hamiltoniano ms corto del grafo, donde un circuito Hamiltoniano es aquel circuito cerrado que visi-
ta cada nodo de solamente una vez[4].
El problema de empaquetamiento, conocido como Bin Packing Problem (BPP), es otro problema
bsico de la optimizacin. La versin BPP-I se puede enunciar de la siguiente forma: dado un conjun-
to de objetos, cada objeto con peso (0 < ) y un conjunto de recipientes con capacidad
fija, el objetivo es empaquetar todos los objetos utilizando el nmero mnimo de recipientes. En
cambio, el BPP-II busca minimizar la capacidad de los recipientes, fijando el nmero de recipientes m
para un conjunto de objetos con las mismas caractersticas.
AP (Assignment problem)
El problema de asignacin lineal (LSAP, Linear Sum Assignment Problem) es otro de los problemas
ms comunes en optimizacin combinatoria. Dada una matriz de costes = ( ) , se quiere
seleccionar elementos de de manera que nicamente haya un elemento de cada fila y un ele-
mento de cada columna y que la suma de dichos elementos sea mnima[5]. El problema de asigna-
cin lineal con cuello de botella (LBAP, Linear Bottleneck Assignment Problem) se modela de la mis-
12 Daniel Aparicio Guirao
ma manera que el LSAP pero cambia el objetivo del problema que, en este caso, es minimizar el
mximo de los costes escogidos.
2.1.1. Complejidad
Cualquier problema de optimizacin con variables discretas se puede resolver mediante la enu-
meracin de todas sus soluciones y, por lo tanto, la mejor de ellas es la solucin ptima. La enumera-
cin exhaustiva, aunque resuelve instancias pequeas, es del todo ineficiente cuando stas crecen,
como se muestra en el Ejemplo 2.1.
Ejemplo 2.1. Supongamos un ordenador con una capacidad de procesamiento de 25.000 millones
de instrucciones por segundo (que se encontrara entre los ms potentes del mercado). Supongamos
que con cada instruccin el ordenador es capaz de generar y evaluar una solucin de una instancia
cualquiera del TSP.
Si, ahora, consideramos una instancia con 10 ciudades, tenemos 3.628.800 soluciones diferentes.
Con dicho ordenador, generando todas las soluciones, encontraremos la solucin a la instancia en
poco menos de 0,15 milisegundos.
En cambio, si la instancia contiene 50 ciudades, el nmero de soluciones es superior a 3 10 .
Con el mismo ordenador y el mismo mtodo, tardaramos ms de 3,8 10 aos en encontrar la
solucin ptima. En trminos prcticos, se puede decir que no es posible encontrar la mejor solucin
para esta instancia por enumeracin.
El ejemplo anterior muestra dnde radica la complejidad de los problemas de optimizacin com-
binatoria: el nmero de soluciones factibles aumenta exponencialmente al aumentar el nmero de
elementos que pueden componer dichas soluciones. Este fenmeno da pie a la teora de los proble-
mas NP-completos. A pesar de que existen otras interpretaciones para los trminos NP-completo y
NP-duro, en el resto del presente trabajo se utilizar el significado dado por la Definicin 2.4 y la De-
finicin 2.5 para estos trminos, respectivamente.
Definicin 2.4. Un problema se considera NP-completo si, dada una solucin al problema, es posi-
ble comprobar que dicha solucin es ptima en un tiempo acotado por una funcin polinomial (o
tiempo polinomial), pero no se conoce un procedimiento que sea capaz de resolver de forma ptima
todas las instancias del problema en tiempo polinomial.
Definicin 2.5. Un problema NP-duro es un problema NP-completo que tiene asociado un pro-
blema de optimizacin.
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 13
El Ejemplo 2.1 muestra que la fuerza bruta no es un procedimiento admisible, adems la idea de
un ordenador capaz de enfrentarse a instancias con varios miles de variables slo con la fuerza bruta
parece casi utpica. Por otro lado, la Definicin 2.4 advierte sobre la posibilidad que no exista un
procedimiento definitivo que permita la resolucin de problemas de optimizacin, incluso algunos
investigadores ni siquiera creen que este procedimiento exista. A pesar de todo esto, se pueden so-
lucionar resolver una gran cantidad de instancias de problemas NP-duros en intervalos de tiempo
razonables gracias a los mtodos de resolucin existentes.
Definicin 2.6. Un algoritmo es un conjunto ordenado y finito de operaciones que permite hallar
la solucin a un problema[6]. Se dividen en dos grandes grupos: mtodos exactos y aproximados,
estos ltimos mayormente conocidos como heursticas.
Este tipo de mtodos confan en la resolucin de los problemas a travs de la enumeracin impl-
cita del dominio de soluciones factibles completo. La eficiencia de estos algoritmos depende de su
capacidad para reducir la enumeracin a unos niveles admisibles tanto en tiempo de computacin
como en espacio de memoria. A continuacin se describen tres de las tcnicas exactas ms utilizadas
por los investigadores.
Parmetros:
: valor de la funcin objetivo.
: cantidad de recurso consumido por cada unidad de la actividad ( = 1, , ).
: cantidad de recurso disponible para asignarse a las actividades ( = 1, , ).
: incremento en que se obtiene al variar en una unidad el nivel de actividad .
Variables de decisin:
: niveles de actividad de la variable continua de decisin .
Funcin objetivo:
[] = (2.1)
Restricciones:
(2.2)
0 (2.3)
La ventaja que suponen los programas lineales es que se pueden resolver mediante el mtodo
smplex, capaz de resolver instancias con millones de restricciones y un nmero mayor de varia-
bles[7]. Por el contrario, en el caso de los programas lineales enteros (puros o mixtos) hay que recu-
rrir a otras tcnicas ya que el mtodo smplex precisa de variables reales para asegurar la optimali-
dad de la solucin encontrada.
Las tcnicas B&B son procedimientos enumerativos para problemas con variables discretas que se
basa en la estrategia divide y vencers. Se trata de reducir el dominio de soluciones factibles en sub-
conjuntos cada vez ms pequeos hasta que es suficientemente sencillo encontrar la solucin pti-
ma. La reduccin es un proceso iterativo en el que se explota el subconjunto con una cota ms favo-
rable.
Suponiendo que el objetivo del problema es maximizar el valor de la funcin objetivo, el proceso
iterativo de las tcnicas B&B es que se muestra en el Algoritmo 2.1.
procedure B&B {
{}
while ( ) {
Pop()
if (Cota()< ) {
+
{} { }
}
}
}
La funcin Pop escoge un elemento del conjunto y la funcin Cota calcula la cota inferior del
subproblema.
Algoritmo 2.1. Proceso iterativo B&B para un modelo de minimizacin.
La programacin dinmica (PD) parte de una pequea porcin del problema original y encuen-
tra la solucin ptima para este subproblema. Despus agranda el problema de forma gradual y en-
cuentra la solucin ptima a partir de la solucin del subproblema precedente, hasta resolver el pro-
blema completo. Los problemas de PD tienen las siguientes caractersticas[7]:
- Son divisibles en etapas, cada una de las cuales requiere una poltica de decisin.
- Cada etapa tiene un cierto nmero de estados.
- El efecto de la poltica de decisin en cada etapa es transformar el estado actual en un estado
asociado con el inicio de la siguiente etapa, que puede ser de forma determinista o segn una
distribucin de probabilidad.
- El procedimiento de solucin est diseado para elaborar una poltica de decisin ptima para
16 Daniel Aparicio Guirao
Parmetros y variables:
: nmero de etapas.
: etapa actual ( = 1, . . . , ).
: estado actual de la etapa .
: variables de decisin en la etapa .
: valor ptimo de dado .
( ): contribucin del estado actual a la solucin.
( , ): contribucin de los estados , + 1, , a la funcin objetivo en el estado en la
etapa , la decisin inmediata es , y en adelante se toman decisiones ptimas.
( , ): estado tras finalizar la etapa , dependiente del problema.
Funcin de recurrencia:
( , ) = ( ) + ( , ) (2.4)
La PD probabilstica difiere en que el estado de la siguiente etapa est determinado segn una
distribucin de probabilidad.
Parmetros:
: nmero de estados posibles en la etapa + 1.
: probabilidad de que el sistema cambie al estado ( = 1, , ), dado y .
Funcin de recurrencia:
( , ) = ( ) + ( , ) (2.5)
Los modelos PD hacia adelante estn planteados desde la etapa 1 hacia la etapa . La funcin re-
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 17
2.2.2. Heursticas
Las heursticas se caracterizan por obtener soluciones mediante informacin que son capaces de
extraer del problema, sin necesidad de realizar una enumeracin completa de todas las soluciones.
Por tanto, la informacin utilizada es clave para la eficiencia el algoritmo, ya que debe servir para
dirigir la bsqueda hacia las zonas del espacio de soluciones con mayor probabilidad de contener el
ptimo. Se diferencian dos tipos de mtodos aproximados: los algoritmos de bsqueda local y los
algoritmos constructivos.
Definicin 2.9. La estructura del vecindario, o vecindario, es una funcin que asigna un conjunto
de vecinos () a cada solucin , siendo el conjunto de soluciones candidatas[4].
Definicin 2.10. El ptimo local en un problema de minimizacin (mnimo local) es aquella solu-
cin () tal que () (), (). Anlogamente, el ptimo local en un problema de
maximizacin (mximo local) es aquella solucin () tal que () (), ().
Algoritmos constructivos
A los algoritmos constructivos se les otorga este calificativo porque construyen soluciones de for-
ma incremental, aadiendo iterativamente componentes a una solucin parcial ( ) hasta que est
completa. Normalmente, la eleccin del siguiente componente se realiza mediante algn tipo de
informacin caracterstica del problema.
Las heursticas glotonas son mtodos sencillos e intuitivos para encontrar soluciones. Consisten
en asignar a la solucin parcial aquel elemento que ms se ajusta al criterio definido. Por ejemplo,
para el TSP, una heurstica glotona consiste en construir una solucin a base de escoger como si-
guiente elemento la ciudad ms cercana no asignada de la que nos encontramos.
La rapidez en obtener soluciones de la que suelen hacer gala las heursticas permite implementar
18 Daniel Aparicio Guirao
procesos iterativos en los que se pueden conseguir una cantidad significativa de soluciones diferen-
tes. Por otro lado, en muchos casos, estos procedimientos no son capaces de determinar si la solu-
cin obtenida es una solucin ptima. Entonces es necesario definir criterios de finalizacin para
detener el proceso iterativo. Los criterios generales mayormente usados consisten en fijar:
procedure HeuristicaGlotona {
ElegirPrimerElemento
while ( es una solucin incompleta) {
EleccionGlotona
}
return
}
ElegirPrimerElemento asigna a la solucin parcial el primer elemento, ya sea aleatoriamente
o basndose en la informacin del problema. EleccionGlotona escoge el mejor elemento de una
lista con los elementos no asignados ordenada segn uno o varios criterios.
Algoritmo 2.2. Pseudo-cdigo para una heurstica constructiva glotona[4].
Otro inconveniente al que deben hacer frente muchos procedimientos aproximados es a su exce-
siva especializacin en el problema que estn intentando resolver. Es por esto que en las ltimas
dcadas han aparecido una nueva clase de heursticas que pretenden evitar este problema: las me-
taheursticas.
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 19
3. METAHEURSTICAS
El concepto metaheurstica, introducido por Fred Glover, engloba aquellas tcnicas basadas en la
interaccin de procedimientos de mejora local y estrategias a alto nivel que permitan al proceso es-
caparse de los ptimos locales y realizar una exploracin robusta del espacio de soluciones.
A continuacin se describen las metaheursticas que han recibido mayor atencin por parte de los
investigadores. La informacin presentada en este captulo se ha extrado mayoritariamente de
Handbook of Metaheuristics[8].
La forma de aplicar este principio es permitir al inicio del algoritmo el empeoramiento (desestruc-
turacin) de la solucin con una probabilidad (energa) elevada e ir disminuyendo esta probabilidad
(enfriamiento) a medida que avanza el algoritmo a la vez que mejoramos la solucin (estructuracin).
Por lo tanto, en el fondo lo que permite al algoritmo es un alejamiento de los ptimos locales, sobre-
todo en la primera fase de la exploracin.
El esquema de enfriado es una secuencia finita de valores para los parmetros de control del algo-
20 Daniel Aparicio Guirao
3.1.2. Inicializacin
En esta fase se genera una primera solucin actual () y se establecen los parmetros de control
iniciales del algoritmo y .
A partir de la solucin actual (), se realiza una exploracin en el vecindario en busca del ptimo
local de ste (). Por tanto, aqu se deben definir aquellos movimientos que se realizarn sobre la
solucin de manera que se realice dicha exploracin.
procedure TempladoSimulado {
SolucionInicial
0
while (not CriterioFin) {
0
while ( ) {
GenerarSolucion()
AceptacionSolucion(,,)
+1
}
+1
}
return
}
SolucionInicial genera una primera solucin, ya sea aleatoriamente o mediante cualquier
otro procedimiento. En CriterioFin, a parte de los criterios de finalizacin generales mencionados
en el Apartado 2.2.2, se puede aadir un criterio especfico de los SA: llegar al final del esquema de
enfriado ( = ).
Algoritmo 3.1. Pseudo-cdigo de un algoritmo SA para un problema de minimizacin[8].
Si la solucin generada es mejor, sustituye a como solucin actual. Si no, se permite el em-
peoramiento de la solucin actual con cierta probabilidad. La probabilidad de aceptacin de solucio-
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 21
nes que empeoran debe disminuir a medida que avanza el proceso ( < ). La Frmula 3.1
describe la probabilidad de aceptacin de la nueva solucin:
()
= si ( ) () > 0 (3.1)
1 si ( ) () 0
La bsqueda tab fue propuesta por Glover. Es un algoritmo basado en el uso de la memoria para
guiar el procedimiento de bsqueda del algoritmo. Hace uso de una memoria a corto plazo, que
mantiene una lista tab, que impide a la bsqueda volver a soluciones ya visitadas.
El espacio de bsqueda est formado por todas aquellas soluciones que podr visitar el algoritmo,
que puede ser incluso mayor que el espacio de soluciones factibles. Por otro lado, la estructura de
vecindarios la componen las modificaciones de la solucin, o movimientos, que se pueden realizar en
cada iteracin del proceso.
En una memoria a corto plazo, se guarda el listado de movimientos que estn restringidos para el
algoritmo. Los elementos se mantienen en la lista durante cierto nmero de iteraciones fijado por un
parmetro. Normalmente est formada por las ltimas transformaciones de la solucin que evitan
movimientos cclicos que devuelvan la bsqueda a soluciones ya visitadas. Para algunos problemas es
recomendable guardar y mantener diferentes listas tab o utilizar listas de tamao variable.
El cumplimiento de estos criterios significa que la solucin generada en ese instante no es tab,
incluso si el movimiento que la produce lo es. Se definen porque las listas tabs pueden ser contra-
producentes, ya que puede darse el caso que prohban movimientos atractivos o que, simplemente,
produzcan estancamiento. El criterio de aceptacin ms usado e intuitivo es dar validez a una solu-
cin si sta es mejor que la mejor obtenida hasta el momento.
22 Daniel Aparicio Guirao
procedure BusquedaTabu {
SolucionInicial
InicializarEstructurasMemoria
while (not CriterioFin) {
GenerarSoluciones()
MejorSolucion()
ActualizarEstructurasMemoria
if (( ) < ()) {
}
}
return
}
SolucionInicial genera una solucin de partida. InicializarEstructurasMemoria ini-
cializa las estructuras de memorias necesarias, que se actualizan con el paso de las iteraciones gra-
cias a ActualizarEstructurasMemoria. GenerarSoluciones genera todas las soluciones fac-
tibles que no son tab y cumplen los criterios de aceptacin. En CriterioFin se pueden utilizar los
criterios generales descritos en el Apartado 2.2.2.
Algoritmo 3.2. Pseudo-cdigo de un algoritmo TS[4].
En un algoritmo gentico se pretende simular la evolucin gentica que se produce en las espe-
cies: seleccin de los individuos ms aptos y cruce para generar descendientes mejor adaptados,
teniendo en cuenta que se pueden producir mutaciones durante el proceso. Su uso generalizado en
el campo de la optimizacin aplicada lo introdujo Goldberg.
En el mbito de la optimizacin, una solucin se asemeja a un cromosoma y cada uno de los com-
ponentes de la solucin, a un gen. El procedimiento consiste en seleccionar las mejores soluciones de
una poblacin de soluciones y combinarlas segn un mtodo de cruce, de forma que se obtenga el
ptimo del problema en un proceso iterativo. Se aade la posibilidad de modificar aleatoriamente las
soluciones, es decir, se producen mutaciones, que permiten diversificar el espacio de bsqueda.
Principalmente hay dos tipos de implementacin para la generacin de los descendientes: cruce Y
mutacin y cruce O mutacin. El tipo Y consiste en evaluar primero la posibilidad de cruce y, poste-
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 23
Como regla general, la seleccin se lleva a cabo mediante alguna medida relativa a la calidad de la
solucin. Los mtodos de eleccin tpicos son tres: aleatoria, o mtodo de la ruleta, ponderando
segn el valor de las soluciones; por ranking, se escogen los mejores cromosomas de una lista or-
denada; o por torneo, se seleccionan individuos y se escoge el mejor entre ellos. Las elecciones por
ranking o por torneo pueden producir una prdida de diversificacin del espacio de bsqueda si hay
individuos dominantes.
procedure AlgoritmoGenetico {
PoblacionInicial
MejorIndividuo()
while (not CriterioFin) {
Seleccion()
Cruce()
Mutacion()
MejorIndividuo()
if (( ) < ()) {
}
NuevaPoblacion()
}
return
}
MejorIndividuo selecciona la mejor solucin de la poblacin actual. En CriterioFin se pue-
den utilizar los criterios generales descritos en la Apartado 2.2.2.
Algoritmo 3.3. Pseudo-cdigo para un GA[4].
24 Daniel Aparicio Guirao
Con pequea probabilidad , se decide si el gen muta o no. Tambin se pueden escoger genes
que sufren mutacin y asignar las posiciones que mutan. En cdigo binario, simplemente hay que
usar el complementario, pero cuando el gen puede tomar diversos valores se ha de establecer cmo
se decide el nuevo valor del gen.
A partir de una poblacin, con seleccin-cruce-mutacin obtenemos una nueva poblacin, pero
no asegura que se conserven las mejores soluciones. Por evitar este problema, se puede usar una
estrategia elitista, en la que se conserva el mejor individuo; o el solapamiento de poblaciones, donde
slo se reemplaza una parte de la poblacin anterior.
La principal caracterstica de los algoritmos GRASP es que en cada iteracin hay dos fases clara-
mente diferenciadas: una primera etapa en la que se construye una solucin factible (fase construc-
tiva) y una segunda en la que se mejora la solucin obtenida mediante una bsqueda local (fase de
exploracin). Este tipo de procedimiento fue utilizado por primera vez por Feo y Resende.
En primer lugar, se define una lista restringida de candidatos (RCL), formada por aquellos elemen-
tos que se pueden incorporar a la solucin causando el menor incremento del coste (o mayor au-
mento del beneficio). El criterio que marca el tamao de la lista se puede establecer mediante cardi-
nalidad, nmero mximo de elementos que puede contener, o mediante alguna medida de calidad.
Existe la posibilidad que la solucin generada no pertenezca al espacio de soluciones factibles, por
lo que antes de pasar a la siguiente fase, se comprueba su validez y, en caso de no ser factible, se
transforma en una solucin que s lo sea.
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 25
A partir de la solucin obtenida en la fase anterior, se lleva a cabo una bsqueda local sobre el ve-
cindario definido. La efectividad de la exploracin depende en gran medida de la fase anterior, debi-
do a la solucin de partida, aunque tambin hay que tener en cuenta la estructura del vecindario, el
mtodo de bsqueda y la estrategia de evaluacin.
procedure GRASP {
SolucionInicial
while (not CriterioFin) {
ConstruccionGlotonaAleatoria
if ( no es factible) {
Reparar()
}
BusquedaLocal()
if (() < ()) {
}
}
return
}
SolucionInicial proporciona una primera solucin actual. En CriterioFin se pueden utili-
zar los criterios generales descritos en la Apartado 2.2.2.
Algoritmo 3.4. Pseudo-cdigo de un algoritmo GRASP[8].
Los algoritmos de optimizacin mediante colonia de hormigas se caracterizan por simular el com-
portamiento de las hormigas cuando forman las rutas entre el nido y la fuente de alimento, en base a
un rastro de feromonas que depositan en la trayectoria efectuada. El precursor de su aplicacin a la
optimizacin es Marco Dorigo[2].
En el siguiente captulo se encuentra una descripcin completa de esta metaheurstica, que ha si-
do escogida para la resolucin del problema de equilibrado de lneas de montaje que se estudia en
este trabajo.
26 Daniel Aparicio Guirao
4.1. Introduccin
Las colonias de hormigas, al igual que otras sociedades de insectos, son organizaciones sociales al-
tamente estructuradas. Este hecho permite a las hormigas realizar tareas complejas a pesar de su
simpleza individual. Los ACO persiguen, precisamente, explotar esta realidad: a travs de un conjunto
de agentes individuales simples (hormigas), trabajando en conjunto (colonia), se pretende obtener
soluciones a problemas de optimizacin complejos.
En concreto, los algoritmos ACO simulan el comportamiento de recoleccin de comida de una co-
lonia de hormigas. Debido a que estos insectos no tienen una visin desarrollada, su comunicacin
con el entorno se lleva a cabo a travs de feromonas, en particular, en el caso de la recoleccin, a
travs de un rastro de feromonas, que marcan las rutas a seguir por los individuos del nido a la fuen-
te de alimento.
Experimentos realizados con las especies Iridomyrmex humilis, Linepithema humile y Lasius niger
demuestran que existe esta comunicacin indirecta entre los individuos mediante feromonas. Las
hormigas, en su camino del nido a la fuente de alimento y viceversa, depositan feromonas en el suelo
formando un rastro, el cual son capaces de oler el resto de componentes de la colonia. Contra mayor
es la concentracin en una ruta, mayor es la probabilidad de que una hormiga la siga.
Para probar este hecho se disearon unos experimentos de doble puente, conectando el nido con
la fuente de comida usando dos ramas, variando la relacin ( = / ) entre las longitudes de stas,
siendo y las longitudes de la rama larga y corta, respectivamente.
Figura 4.1. Experimentos de doble puente. (a) Ramas de igual longitud, = 1. (b) Ramas de diferente longi-
tud con = 2.[4]
En un primer experimento (Figura 4.1a), usaron una relacin de igualdad. Los resultados, tras de-
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 27
jar a las hormigas moverse libremente durante cierto tiempo, fueron que la mayora de hormigas
acababan usando la misma rama para desplazarse. Por tanto, en un principio las hormigas se despla-
zan por un camino u otro indiferentemente, pero con el paso del tiempo, se acumula ms feromona
en el camino ms transitado, por lo que las hormigas lo escogen con mayor probabilidad. Tras varias
repeticiones del experimento observaron la rama escogida era una u otra indistintamente (Figura
4.2a).
En otro experimento, usaron dos ramas de diferente longitud (Figura 4.1b). De nuevo, tras dejar la
colonia desplazarse libremente, se observ que al cabo del tiempo las hormigas volvan a transitar
por una nica rama. Pero, en este caso, en la mayora de ensayos las hormigas escogan el camino
ms corto (Figura 4.2b). Este fenmeno se explica porque el camino ms corto permite realizar el
trayecto entre el nido y la fuente ms veces y, por tanto, se deposita ms feromona.
Figura 4.2. Resultados obtenidos. (a) Cuando las ramas tienen la misma longitud, en la mayora de los expe-
rimentos, las hormigas escogen una de las ramas para desplazarse. (b) Cuando las ramas son de diferente longi-
tud, la mayor parte de la colonia acaba escogiendo la rama ms corta para desplazarse.[4]
4.2. Procedimiento
Un algoritmo ACO genera un gran nmero de soluciones. Son procedimientos iterativos donde
cada una de las hormigas de la colonia artificial genera una solucin en cada iteracin, y stas se su-
ceden hasta alcanzar una condicin de fin (ver Apartado 2.2.2). Tambin es necesario aadir al algo-
28 Daniel Aparicio Guirao
ritmo la actualizacin del rastro de feromonas en cada iteracin para poder mantener la informacin
obtenida con las soluciones generadas.
si
= [ ] (4.1)
0 si
Donde es la probabilidad que la hormiga escoja el componente en la decisin , repre-
Finalmente, los algoritmos ACO tambin pueden incorporar un proceso de bsqueda local al pro-
cedimiento para la mejora de las soluciones generadas.
En 1992, Marco Dorigo[2] propone el primer algoritmo ACO de la literatura para la resolucin del
TSP, al que nombra como ant system (AS). El Algoritmo 4.1 muestra el esqueleto general de un algo-
ritmo AS.
procedure AS {
InicializarDatos
while (not CriterioFin) {
ConstruirSoluciones
BusquedaLocal
ActualizarFeromonas
}
}
Algoritmo 4.1. Pseudo-cdigo del algoritmo AS.
si (4.2)
= [ ] [ ]
0 si
En esta fase se introducen los datos del problema y se inicializan los parmetros del algoritmo,
por lo que es dependiente del problema que se pretende resolver y tambin del tipo de ACO que se
implemente.
En primer lugar se leen los valores que definen la instancia del problema y se manipulan los datos
para obtener la informacin necesaria para la resolucin, como puede ser la informacin heurstica.
En cuanto a los parmetros, se debe definir el nmero de hormigas () que formar la colonia e
inicializarla, teniendo en cuenta que incrementar su tamao supone aumentar la exploracin del
espacio de soluciones pero tambin el coste de memoria y tiempo de computacin. Tambin se ini-
cializa la informacin relacionada con las feromonas ( ), con un valor inicial ( ) homogneo para
no decantar la bsqueda; el parmetro de evaporacin (), que tiene la funcin de reducir la intensi-
dad de los rastros de feromonas; y los parmetros que ponderan la influencia de las feromonas () y
de la informacin heurstica ().
Por ltimo, se inicializan las variables que guardan la informacin estadstica para comprobar el
comportamiento del algoritmo segn los datos y parmetros utilizados.
Aqu cada hormiga artificial construye una solucin al problema ( ). La eleccin se lleva a cabo
mediante una regla proporcional aleatoria, donde a cada elemento posible se le asigna una probabi-
lidad que depende del rastro de feromonas acumuladas y de la informacin heurstica asociada (ver
Frmula 4.2).
El factor informacin heurstica permite desviar la bsqueda hacia aquellas zonas del espacio de
soluciones ms prometedoras segn las caractersticas del problema. Por otro lado, las feromonas
inducen la bsqueda hacia soluciones de calidad ya visitadas. Los parmetros y son los que per-
30 Daniel Aparicio Guirao
La implementacin es dependiente del problema que se est resolviendo, ya que en algn caso
la bsqueda es demasiado costosa, en trminos de tiempo de proceso, o que, simplemente, no tiene
capacidad de mejorar las soluciones.
Una vez que cada una de las hormigas de la colonia ha construido una solucin y ha finalizado el
proceso de bsqueda local, se actualiza el rastro de feromonas a partir de las soluciones obtenidas.
En primer lugar, se realiza la evaporacin de feromonas (ver Frmula 4.3) en todos los elementos
del rastro, simulando el proceso que ocurre en la naturaleza. Aunque para los insectos no es crucial a
la hora de formar los rastros, s lo es cuando tratamos con hormigas artificiales, porque favorece la
atenuacin de los depsitos iniciales, realizados normalmente por soluciones de baja calidad.
(1 ) (, ) (4.3)
Tras esto, el siguiente paso es el depsito de feromonas. Cada hormiga artificial deposita una can-
tidad de feromonas (ver Frmula 4.4) en cada uno de los elementos del rastro que forman la solu-
cin, aumentando as la intensidad del rastro.
(4.4)
+ (, )
El aumento ( ) es funcin de la calidad (ver Frmula 4.5), as que mejores soluciones depositan
mayor cantidad, de manera que en iteraciones posteriores la bsqueda tienda hacia las zonas donde
se han encontrado esas soluciones.
si (, )
= (4.5)
0 si (, )
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 31
El procedimiento descrito en el apartado anterior es la tercera versin del AS, conocida como ant-
cycle, donde la actualizacin del rastro de feromonas se produce una vez que todas las hormigas han
construido las soluciones. Existen dos versiones anteriores, ant-density y ant-quantity, que actualizan
las feromonas en cada paso de la construccin, aunque su estudio se ha abandonado debido al ren-
dimiento inferior que han mostrado.
A partir del AS surgen tres sucesores directos en la literatura, los cules se diferencian bsica-
mente en la forma de actualizar el rastro de feromonas. Este hecho influye en el ajuste del valor de
los diferentes parmetros.
Esta primera variante est basada en una estrategia elitista, en que la mejor solucin encontrada
hasta el momento ( ) deposita una cantidad adicional ( ) de feromona en cada itera-
cin, controlada por un parmetro (e), que define el peso dado a la dicha solucin (ver Frmulas 4.6 y
4.7). Fue propuesta por el propio Dorigo.
+ + (, ) (4.6)
si (, )
= (4.7)
0 si (, )
Los resultados computacionales muestran que, ajustado el valor del parmetro e, la estrategia eli-
tista permite encontrar mejores soluciones con un nmero menor de iteraciones que el AS.
El ASrank fue propuesto por Bullnheimer, Hartl y Strau. La propuesta consiste en escoger las hor-
migas con las mejores soluciones de cada iteracin para que realicen el depsito de feromonas.
Previamente a la actualizacin, se ordenan las mejores hormigas hasta el momento en una lista.
32 Daniel Aparicio Guirao
Cada una de ellas deposita una cantidad de feromona (ver Frmulas 4.8 y 4.9) en funcin del rango
asignado (w r), siendo la mejor solucin hasta el momento la que aade mayor cantidad (w), aun-
que sta no pertenezca a la iteracin en curso.
+ ( ) + (, ) (4.8)
( ) si (, )
= (4.9)
0 si (, )
Los resultados experimentales sugieren que el rendimiento es ligeramente superior al EAS y mu-
cho mejor que el AS.
Esta tercera variante del AS, de Sttzle, introduce cuatro modificaciones. En primer lugar, slo la
mejor solucin de la iteracin o la mejor hasta el momento depositan feromonas en el rastro (ver
Frmula 4.10). Como este mtodo puede producir estancamiento fcilmente, se aade un lmite
superior e inferior a los valores de puede tomar cada uno de los elementos de la matriz de feromo-
nas [ , ]. La tercera modificacin es la inicializacin de los rastros al valor de . La cuarta
diferencia es que las feromonas se reinicializan pasado cierto nmero de iteraciones sin mejora en la
solucin.
(4.10)
+ (, )
En general, la mejor solucin y la mejor solucin de la iteracin depositan feromonas de forma al-
ternativa. En caso de usar la primera, la bsqueda se centra alrededor de dicha solucin, mientras
que si se recorre a la segunda la bsqueda es menos directa, pero con mayor exploracin del domi-
nio de soluciones. Los resultados experimentales muestran que, por regla general, para instancias
pequeas es recomendable utilizar la mejor solucin de la iteracin y, cuando aumenta el tamao,
incrementar la frecuencia con que deposita feromonas la mejor solucin hasta el momento.
El uso de lmites evita el estancamiento de la bsqueda. Todas las elecciones en una decisin son
significativas, su probabilidad est en el rango [ , ], con 0 < < 1. Fi-
nalmente, se usa el valor para la inicializacin de la matriz de feromonas y se fija el valor
= /, donde es un parmetro a ajustar.
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 33
Este algoritmo fue propuesto por Dorigo y Gambardella. El cambio ms significativo respecto del
AS se produce en la regla de eleccin de la fase constructiva. Usa una regla proporcional pseudo-
aleatoria, que escoge la decisin segn la Frmula 4.11.
argmax si
= (4.11)
si >
En este tipo de ACO, slo evapora y deposita feromonas en el rastro la hormiga con la mejor solu-
cin encontrada hasta el momento (ver Frmula 4.12). Con esta frmula se logra ponderar el nuevo
valor del rastro entre el valor antiguo y la cantidad de feromona depositada.
(4.12)
(1 ) + (, )
Adems de la actualizacin del rastro de feromonas global, se aplica una actualizacin local cada
vez que una hormiga hace una eleccin (ver Frmula 4.13). El efecto de la actualizacin local es dis-
minuir la cantidad de feromonas sobre la eleccin, de manera que se disminuye su probabilidad aso-
ciada, favoreciendo que el resto de hormigas construyan soluciones diferentes y, por tanto, diversifi-
cadas.
(1 ) + (4.13)
Donde (0 < < 1) es un parmetro del algoritmo y es el valor de inicializacin del rastro de
feromonas.
4.4.5. Comparativa
Para comparar los cinco algoritmos ACO descritos arriba, se toma como referencia el TSP. En pri-
mer lugar, se presenta los valores experimentales que han mostrado mayor eficacia en la resolucin
34 Daniel Aparicio Guirao
A partir de los resultados experimentales obtenidos, en los que se compara la capacidad de explo-
racin y explotacin de los algoritmos (ver Figura 4.3) y la calidad de las soluciones obtenidas (ver
Figura 4.4), se desprenden las siguientes conclusiones:
- AS: se ve superado por el resto, tanto en calidad de la solucin como en la velocidad de conver-
gencia hacia una buena solucin.
- EAS: se observa una fase de exploracin, pero rpidamente pasa a la fase de explotacin de las
mejores soluciones encontradas. Esto hace que aumente la velocidad de convergencia hacia
buenas soluciones, pero la calidad de las mismas es inferior a las obtenidas por el resto, excep-
tuando el AS.
- ASrank: tiene un comportamiento similar al anterior, pero consigue una exploracin ms diversifi-
cada y, por tanto, la fase de explotacin tarda ms tiempo en alcanzarse. Debido a esto la con-
vergencia es ms lenta, pero la calidad de las soluciones es mejor. En esta variante se aprecia es-
tancamiento, que se puede solucionar reinicializando el rastro de feromonas.
- MMAS: tiene la fase de exploracin ms larga debido a la inicializacin de las feromonas a un
valor cercano al mximo posible y una baja tasa de evaporacin, que produce que tarden en
aparecer diferencias entre rastros. Una vez se establecen diferencias es cuando aparece la fase
de explotacin. Gracias a la experiencia acumulada, se obtienen soluciones de mayor calidad,
pero con la contrapartida de que la velocidad de obtencin de soluciones de calidad sea menor.
- ACS: no tiene fase de exploracin, sino que se centra en explotar desde el principio la mejor so-
lucin encontrada a partir de pequeas variaciones de sta, estableciendo un valor elevado de
. Gracias a la actualizacin local de las feromonas, se favorece la exploracin de las elecciones
menos visitadas. La convergencia de este tipo de ACO es la ms rpida, debido a la poca explo-
racin que hace del espacio de soluciones.
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 35
Figura 4.3. Distancia media entre las soluciones en funcin del nmero de iteraciones para la instancia kroA100
de la librera TSPLIB. Usado el valor de los parmetros mostrados en la Tabla 4.1, excepto para = 2. Figura
adaptada de Ant Colony Optimization[4].
Figura 4.4. Desviacin porcentual respecto la solucin ptima respecto el tiempo de CPU para la instancia
rat783 de la librera TSPLIB. Usado el valor de los parmetros mostrados en la Tabla 4.1, excepto para = 5.
Figura adaptada de Ant Colony Optimization[4].
4.5. Aplicaciones
Los algoritmos ACO se pueden aplicar a un gran abanico de problemas de optimizacin. A conti-
nuacin se presentan las principales aplicaciones. Los trabajos citados en este apartado se han ex-
trado de Ant Colony Optimization[4], exceptuando las referencias de la seccin que trata sobre los
equilibrados de lneas de montaje.
36 Daniel Aparicio Guirao
Rutas
En este mbito, varios algoritmos han conseguido mejorar el estado del arte. En concreto, para el
problema de ordenacin secuencial (SOP) el algoritmo HAS-SOP consigui superar un algoritmo
gentico que hasta el momento haba obtenido los mejores resultados.
Por otra parte, para problemas de rutas de vehculos (VRP), el algoritmo ASrank-CVRPsav ha alcan-
zado el estado del arte para la versin capacitada, superando un algoritmo de bsqueda tab. Mien-
tras que para la variante del problema con ventanas temporales (VRPTW), el algoritmo MACS-VRPTW
tiene uno de los mejores rendimientos y, en el momento de su publicacin, consigui superar las
mejores soluciones para varias instancias.
Asignacin
En cuanto al problema de asignacin cuadrtica (QAP), la variante ANTS-QAP mejoraba los resul-
tados obtenidos hasta el momento, mediante bsqueda tab, para una clase de instancia duras ge-
neradas aleatoriamente, aunque con un tamao limitado ( = 40).
Para el problema de asignacin generalizado (GAP), el algoritmo MMAS-GAP tena uno de los me-
jores rendimientos cuando se public.
Secuenciacin
Para los problemas de job shop (JSP), open shop (OSP) y group shop (GSP), el algoritmo MMAS-HC-
GSP obtiene un rendimiento similar al estado del arte para el OSP, mientras que para el JSP slo lo
supera un algoritmo basado en la bsqueda de vecindarios. Para el GSP, comparado con una
bsqueda tab, se ve ligeramente superado en aquellas instancias prximas a las instancias del JSP,
pero la supera en aqullas cercanas a las del OSP.
Bautista y Pereira[9] proponen un algoritmo AS para el SALBP-1 (ver Seccin 5.3.2) con la novedad
de utilizar una regla heurstica diferente en cada hormiga de la colonia, usada para calcular el par-
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 37
metro informacin heurstica, y resolviendo el problema en sentido directo e inverso. Este algoritmo
lo aplican con xito sobre un problema real basado en una planta de ensamblaje de motocicletas,
superando una solucin previa basada en un procedimiento de programacin lineal entera mixta.
En otro trabajo de los mismos autores, proponen y resuelven el problema de equilibrado de lneas
con restricciones de espacio y tiempo (TSALBP) [10]. El algoritmo propuesto en el trabajo menciona-
do se aplica tambin al SALBP-1 (ver Apartado 5.3.2) obteniendo soluciones similares al mtodo
exacto SALOME[11], pero superndolo ampliamente en cuanto tiempo de computacin.
Otras aplicaciones
Michel & Middendorf disearon un algoritmo ACO para el problema de la supersecuencia comn
ms corta (SCSP), AS-SCSP, que ha demostrado ser uno de las heursticas con mejor rendimiento para
este problema, sobre todo con instancias estructuradas, que son las ms prximas a las aplicaciones
reales.
Para el problema de bin packing, la variante MMAS-BPP tiene uno de los mejores comportamien-
tos, llegando a obtener nuevas mejores soluciones para una coleccin de instancias duras del BPP.
38 Daniel Aparicio Guirao
La existencia de todos los procedimientos descritos hasta el momento nicamente se justifica por
su capacidad para obtener soluciones a los problemas donde se aplican. En este trabajo, se resuelve
un problema de equilibrado de lneas de montaje, en concreto la variante con operarios robotizados.
Antes de profundizar en esta variante, se hace una revisin del problema general.
5.1. Introduccin
En el mercado globalizado actual existen segmentos donde el volumen de la demanda alcanza ni-
veles muy elevados. Por ejemplo, en 2010, la produccin mundial de automviles de pasajeros as-
cendi a 58.478.810 unidades, segn datos de la Organisation Internationale des Constructeurs
dAutomobiles (OICA) [12]. Esta cifra significa que, durante ese ao, cada 1,85 segundos se lanzaba
una nueva unidad al mercado.
Para poder alcanzar estos niveles de produccin, los fabricantes deben contar con sistemas de
produccin de elevada capacidad como son las lneas de montaje. Por desgracia, la sofisticacin de
las lneas de montaje hace que generen unos costes elevados, cosa que no favorece la competitivi-
dad. Por tanto, es necesario que la eficiencia sea la mxima posible para disminuir los costes. En este
contexto, es donde aparece el problema de equilibrado de lneas de montaje que se describe en este
captulo.
Definicin 5.1. Las lneas de montaje estn compuestas por estaciones de trabajo, en cada una de
las cuales se realiza un parte del trabajo sobre el producto intermedio, dispuestas a lo largo de una
cinta que transporta el producto durante el procesado.
Este tipo de sistemas requieren altas inversiones de capital, con una dependencia directa segn el
grado de automatizacin de las estaciones. Un inconveniente que tienen es que suelen generar baja
satisfaccin del operario, producida por el alto grado divisin de las tareas y su continua repeticin.
Por los mismos motivos, las lneas de montaje son inflexibles. El mantenimiento es otro punto crtico,
ya que los fallos en las mquinas o en el abastecimiento de material pueden paralizar toda la lnea.
Pero a pesar de todo esto, el uso generalizado que se hace actualmente de las lneas demuestra su
efectividad, sobre todo cuando se trata de produccin de bienes estandarizados, cuya demanda es
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 39
estable, que requieren un alto volumen de produccin y que necesitan un aprovisionamiento conti-
nuo de material.
La eficiencia de las lneas pasa por una optimizacin de los recursos utilizados en la produccin
(operarios, maquinaria, tiempo). Por tanto, el problema de decisin de equilibrado de lneas de
montaje (ALBP, assembly line balancing problem) consiste en optimizar la asignacin de tareas a es-
taciones con respecto a algn objetivo respetando las restricciones consideradas.
Las siguientes definiciones, referentes a las lneas, pretenden aclarar el significado de algunos
trminos ya mencionados as como introducir otros que se usarn durante el presente trabajo.
Definicin 5.2. El montaje es el proceso de ensamblado de varias partes para crear un producto
final. Se caracteriza por los componentes que se requieren y el trabajo necesario para combinarlos.
Se dice que las unidades sin finalizar durante el montaje estn en proceso.
Definicin 5.3. Una tarea u operacin es una porcin indivisible del trabajo total contenida en el
proceso de montaje. El tiempo necesario para completar una tarea se llama tiempo de tarea o dura-
cin de tarea.
Definicin 5.4. Una estacin es un segmento de una lnea de montaje donde se realiza un cierto
nmero de tareas. El conjunto de tareas asignadas a una estacin se conoce como carga de la esta-
cin, mientras que la suma de los tiempos de tarea que forman la carga de la estacin es el tiempo de
estacin. Se dice que una estacin es ms temprana (tarda) que otra si est ms cerca del inicio (fi-
nal) de la lnea.
Definicin 5.5. El tiempo de ciclo () es igual a la inversa de la tasa de produccin (): = 1. Re-
presenta la cantidad mxima de tiempo disponible para la realizacin del trabajo asignado a una
estacin. La diferencia positiva entre el tiempo de ciclo y el tiempo de una estacin se denomina
tiempo muerto de la estacin.
Definicin 5.6. Las relaciones de precedencia o precedencias son las restricciones tecnolgicas que
hacen que el orden de realizacin de las tareas est parcialmente establecido. Estas relaciones se
pueden ilustrar mediante un grafo de precedencias que contiene un nodo para cada tarea y los arcos
(, ) entre los nodos si la tarea se debe realizar previamente a la tarea . Las duraciones de las tare-
as se representan como pesos en los nodos. El sentido directo del grafo es aqul en el que se consi-
deran las precedencias acorde al orden temporal en el que han de suceder y sentido inverso corres-
ponde al caso contrario.
40 Daniel Aparicio Guirao
Figura 5.1. Grafo de precedencias de la instancia bowman8[13], extrada de la librera de pruebas para los
SALBP.
Definicin 5.7. Se dice que la tarea es predecesora de la tarea si se debe completar antes que
, mientras que es sucesora de . La relacin de precedencia entre la tarea y la tarea es inmediata
si ninguna de las tareas sucesoras de es predecesora de , en caso contrario es transitiva. El conjun-
to de tareas precedentes (sucesoras) inmediatas, ( ), est formado por todas las tareas preceden-
tes (sucesoras) inmediatas de . El conjunto de tareas precedentes (sucesoras) transitivas, ( ),
est formado por todas las tareas precedentes (sucesoras) transitivas de .
Definicin 5.8. La estacin ms temprana (tarda), ( ), es la estacin primera (ltima) estacin
a la que se puede asignar la tarea sin violar las relaciones de precedencia.
Definicin 5.9. El equilibrado de una lnea es la asignacin de las tareas a las estaciones que re-
presenta una solucin factible del problema de equilibrado. Se caracteriza porque cada tarea se asig-
na a exactamente una estacin, ningn tiempo de estacin es superior al tiempo de ciclo y se cum-
plen las relaciones de precedencia y el resto de restricciones del problema.
En la actualidad, debido a las necesidades y requerimientos dispares que exige cada tipo de indus-
tria, existen pocas cadenas de montaje iguales, ya sea por la disposicin espacial, flujos de materia-
les, operarios El efecto que produce tal diferenciacin es la diversificacin de los ALBP propuestos
en la literatura[14]. A esta diversificacin, adems, hay que unirle las nomenclaturas y consideracio-
nes especficas que establecen los diferentes grupos de investigacin.
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 41
Por estos motivos, se ha propuesto una clasificacin con el fin de homogeneizar los problemas y
modelos de resolucin para poder compararlos entre s. Boysen, Fliedner y Scholl[3] establecen una
clasificacin segn las caractersticas del grafo de precedencias (), las caractersticas de las estacio-
nes y la lnea () y los objetivos a optimizar (). Esta nomenclatura se representa en forma de tripla
([||]) donde se describen las caractersticas del problema mediante smbolos. La clasificacin
completa con la nomenclatura correspondiente se muestra en el Anexo A.
El SALBP (simple assembly line balancing problem) es el problema ms bsico dentro de los equili-
brados de lneas de montaje. Las caractersticas del modelo del cual deriva el problema son las si-
guientes:
5.3.1. SALBP-F
A partir de las hiptesis de partida, en primer lugar, surge el problema de factibilidad consistente
en determinar si existe un equilibrado plausible para la combinacin dada de nmero de estaciones y
tiempo de ciclo, representada por (, ). El SALBP-F [||], como se denomina este problema, en caso
de obtener una respuesta positiva ha de proporcionar un equilibrado de la lnea.
Como se puede observar en el Modelo 5.1, el problema de factibilidad no precisa de una funcin
objetivo. Por tanto, el SALBP-F no es un problema de optimizacin, pero an as es la base para el
resto de problemas que se describen a continuacin.
42 Daniel Aparicio Guirao
Parmetros:
: nmero de tareas ( = 1, , ).
: nmero de estaciones ( = 1, , ).
: tiempo de ciclo.
: duracin de la tarea .
: conjunto de tareas precedentes inmediatas de la tarea .
Variables de decisin:
1 si la tarea se asigna a la estacin
= ( = 1, , ; = 1, , )
0 en caso contrario
Restricciones:
= 1 (5.1)
(5.2)
( ) 0 , ; (5.3)
{0,1} , (5.4)
Las restricciones 5.1 aseguran que cada tarea se asigne a una nica estacin. Las restricciones 5.2
limitan los diferentes tiempos de estacin por debajo del tiempo de ciclo. El cumplimiento de las
relaciones de precedencia se consigue con las restricciones 5.3. Por ltimo, las restricciones 5.4 indi-
can que las variables de decisin son binarias.
Modelo 5.1. Formulacin matemtica con variables de decisin binarias para el SALBP-F.
5.3.2. SALBP-1
El SALBP-1 [||], la versin ms estudiada de este tipo de problemas, surge de aadir al SALBP-F
el objetivo de minimizar el nmero de estaciones dado un tiempo de ciclo. En el SALBP-1, al fijar ,
automticamente se fija la tasa de produccin. Por tanto, se asemeja a la instalacin de una nueva
lnea de montaje, donde se puede estimar la demanda externa y, por tanto, se puede establecer una
tasa de produccin para abastecerla.
La formulacin del SALBP-F slo requiere dos modificaciones para adaptarla al SALBP-1. En primer
lugar, se introduce una funcin objetivo (ver Frmula 5.5). El nmero de estaciones deja de ser un
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 43
parmetro para pasar a ser una variable de decisin. Esto implica que se requiere una cota superior
(ver Frmula 5.7) que sustituya el parmetro en las restricciones 5.1-5.3 del Modelo 5.1.
[] = (5.5)
A pesar que el modelo matemtico no precisa de una cota inferior (ver Definicin 2.7), en la
prctica las cotas inferiores aportan incluso ms informacin de la solucin del problema que las
cotas superiores. Conocer una cota inferior del problema que se est resolviendo indica automtica-
mente que todas aquellas soluciones con un valor inferior a esta cota no son factibles y, por tanto,
son soluciones que no es necesario considerar.
= (5.6)
En cuanto a la cota superior ( ), se puede utilizar el nmero de tareas, suponiendo que cada
una de ellas se asigna a una estacin diferente (ver Frmula 5.7).
= (5.7)
5.3.3. SALBP-2
El SALBP-2 [||] se puede entender como el problema dual del SALBP-1, dentro de los trminos
del equilibrado de lneas de montaje. El objetivo del SALBP-2 es minimizar el tiempo de ciclo () dado
el nmero de estaciones (). Plantea, por lo tanto, la optimizacin de lneas de montaje existentes:
la instalacin posee un cierto nmero de estaciones ya equipadas y se desea mejorar su productivi-
dad, disminuir el tiempo de ciclo.
Para adaptar el Modelo 5.1 al SALBP-2, anlogamente a la SALBP-1, se aade una funcin objetivo
(ver Frmula 5.8) y el tiempo de ciclo se convierte en variable. Esto ltimo requiere una cota superior
para la solucin del problema (ver Frmula 5.10).
[] = (5.8)
44 Daniel Aparicio Guirao
De nuevo, se puede obtener una cota inferior () al tiempo de ciclo con la condicin de capaci-
dad mnima de la lnea ( ) y el tiempo de tarea mximo ( ) (ver Frmula 5.9).
= max , (5.9)
Una cota superior ( ) se deduce del caso extremo en que 1 estaciones estn ocupadas por
slo una de las 1 primeras tareas de menor duracin y la estacin restante por las tareas
de mayor duracin (ver Frmula 5.10).
= (5.10)
5.3.4. SALBP-E
El SALBP-E plantea el caso ms general de equilibrado de lneas de montaje simples ya que permi-
tiendo estudiar el caso en que el nmero de estaciones y el tiempo de ciclo puedan variar dentro de
un rango, [ , ] y [ , ] respectivamente. Normalmente, los valores mnimos estn
impuestos por el problema (por ejemplo, la capacidad de la lnea ha de ser tal que se puedan realizar
todas la tareas); por el contrario, el lmite superior del rango se justifica con criterios ajenos al pro-
blema, por ejemplo, el espacio disponible o el presupuesto.
= (5.11)
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 45
= (5.12)
= (5.13)
Aadiendo la funcin objetivo (ver Frmula 5.14) al Modelo 5.1 y convirtiendo en variables tanto
como se obtiene la formulacin matemtica del SALBP-E.
[] = (5.14)
Las cotas de este problema estn asociadas a las presentadas para las versiones 1 y 2. En primer
lugar, se puede calcular una cota superior ( ) de la eficiencia a partir de la cota inferior del SALBP-
1 (ver Frmula 5.6) para todos los tiempos de ciclo posibles (ver Frmula 5.15). De la misma forma se
obtiene una segunda cota superior ( ) a partir de la cota inferior del SALBP-2 (ver Frmula 5.9)
evaluada en el rango del nmero de estaciones factibles (ver Frmula 5.16).
= max [ , ] (5.15)
()
= max [ , ] (5.16)
()
De la misma forma que para las cotas superiores, es posible calcular cotas inferiores para la efi-
ciencia usando las cotas superiores () sobre para todos los tiempos de ciclo posibles
y las cotas superiores () para todos los valores del nmero de estaciones.
5.3.5. Complejidad
Segn la Definicin 2.4 y la Definicin 2.5 (ver Apartado 2.1), el SALBP-F es NP-completo, mientras
que las variantes 1, 2 y E de los SALBP son NP-duras.
Antes de pasar a describir los diferentes procedimientos de resolucin, cabe destacar una propie-
dad importante de los problemas de equilibrado de lneas de montaje: la solucin del problema utili-
zando el grafo de restricciones en sentido inverso tambin lo es del problema directo si se invierte el
orden de las estaciones en la solucin. Esto, sin embargo, no implica que un mismo mtodo aplicado
a los dos sentidos genere la misma solucin para ambos. Por este motivo, es usual que los procedi-
46 Daniel Aparicio Guirao
Los procedimientos de resolucin estn basados en dos tipos de esquemas: esquemas orientados
a las estaciones o esquemas orientados a las tareas.
En el primer caso, la solucin se construye a partir de la primera estacin. Las tareas se aaden a
esta estacin hasta que est llena, entonces se cierra esta estacin y se abre la siguiente. Se procede
de esta manera hasta completar la solucin. Los esquemas orientados a las tareas asignan la tarea a
la estacin ms temprana que se pueda asignar.
Las referencias mencionadas en este apartado se han extrado del trabajo State-of-the-art exact
and heuristic solution procedures for simple assembly line balancing, de Scholl y Becker[15].
Mtodos exactos
Entre los mtodos exactos la gran mayora de los algoritmos propuestos en la literatura estn ba-
sados en B&B o en programacin dinmica, con pocos procedimientos basados en programacin
lineal. Debido a la complejidad de los problemas de equilibrado, en ambos tipos es necesario reducir
en todo lo posible el esfuerzo de enumeracin del algoritmo para que ste sea eficiente, sobre todo
cuando se trata de instancias con muchas tareas.
Entre todos destaca el procedimiento SALOME-1[11], para el SALBP-1, del tipo B&B orientado a
las estaciones basado en el clculo de cotas inferiores locales para cada nodo generado, incluyendo
reglas de dominancia y de reduccin as como una resolucin conjunta de los dos sentidos del grafo
de precedencias.
A pesar de tener mayor aplicacin prctica, no existen tantas publicaciones respecto a la resolu-
cin del SALBP-2 como para el SALBP-1. Muchos mtodos proponen encontrar el tiempo de ciclo
mnimo a base de resolver de forma iterativa la instancia (, ) del SALBP-F asociada. Existen pocos
procedimientos B&B para este problema, entre ellos sobresale el SALOME-2, la adaptacin para el
SALBP-2 del SALOME-1 mencionado arriba.
Por ltimo, como en el caso anterior, el SALBP-E se puede resolver con mtodos de bsqueda a
travs de la instancia del SALBP-F asociada para los valores (, ) fijados. No existen mtodos direc-
tos para el SALBP-E debido a la dificultad de dirigir la bsqueda hacia reas del espacio prometedo-
ras. La resolucin del SALBP-F se puede llevar a cabo adaptando los procedimientos existentes para
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 47
el SALBP-1 y el SALBP-2.
Heursticas
Las propuestas para la resolucin del problema de equilibrado simple mediante heursticas son
abundantes, aunque las principales se pueden dividir en mtodos constructivos y metaheursticas.
Los procedimientos basados en reglas de prioridad son los mtodos constructivos ms utilizados,
sobre todo para el SALBP-1. Las principales reglas de prioridad para la asignacin de las tareas son las
siguientes:
- La duracin de la tarea: .
- El nmero de sucesoras de la tarea: | |.
- El peso posicional de la tarea: = + .
Para este tipo de procedimientos, los experimentos computacionales muestran que los esquemas
orientados a las estaciones obtienen mejores resultados que los esquemas orientados a las tareas.
Adems, es posible mejorar los resultados aplicando las siguientes modificaciones:
- Construccin bidireccional flexible: las estaciones se cargan tanto hacia adelante como hacia
atrs simultneamente.
- Reglas de prioridad dinmicas, que adaptan la prioridad en funcin de la solucin parcial actual.
- Aplicar reglas de prioridad diferentes o estocsticas varias veces para encontrar varias solucio-
nes y escoger la mejor.
- Reglas flexibles, que intentan aplicar aquellas reglas que mejor resuelven ciertas instancias.
- Tcnicas de reduccin, que reducen el tamao del problema a base de pruebas lgicas.
Por otro lado, los procedimientos de enumeracin incompletos son otro tipo de procedimientos
constructivos aproximados. En este caso, tambin estn extendidos para el SALBP-2 a parte del
SALBP-1. Entre todos ellos destaca la heurstica propuesta por Hoffmann, donde en cada iteracin se
genera una nica rama del procedimientos B&B orientado a las estaciones; y las enumeraciones
truncadas, donde se aplica un mtodo exacto como una heurstica aadiendo reglas de descarte o
48 Daniel Aparicio Guirao
Finalmente, tambin se cuentan entre los mtodos constructivos aquellos procedimientos que
transforman la instancia, ya sea del SALBP-1, del SALBP-2 o del SALBP-E, a una instancia equivalente
del SALBP-F y comprueban la factibilidad de la solucin.
Las metaheursticas ms aplicadas a los problemas de equilibrado simples han sido los algoritmos
genticos, la bsqueda tab, el templado simulado y los algoritmos de hormigas.
La eficiencia de las heursticas para los equilibrados simples no consigue llegar a los niveles alcan-
zados por los mtodos de enumeracin completos. Esto puede ser debido a tres razones, tal y como
apuntan Bautista y Pereira[16]:
A pesar de esto, los mtodos aproximados y, en concreto, las metaheursticas siguen siendo un
rea de investigacin importante para los problemas de equilibrados generales, descritos a continua-
cin.
Las hiptesis de partida del SALBP son demasiado restrictivas y, por tanto, su aplicacin a casos
reales est limitada. Como consecuencia, para afrontar los problemas que se presentan en la realidad
se deben relajar dichas hiptesis, con lo que se obtiene los problemas generales de equilibrado de
lneas de montaje o GALBP (General Assembly Line Balancing Problem).
La variedad de GALBP que se pueden plantear es inmensa, ya que cada modificacin sobre el
SALBP se puede considerar una versin diferente. Debido a esta extensin, el estado del arte, en
comparacin con los problemas simples, es difuso. A continuacin se citan las variaciones principales
agrupadas segn la modificacin que se realiza sobre el problema simple. Este apartado est basado
en un estudio de Becker y Scholl[14].
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 49
Las lneas de montaje, normalmente, requieren altas inversiones de capital. Adems, a corto pla-
zo, hay que tener en cuenta los costes operativos asociados (sueldos, materiales). Aunque estos
ltimos estn directamente relacionados con el nmero de estaciones y el tiempo de ciclo, existen
casos en los que se ha de tener en cuenta los costes y/o los beneficios explcitamente.
Rosenberg y Ziegler fijan como objetivo minimizar el salario total asociado a operarios de las esta-
ciones, asumiendo que cada una de ellas causa un coste salarial por unidad de tiempo
([| |]). Amen extiende el problema con costes de capital, considerando un coste fijo por
cada estacin ([| |]).
En caso de querer reducir el tiempo de ciclo por debajo del tiempo de tarea mximo, es necesario
introducir algn tipo de paralelismo en la cadena de montaje para conseguirlo. Pinto, Dannenbring y
Khumawala presentan un modelo donde se permite la duplicidad de estaciones, duplicando as el
tiempo de ciclo local de la estacin ([||]).
Tambin es posible reducir los tiempos de tarea, realizndolas en paralelo en varias estaciones. En
otro trabajo de los mismos autores, se considera este concepto, permitiendo la asignacin de tareas
a varias estaciones, es decir, las tareas se realizan alternativamente en estaciones diferentes segn el
ciclo ([||]).
El paralelismo tambin se puede interpretar como la asignacin de varios operarios a una misma
estacin. Un efecto similar se consigue agrupando estaciones manejadas por un grupo de operarios.
Estas estaciones agregadas tienen un tiempo de ciclo disponible mltiple del original y los operarios
pueden realizar rotaciones.
Cabe destacar que los casos expuestos y, en general, cualquier paralelismo incurre en unos costes
superiores. Por tanto, los modelos que se proponen deberan, al menos como objetivo secundario,
tenerlos en cuenta.
El problema de equilibrado de lneas de montaje con forma de U (UALBP) fue propuesto y mode-
lado por Miltenburg y Wijngaard ([||]). Aqu, la lnea est dispuesta en forma de U estrecha lo que
50 Daniel Aparicio Guirao
permite a los operarios trabajar simultneamente en partes diferentes del proceso productivo.
La diferencia principal con el SALBP radica en que una estacin puede contener tareas cuyas pre-
cedentes se realizan en estaciones posteriores, siempre y cuando las precedencias se hayan cumpli-
das cuando llega el producto intermedio por segunda vez a dicha estacin.
Se definen tres versiones del UALBP, anlogas a las versiones del SALBP:
Todas las generalizaciones presentadas en esta seccin se pueden aplicar a los UALBP.
Bartholdi presenta los problemas relacionados con las lneas de montaje con trabajo en ambos la-
dos. Agrupa las tareas segn si se realizan por el lado izquierdo o el derecho de la instalacin, intro-
duciendo restricciones tarea-posicin y tarea-tarea ([, | |]).
Pastor y Corominas describen una lnea real de un producto de gran tamao y sin movilidad, don-
de las tareas se llevan a cabo tanto en la parte derecha e izquierda como en la superior e inferior, con
la restriccin que las operaciones de partes opuestas no pueden compartir estacin
([, , , || ]).
Hasta el momento se han considerado tiempos de tarea deterministas, pero en las lneas reales
stos suelen variar en cada ciclo, especialmente cuando los operarios son seres humanos. Este hecho
se puede incorporar a los modelos asumiendo una distribucin de probabilidad para dichos tiempos.
En el caso de operarios humanos es suficientemente realista una distribucin normal. Por otro la-
do, se pueden establecer tiempos de tarea con factores de seguridad incluidos, es decir, se asegura
con cierta probabilidad que el tiempo de tarea no supera dicho valor, por ejemplo, como hace Ca-
rraway en uno de sus trabajos ([ ||]).
A la hora de planificar estas lneas, surgen diversos problemas de decisin a medio plazo: nmero
y longitud de las estaciones, tasa de produccin o tiempo de ciclo as como las cargas de trabajo. La
mayora de estas decisiones forman parte del MALBP (Mixed-model Assembly Line Balancing Pro-
blem), problema anlogo al SALBP con la dificultad aadida de que cada producto tiene un grafo de
precedencias propio y donde la duracin de las tareas puede ser diferente dependiendo del modelo.
A corto plazo, hay que tener en cuenta un problema de secuencia de modelo (MSP). A partir de
un equilibrado dado, se busca la secuencia de produccin de modelos que cumpla la demanda dada
por el programa de produccin a corto plazo y sea ptima con respecto a algn objetivo, mayorita-
riamente minimizando alguna medida de ineficiencia producida por sobrecargas de trabajo y/o tiem-
pos muertos.
Principalmente, se han propuesto dos enfoques para la resolucin de los MALBP. El primero de
ello es la reduccin a problemas de equilibrado simples para aprovechar los mtodos existentes; ya
sea teniendo en cuenta tiempos de tarea medios[11] o separando el MALBP en P problemas inde-
pendientes, donde P es el nmero de modelos. Estas reducciones tienen el inconveniente de generar
equilibrados ineficientes al no tener en cuenta la variabilidad de las duraciones de las tareas.
El enfoque del equilibrado horizontal introduce dicha variabilidad como objetivo secundario. De
esta manera se consiguen equilibrados que reducen los tiempos muertos y las sobrecargas de trabajo
52 Daniel Aparicio Guirao
Otro tipo de problemas aparecen al tener en cuenta la eleccin de los equipos necesarios para la
realizacin de las tareas y la influencia que tienen sobre stas, ya sea porque reducen el tiempo de
operacin o incluso porque las eliminan del proceso productivo. Cuando estas decisiones se conectan
con el problema de equilibrado aparecen los problemas de diseo de lneas de montaje.
El problema de equilibrado de lneas de montaje robotizadas o RALBP (robotic assembly line ba-
lancing problem), planteado por Rubinovitz y Bukchin[1], tienen en cuenta un conjunto de robots que
se deben asignar a estaciones, donde los tiempos de tarea dependen del robot que la realiza
([||]).
El siguiente captulo contiene una descripcin detallada de este problema, ya que su resolucin es
el motivo de este estudio.
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 53
6. RALBP
El uso de robots garantiza un aumento del grado de automatizacin de las lneas de produccin
debido a que son capaces de realizar tareas repetitivas a gran velocidad, disminuir el nmero de
errores y aumentar la precisin. Tambin se caracterizan por su adaptabilidad, pueden realizar
mltiples operaciones gracias a la posibilidad del intercambio de tiles.
6.1. Modelo
El problema de equilibrado de lneas de montaje robotizadas (RALBP, Robotic Assembly Line Ba-
lancing Problem) surge cuando se consideran diferentes eficiencias de los robots a la hora de realizar
las diferentes tareas que componen el ensamblaje que se lleva a cabo en la lnea. Rubinovitz y Buk-
chin[1] fueron los primeros en formular este problema. Las hiptesis que definen el RALBP son las
siguientes:
- RALBP-F: dado un nmero de estaciones y un tiempo de ciclo, determinar si existe una asigna-
cin factible de tareas y robots a estaciones.
- RALBP-1: el objetivo es minimizar el nmero de estaciones fijado el tiempo de ciclo.
- RALBP-2: el objetivo es minimizar el tiempo de ciclo fijado el nmero de estaciones.
- RALBP-E: el objetivo es maximizar la eficiencia de la cadena de montaje.
En este trabajo se resuelve la variante RALBP-2. Esta versin del problema se ajusta a la situacin
industrial en que se realiza una redistribucin de cargas que conlleva un reequilibrado de la lnea, por
cambios en el mix de produccin o del proceso productivo. Se supone que la lnea ya contaba con un
cierto nmero de robots trabajando en ella y todos ellos estarn disponibles para el nuevo equilibra-
do. Por tanto, el nmero de estaciones queda fijado automticamente por el nmero de robots dis-
ponibles y se pretende minimizar el tiempo de ciclo.
El modelo matemtico del RALBP-2 incorpora dos modificaciones respecto el modelo del SALBP-2.
La primera diferencia reside en el parmetro duracin de la tarea, que en los RALBP depende del
robot que la realiza. El otro cambio es la adicin de una variable de decisin que indica a qu esta-
cin se asigna cada robot; esta modificacin se produce porque el dominio de soluciones est forma-
do por dos espacios: la asignacin de una tarea a una estacin y la asignacin de un robot a una esta-
cin. El Modelo 6.1 presenta el modelo matemtico de programacin no lineal para el RALBP-2. En el
Modelo 6.2 se muestra en modelo de programacin lineal, en que slo se incluyen los cambios reali-
zados respecto el Modelo 6.1.
Parmetros:
: nmero de tareas (, = 1, , ).
: nmero de estaciones ( = 1, , ) y robots ( = 1, , ).
: duracin de la tarea realizada por el robot .
: conjunto de tareas predecesoras inmediatas de la tarea .
Variables de decisin:
1 si la tarea se asigna a la estacin
= .
0 en caso contrario
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 55
[] = (6.1)
Restricciones:
(6.2)
= 1 (6.3)
= 1 (6.4)
= 1 (6.5)
( ) 0 , ; (6.6)
{0,1} , (6.7)
{0,1} , (6.8)
La funcin objetivo (ver Frmula 6.1) consiste en minimizar el tiempo de ciclo . Ningn tiempo de
estacin puede ser superior al tiempo de ciclo , tal y como expresan las restricciones 6.2. Las restric-
ciones 6.3 aseguran que cada tarea se asigna a una nica estacin. La asignacin de un solo robot a
cada estacin se consigue con las restricciones 6.4, mientras que las restricciones 6.5 imponen que
cada robot se asigna a una nica estacin. Las restricciones 6.6 representan las relaciones de prece-
dencia entre las tareas, asegurando que una tarea precedente de otra no se asigna a una estacin
posterior. Por ltimo, las restricciones 6.7 y 6.8 indican que las variables de decisin y , respec-
tivamente, son binarias.
Modelo 6.1. Modelo matemtico para el RALBP-2.
56 Daniel Aparicio Guirao
Variables de decisin:
1 si la tarea se asigna a la estacin y se realiza en el robot
= .
0 en caso contrario
Restricciones:
(6.9)
= 1 (6.10)
( ) 0 , (6.11)
0 , , (6.12)
{0,1} , , (6.13)
Para convertir el modelo presentado ms arriba es necesario transformar las restricciones 6.2 en
restricciones lineales. Para ello se crea la variable que permite que las restricciones 6.9 (anlogas
a las restricciones 6.2) sean lineales. La introduccin de la variable obliga a agregar las restriccio-
nes 6.12, que aseguran que las tareas se asignen a la pareja robot-estacin correcta. La modificacin
de la variable tambin obliga a aadir las restricciones 6.10, 6.11 y 6.13, que sustituyen a las res-
tricciones 6.3, 6.6 y 6.7, respectivamente. La funcin objetivo (ver Frmula 6.1) y las restricciones 6.4,
6.5 y 6.8 se mantienen igual que en el Modelo 6.1.
Modelo 6.2. Modelo lineal para el RALBP-2.
Una cota inferior para este problema se puede obtener de forma anloga a cmo se obtiene para
el SALBP-2 (ver Frmula 5.9). En el RALBP-2 las duraciones de las tareas y, por tanto, la capacidad de
la lnea dependen de la asignacin de robots a las estaciones. Entonces para calcular la cota es nece-
sario suponer que las tareas las realizar el robot ms favorable, es decir, el robot que minimiza la
duracin de las tareas (ver Frmula 6.14).
{ }
(6.14)
= { } ,
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 57
Levitin, Rubinovitz y Shnits[17] presentan un algoritmo gentico para el RALBP-2 con dos proce-
dimientos alternativos, uno recursivo y otro consecutivo, para asignar las tareas y los robots a las
diferentes estaciones, junto con un procedimiento de intercambio como bsqueda local. A partir de
soluciones factibles, generadas mediante operaciones de cruce y mutacin, la asignacin recursiva
consiste en dividir una secuencia de operaciones factible respecto a las relaciones de precedencia en
tantas partes como estaciones ha de tener la solucin de manera que la carga de cada estacin est
lo ms equilibrada posible, para luego asignar los robots minimizando el tiempo de ejecucin total. El
procedimiento consecutivo, tambin a partir de una secuencia de operaciones factible respecto a las
relaciones de precedencia, intenta asignar el mximo nmero de actividades a cada robot sin superar
el tiempo de ciclo preestablecido, que se incrementa en uno si no se encuentra una asignacin facti-
ble. Los resultados expuestos por estos autores muestran que el segundo procedimiento consigue
mejores soluciones. Tambin comparan su algoritmo GA con el procedimiento B&B de Rubinovitz y
Buckchin[1] mostrando la superioridad del primero, tanto en calidad de soluciones obtenidas como
en tiempo de clculo.
Gao, Sun, Wang y Gen[18] proponen un GA hbrido aplicado sobre el RALBP-2. En este algoritmo
se generan soluciones mediante los procedimientos clsicos de los algoritmos genticos (ver Aparta-
do 3.3), para luego realizar hasta cinco bsquedas locales implementadas como un procedimiento
VNS. Para evaluar el rendimiento del procedimiento propuesto, comparan los resultados con un
software de optimizacin estndar (OPL), al cual supera tanto en calidad como en rapidez.
En este trabajo se ha escogido utilizar un ACO para la resolucin del RALBP-2. Las relaciones de
precedencia y los tiempos de tarea dependientes de cada robot hacen que el espacio de soluciones
sea heterogneo respecto a la calidad de las soluciones, es decir, se pueden encontrar buenas solu-
ciones en zonas del espacio alejadas entre s. Por este motivo, un algoritmo de carcter constructivo
estocstico como los ACO tiene potencial para explotar esta caracterstica de los RALBP.
Otro motivo para la eleccin de los algoritmos de hormigas es que han conseguido buenos resul-
tados cuando se han aplicado a los problemas de equilibrado, tanto en los problemas simples como
en casos ms generales. A pesar de ello todava no se aplicado a la resolucin de RALBP, lo que supo-
ne un aliciente para la implementacin.
58 Daniel Aparicio Guirao
La eleccin del ACO tambin es una novedad por el doble espacio de bsqueda que se trata de re-
solver: la asignacin de tareas a estaciones, que es la interpretacin de un empaquetado, y la asigna-
cin de robots a las estaciones, un problema de asignacin.
A continuacin se realiza una descripcin detallada del algoritmo ACO propuesto, al cual se ha
nombrado RALBP-MMAS.
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 59
7. RALBP-MMAS
La estructura del RALBP-MMAS es la estructura tpica de los algoritmos ACO (ver Algoritmo 7.1).
En primer lugar, se produce una fase de inicializacin (ver Apartado 7.1) de los datos que necesita el
algoritmo para funcionar. Finalizada esta fase, se inicia un bucle de iteraciones donde, sucesivamen-
te, se construyen soluciones (ver Apartado 7.2) y se actualiza el rastro de feromonas (ver Apartado
7.3). El algoritmo finaliza cuando se cumple alguno de los criterios de finalizacin (ver Apartado 7.4).
1 procedure ACO {
2 InicializarDatos
3 do {
4 ConstruirSoluciones
5 ActualizarFeromonas
6 } while (not CriteriosFin)
7 }
Algoritmo 7.1. Pseudo-cdigo del algoritmo RALBP-MMAS en las variantes ACO.
Para la construccin de las soluciones se emplea un esquema orientado a las estaciones (ver Apar-
tado 5.3.6). Otra caracterstica del proceso constructivo es que las soluciones se construyen en el
sentido directo del grafo de precedencias y en el sentido inverso alternativamente.
En la construccin de soluciones se incluye una bsqueda local para la mejora de las soluciones.
La bsqueda local consiste en el intercambio de robots entre estaciones y el movimiento de tareas
60 Daniel Aparicio Guirao
asignadas a la estacin crtica (ver Definicin 7.1). Como los procesos de bsqueda local afectan ne-
gativamente al rendimiento y, en el caso de los equilibrados, pueden no aportar una mejora palpable
de las soluciones, se opta por crear dos procedimientos alternativos en los que se modifica el punto
de aplicacin de la bsqueda local. En un caso se aplicar la bsqueda local justo despus de que
cada hormiga genere una solucin completa y, en el otro caso, se aplicar sobre la mejor solucin de
la iteracin, cuando toda la colonia de hormigas ha finalizado de generar las soluciones.
Definicin 7.1. La estacin crtica es la estacin del equilibrado con la carga mxima de trabajo y,
por tanto, la que define el tiempo de ciclo.
Los dos tipos de rastros de feromonas propuestos combinados con los dos puntos diferentes don-
de se produce la mejora de la solucin hacen surgir 4 versiones diferentes del algoritmo RALBP-
MMAS (ver Tabla 7.1).
Si se modifica el punto de vista, se puede interpretar la estructura del RALBP-MMAS como un ge-
nerador de soluciones que es posible incluir en otros procedimientos. Desde esta perspectiva, se
decide incluirlo en un procedimiento de templado simulado (ver Apartado 3.1), creando as un pro-
cedimiento hbrido. Esta hibridacin servir para comprobar si existe una mejora del rendimiento.
Para el procedimiento hbrido tambin se consideran las cuatro versiones presentadas en la Tabla
7.1. De esta manera, el procedimiento RALBP-MMAS estar formada por ocho variantes diferentes.
Para diferenciar las ocho propuestas, se usar la nomenclatura ACO(-), para referirse a las versiones
del algoritmo no hbrido, y SA+ACO(-), para el algoritmo hbrido. Cuando es necesario diferenciar
entre una de las cuatro versiones se usa el sufijo - para designarlas.
En este captulo se realiza una descripcin completa de las fases del algoritmo RALBP-MMAS para
la variante ACO-1: la fase de inicializacin, el proceso constructivo, la bsqueda local y la actualiza-
cin del rastro de feromonas. Posteriormente, se describen las modificaciones que se producen en
las otras siete variantes del algoritmo: diferencias entre versiones y diferencias entre variantes ACO y
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 61
SA+ACO. El captulo finaliza con la explicacin de los detalles de la implementacin de todas ellas. A
continuacin se expone la nomenclatura que se usa en el resto del captulo:
: nmero de tareas (, = 1, , ).
: nmero de estaciones ( = 1, , ) y robots ( = 1, , ).
[]: duraciones de cada una de las tareas cuando se realizan por cada uno de los robots.
: duracin de la tarea realizada por el robot .
: carga de la estacin .
: carga de la estacin crtica.
: conjunto de tareas predecesoras transitivas de la tarea .
[]: relaciones de precedencia transitivas entre todas las tareas.
1 si la tarea es precedente transitiva de la tarea
= .
0 en caso contrario
: nmero de tareas precedentes transitivas de la tarea .
: nmero de tareas sucesoras transitivas de la tarea .
: nmero de hormigas de la colonia ( = 1, , ).
: factor de evaporacin del rastro de feromonas.
[0]: rastro de feromonas entre las estaciones y los robots.
[1]: rastro de feromonas entre las tareas y las estaciones.
[2]: rastro de feromonas entre las tareas y los robots.
[3]: rastro de feromonas entre las tareas, las estaciones y los robots.
0 : valor del rastro de feromonas entre la estacin y el robot .
1 : valor del rastro de feromonas entre la tarea y la estacin .
2 : valor del rastro de feromonas entre la tarea y el robot .
3 : valor del rastro de feromonas entre la tarea , la estacin y el robot .
: valor mximo del rastro de feromonas.
: valor mnimo del rastro de feromonas.
[]: informacin heurstica sobre la asignacin tarea-robot.
: valor de la informacin heurstica entre la tarea y el robot cuando se considera el grafo de
precedencias en el sentido directo.
: valor de la informacin heurstica entre la tarea y el robot cuando se considera el grafo de
precedencias en el sentido inverso.
, , , : parmetros de ponderacin para los valores del rastro de feromonas.
: valor de ponderacin de la informacin heurstica.
62 Daniel Aparicio Guirao
: cota inferior.
[]: conjunto de soluciones de la colonia de hormigas.
[ ]: solucin construida por la hormiga .
: solucin parcial construida por la hormiga .
_ : mejor solucin construida en la iteracin en curso.
: mejor solucin construida hasta el momento.
: valor de la solucin en curso.
_ : valor de la mejor solucin construida en la iteracin.
: valor de la mejor solucin construida hasta el momento.
: valor de la solucin inicial.
: nmero de iteraciones sin mejora de .
: probabilidad de asignar el robot a la estacin .
: probabilidad de asignar la tarea a la estacin cuando sta tiene asignado el robot .
(): estacin ms temprana a la que se puede asignar la tarea sin violar las relaciones de pre-
cedencia.
(): estacin ms tarda a la que se puede asignar la tarea sin violar las relaciones de prece-
dencia.
Durante esta fase del algoritmo, se inicializan todos los parmetros y variables utilizados durante
el procedimiento. Tal y como se muestra en el Algoritmo 7.2, la estructura de esta fase se divide en
tres partes. En primer lugar, se leen todos los datos que definen la instancia que se va a resolver (ver
Apartado 7.1.1). Tras ello, se inicializa la colonia de hormigas artificiales as como la simulacin del
rastro de feromonas (ver Apartado 7.1.2). Por ltimo, se programan las variables de trabajo del algo-
ritmo que contienen la informacin sobre los resultados del procedimiento (ver Apartado 7.1.3).
1 procedure InicializarDatos {
2 LecturaInstancia
3 InicializarAC
4 InicializarVariables
5 }
Algoritmo 7.2. Pseudo-cdigo de inicializacin de las versiones ACO del RALBP-MMAS.
Una instancia para el RALBP-II est formada por los siguientes elementos:
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 63
Si se da el caso que el robot no puede realizar la tarea , entonces la duracin de dicha tarea
cuando se realiza en aquel robot se considera 0 ( = 0).
Las relaciones de precedencia se representan por una dupla de valores (, ) que indican que la ta-
rea es predecesora inmediata de la tarea , entonces = 1. Para la construccin de la matriz de
precedencias transitivas ([]) es necesario incluir las relaciones de precedencia transitivas. La tarea
es precedente transitiva de la tarea si es precedente de alguna tarea precedente de , entonces
= 1; en caso contrario, = 0.
Una vez se conocen las duraciones de las tareas [] ya es posible calcular la cota inferior () del
problema (ver Frmula 6.14). La cota inferior en el RALBP-MMAS se usa como tiempo de ciclo inicial
del procedimiento. Tambin se utiliza para el clculo de diversos parmetros, gracias a la informacin
que aporta sobre la calidad de una solucin cuando se compara con ella.
A continuacin se calcula la informacin heurstica ([]) necesaria para la eleccin de las tareas.
Para el clculo de dicha informacin se ponderan dos condiciones tericamente atractivas para la
eleccin de la tarea: la duracin respecto el resto de robots y el nmero de relaciones de prece-
dencia[19]. En el sentido directo ( ) se consideran el nmero de tareas sucesoras, , de la tarea
(ver Frmula 7.1), mientras que en el sentido inverso ( ), el nmero de tareas precedentes,
(ver Frmula 7.2).
{ }
= + = 1, , ; = 1, , (7.1)
{ } { }
{ }
= + = 1, , ; = 1, , (7.2)
{ } { }
En ambas ecuaciones, el primer trmino crece conforme disminuye el tiempo de tarea en el ro-
bot, ponderando esta duracin entre el resto de los robots. El segundo trmino se usa para otorgar
prioridad a aquellas tareas que permiten asignar un mayor nmero de tareas en la siguiente itera-
64 Daniel Aparicio Guirao
cin, se usa su relacin con el mximo para equilibrar su valor con el primer trmino.
Para definir los individuos de la colonia de hormigas, es necesario establecer el nmero de com-
ponentes que la formarn (). Cada una de las hormigas tiene la funcin de construir una solucin
([ ]) en cada iteracin del procedimiento, lo que significa que [ ] est compuesto por una asigna-
cin de tareas a las estaciones y una asignacin de robots a las estaciones, tal y como corresponde al
espacio de soluciones del RALPB-2.
Respecto el rastro de feromonas, en la variante ACO-1, se usa un rastro compuesto formado por
tres rastros simples: un rastro estacin-robot ([0]), un rastro tarea-estacin ([1]) y un rastro tarea-
robot ([2]). El doble rastro [1] y [2] sobre las tareas permite ponderar la eleccin de la tarea de
forma independiente respecto la estacin y el robot.
Como se est implementando la versin MMAS, se definen los parmetros para el valor mximo
( ) y mnimo ( ) del rastro de feromonas en un punto. El valor (ver Frmula 7.3) est
definido como funcin inversa de la mejor solucin conocida ( ); por tanto, con la mejora de la
= (7.3)
=
(7.4)
(7.5)
= + {(0,01 ), 1}
La definicin del rastro de feromonas artificial se completa con el parmetro factor de evapora-
cin () y los parmetros de ponderacin utilizados para calcular la probabilidad de eleccin. En este
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 65
Las principales variables utilizadas en el RALBP-MMAS son aquellas relacionadas con el almace-
namiento de las asignaciones de tareas y de robots a las estaciones: las soluciones que construyen
cada una de las hormigas ([ ]), la mejor solucin de la iteracin en curso ( _ ) y la mejor
solucin obtenida hasta el momento en el global del procedimiento ( ). Cada una de estas
variables est compuesta por una asignacin de tareas y de robots a las estaciones.
La generacin de soluciones es el ncleo del RALBP-MMAS, aqu cada una de las hormigas de la
colonia construye soluciones factibles de la instancia planteada basndose en los diferentes rastros
de feromonas que se tienen en cuenta.
Para construir una solucin se convierte la instancia que se pretende resolver en la instancia del
RALBP-1 equivalente, es decir, se fija el tiempo de ciclo () y se buscan soluciones con estaciones
como mximo. Si no se halla ninguna solucin factible, se incrementa y se vuelve a iniciar la cons-
truccin. Este proceso se repite hasta que la hormiga ha generado una solucin factible ([ ]).
La construccin se realiza utilizando un esquema orientado a las estaciones: se abre la primera es-
tacin ( = 1) y se asignan sucesivamente el mximo nmero de tareas hasta que la estacin no ad-
mite ms carga, entonces se abre la siguiente estacin ( + 1). Este proceso de apertura y carga de
estaciones se repite hasta que se han asignado todas las tareas. Se ha optado por este tipo de es-
quema porque se han obtenido mejores resultados en procedimientos constructivos para el SALBP-1
(ver Apartado 5.3.6). A pesar que aqu se resuelve un equilibrado del tipo 2, cabe destacar que el
66 Daniel Aparicio Guirao
Otra caracterstica del proceso de generacin de soluciones es que la mitad de la colonia de hor-
migas genera soluciones teniendo en cuenta el grafo de precedencias en sentido directo y la otra
mitad, en sentido inverso. De esta forma se consigue una mayor exploracin del espacio de solucio-
nes.
1 procedure ConstruirSoluciones {
2 + 1
3 for ( 1; ; + 1) {
4 {(0,01 ), 1}
5 0
6 do {
7 0
8 1
9 0
10 AbrirEstacion()
11 while (( < ) and ( = 1)) {
12 if (TareasCandidatas) {
13 EscogerTarea
14 + 1
15 }
16 else {
17 AbrirEstacion()
18 }
19 }
20 if ( < ) {
21 = 0
22 2 {(0,01 ), 1}
23 }
24 if ( = 0) {
25 + {(0,01 ), 1}
26 }
27 } while ( = 0)
28 BusquedaLocal([ ])
29 ComprobarMejor
30 }
31 }
Algoritmo 7.3. Pseudo-cdigo para la generacin de soluciones.
Cada vez que una hormiga de la colonia empieza a construir su solucin el tiempo de ciclo se fija
segn la Frmula 7.6 (ver Algoritmo 7.3, lnea 4). Inicialmente a se le da valor (ver
Frmula 7.5).
= (0,01 ), 1 (7.6)
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 67
A corto plazo, este enfoque tiende a ralentizar la velocidad de mejora de la solucin en las fases
iniciales porque se parte con una bsqueda prxima a la cota inferior unido a que los decrementos
respecto a la mejor solucin son pequeos. A largo plazo permite exploraciones ms realistas, ya que
el margen de mejora de la solucin es menor y se necesitan disminuciones de ms ajustadas.
Una de las caractersticas de una solucin ptima es que no haya ninguna estacin vaca, ya que
siempre se podra usar una estacin vaca para descargar la estacin crtica (ver Definicin 7.1) y as
disminuir el tiempo de ciclo. Como consecuencia el tiempo de ciclo usado se puede disminuir porque
no es ptimo. Por tanto, al finalizar la solucin se comprueba que el nmero de estaciones de la so-
lucin no sea inferior al nmero de estaciones de la instancia (ver Algoritmo 7.3, lneas 20-23), en
caso afirmativo, con la intencin de mejorar la solucin, sta se marca como no factible, a pesar de
serlo, y se disminuye (ver Frmula 7.7).
2 {(0,01 ), 1} (7.7)
El factor 2 usado en la Frmula 7.7 es necesario porque, al marcar la solucin como no factible, el
procedimiento incrementa , como se explica a continuacin. En caso de no usarlo, se volvera a
construir la solucin con el mismo tiempo de ciclo, que, como se ha comentado, no es ptimo.
Si la solucin de la hormiga no es factible llegados a este punto del algoritmo, se aumenta (ver
Frmula 7.8) y se procede a intentar construir una nueva solucin con esta hormiga (Algoritmo 7.3,
lneas 24-26). El incremento es el mximo entre 1 y el 1% de , de forma que cuando es elevado los
incrementos sean ms pronunciados y se pueda acelerar la bsqueda.
+ {(0,01 ), 1} (7.8)
Una vez completada una solucin factible, sta se intenta mejorar aplicando una bsqueda local
68 Daniel Aparicio Guirao
Esta funcin, en primer lugar, comprueba que la estacin que se pretende abrir no excede el
nmero de estaciones fijado por la instancia ( ), ya que de no ser as la solucin parcial
se debe marcar como no factible.
Abrir una estacin significa poner la carga de la estacin a 0 ( = 0) y, en el caso del RALBP-
MMAS, asignar el robot que llevar a cabo las tareas que se le asignen. La eleccin del robot se reali-
za mediante una regla proporcional aleatoria (ver Frmula 7.9). Cada uno de los robots recibe un
peso ( ) para la eleccin, segn la cantidad de feromona depositada en el valor del rastro 0 en
el robot para la estacin actual .
0
si no est asignado
= 0 (7.9)
0 si est asignado
Cabe destacar que en la eleccin del robot no se usa un parmetro de informacin heurstica, co-
mo s se hace en la eleccin de la tarea (ver Apartado 7.2.3). Esta decisin se debe a que no hay in-
formacin suficiente para valorar la relacin entre los robots y las estaciones si no es a travs de las
tareas.
Una tarea pasa a formar parte de la lista de candidatas y, por tanto, podr ser escogida para
asignarse a la solucin parcial , si cumple los tres requisitos siguientes:
La eleccin del siguiente componente de la solucin parcial se realiza con una regla proporcional
aleatoria (ver Frmula 7.10) similar a la presentada en la descripcin general de los algoritmos ACO
(ver Frmula 4.2).
Los pesos de cada una de las tareas candidatas en la eleccin se calculan en funcin de la in-
formacin heurstica entre la tarea y el robot , asignado a la estacin ; y dos rastros de fero-
monas: uno entre la tarea y la estacin (1 ) y otro entre la tarea y el robot k (2 ).
1 (2 ) ( )
si es una tarea candidata
= 1 (2 ) ( ) (7.10)
0 si no es una tarea candidata
En el RALBP-MMAS, una vez construida una solucin factible [ ] se realiza una bsqueda local.
La mejora se pretende conseguir por un lado desde la asignacin de robots a las estaciones, buscan-
do la mejor asignacin de robots posible dada la asignacin de tareas; y, por otro, sobre la asignacin
de tareas a las estaciones, moviendo tareas de estacin y haciendo intercambio entre dos tareas de
diferentes estaciones.
En la bsqueda local, para cada tarea se establece la estacin ms temprana ( ()) y la esta-
cin ms tarda ( ()) a la que se puede asignar. Este clculo rebaja el nmero de movimientos
disponibles, ya que permite descartar a priori movimientos que violen las restricciones de preceden-
cia. El valor de () y () se obtiene con la Frmula 7.11 y la Frmula 7.12, respectivamen-
te, donde () es la estacin a la que se ha asignado la tarea .
() = {()} (7.11)
() = {()} (7.12)
Tras este preproceso, se inicia la bsqueda propiamente dicha. En primer lugar se intenta el inter-
cambio de robots de forma que la asignacin de stos a las estaciones sea ptima, fijada la asigna-
cin de tareas a las estaciones en la solucin. Lo que equivale a resolver el problema de asignacin
70 Daniel Aparicio Guirao
con funcin objetivo de cuello de botella[5]. El algoritmo determinar la asignacin de robots a cada
estacin teniendo en cuenta la agrupacin de tareas de partida. Para construir la matriz de costes de
afectacin, se calcula el tiempo que tardara cada robot si se asignara a dicha estacin.
Los movimientos sobre la asignacin de tareas se llevan a cabo sobre las tareas de la estacin
crtica (ver Definicin 7.1) y se producen en dos fases consecutivas: cambio de estacin de una tarea
e intercambio de estacin entre dos tareas.
Sea una tarea de la estacin crtica y sea otra estacin, que tiene asignado el robot . En-
tonces la tarea se puede cambiar a la estacin si:
1. no es la estacin crtica ( ).
2. pertenece al intervalo de estaciones posibles de la tarea ( [ (), ()]).
3. se puede realizar en el robot ( 0).
4. El cambio de estacin no empeora el tiempo de ciclo actual ( + < ).
Sea una tarea asignada a la estacin crtica , a la que se asigna el robot ; y sea otra tarea,
que pertenece a la estacin , a la que se asigna el robot . Entonces el intercambio de estacin
entre las tareas y se produce cuando se cumplen las siguientes condiciones:
Cada vez que se produce un movimiento en la asignacin de tareas, ya sea por un cambio de esta-
cin de una tarea o por el intercambio de dos tareas, se actualiza el intervalo de estaciones
[ (), ()] de todas las tareas y se reinicializa el cambio de estacin o el intercambio de
tareas, respectivamente. Por tanto, la fase finaliza cuando no hay ningn movimiento posible para
ninguna de las tareas de la estacin crtica.
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 71
Para finalizar la fase constructiva del RALBP-MMAS, se verifica si se mejora la mejor solucin co-
nocida y, en caso negativo, tambin la mejor solucin de la iteracin. Si se mejora la solucin actual
se reinicia el contador de iteraciones sin mejora de la solucin (), necesario para la actualizacin
de feromonas (ver Apartado 7.3) y como criterio de finalizacin (ver Apartado 7.4).
En esta fase del proceso se agrupan aquellas acciones necesarias para la actualizacin del rastro
de feromonas (ver Algoritmo 7.13), la cual se lleva a cabo siguiendo las caractersticas de las versio-
nes MMAS (ver Apartado 4.4.3). En la versin ACO-1 se usan tres rastros de feromonas diferentes:
estacin-robot ([0]), tarea-estacin ([1]) y tarea-robot ([2]).
La primera operacin que se ejecuta es la actualizacin de los valores mximo y mnimo de los
elementos de las matrices de feromonas (ver Apartado 7.3.1). Cada cierto nmero de iteraciones sin
mejora de la solucin se reinicializan estas matrices (ver Apartado 7.3.2). En el resto, se produce la
atenuacin del rastro (ver Apartado 7.3.3); el posterior depsito de feromonas, que alterna entre la
mejor solucin global (ver Apartado 7.3.4) y la mejor solucin de la iteracin _
(ver Apartado 7.3.5); y, finalmente, se comprueba que todos los elementos de cada una de las matri-
ces estn dentro de los lmites del rastro (ver Apartado 7.3.6).
Aqu simplemente se recalcula el valor de los parmetros (ver Frmula 7.3) y (ver
Frmula 7.4), utilizando el tiempo de ciclo de la mejor solucin conocida ( ).
La reinicializacin de los tres rastros de feromonas utilizados se lleva a cabo tras 50 iteraciones sin
mejora, que se considera una cifra de iteraciones sin mejora suficiente como para intentar desplazar
la bsqueda a otro lugar del espacio de soluciones. Todos los elementos de las matrices de feromo-
nas utilizadas toman valor (ver Frmulas 7.13, 7.14 y 7.15).
0 (, ) (7.13)
1 (, ) (7.14)
72 Daniel Aparicio Guirao
2 (, ) (7.15)
0 (1 ) 0 (, ) (7.16)
1 (1 ) 1 (, ) (7.17)
2 (1 ) 2 (, ) (7.18)
En esta fase se aumenta el valor de los elementos de los rastros de feromonas que pertenecen a
la mejor solucin obtenida hasta el momento ( ). La magnitud del incremento se hace en
funcin de la calidad de la solucin, aumentando conforme mejor es la solucin (ver Frmulas 7.19,
7.20 y 7.21).
0 0 + (, ) (7.19)
1 1 + (, ) (7.20)
2 2 + (, ) (7.21)
El factor se utiliza porque es un factor que crece conforme se mejora el valor de la me-
jor solucin ( ); se utiliza para poder ponderar la calidad de la solucin.
0 0 + (, ) _ (7.22)
_
1 1 + (, ) _ (7.23)
_
2 2 + (, ) _ (7.24)
_
Para finalizar con la actualizacin del rastro de feromonas, se comprueba que todos y cada uno de
los valores de los tres rastros de feromonas ([0], [1] y [2]) no estn fuera del intervalo permitido
[ , ].
El algoritmo RALBP-MMAS finaliza cuando se cumple alguna de las tres condiciones siguientes:
Como alternativa al doble rastro de feromonas tarea-estacin ([1]) y tarea-robot ([2]), se pro-
pone un rastro compuesto tarea-estacin-robot ([3]). De esta manera, se puede comprobar el ren-
dimiento del algoritmo con dos rastros diferentes. El rastro tarea-estacin-robot se aplica en las ver-
siones 3 y 4 del RALBP-MMAS (ver Tabla 7.1).
Los cambios que se han de aplicar sobre el RALBP-MMAS son escasos. En la fase de inicializacin,
obviamente, se define el rastro [3] en vez de los rastros [1] y [2]. Este rastro implica un nico
cambio en la fase constructiva, en concreto, en el clculo de la probabilidad de eleccin de cada una
de las tareas candidatas, donde slo se tiene en cuenta el rastro [3] ponderado por el parmetro
(ver Frmula 7.25).
74 Daniel Aparicio Guirao
3 ( )
si es una tarea candidata
= 3 ( ) (7.25)
0 si no es una tarea candidata
3 (, , ) (7.26)
3 (1 ) 3 (, , ) (7.27)
3 3 + (, , ) (7.28)
3 3 + (, , ) _ (7.29)
_
Como realizar una bsqueda local en todas las soluciones generadas puede resultar demasiado
costoso en trminos de tiempo de computacin, se presenta una alternativa en la que slo se busca
la mejora de la solucin en la mejor solucin de la iteracin. Con esta alternativa se pretende reducir
la duracin de las iteraciones y, por tanto, incrementar el nmero de soluciones construidas. Esta
alternativa es la que caracteriza las versiones 2 y 4 del RALBP-MMAS (ver Tabla 7.1).
Los cambios que se introducen en esta versin nicamente afectan a la fase constructiva del algo-
ritmo (ver Algoritmo 7.4). En primer lugar, la bsqueda local (ver Algoritmo 7.4, lnea 32) se lleva a
cabo cuando la colonia completa ha construido una solucin.
Por otro lado, como slo es necesaria la mejor hormiga de la iteracin para la bsqueda local, no
es necesario construir soluciones que no mejoren la mejor de la iteracin ( _ ). Es decir, si no
se cumple la condicin < _ , se salta a la siguiente hormiga de la colonia ya que dicha so-
lucin no aporta ningn valor al procedimiento (ver Algoritmo 7.4, lnea 29). Esto tambin contribuye
a reducir el tiempo de computacin de la colonia de hormigas. Parte de este tiempo ganado por ite-
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 75
1 procedure ConstruirSoluciones {
2 + 1
3 for 1 (; ; + 1) {
4 {(0,01 ), 1}
5 0
6 do {
7 for ( 1; 2; + 1) {
8 0
9 1
10 0
11 AbrirEstacion()
12 while (( < ) and ( = 1)) {
13 if (TareasCandidatas) {
14 EscogerTarea
15 + 1
16 }
17 else {
18 AbrirEstacion()
19 }
20 }
21 if ( < ) {
22 = 0
23 2 {(0,01 ), 1}
24 }
25 if ( = 0) {
26 + {(0,01 ), 1}
27 }
28 }
29 } while (( = 0) and ( < _ ))
30 [ _ ] [ ]
31 }
32 BusquedaLocal([ _ ])
33 ComprobarMejor
34 }
Algoritmo 7.4. Pseudo-cdigo para la generacin de soluciones con bsqueda local en la mejor solucin de la
iteracin.
Finalmente, cabe destacar que el realizar la bsqueda local nicamente sobre [ _ ] no pro-
duce ninguna incompatibilidad con ninguno de los rastros propuestos, por lo que es posible combi-
narla con cualquiera de ellos. De esta manera, combinando estas dos modificaciones se obtienen las
cuatro versiones diferentes (ver Tabla 7.1).
76 Daniel Aparicio Guirao
Todas las versiones del procedimiento constructivo ACO descrito hasta el momento se pueden in-
terpretar como generadores de soluciones para equilibrados de lneas robotizadas. Esta propiedad
permite incorporar la generacin de soluciones de las variantes ACO en otros procedimientos que
requieran la generacin de soluciones, como es el caso de los SA (ver Apartado 3.1). Por tanto, se ha
optado por crear un hbrido entre un algoritmo SA y el RALBP-MMAS para comprobar si aumenta el
rendimiento del procedimiento cuando se integra como parte de otra metaheurstica.
Las dos modificaciones principales del SA que se han de introducir en el procedimiento ACO para
convertirlo en el procedimiento hbrido SA+ACO son el esquema de enfriado y el criterio de acepta-
cin de la solucin como mejor global, que sustituye a la comprobacin de mejora de la solucin.
Cabe aclarar que el procedimiento SA+ACO tambin consta de 4 versiones distintas, anlogas a las
versiones ACO.
El esquema de enfriado (ver Apartado 3.1.1) tiene la funcin de simular un proceso de enfriado de
un material. Los parmetros necesarios para implementar la simulacin:
En las variantes SA+ACO, en vez de usar una comparacin entre la solucin generada y la mejor
solucin global se utiliza el criterio de aceptacin de los templados simulados (ver Apartado 3.1.4) en
lugar de la simple comparacin con la mejor solucin usada en las variantes ACO. Con este procedi-
miento, la solucin actual reemplaza a la mejor solucin si la mejora y, si no, se admite un empeora-
miento de la solucin con cierta probabilidad (, ), funcin del tiempo de ciclo y de la temperatura
actual , parmetro del templado simulado (ver Frmula 7.30).
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 77
1 si <
(, ) = (7.30)
si
Un buen indicador de la calidad de la solucin actual respecto la mejor solucin es , pero
este trmino incrementa la probabilidad conforme se aproxima a . Para corregir esta con-
tradiccin se aade el trmino 1, ya que < 1 y, por tanto, ( ) > ( ) cuando < y las
7.8. Implementacin
Para la implementacin completa del RALBP-MMAS se han escrito alrededor de 12.500 lneas de
cdigo, teniendo en cuenta las ocho versiones del algoritmo. Para la programacin se ha usado el
software Bloodshed Dev-C++ v4.01. La compilacin se ha realizado con el compilador Mingw v2.95.2,
que est incluido en el Dev-C++.
En este apartado se describen las estructuras ms importantes para el funcionamiento del algo-
ritmo y aquellos puntos donde la implementacin contiene alguna particularidad.
Si se compara la estructura general del RALBP-MMAS (ver Algoritmo 7.1) con la estructura del AS
(ver Algoritmo 4.1), se puede apreciar una diferencia: en el RALBP-MMAS el bucle principal est pro-
gramado con una estructura dowhile. La finalidad de este cambio es evitar la construccin de una
solucin inicial. El motivo por el que se evita generar una solucin inicial es porque no es trivial gene-
rar una solucin de calidad, en cambio es una condicin necesaria para que el algoritmo sea eficiente
desde el inicio (ver Frmula 7.6). Es decir, es preferible iniciar la bsqueda de desde que no
desde una solucin inicial pobre como la que se podra construir con una heurstica glotona.
Para las variantes SA+ACO, la estructura general del algoritmo difiere de las variantes ACO con los
cambios necesarios para el templado simulado (ver Algoritmo 7.5). La estructura del algoritmo es una
adaptacin del algoritmo SA publicado en Numerical Recipes in C[20]. En este caso la estructura prin-
cipal del RALBP-MMAS estaba formada por dos bucles for: uno externo que limita el nmero de
enfriamientos del esquema de enfriado (ver Algoritmo 7.5, lneas 3-12) y el segundo, ms interno,
que controla el nmero de iteraciones del procedimiento a la temperatura fijada (ver Algoritmo 7.5,
lneas 5-9). Ambos incluyen una condicin de salida del bucle, en el primer caso se finaliza el algorit-
78 Daniel Aparicio Guirao
1 procedure SA+ACO {
2 InicializarDatos
3 for ( 1; _; + 1) {
4 0
5 for ( 1;( )and(not CriterioFin); + 1) {
6 ConstruirSoluciones
7 ActualizarFeromonas
8 if ( ) break
9 }
10
11 if ( = 0) break
12 }
13 }
Algoritmo 7.5. Pseudo-cdigo del algoritmo RALBP-MMAS en las variantes SA+ACO.
Los valores de los parmetros que definen la instancia (ver Apartado 7.1.1) se leen de un archivo
de texto previamente generado (ver Apartado 8.1). En primer lugar toman valor y , las cuales se
utilizan para dimensionar las estructuras de los parmetros y variables.
Los siguientes valores contenidos en la instancia son los que conforman la matriz [], de di-
mensiones . Cuando una tarea no se puede realizar en un determinado robot ( = 0), el valor
de dicha duracin se fija en un valor suficientemente alto (_ = 10 ), as no se puede esco-
ger cuando se lleva a cabo la eleccin de la siguiente tarea.
A continuacin se realiza el clculo de (ver Frmula 6.14), de (ver Frmula 7.5) y de los
valores de la matriz [] (ver Frmulas 7.1 y 7.2).
feromonas. La matriz [0] (dimensin ) aparece en todas las variantes; [1] y [2] (dimensin
), en las versiones 1 y 2; y [3] (dimensin ), en las versiones 3 y 4.
La codificacin de las todas soluciones se realiza mediante dos vectores. El primero, de dimensin
+ 1, almacena en la -sima posicin la estacin a la que se asigna la tarea y en la posicin
( + 1)-sima el valor de de la solucin. El segundo, de dimensin , almacena en la posicin -
sima el robot que se asigna a la estacin . Esta representacin de la solucin permite usar el
mnimo espacio de memoria.
Por tanto, cada solucin [ ] est formada por dos vectores como los descritos. Para homogenei-
zar la colonia de hormigas completa se usa una estructura con dos matrices, en una matriz de dimen-
sin ( + 1) se almacenan las asignaciones tarea-estacin de las hormigas y en una matriz
, todas las asignaciones estacin-robot.
En la inicializacin de las variables (ver Apartado 7.1.3) se crean las estructuras para y
_ y se pone a 0 el contador de iteraciones sin mejora de la solucin ( = 0). Para re-
presentar y _ tambin se hace uso de dos vectores, anlogamente a [ ], donde
en la posicin ( + 1)-sima del primer vector guarda el valor de y _ , respectiva-
mente. Adems, para estas dos soluciones se incluye un tercer vector, de dimensin + 1, donde la
posicin -sima almacena el tiempo de estacin y en la posicin ( + 1)-sima se indica la posi-
cin que representa la estacin crtica, para tener acceso inmediato a ella en la bsqueda local.
Finalmente, slo para las versiones SA+ACO, se inicializan los parmetros , , y del
esquema de enfriado (ver Apartado 7.7.1)
El sentido del grafo de precedencias tenido en cuenta para la construccin de la solucin se deci-
80 Daniel Aparicio Guirao
de en funcin (nmero de hormiga): cuando es par las soluciones se construyen en sentido direc-
to y, si es impar, en sentido inverso. Esto no se muestra en el Algoritmo 7.3 ni en el Algoritmo 7.4
porque no afecta a la estructura de generacin de las soluciones.
Para la construccin de soluciones se usan 3 estructuras auxiliares que se han de reiniciar cada
vez que se inicia un intento de solucin:
En cada inicio de iteracin se incrementa el contador (ver Algoritmo 7.3, lnea 2). Entonces
empieza la construccin de la solucin por parte de la hormiga . En primer lugar, se fija el valor de
(ver Frmula 7.6) para el cual se debe realizar el equilibrado (ver Algoritmo 7.3, lnea 4). Tras esto
comienza la adicin componentes a , donde el primer paso es reiniciar el contador (ver
Algoritmo 7.3, lnea 4), poner el ndice de estacin a 0 (ver Algoritmo 7.3, lnea 4), reiniciar los vec-
tores _ y , y abrir la primera estacin (AbrirEstacion).
La apertura de una estacin (ver Algoritmo 7.6) comprueba que la estacin actual no es la ltima
y, por tanto, que la solucin sigue siendo factible; si no es as, marca la solucin como no factible
para empezar a construir una nueva solucin. Tras esto, si es necesario, se actualiza la estacin crtica
que definir el tiempo de ciclo de la solucin (ver Algoritmo 7.6, lneas 3-5). Posteriormente, se in-
crementa en uno el nmero de estacin actual , se reinicia el valor de tiempo de estacin y se asigna
un robot a la estacin (EscogerRobot).
La funcin EscogerRobot asigna un robot a la estacin que se est abriendo. Para ello se crea un
vector de dimensin que guarda el valor de (ver Frmula 7.9) en la posicin -sima, en fun-
cin de . Se genera un nmero aleatorio 0, 0 y el robot escogido es
el primer robot tal que . Una vez escogido el robot ste se marca como no disponible en
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 81
el vector .
1 procedure AbrirEstacion {
2 if ( < ) {
3 if ( > ) {
4
5 }
6 +1
7 0
8 EscogerRobot
9 }
10 else {
11 0
12 }
13 }
Algoritmo 7.6. Pseudo-cdigo para la apertura de la siguiente estacin.
Una vez abierta la estacin se comienzan a asignar las tareas, escogidas de la lista de tareas can-
didatas. La funcin TareasCandidatas se encarga de enumerar las tareas que se pueden asignar,
para ello hace uso de un vector de dimensin , donde la posicin -sima indica si la tarea es can-
didata o no, indicado con 1 0, respectivamente. Para generar el vector se comprueban las condi-
ciones 1,2 y 4 expuestas en el Apartado 7.2.2. La condicin 3 no se implementa porque est implcita
en la condicin 4 al usar = _ para aquellas que no se pueden realizar en el robot.
La funcin EscogerTarea se encarga de la eleccin del siguiente componente que hay que aa-
dir a la solucin parcial (ver Algoritmo 7.7). Esta funcin es anloga a EscogerRobot slo que tiene
en cuenta las tareas candidatas y los pesos (ver Frmula 7.10, para las versiones 1 y 2; y ver
Frmula 7.25, para las versiones 3 y 4), en vez de los robots disponibles y los pesos . Tras la asig-
nacin de la tarea escogida, se actualizan los vectores _ (ver Algoritmo 7.7, lnea 4) y
_ (ver Algoritmo 7.7, lnea 5).
1 procedure EscogerTarea {
2 Aleatorio
3
4 +
5 ActualizarPrecedentes
6 }
Algoritmo 7.7. Pseudo-cdigo para la asignacin de la siguiente tarea.
El proceso de construccin contina hasta que se ha obtenido una solucin factible formada por
estaciones para [ ] o hasta que se demuestra que no es factible y entonces se debe aumen-
tar , segn la Frmula 7.8. Cuando la solucin es factible, en el caso de las versiones 1 y 3, se con-
tina el procedimiento con la bsqueda local y la comprobacin de si la solucin mejora y/o
82 Daniel Aparicio Guirao
La bsqueda local (ver Apartado 7.2.4) se implementa tal y como se muestra en el Algoritmo 7.8.
En primer lugar, la funcin IntervaloEstaciones genera dos vectores que representan el interva-
lo de estaciones posibles de cada tarea y as poder acceder a esta informacin rpidamente:
1 procedure BusquedaLocal {
2 IntervaloEstaciones
3 IntercambiarRobots
4 CambiarEstacion
5 IntercambiarTareas
6 }
Algoritmo 7.8. Pseudo-cdigo para la bsqueda local.
Para finalizar la construccin de soluciones ya slo falta comprobar si la solucin construida mejo-
ra la mejor solucin global . En las versiones ACO-1 y ACO-3, la comprobacin se realiza des-
pus de la mejora local de [ ], por tanto, puede ser necesario actualizar y/o _
tal y como muestra el Algoritmo 7.9. Cuando se produce una mejora de el contador se
reinicia.
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 83
1 procedure ComprobarMejor {
2 if ( < ) {
3 [ _ ] [ ]
4 [ ] [ ]
5 0
6 }
7 else if ( < _ ) {
8 [ _ ] [ ]
9 }
10 }
Algoritmo 7.9. Pseudo-cdigo para la comprobacin de mejora de la solucin en las versiones ACO-1 y ACO-3.
1 procedure ComprobarMejor {
2 if ( _ < ) {
3 [ ] [ _ ]
4 0
5 }
6 }
Algoritmo 7.10. Pseudo-cdigo para la comprobacin de mejora de la solucin en las versiones ACO-2 y ACO-4.
1 procedure AceptarSolucion {
2 if ( < _ ) {
3 [ _ ] [ ]
4 }
5 if (( < ) or ( < (, ))) {
6 [ ] [ ]
7 + 1
8 + 1
9 }
10 }
Algoritmo 7.11. Pseudo-cdigo para la aceptacin de la solucin como mejor en las versiones SA+ACO-1 y
SA+ACO-3.
1 procedure AceptarSolucion {
2 if (( _ < ) or ( < ( _ , ))) {
3 [ ] [ _ ]
4 + 1
5 + 1
6 }
7 }
Algoritmo 7.12. Pseudo-cdigo para la aceptacin de la solucin como mejor en las versiones SA+ACO-2 y
SA+ACO-4.
1 procedure ActualizarFeromonas {
2 CalcularLimites
3 if ( % 50 = 0) {
4 ReinicializarRastro
5 }
6 else {
7 EvaporarFeromonas
8 if ( % 5 = 0) {
9 DepositarMejorIter
10 }
11 else {
12 DepositarMejor
13 }
14 ComprobarLimites
15 }
16 }
Algoritmo 7.13. Pseudo-cdigo para la actualizacin del rastro de feromonas.
La funcin CalcularLimites actualiza los valores de (ver Frmula 7.3) y (ver Frmu-
la 7.4).
Finalmente, la funcin ComprobarLimites vuelve a recorrer las matrices [0], [1], [2] y [3],
segn la versin del algoritmo, y comprueba que todos los valores de dichas matrices se encuentran
dentro del intervalo [ , ].
La programacin de la finalizacin del algoritmo (CriterioFin) se hace segn los criterios im-
puestos en el Apartado 7.4. En las versiones ACO el algoritmo finaliza cuando se cumple alguna de las
tres condiciones siguientes:
- =
- = _, donde _ se fija en 300 iteraciones, cifra que marca estancamiento
de .
- _, siendo los segundos de computacin y = 600.
8. EXPERIENCIA COMPUTACIONAL
La experiencia computacional requiere contar con instancias sobre las que probar el algoritmo.
Desafortunadamente, no hay un conjunto de instancias establecido para el RALBP-2. Por este motivo,
se crea un juego completo partiendo del conjunto establecido para el SALBP-2[13], que consta de
302 instancias con grafos de precedencias que contienen desde 30 hasta 297 tareas.
Para poder usar estas instancias en el RALBP-MMAS se deben dotar de duraciones de tareas de-
pendientes de los robots utilizados. En este caso, los tiempos de tarea para los robots se asignan
aleatoriamente mediante una distribucin uniforme permitiendo una desviacin porcentual mxima
respecto a la duracin establecida para el SALBP-2. Adems se conserva el grafo de precedencias.
Con la intencin de contar con un juego de instancias suficientemente variado se utilizan desvia-
ciones mximas del 5%, 10%, 25% y 50%. Este proceso de generacin se realiza por duplicado para
consolidar el comportamiento de cada una de las instancias. As, el nmero de instancias se eleva a
302 4 2 = 2.416.
El clculo de las 2.416 instancias, si se deja correr el algoritmo durante 10 minutos y se realiza pa-
ra las ocho variantes del RALBP-MMAS, puede llevar hasta 134 das. Este tiempo de computacin se
considera excesivo para la duracin del proyecto, por lo que se decide escoger la mejor variante para
realizar la experiencia computacional, con lo que la duracin se reduce a unos 17 das.
Para realizar la eleccin se escogen al azar 10 instancias entre aqullas que estn formadas por
ms de 100 tareas. Como no hay estudios de parmetros de los algoritmos ACO para los RALBP y la
eleccin de la variante se realiza previamente al ajuste de parmetros, todava no se tiene informa-
cin sobre el rendimiento del algoritmo en funcin de los diferentes parmetros, por este motivo, se
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 87
define el valor de los diferentes parmetros del algoritmo segn los valores propuestos para el TSP
(ver Tabla 8.1).
30 0,02 1 1 1 1 5 5 100 10 0,9 0,5
Tabla 8.1. Valores de los parmetros utilizados para la eleccin de la variante. Los valores de los parmetros ,
, , , , , y son los expuestos en la Tabla 4.1; para los parmetros , , y los valores se
han extrado de Numerical Recipes 3rd Edition[20].
Cada una de las variantes se deja funcionar durante 10 minutos para cada una de las 10 instancias
escogidas. Los resultados obtenidos hacen que la eleccin se decante por la variante ACO-2, ya que
es la que ha encontrado un mayor nmero de mejores soluciones (ver Figura 8.1). Los resultados
completos se muestran en el Anexo D.
Figura 8.1. Nmero de mejores soluciones encontradas para cada una de las variantes del RALBP-MMAS.
Adems del nmero de mejores soluciones, la eleccin de la variante ACO-2 se ve respaldada por
dos caractersticas ms que se pueden observar en la misma Figura 8.1:
- Todas las variantes ACO muestran mejores resultados que la variante SA+ACO respectiva.
- La variante 2 es superior a las variantes 1, 3 y 4, tanto en las versiones ACO como en las versio-
nes SA+ACO.
Una vez decidida la variante que se utilizar y previamente al lanzamiento de la experiencia com-
putacional final, se realiza el ajuste de los parmetros del algoritmo para intentar incrementar el
rendimiento del algoritmo al mximo.
88 Daniel Aparicio Guirao
De nuevo, para limitar el tiempo de computacin, slo se escogen aquellos parmetros que jue-
gan un papel importante en el funcionamiento de los algoritmos ACO. Los parmetros sobre los que
se realiza el ajuste son el nmero de hormigas (), el factor evaporacin () y los factores de ponde-
racin de las feromonas ( , , ) y de la informacin heurstica (). Los conjuntos de valores es-
cogidos para cada uno de ellos se muestran en la Tabla 8.2.
10 0,01 0,1 0,1 0,1 1
30 0,02 0,5 0,5 0,5 2
- 0,1 1 1 1 5
Tabla 8.2. Conjunto de valores de los parmetros utilizados para el ajuste de parmetros.
Realizando todas las combinaciones posibles aparecen 486 juegos de parmetros diferentes. To-
dos y cada uno de estos juegos se prueban con las mismas 10 instancias usadas para la eleccin de la
variante. Tambin se deja correr el algoritmo durante 10 minutos.
Para poder comparar los resultados de las diferentes instancias entre s es necesario normalizar-
los. Esto se realiza calculando el parmetro [0,1] para cada solucin encontrada, que indica
una mejor solucin cuanto ms prximo a 1 (ver Frmula 8.1).
=1
= 1, ,10; = 1, ,486 (8.1)
Siendo
la solucin algoritmo para la instancia usando el juego de parmetros , la
mejor solucin encontrada para la instancia y la peor solucin encontrada para la instancia
.
El parmetro [0,1] es una medida de la calidad de los resultados del juego de parmetros
independiente de la instancia que se resuelve (ver Frmula 8.2).
= (8.2)
10
Una vez normalizados todos los resultados, se realiza un anlisis pseudo-factorial de los parme-
tros, donde se supone que el uso de los diferentes parmetros implica funcionamientos del algoritmo
independientes entre s. Para cada uno de los posibles valores que puede tomar cada uno de los
parmetros (ver Tabla 8.2) se calcula (ver Frmula 8.3), que indica que se han obtenido
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 89
| (8.3)
= ; = 1,2,3
0,407 0,415 0,413 0,427 0,421 0,277
0,449 0,413 0,424 0,429 0,428 0,430
- 0,456 0,447 0,428 0,435 0,577
Tabla 8.3. Resultados del anlisis pseudo-factorial. Los nmeros resaltados en rojo indican el mejor valor del
para el parmetro .
La Tabla 8.3 muestra como mejor juego de parmetros el conjunto 477, formado por los valores
de parmetros = 30, = 0,1, = 1, = 0,5, = 1 y = 5. Este conjunto, adems, es el que
obtiene mayor nmero de mejores soluciones, con 2, y una mayor calidad promedio de soluciones
, con un valor de 0,721. Por tanto, ste es el juego de parmetros escogido para la experiencia
computacional definitiva. Los resultados completos del experimento se pueden consultar en el Anexo
E.
Al no existir un conjunto de instancias sobre el que probar los algoritmos que resuelven el RALBP-
2 se evala el funcionamiento del RALBP-MMAS respecto el software IBM ILOG CPLEX Optimization
Studio, a partir de ahora solamente CPLEX. Esta aplicacin comercial usa procedimientos basados en
programacin lineal entera mixta para resolver los problemas. Ello hace necesario utilizar un modelo
lineal para el RALBP-2 (ver Modelo 6.2).
90 Daniel Aparicio Guirao
9. CONCLUSIONES
El anlisis de los resultados de la experiencia computacional, desde una perspectiva general, pone
de manifiesto una clara superioridad del algoritmo RALBP-MMAS sobre el software comercial CPLEX
(ver Tabla 9.1). El RALBP-MMAS obtiene un mayor nmero de mejores soluciones, en la mayora de
los casos ms rpidamente y da solucin a todas y cada una de las 2.416 instancias.
RALBP-MMAS CPLEX
Instancias resueltas 2.416 (100%) 1.952 (81%)
Nmero de mejores soluciones 2.168 (90%) 408 (17%)
Obtencin ms rpida de la solucin 2.280 (94%) 136 (6%)
Tabla 9.1. Comparacin general de los resultados de la experiencia computacional. El porcentaje entre parnte-
sis indica el nmero de ocurrencias respecto las 2.416 instancias.
A pesar de estos resultados, en 248 instancias la solucin del RALBP-MMAS es peor que la del
software comercial. Adems, en 136 de esas instancias tambin es ms rpido el CPLEX.
Para profundizar ms en el anlisis de los resultados, se llevan a cabo tres comparaciones de re-
sultados entre el algoritmo RALBP-MMAS y el software CPLEX, dependiendo de si se agrupan las ins-
tancias segn su:
En los tres casos, para cada uno de los posibles valores se realiza una comparacin del tiempo de
ciclo medio obtenido (), el tiempo consumido medio para encontrar la mejor solucin (), el nmero
de mejores soluciones del procedimiento para el grupo de instancias (#), la desviacin media
( ) del tiempo de ciclo obtenido () respecto a la mejor solucin obtenida entre ambos proce-
dimientos ( ) (ver Frmula 9.1) y la desviacin media ( ) del tiempo de ciclo obtenido ()
respecto a la cota inferior calculada por el procedimiento () (ver Frmula 9.2).
El uso de estos grupos conlleva la prdida de la informacin que se puede extraer de los resulta-
dos individualizados para cada una de las instancias, pero es necesario para poder tener una visin
global del funcionamiento del RALBP-MMAS. Los resultados completos se encuentran en el Anexo F.
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 91
= 100 (9.1)
= 100 (9.2)
RALBP-MMAS CPLEX
Desviacin # #
5% 2145,1 55,6 547 0,068% 5,017% 15975,3 541,6 108 52,669% 47,167%
10% 2109,3 56,0 540 0,116% 6,625% 16266,0 539,8 103 54,717% 50,052%
25% 1980,5 54,8 536 0,198% 12,251% 15999,6 537,1 97 60,277% 54,976%
50% 1781,9 65,9 545 0,285% 23,354% 15832,2 530,3 100 60,549% 59,644%
Tabla 9.4. Resultados agrupados segn la desviacin porcentual utilizada en la instancia para la generacin de
las duraciones de tarea.
La comparacin de los resultados agrupados segn el grafo de precedencias (ver Tabla 9.2) mues-
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 93
tra el rendimiento superior del RALBP-MMAS sobre el CPLEX en todas los parmetros de estudio
planteados. Slo hay un nico valor favorable al procedimiento exacto: el parmetro del grafo
kilbridge.
La relacin entre el tiempo de ciclo medio obtenido con el CPLEX y el RALBP-MMAS (ver Figura
9.1) se mantiene en torno al valor 1 para grafos compuestos por un nmero moderado de tareas. A
partir del grafo warnecke (58 tareas) la solucin media del CPLEX, como mnimo, triplica la obtenida
por el RALBP-MMAS, disparndose en los grafos lutz2, barthold2 y scholl.
45
40
35
30
25
20
15
10
5
0
wee-mag
sawyer
warnecke
buxey
arcus1
arcus2
lutz1
lutz2
lutz3
mukherje
scholl
gunther
hahn
tonge
barthold
kilbridge
barthol2
Figura 9.1. Relacin entre el tiempo de ciclo medio obtenido mediante CPLEX y RALBP-MMAS para cada agru-
pacin de resultados segn el grafo de precedencias.
Si se observan los resultados agrupados por nmero de estaciones (ver Figura 9.2) es donde se
hace patente tanto la principal debilidad como el gran punto fuerte del algoritmo propuesto en este
trabajo. Para instancias con pocas estaciones el RALBP-MMAS es superado por el CPLEX, tanto en
nmero de mejores soluciones como en el tiempo consumido. En cambio, cuando aumenta el nme-
ro de estaciones, el CPLEX deja de ser un mtodo viable: para instancias con 7 o ms estaciones, el
tiempo consumido por el CPLEX es prcticamente el mximo permitido y, a partir de las 15 estacio-
nes, todas las mejores soluciones son encontradas por el RALBP-MMAS.
Es probable que el mejor funcionamiento del CPLEX para instancias con pocas estaciones se deba
a la forma en que se incrementa el valor tiempo de ciclo en la generacin de soluciones (ver Frmula
7.6), ya que para instancias con soluciones con tiempos de ciclo elevados este incremento excluye
muchos valores que podra explorar el algoritmo.
94 Daniel Aparicio Guirao
120
100
80
60
40
20
0
3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51
Nmero de estaciones
600
Tiempo consumido medio (s)
500
400
300
200
100
0
3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51
Nmero de estaciones
RALBP-MMAS CPLEX
Figura 9.2. Comparacin entre el RALBP-MMAS y el CPLEX agrupando los resultados segn el nmero de esta-
ciones de la instancia.
La comparacin de los resultados segn la desviacin utilizada para la generacin aleatoria de las
duraciones muestra la inexactitud de la cota propuesta para el RALBP-2. En la Figura 9.3 se puede
observar como aumenta la distancia entre la solucin obtenida y la cota calculada por el procedi-
miento conforme aumenta la variabilidad de las duraciones de las tareas.
20%
15%
5%
0%
5% 10% 25% 50%
Figura 9.3. Desviacin media del tiempo de ciclo obtenido con el RALBP-MMAS respecto la cota calculada para
las desviaciones utilizadas en la generacin de las duraciones de las tareas.
En primer lugar, se debera realizar un ajuste de parmetros del algoritmo que incluya ms par-
metros y un conjunto de valores de stos mayor. Este ajuste ms amplio no se ha llevado a cabo para
no extender excesivamente la duracin del proyecto. Por otra parte, tener una cota inferior ms
ajustada permitira reducir el tiempo consumido por el algoritmo, ya que se podran descartar a prio-
ri la construccin de muchas ms soluciones.
Para mejorar el rendimiento del RALBP-MMAS en instancias con un nmero de estaciones reduci-
do se debera probar a modificar la frmula usada para calcular los incrementos del valor del tiempo
de ciclo cuando no se encuentra una solucin con el valor propuesto (ver Frmula 7.6). Una posibili-
dad es incrementar el valor usando una secuencia de Bernoulli, de esta manera los incrementos en
las primeras iteraciones son menores inicialmente permitiendo bsquedas ms ajustadas, sobre todo
cuando la solucin est cercana a la ptima, tal y como proponen Bautista y Pereira [10].
Finalmente, fuera del mbito de este trabajo pero interesante para todos los investigadores del
RALBP-2, es necesario definir un conjunto de instancias estndar para poder comparar empricamen-
te todos los procedimientos propuestos, de forma similar al conjunto existente para el equilibrado
simple a partir del cual se han creado las instancias utilizadas aqu.
96 Daniel Aparicio Guirao
10. PRESUPUESTO
A continuacin se detalla el presupuesto para la realizacin del prototipo del algoritmo RALBP-
MMAS. ste est limitado al motor de resolucin del problema, sin incluir la personalizacin para
problemas especficos ni la interfaz de usuario.
La duracin del proyecto ha sido de 7 meses, de febrero de 2012 a septiembre de 2012. Durante
este periodo se han llevado a cabo las siguientes actividades: estudio del estado del arte del proble-
ma, diseo e implementacin de los algoritmos, experimentacin computacional, anlisis de los re-
sultados y realizacin de la memoria del proyecto.
Para llevar a cabo el proyecto ha sido necesario contar con un ordenador con los siguientes pro-
gramas:
Durante la duracin del proyecto ha sido necesaria la participacin de un ingeniero jnior, que ha
desarrollado el trabajo, y un ingeniero snior, que ha dirigido y supervisado al ingeniero jnior. La
dedicacin del ingeniero jnior se establece en 4 horas diarias durante los das laborables estipulados
en el periodo febrero 2012 a agosto 2012 (146 das); la dedicacin total del ingeniero snior ha sido
de unas 100 horas. El coste por hora de trabajo de un ingeniero junior se estima en 30 , mientras
que el de un ingeniero snior en 80 . Por tanto, los costes imputables a la remuneracin de las
Aplicacin de los algoritmos de hormigas para la resolucin de un RALBP 97
Por ltimo, se consideran unos costes indirectos generados por el proyecto de un 3%, un benefi-
cio neto a obtener del 5% y el 21% de I.V.A.
PARTIDA IMPORTE
Material 900,00
Material fungible 60,00
Remuneracin ingeniero jnior 17.520,00
Remuneracin ingeniero snior 8.000,00
Subtotal 1 26.480,00
Costes indirectos (3%) 794,40
Subtotal 2 27.274,40
Beneficio neto (5%) 1.363,72
Subtotal 3 28.638,12
I.V.A (21%) 5.154,86
TOTAL . ,
Como se puede observar en el presupuesto presentado no se tienen en cuenta los costes estruc-
turales de la empresa.
98 Daniel Aparicio Guirao
El impacto econmico es positivo ya que una disminucin del tiempo de ciclo se traduce inmedia-
tamente en un aumento de la productividad. Adems al hacer uso de los robots ya disponibles no es
previsible una gran inversin para realizar la implantacin del nuevo equilibrado.
Al aumentar la productividad sin aumentar los recursos de la empresa, como es el caso, se dismi-
nuye la necesidad energtica por unidad de producto. Por tanto, para cubrir la misma demanda se
usarn menos recursos. Entonces el impacto medioambiental debido al nuevo equilibrado es positivo
a largo plazo.
En cuanto al impacto social, ste se puede considerar inexistente. nicamente se trata de reubi-
car y preparar los robots para que realicen las tareas que se han asignado a la estacin a la que per-
tenecen.
12. BIBLIOGRAFA
[1] RUBINOVITZ, J. [et al.] RALBP Aheuristic algorithm for design and balancing of robotic assem-
bly lines. CIRP Annals Manufacturing Technology. Vol. 42(1), 1993, p. 497 500.
[2] DORIGO, M. Optimization, learning and natural algorithms. Ph.D. Tesis, Politecnico di Milano,
1992.
[3] BOYSEN, N. [et al.] A classification of assembly line balancing problems. European Journal of
Operational Research. Vol. 183(2), 2007, p. 674 693.
[4] DORIGO, M., STTZLE, T. Ant colony optimization. MIT Press, 2004.
[9] BAUTISTA, J., PEREIRA, J. Ant algorithms for assembly line balancing. Ant algorithms. Vol. 2463,
2002, p. 65 75.
[10] BAUTISTA, J., PEREIRA, J. Ant algorithms for a time and space constrained assembly line balanc-
ing problem. European Journal of Operational Research. Vol. 177(3), 2007, p. 2016 2032.
[13] HOMEPAGE FOR ASSEMBLY LINE OPTIMIZATION RESEARCH (ASSEMBLY LINE BALANCING AND
SEQUENCING.
[http://alb.mansci.de/index.php?content=classview&content2=classview&content3=classview
100 Daniel Aparicio Guirao
[14] BECKER, C., SCHOLL, A. A survey on problems and methods in generalized assembly line balanc-
ing. European Journal of Operational Research. Vol. 168(3), 2006, p. 694 715.
[15] SCHOLL, A., BECKER, C. State-of-the-art exact and heuristic solution procedures for simple as-
sembly line balancing. European Journal of Operational Research. Vol. 168(3), 2006, p. 666
693.
[16] BAUTISTA, J., PEREIRA, J. A dynamic programming based heuristic for the assembly line balanc-
ing problem. European Journal of Operational Research. Vol. 194(3), 2009, p. 787 794.
[17] LEVITIN, G. [et al.] A genetic algorithm for robotic assembly line balancing. European Journal of
Operational Research. Vol. 168(3), 2006, p. 811 825.
[18] GAO, J. [et al.] An efficient approach for type II robotic assembly line balancing problems. Com-
puters & Industrial Engineering. Vol. 56(3), 2009, p. 1065 1080.
[19] BHATTACHARJEE, T.K., SAHU, S. A heuristic approach to general assembly line balancing. Inter-
national Journal of Operations & Production Management. Vol. 8(6), 1988, p. 67 77.
[20] PRESS, W.H. [et al.] Numerical recipes 3rd edition: The art of scientific computing. 3 edicin.
Cambridge University Press, 2007.