You are on page 1of 9

OPTIMIZACIN BASADA EN COLONIA DE HORMIGAS: GENERALIDADES Y ESTUDIO DEL ALGORITMO SISTEMA HORMIGA

ANT COLONY OPTIMIZATION: GENERALITIES AND STUDY OF ANT SYSTEM ALGORITHM


ANDRS ATEHORTA
Estudiante Ingeniera Industrial, amatehortuab@unal.edu.co Tpicos Avanzados en produccin y logstica, profesor Elkin Rodrguez, ltima versin: 28-09-2011 Universidad Nacional de Colombia

RESUMEN: Este artculo trata acerca de los Algoritmos basados en colonia de hormigas, los cuales son unos modelos Metaheursticos basados en el comportamiento autoorganizativo que algunas especies de hormigas presentan en la naturaleza para encontrar los caminos ms cortos entre el nido y las fuentes de alimento. Inicialmente, se mencionan las caractersticas de las hormigas en la naturaleza que fundamentan este tipo de modelos, para as pasar, a partir de stas caractersticas, a describir la Metaheurstica de Optimizacin basada en colonia de Hormigas explicando el modo de operacin general de stos. Luego de sto, se procede a estudiar el algoritmo Sistema de Hormigas, el cual fue el primer algoritmo de optimizacin de colonia de hormigas desarrollado por M. Dorigo, V. Maniezzo, A. Colorni en 1991, y el cual ha servido de base para muchos otros modelos, y cuyo entendimiento permitir al lector tener una introduccin para comprender la filosofa y funcionamiento de la mayora de algoritmos basados en colonia de hormigas. Se revisa la estructura general de este algoritmo, y se ilustra paso a paso el funcionamiento del mismo, recurriendo a ejemplos grficos y numricos que den claridad al procedimiento. Finalmente se mencionan las conclusiones a las que se ha llegado producto de la revisin bibliogrfica y del anlisis del funcionamiento de este tipo de algoritmos. PALABRAS CLAVE: Optimizacin basada en colonia de hormigas, Sistemas de hormigas, problemas NP-Duros, Feromona, Acciones del demonio, Metaheursticas, Heursticas de bsqueda local. ABSTRACT: This article is about the algorithms based on ant colony, which are Metaheuristics models based in self-organizing behavior that some species of ants found in nature to find the shortest paths between the nest and food sources. Initially referred to the characteristics of ants in nature that underlie this type of model, and later, from these characteristics, we pass to describe the optimization metaheuristics based on ant colony, explaining how is their overall operation. After this, we proceed to study the Ant System algorithm, which was the first algorithm of ant colony optimization developed by M. Dorigo, V. Maniezzo, A. Colorni in 1991, which was the basis for many other models, and whose understanding will enable the reader to have an introduction to understand the philosophy and operation of most algorithms based on ant colony. We review the general structure of this algorithm, and illustrated step by step the operation thereof, using graphs and numerical examples to give clarity to the process. Finally, we mention the conclusions have been reached as a result of the literature review and analysis of the performance of such algorithms. KEY WORDS: Optimization based on ant colony, ant systems, NP-Hard problems, pheromone, Actions of the devil, Metaheuristics, local search heuristics.

1. INTRODUCCIN Existen problemas de optimizacin combinatoria complejos en diversos campos como la economa, el comercio, la ingeniera, la industria o la medicina. Sin embargo, a menudo estos problemas son muy difciles de resolver en la prctica. El estudio de esta dificultad inherente para resolver dichos problemas ha llevado a la comunidad cientfica a formular un sin nmero de modelos, que an siguen intentando, cada da ms, aproximarse a soluciones ms optimas de una forma ms eficaz, logrando resultados satisfactorios en tiempos de ejecucin cada vez menores. Debido a que ante problemas de gran tamao y de caractersticas combinatorias, los modelos exactos, e incluso los heursticos, son ineficaces; las tcnicas metaheursticas aparecen como alternativas muy razonables para abordarlos, donde diferentes experimentos ya han logrado demostrar las bondades de stos modelos. Las metaheursticas incorporan conceptos de muchos y diversos campos como la gentica, la biologa, la inteligencia artificial, las matemticas, la fsica y la neurologa, entre otras. Algunos ejemplos de metaheursticas son: Enfriamiento simulado, bsqueda tab, bsqueda local iterativa (iterated local search), algoritmos de bsqueda local con vecindario variable (variable neighborhood search), GRASP (greedy randomized adaptative search procedures) y algoritmos evolutivos. Una metaheurstica relativamente reciente es la Optimizacin basada en Colonias de Hormigas (OCH) (Ant Colony Optimization, ACO en ingls), la cual se inspira en el comportamiento que rige a las hormigas de diversas especies para encontrar los caminos ms cortos entre las fuentes de comida y el hormiguero. De hecho, desde el trabajo inicial de Dorigo, Maniezzo y Colorni en el Sistema de Hormigas (SH) (Ant System, AS en ingls), la ACO se est convirtiendo en un campo de investigacin importante: un gran nmero de autores han desarrollado modelos cada vez ms sofisticados para solucionar de manera satisfactoria un gran nmero de problemas de optimizacin combinatoria. Igualmente se ha incrementado el nmero de desarrollos tericos sobre los algoritmos que se proponen. Con este artculo se pretende hacer una revisin bibliogrfica sobre las generalidades de los algoritmos ACO, su estructura bsica y se har nfasis en el algoritmo AS, el cual como ya se menciono, fue el primer algoritmo de optimizacin de colonia de hormigas, desarrollado por M. Dorigo, V. Maniezzo, A. Colorni en 1991, y el cual ha servido de base para muchos otros modelos, y cuyo entendimiento permitir al lector tener una introduccin para comprender la filosofa y funcionamiento de la mayora de algoritmos basados en colonia de hormigas. [3][4]. 2. GENERALIDADES DE LA OPTIMIZACIN BASADA EN COLONIA DE HORMIGAS 2.1 Las hormigas naturales Las hormigas son insectos sociales que viven en colonias y que, debido a su colaboracin mutua, son capaces de mostrar comportamientos complejos y realizar tareas difciles desde el punto de vista de una hormiga individual. Un aspecto interesante del comportamiento de muchas especies de hormigas es su habilidad para encontrar los caminos ms cortos entre su hormiguero y las fuentes de alimento. Este hecho es especialmente interesante si se tiene en cuenta que muchas de las especies de hormigas son casi ciegas, lo que evita el uso de pistas visuales. Mientras que se mueven entre el hormiguero y la fuente de alimento, algunas especies de hormigas depositan una sustancia qumica denominada feromona (una sustancia que puede olerse). Si no se encuentra ningn rastro de feromona, las hormigas se mueven de manera bsicamente aleatoria, pero cuando existe feromona depositada, tienen mayor tendencia a seguir el rastro. De hecho, los experimentos realizados por bilogos han demostrado que las hormigas prefieren de manera probabilstica los caminos marcados con una concentracin superior de feromona

[1]. En la prctica, la eleccin entre distintos caminos toma lugar cuando varios caminos se cruzan. Entonces, las hormigas eligen el camino a seguir con una decisin probabilstica sesgada por la cantidad de feromona: cuanto ms fuerte es el rastro de feromona, mayor es la probabilidad de elegirlo. Puesto que las hormigas depositan feromona en el camino que siguen, este comportamiento lleva a un proceso de autorefuerzo que concluye con la formacin de rastros sealados por una concentracin de Feromona elevada. Este comportamiento permite adems a las hormigas encontrar los caminos ms cortos entre su hormiguero y la fuente del alimento. 2.2 De las hormigas naturales a la Metaheurstica de Optimizacin basada en colonia de Hormigas Los algoritmos de OCH se inspiran directamente en el comportamiento de las colonias reales de hormigas para solucionar problemas de optimizacin combinatoria. Se basan en una colonia de hormigas artificiales, esto es, unos agentes computacionales simples que trabajan de manera cooperativa y se comunican mediante rastros de feromona artificiales. Los algoritmos de OCH son esencialmente algoritmos constructivos: en cada iteracin del algoritmo, cada hormiga construye una solucin al problema recorriendo un grafo de construccin. Cada arista del grafo, que representa los posibles pasos que la hormiga puede dar, tiene asociada dos tipos de informacin que guan el movimiento de la hormiga [1]: Informacin heurstica, que mide la preferencia heurstica de moverse desde el nodo r hasta el nodo s, o sea, de recorrer la arista ars . Se nota por rs. Las hormigas no modifican esta informacin durante la ejecucin del algoritmo. Informacin de los rastros de feromona artificiales, que mide la deseabilidad aprendida del movimiento de r a s. Imita a la feromona real que depositan las hormigas naturales. Esta informacin se modifica durante la ejecucin del algoritmo dependiendo de las soluciones encontradas por las hormigas. Se nota por rs. 2.3 Modo de operacin de un algoritmo ACO

El modo de operacin bsico de un algoritmo de ACO es como sigue: las m hormigas (artificiales) de la colonia se mueven, concurrentemente y de manera asncrona, a travs de los estados adyacentes del problema (que puede representarse en forma de grafo con pesos). Este movimiento se realiza siguiendo una regla de transicin que est basada en la informacin local disponible en las componentes (nodos). Esta informacin local incluye la informacin heurstica y memorstica (rastros de feromona) para guiar la bsqueda. Al moverse por el grafo de construccin, las hormigas construyen incrementalmente soluciones. Opcionalmente, las hormigas pueden depositar feromona cada vez que crucen un arco (conexin) mientras que construyen la solucin (actualizacin en lnea paso a paso de los rastros de feromona). Una vez que cada hormiga ha generado una solucin se evala sta y puede depositar una cantidad de feromona que es funcin de la calidad de su solucin (actualizacin en lnea a posteriori de los rastros de feromona). Esta informacin guiar la bsqueda de las otras hormigas de la colonia en el futuro. Adems, el modo de operacin genrico de un algoritmo de ACO incluye dos procedimientos adicionales, la evaporacin de los rastros de feromona y las acciones del demonio. La evaporacin de feromona la lleva a cabo el entorno y se usa como un mecanismo que evita el estancamiento en la bsqueda y permite que las hormigas busquen y exploren nuevas regiones del espacio. Las acciones del demonio son acciones opcionales -que no tienen un contrapunto natural- para implementar tareas desde una perspectiva global que no pueden llevar a cabo las hormigas por la perspectiva local que ofrecen. Ejemplos son observar la calidad de todas las soluciones generadas y depositar una nueva cantidad de feromona adicional slo en las componentes asociadas a algunas soluciones, o aplicar un procedimiento de bsqueda local a las soluciones generadas por las hormigas antes de actualizar los rastros de feromona. En ambos casos, el demonio reemplaza la

actualizacin en lnea a posteriori de feromona y el proceso pasa a llamarse actualizacin fuera de lnea de rastros de feromona. Hay que notar que el primer paso para implementar un algoritmo ACO, incluye la inicializacin de los valores de los parmetros que se tienen en consideracin en el algoritmo. Entre otros, se deben fijar el rastro inicial de feromona asociado a cada transicin, to, que es un valor positivo pequeo y que normalmente es el mismo para todas las conexiones, el nmero de hormigas en la colonia, m, y los pesos que definen la proporcin en la que afectarn la informacin heurstica y memorstica en la regla de transicin probabilstica Como se ha comentado antes, varias componentes son o bien opcionales, como las acciones del demonio, o bien dependientes estrictamente del algoritmo de OCH especifico, por ejemplo cundo y cmo se deposita la feromona. Generalmente, la actualizacin en lnea paso a paso de los rastros de feromona y la actualizacin en lnea a posteriori de los rastros de feromona son mutuamente excluyentes y no suelen estar presentes a la vez ni faltar ambas al mismo tiempo (si las dos faltan, el demonio suele actualizar los rastros de feromona). En este sentido, la seleccin de los parmetros iniciales y la configuracin de los componentes del algoritmo pueden ser determinantes para el rendimiento del mtodo, y es por esto que un buen algoritmo nunca se desprende de un buen conocimiento del problema. 3. ANT SYSTEM En la literatura se han propuesto diversos algoritmos que siguen la metaheursticas ACO. Entre los algoritmos de ACO disponibles para problemas de optimizacin combinatoria NP-duros, se encuentran el Sistema de Hormigas (SH o Ant System (AS)) [6], el Sistema de Colonia de Hormigas (SCH o Ant Colony System (ACS)) [5], el Sistema de Hormigas Max-Min (SHMM, Max-Min Ant System) [9], el Sistema de la Mejor-Peor Hormiga (SMPH o BestWorst Ant System) [3, 2]. En este trabajo se har hincapi en el algoritmo Ant System, ya que a pesar de que los otros modelos presentan mejores resultados, la mayora de stos

son modificaciones del algoritmo AS, por lo cual, desde el punto de vista de dar un entendimiento del funcionamiento de los algoritmos ACO, entender el modelo base es primordial. Tal y como se ha mencionado, fue el primer algoritmo de optimizacin de colonia de hormigas, Este algoritmo se realizo para la resolucin del problema del viajante de comercio, problema de optimizacin combinatoria ms tradicional y estudiado, buscando la ruta ms corta para viajar a un conjunto de ciudades. El algoritmo trata de simular el comportamiento de las hormigas naturales. Este debe de ser capaz de admitir las tareas que realiza la hormiga y simular el comportamiento del conjunto. Se realizaron tres variantes del algoritmo segn la forma de realizar el depsito de feromona en el medio. Densidad: Se realizaba el depsito de feromona durante el transcurso del recorrido (actualizacin en lnea paso a paso de feromona). La cantidad de feromona depositada era siempre constante. Cantidad: Se realizaba el depsito de feromona durante el transcurso del recorrido (actualizacin en lnea paso a paso de feromona). La cantidad de feromona depositada estaba relacionada a la deseabilidad heurstica del tramo. Ciclo: El depsito de feromona se realiza una vez finalizada una solucin (actualizacin en lnea a posteriori de feromona). Esta ltima variante es la que mejor resultados proporcion y la que se conoce por Ant System (AS) Sistema de Hormigas (SH). 3.1 Estructura del algoritmo El AS se caracteriza por el hecho de que la actualizacin de feromona se realiza una vez

que todas las hormigas han completado sus soluciones, y se lleva a cabo como sigue: primero, todos los rastros de feromona se reducen en un factor constante, implementndose de esta manera la evaporacin de feromona. A continuacin cada hormiga de la colonia deposita una cantidad de feromona que es funcin de la calidad de su solucin. Inicialmente, el SH no usaba ninguna accin en un segundo plano, pero es relativamente fcil, por ejemplo, aadir un procedimiento de bsqueda local para refinar las soluciones generadas por las hormigas. A grandes rasgos el algoritmo presenta el siguiente desarrollo:

una probabilidad resultante de una funcin heurstica y de la cantidad de feromona detectada en ese recorrido concreto (Mover Hormiga). Se puede decir, que la hormiga es un elemento simple, que se desplaza basndose en informacin local, tanto heurstica, como la aportada por los elementos de la colonia (feromona). Las ciudades no se pueden repetir, por lo que cada hormiga tiene que tener una lista denominada tab de las ciudades ya visitadas. Una vez determinada la probabilidad de las diferentes posibles rutas a tomar, la hormiga decide en funcin a estos valores ("Eleccin del movimiento"). Una vez elegido el nodo a visitar, se aade este a la lista de nodos visitados (lista tab), repitiendo este proceso hasta finalizar la visita a todos los nodos. Una vez terminado un ciclo, se procede a realizar la evaporacin de feromona depositada en los arcos de la red y la deposicin de feromona sobre la solucin obtenida ("Actualizacin de Feromona"). El ciclo se repite hasta la condicin de fin establecida para el algoritmo.

Las hormigas utilizan el depsito de feromonas para recordar su comportamiento, es decir, acumular el conocimiento que van adquiriendo del problema a resolver. En un primer momento, todos los arcos presentan la misma probabilidad y para ello se considera oportuno introducir un pequeo valor de feromona, cantidad que hace posible que caminos sin explorar tambin tengan probabilidad de ser recorridos.
Figura 1: Algoritmo AS Figure 1. AS Algorithm

3.1.1 Eleccin del movimiento En cada paso de construccin, una hormiga k escoge ir al siguiente nodo con una probabilidad que se calcula como:

En palabras, el algoritmo es una ejecucin continua hasta cumplir una condicin de parada, sta condicin puede ser establecida de muchas maneras segn el objetivo y la disponibilidad de recursos, ejemplos pueden ser un nmero de iteraciones especificada, hasta cuando no se note mejora en la variable objetivo despus de cierto nmero de iteraciones, etc. En cada ciclo se crea una hormiga que va cambiando de estado o nodo, de acuerdo a

Donde, Nk(r) son los nodos alcanzables por la hormiga k desde el nodo r. y son parmetros que ponderan la importancia de la heurstica utilizada y los valores de feromona detectados. rs representa el rastro de feromona entre los puntos r y s. rs representa el valor de la funcin heurstica elegida, deseabilidad, que en el problema del agente viajero por lo general se utiliza el reciproco de la distancia entre los nodos. Cada hormiga k almacena la secuencia que ha seguido hasta el momento y su memoria Lk, tal como se explic antes, se utiliza para determinar Nk(r) en cada paso de construccin. Volviendo a los parmetros a y , su funcin es la que sigue: si =0, aquellos nodos con una preferencia heurstica mejor tienen una mayor probabilidad de ser escogidos, haciendo el algoritmo muy similar a un algoritmo voraz probabilstico clsico (con mltiples puntos de partida en caso de que las hormigas estn situadas en nodos distintos al comienzo de cada iteracin). Sin embargo, si =0, slo se tienen en cuenta los rastros de feromona para guiar el proceso constructivo, lo que puede causar un rpido estancamiento, esto es, una situacin en la que los rastros de feromona asociados a una solucin son ligeramente superiores que el resto, provocando por tanto que las hormigas siempre construyan las mismas soluciones, normalmente ptimos locales. Por tanto es preciso establecer una adecuada proporcin entre la informacin heurstica y la informacin de los rastros de feromona. 3.1.1.1 Ejemplo grfico de la eleccin del destino

encuentra con unos valores de feromona iguales para las tres rutas a seguir, en cambio las distancias a los siguientes puntos no son las mismas. Los valores de probabilidad para cada una de las tres posibles rutas para un valor de 1 tanto para y , son los siguientes:

La hormiga aleatoriamente, segn las probabilidades obtenidas, elige el punto A para su ruta hacia el punto destino. Una vez alcanzado el destino, se realiza la actualizacin de feromona correspondiente. En cada arco perteneciente al recorrido seguido por la hormiga, se origina una variacin del valor de la feromona. Feromona (P-A) : 0,01 0,015

Figura 3: Actualizacin de feromona Figure 3. Update of pheromone

Figura 2: Eleccin del primer movimiento Figure 2. Election of the first movement

Cuando llega otra hormiga al punto P tiene que realizar el clculo de probabilidades con los nuevos valores existentes. Los clculos para la obtencin de los resultados seran los siguientes:

En un primer momento, cuando la hormiga llega al nodo P, siendo esta la primera en visitarlo, se

La hormiga tambin puede elegir la que tericamente es la peor opcin, ya que es una eleccin aleatoria. Este es el caso que se representa, donde la hormiga ha elegido la ruta hacia el punto B. Una vez concluida la ruta hasta el destino, se realiza la actualizacin correspondiente de feromona en la red. Feromona (P-B): 0,01 0,021

Figura 5: Eleccin de la tercer hormiga Figure 5. Choosing of the third ant

Los valores obtenidos, como se ha informado anteriormente, han resultado de los clculos con unos valores para y de 1. Si por el contrario, se quiere dar menos importancia a la funcin heurstica estableceramos el valor de por debajo de 1. En el ejemplo siguiente se considera un valor de 0,7. Con esto se consigue una mayor exploracin, las probabilidades de las diferentes opciones tienden a igualarse, dando ms importancia a la cantidad detectada de feromona.

Figura 4: Actualizacin de probabilidades Figure 4. Update of probabilities

Una tercera hormiga llega al punto P, en este caso ya se ha actualizado la cantidad de feromona debida a la segunda hormiga. Con estos nuevos valores la hormiga obtiene las siguientes probabilidades de opcin de desplazamiento.

3.1.2 Actualizacin de la feromona Como se ha dicho, la deposicin de feromona se realiza una vez que todas las hormigas han acabado de construir sus soluciones. Primero, los rastros de feromona asociados a cada arco se evaporan reduciendo todos los rastros de feromona en un factor constante: Donde [0,1] es la tasa de evaporacin. El siguiente paso de cada hormiga es recorrer de nuevo el camino que ha seguido (el camino esta almacenado en su memoria local Lk) y deposita una cantidad de feromona rs en cada conexin por la que ha viajado:

Donde rs= f(C(Sk)) es decir, la cantidad de feromona


que se deposita depende de la calidad C(Sk) de la solucin Sk construida por la hormiga k.

heursticas de bsqueda local complementarias usadas, y en la metodologa de deposicin y evaporacin de feromona. Aunque el modelo AS ya ha sido mejorado por otros modelos, por ser este la base sobre la cual se desarrollaron estos mismos, el entendimiento de este es fundamental para comprender la filosofa y el funcionamiento de la mayora de modelos basados en colonia de hormigas. REFERENCIAS [1] Alonso, Cordon, ed ol. La Metaheurstica de Optimizacin Basada en Colonias de Hormigas: Modelos y Nuevos Enfoques. [2] Cordn, I. Fernndez de Viana, F. Herrera, y L. Moreno. A new ACO model integrating evolutionary computation concepts: The Best-Worst Ant System. En M. Dorigo, M. Middendorf, y T. Sttzle, editores, Abstract proceedings of ANTS2000 From Ant Colonies to Artificial Ants: A series of International Workshops on Ant Algorithms, pginas 22-29. IRIDIA, Universit Libre de Bruxelles, Belgium, 2000. [3] Cordn, F. Herrera, L. Moreno. Integracin de Conceptos de Computacin Evolutiva en un Nuevo Modelo de Colonias de Hormigas. VIII Conferencia de la Asociacin Espaola para la Inteligencia Artificial, (Seminario Especializado en Computacion Evolutiva), Murcia (Espaa), 1999, Vol. II, pginas 98105. [4] Dorigo, Vittorio Maniezzo, Alberto Colorni; The Ant System: Optimization by a colony of cooperating agents. IEEE Transactions on Systems, Man, and Cybernetics, 1996 Part-B, Vol 26, N 1 pp 1-13 [5] Dorigo y L. M. Gambardella. Ant Colony System: A cooperative learning approach to the traveling salesman problem. IEEE

Un aporte adicional realizado por los autores de AS es una versin extendida del algoritmo que normalmente mejoraba los resultados obtenidos, llamada AS elitista [6]. En el AS elitista, una vez que las hormigas han depositado feromona en las conexiones asociadas a sus respectivas soluciones, el demonio realiza una deposicin adicional de feromona en las aristas que pertenecen a la mejor solucin encontrada hasta el momento en el proceso de bsqueda. La cantidad de feromona depositada, que depende de la calidad de la mejor solucin global, se incrementa en un factor e, que se corresponde con el nmero de hormigas elitistas que se consideran, tal como sigue:

CONCLUSIONES Mediante la revisin bibliogrfica que se ha llevado a cabo en este trabajo, se ha podido constatar que los algoritmos basados en colonia de hormigas constituyen una herramienta bastante satisfactoria para resolver problemas NP-Hard, y que adems este tipo de algoritmos son hoy en da objeto de investigacin de muchos autores, por lo cual constantemente se estn generando mejoras y adaptaciones a diferente tipo de problemas. Por otro lado, producto de la revisin de la estructura de este tipo de problemas, se ha podido observar que la seleccin de los parmetros iniciales y la configuracin de los componentes del algoritmo pueden ser determinantes para el rendimiento del mtodo, y es por esto que un buen algoritmo nunca se desprende de un buen conocimiento del problema, pues por ejemplo, de ste conocimiento se puede tener mejor criterio para decidir si priorizar la informacin heurstica o la informacin de los rastros de feromona, o para formular la heurstica adecuada para el problema. En general, la mayora de los algoritmos basados en colonia de hormigas, son una modificacin o adaptacin del modelo AS, donde las diferencias radican en las acciones del demonio, en las

Transactions on Evolutionary Computation, 1: 1, pginas 53-66, 1997. [6] Dorigo, V. Maniezzo, y A. Colorni. The Ant System: Optimization by a colony of cooperating agents. IEEE Transactions on Systems, Man, and Cybernetics - Part B, 26: 1, pginas 29-41, 1996 [7] Goss, S. Aron, J. L. Deneubourg, y J. M. Pasteels. Self-organized shortcuts in the Argentine ant. Naturwissenschaften, 76, pginas 579-581, 1989. [8] Pasteels, J.-L. Deneubourg, y S. Goss. Selforganization mechanisms in ant societes [9] Sttzle y H. H. Hoos. MAX-MIN Ant System. Future Generation Computer Systems, 16: 8, pginas 889-914, 2000.

You might also like