SciELO - Scientific Electronic Library Online

 
vol.12 suppl.1Seguridad y usabilidad de los esquemas y técnicas de autenticación gráfica.Evaluación del algoritmo AR-NSGEP en colecciones de datos desbalanceadas. índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

  • No hay articulos citadosCitado por SciELO

Links relacionados

  • No hay articulos similaresSimilares en SciELO

Compartir


Revista Cubana de Ciencias Informáticas

versión On-line ISSN 2227-1899

Rev cuba cienc informat vol.12  supl.1 La Habana  2018

 

ARTÍCULO ORIGINAL

 

Metaheurística GRASP  para el problema Vertex Bisection Minimization.

 

GRASP  metaheuristics for  the Vertex Bisection  Minimization  problem.

 

 

Jorge Moreno  Ramírez1*

1Departamento  de Ciencia de la Computación, Universidad Federal Fluminense, 24210-240, Brasil

*Autor para la correspondencia: jmoreno@ic.uff.br

 

 


RESUMEN

Dado un grafo no orientado G = (V, E), donde V denota el conjunto de vértices y E representa el conjunto de aristas, el problema Vertex Bisection Minimization consiste en particionar el conjunto V en dos subconjuntos B y B1, de manera que |B| = l|V |/2Jy se minimice el número de vértices en B que son adyacentes a algún vértice de B1. Este problema pertenece al conjunto de los problemas de diseño de grafos y tiene aplicaciones en áreas como optimización de redes, teoría de grafos, recuperación de información, etc. Este problema es NP-difícil sobre grafos en general, aunque polinomialmente  soluble para árboles e hipercubos. Por su importancia, diversos enfoques heurísticos han sido realizados con el propósito de encontrar soluciones de calidad. En este trabajo fue desarrollada una metaheurística GRASP para abordar este problema.
Los resultados experimentales muestran que el algoritmo propuesto obtiene resultados de mejor calidad que los algoritmos heurísticos encontrados en la literatura para este problema.

Palabras clave: Metaheurística, GRASP, Bisección de vértices


ABSTRACT

Given a non-oriented graph G = (V, E), where V denotes the set of vertices and E represents the set of edges, the Vertex Bisection Minimization problem consists of partitioning V into two subsets B and B1, such that |B| = l|V |/2J and minimizing the number of vertices in B that are adjacent to some vertex of B1. This problem belongs to the set of graph layout problems and has applications in areas such as network optimization, graph theory, information retrieval, etc. This problem is NP-hard on graphs in general, but polynomially soluble for trees and hypercubes. Because of its importance, various heuristic approaches  have been carried out with the purpose of finding quality solutions. In this work, a GRASP metaheuristics was developed to address this problem. The experimental results show that the proposed algorithm obtains better quality results than the heuristic algorithms found in the literature for this problem.

Key words: Metaheuristics, GRASP, Vertex Bisection


 

 

INTRODUCCIÓN

Los problemas de diseño de grafos aparecen con frecuencia en áreas como optimización de redes, diseño de circui- tos VLSI (Very Large Scale Integration ), teoría de grafos, recuperación de información,  etc (Díaz et~al., 2002). Estos problemas son generalmente NP-difíciles, por lo que con frecuencia  se recurre al uso de procedimientos heurísticos.

Dado un grafo G = (V, E), donde V representa el conjunto de vértices y E denota el conjunto de aristas, el problema Vertex Bisection Minimization (VBM)  consiste en particionar el conjunto de vértices del grafo en dos subconjuntos B y B1, de manera que |B|  = l|V |/2Jy se minimice el número de vértices en B que son adyacentes a algún vértice de B1(Díaz et~al., 2002). Este problema pertenece al conjunto de los problemas de diseño de grafos y ha sido abordado a través de métodos exactos y heurísticos al tratarse de un problema NP-difícil (Brandes and Fleischer, 2009). Un algoritmo exacto basado en ramificación y poda fue propuesto en (Jain et~al., 2016a) para el problem VBM. Ese algoritmo consiguió resolver instancias con grafos de hasta 24 vértices. Otro algoritmo exacto, pero basado en la Programación Lineal en Enteros es presentado en (Jain et~al., 2016b), resolviendo este problema en grafos de hasta 48 vértices. Desafortunadamente, el uso de algoritmos exactos se torna inviable sobre grafos de mayor tamaño. En ese sentido, varios algoritmos heurísticos han sido desarrollados para abordar este problema.

Algunas de las heurísticas para el problema Vertex Bisection Minimization están basadas en las heurísticas desarrolladas para el problema Graph Bisection. En ese problema, el objetivo es particionar el conjunto de vértices del grafo en dos subconjuntos, de manera  que se minimice el número de aristas entre los subconjuntos. Entre las heurísticas desarrolladas para el problema Graph Bisection están una heurística  basada en Simulated Annealing (Johnson et~al., 1989), un algoritmo genético (Bui and Moon, 1996), así como un procedimiento basado en la metaheurística Colonia de Hormigas (Aguilar, 2016).

Un algoritmo memético fue propuesto para el problema Graph Bisection en (Galinier et~al., 2011) con resultados relevantes para ese problema. En (Jain et~al., 2016c) se implementa una adaptación de ese algoritmo para el problema VBM denominada AMAGP. En ese mismo artículo se presenta  un nuevo algoritmo memético para el problema VBM denominado MAVBMP.  El algoritmo MAVBMP  usa diferentes heurísticas para generar la población inicial, así como diferentes  operadores de cruzamiento.  Otro de los elementos  incorporados  es un operador de mejora, cuyo objetivo es mejorar una solución mediante intercambios de vértices. A pesar de esto, este operador contiene muchas restricciones para ser aplicado y como consecuencia no puede ser usado en varias situaciones.

La metaheurística GRASP (Greedy Randomize Adaptive Search Procedure ) ha sido usada exitosamente en nu- merosos problemas de optimización combinatoria (Mestria et~al., 2013; Díaz et~al., 2017). Esta metaheurística ha sido ampliamente estudiada y posee características deseables, como la posibilidad de ser implementada  usan- do paralelismo y la simplicidad de su estructura. El objetivo de este trabajo fue desarrollar un procedimiento heurístico basado en la metaheurística GRASP que presente resultados competitivos  con tiempos cortos de respuesta.

El resto de este documento  está organizado  como se explica a continuación. La siguiente  sección describe los algoritmos implementados que constituyen la estructura básica de la metaheurística GRASP. A continuación son descritos los experimentos computacionales realizados y son analizados los resultados obtenidos. Finalmente, son presentadas las conclusiones del trabajo y las referencias bibliográficas del mismo.

Metaheurística desarrollada

La metaheurística Greedy Randomized Adaptive Search Procedure  (GRASP) es un método para obtener so- luciones de buena calidad en problemas de optimización combinatoria (Resende and Ribeiro, 2016). GRASP puede definirse como un proceso iterativo, donde en cada iteración se realiza una fase de construcción y una búsqueda local.

En la fase de construcción, la idea es combinar un algoritmo ávido con una componente aleatoria. Los algorit- mos ávidos suelen ser generalmente iterativos, de manera que en cada iteración se seleccione  el elemento que proporcione el mayor incremento de calidad a la solución que está siendo construida. Como consecuencia, este tipo de procedimiento  no siempre obtiene el valor óptimo y en algunas instancias de problemas puede dar lugar a soluciones muy alejadas del valor óptimo. Este inconveniente  es enfrentado  por la metaheurística GRASP mediante la inclusión de una componente aleatoria en el procedimiento de construcción. La inclusión de esta componente aleatoria es realizada  con el propósito de incorporar diversificación a las soluciones creadas, lo que pudiera conducir a buenos resultados.

Una vez que se genera  una solución, la metaheurística GRASP emplea un procedimiento de búsqueda local. Este procedimiento  consiste en buscar soluciones mejores en una vecindad de la solución generada en la fase constructiva. Este proceso de crear soluciones y realizar búsquedas locales se repite hasta alcanzar cierto criterio de parada establecido. Finalmente, el algoritmo devuelve como resultado la mejor solución encontrada entre todas las iteraciones.

Construcción de las soluciones iniciales

Para la construcción de las soluciones iniciales fueron utilizados dos métodos que son descritos a continuación. Ambos métodos están basados en la idea que los vértices en B deben tener la mayoría de sus vértices (o todos) adyacentes en B. El conjunto de vértices adyacentes a un vértice v y que pertenecen a un conjunto S ⊆ V se denotará como NS (v).

El Algoritmo 1 presenta el primero de estos métodos, denominado como Const_Inic1. Este método está basado en la heurística ávida H 1 (Jain et~al., 2016c), pero introduciendo el uso de una componente aleatoria. Esta componente aleatoria se encuentra en el proceso de selección del vértice que será adicionado  al conjunto B. La heurística H 1 selecciona en cada paso el vértice con menor número de vértices adyacentes en V \ B. Para evitar esta selección golosa se crea una lista con aquellos vértices de B que tienen "pocos" vértices adyacentes en V \ B. Esto se conoce como  Lista Restricta de Candidatos (LRC) y está condicionada a un parámetro α (línea 5). Si el parámetro α = 0 se estaría  en presencia de una selección ávida o golosa. Por otro lado, si α = 1 se estaría  en presencia de una selección aleatoria. Una vez creada la LRC, un elemento u ∈  B es seleccionado al azar de esta lista (línea 6). Después de seleccionar aleatoriamente  un elemento u de la LRC e insertarlo en B, son analizados los vértices adyacentes a u que no están en B. Si todos los vértices adyacentes a u pueden ser adicionados  a B, entonces estos vértices son insertados en B (línea 10). De no ser posible,  se adicionan  a B tantos vértices adyacentes de u como sea posible  hasta que |B| = l|V |/2J (líneas 12-13).

fo01

El otro procedimiento utilizado en este trabajo para generar soluciones iniciales es mostrado en el Algoritmo 2, denominado como Const_Inic2. Este algoritmo comienza adicionando al conjunto B un vértice seleccionado aleatoriamente. En su ciclo principal (líneas 3-9), el algoritmo selecciona un vértice de la lista de candidatos LRC, creada con aquellos vértices de V \ B con "muchos" vértices adyacentes en B. A diferencia del algoritmo anterior, el algoritmo Const_Inic2 presenta un carácter ávido cuando α = 1 y un carácter aleatorio cuando α = 0. Como será mostrado  más adelante, cada uno de los algoritmos Const_Inic1 y Const_Inic2 generará la mitad de las soluciones iniciales usadas por la metaheurística.

fo02

Búsqueda Local

Las soluciones generadas en la fase constructiva del GRASP pueden estar alejadas de la solución óptima. Por ese motivo es realizada  una exploración por soluciones vecinas a la solución generada, con el objetivo de encontrar soluciones de mayor calidad.

La búsqueda local desarrollada en este trabajo usa la estrategia de best improvement.  Esta estrategia consiste en actualizar la mejor solución encontrada con aquella solución vecina de mayor calidad.

Sea S = (B, B1) una solución para el problema VBM, una solución vecina S1 se obtiene a partir de S, intercambiando un vértice en B por un vértice en B1. Para cada vértice u ∈  B1 se calcula φ(u), que representa cuántos vértices podrían ser eliminados  del valor de la solución al pasar el vértice u ∈  B1para el conjunto B. Posteriormente  se calcula para cada vértice en v ∈  B el valor σ(v), que determina el número de vértices en B que serían adicionados al valor de la solución si se pasara  v ∈ B para el conjunto B1. Finalmente se determina el par (v, u) (B, B1) que minimice el valor ψ(v, u) = φ(u) − σ(v). Si el par encontrado (v, u) (B, B1) satisface que ψ(v, u) > 0, entonces la solución S1= ((B \ {v}) ∪ {u},(B1\ {u}) ∪ {v}) será mejor que la solución S.

En (Jain et~al., 2016c) se propone  un operador de mejora que también intercambia vértices entre los conjuntos B y B1pero con restricciones muy específicas. Dicho operador  selecciona un vértice u ∈  B1 de manera que NBI (u) = fo01. Ese vértice es intercambiado por un vértice v ∈  B tal que todos los vértices adyacentes a v son adyacentes a algún vértice en B1. La Figura 2 muestra un ejemplo de la búsqueda local usada en el GRASP. En este caso, el operador de mejora definido en (Jain et~al., 2016c) es incapaz  de mejorar la calidad de la solución original mientras que la búsqueda local especificada en el Algoritmo 3 proporciona una solución mejor.

fo03

f01

 

MATERIALES Y MÉTODOS

Como  se expuso anteriormente,  la metaheurística GRASP consta de una fase constructiva y de una fase de búsqueda local. Estos métodos fueron definidos en las subsecciones anteriores y son integrados en la metaheurística GRASP como se muestra  en el Algoritmo 4. Inicialmente son construidas una solución ávida usando el método Const_Inic1 y una solución ávida usando el método Const_Inic2. Una vez aplicada la búsqueda local sobre cada una de estas soluciones,  es seleccionada  la solución de mejor calidad (línea 7). Durante la primera mitad de las iteraciones  son generadas soluciones usando el método Const_Inic1, mientras que en la segundad mitad de las iteraciones  se utiliza el método Const_Inic2. En el ciclo principal, cada vez que es generada una solución, se realiza la búsqueda local usando el método Busqueda_Local  (líneas 15-16). Si la solución S1obtenida en la búsqueda local es mejor que la mejor solución encontrada S*, entonces  se actualiza el valor de S* con S1 (línea S17-18).

fo04

El parámetro α es  incrementado en 0.1 cada fo05iteraciones (línea 20). De esta forma se  usan los valores α ∈  {0.1,0.2,0.3,0.4,0.5}  y α ∈  {0.5,0.6,0.7,0.8,0.9}  para Const_Inic1 y Const_Inic2 respectivamente. Esta selección  del parámetro α está basada en el hecho de que para valores superiores a 0.5 el algoritmo Const_Inic1 presenta un comportamiento más aleatorio. Por su parte, el algoritmo Const_Inic2 presenta un comportamiento  más aleatorio para valores inferiores a 0.5.

 

RESULTADOS Y DISCUSIÓN

En esta sección se presentan  los resultados experimentales obtenidos sobre varias de las instancias usadas en (Jain et~al., 2016c). Estos experimentos fueron desarrollados  sobre un computador Intel  (R) Core(TM) i3- 3110M CPU @ 2.40GHz,  con 2 Gb de RAM sobre el sistema operativo Fedora 22. Todos los métodos fueron programados en el lenguaje C++ usando el compilador gcc y el número de iteraciones para el GRASP fue fijado en 100. La metaheurística GRASP fue comparada con los algoritmos AMAGP y MAVBMP,  propuestos en (Jain et~al., 2016c) e implementados  en MATLAB 7.0 sobre un computador Dual Xeon, 6 con 24GB de RAM. Las instancias  usadas para analizar el comportamiento del GRASP son clasificadas como:

Grafos pequeños : consiste en 23 grafos del conjunto de 84 grafos disponible  en http://www.optsicom.es/vsp. El número de vértices de estos grafos varía entre 16 y 24 mientras que el número de aristas varía entre 18 y 34.

Grafos Harwell-Boeing : un subconjunto de los grafos disponibles en la biblioteca de dominio público Matrix Market.

Grafos estándares : un conjunto de grafos conteniendo grafos bipartitos e hipercubos.   Los grafos bipartitos poseen diferentes  dimensiones, con grafos pequeños como K4,15  y otros de mayor tamaño como K100,100. Por su parte, los hipercubos analizados van desde Q3 hasta Q10.

La tabla 1 muestra los resultados obtenidos para los grafos pequeños. Estos resultados  se corresponden  con el mejor resultado obtenido después de 30 ejecuciones de cada algoritmo. Los tiempos presentados para cada uno se corresponden  con el tiempo total empleado. En este conjunto de grafos todos los algoritmos comparados poseen un comportamiento similar. En negrita aparecen aquellos resultados obtenidos por un algoritmo que son estrictamente  mejores que los resultados obtenidos por los otros algoritmos. Considerando  este criterio, el mejor desempeño lo tiene GRASP, con una solución que supera en calidad a los otros algoritmos (instancia p52_20_27). Por otro lado, los tiempos usados por la metaheurística GRASP resultaron ser competitivos en relación a los otros algoritmos.

t01

La Tabla 2 muestra los  resultados obtenidos para los grafos Harwell-Boeing. Nuevamente en negrita están resaltadas aquellas soluciones de un algoritmo que mejoran a las soluciones obtenidas por los otros algoritmos. En este sentido, la metaheurística GRASP obtuvo el mejor desempeño. De acuerdo con la tabla, GRASP obtuvo 13 soluciones de mayor calidad que las obtenidas por los otros algoritmos. Solamente para la instancia can        73.mtx.rnd el algoritmo MAVBMP  obtuvo un resultado superior.

t02

Para los hipercubos el valor óptimo para el problema VBM es conocido  y dado el hipercubo Qn la solución para este problema viene dado por la expresión fo06(Brandes and Fleischer, 2009). De acuerdo con la Tabla 3, en todos los casos los algoritmos MAVBMP  y GRASP obtuvieron los valores óptimos, pero GRASP usa menos tiempo para alcanzar  esos valores.  En el caso de AMAGP, el desempeño no fue tan bueno sobre estos grafos y solo consigue encontrar los valores óptimos hasta el hipercubo Q6.

t03

La Tabla 4 muestra los resultados sobre grafos bipartitos. Para estos grafos, todos los resultados obtenidos por GRASP se corresponden  con los valores obtenidos por las heurísticas AMAGP  y MAVBMP  en (Jain et~al., 2016c). Los tiempos utilizados por esos algoritmos no son presentados en ese artículo.

t04

En general, la metaheurística GRASP mostró un comportamiento superior a las otras heurísticas comparadas, tanto en términos de tiempo como en calidad de las soluciones.  En resumen, 14 nuevas soluciones fueron encontradas. Cada una de estas soluciones representa  un nuevo límite superior para la solución óptima del problema  sobre estas instancias.

Debido a que las heurísticas comparadas en este trabajo cuentan con componentes aleatorias, los últimos experimentos fueron encaminados a explorar la estabilidad de sus soluciones.  En particular, fueron analizados los resultados mínimos, medios y máximos obtenidos por los métodos MAVBMP  y GRASP después de 30 ejecuciones. Estos experimentos fueron realizados  sobre los grafos de las instancias Harwell-Boeing, pues  es para estas instancias que son ofrecidos  esos valores en (Jain et~al., 2016c). En la Tabla 5, las columnas 2, 3 y 4 representan los valores mínimos, medios y máximos obtenidos por el algoritmo memético MAVBMP, mientras que las columnas 5, 6 y 7 tienen el mismo significado pero para el algoritmo GRASP. Al analizar los resultados de esta tabla puede observarse como el algoritmo GRASP presenta los valores mínimos y máximos mucho más próximos de los valores medios que el algoritmo MAVBMP,  indicando un menor error absoluto. En general, GRASP obtuvo resultados medios de mejor calidad en 24 grafos, mientras que MAVBMP  solo obtuvo un resultado medio de mejor calidad que el algoritmo GRASP. Estos resultados apuntan a una mayor calidad y estabilidad en las soluciones obtenidas por el método GRASP.

t05

 

CONCLUSIONES

En este trabajo se desarrolló  una metaheurística GRASP para el problema Vertex Bisection Minimization. De acuerdo con la estructura básica del método GRASP, fueron diseñadas e implementadas las fases constructivas y de búsqueda local. Para comprobar la efectividad del algoritmo propuesto, fueron desarrollados experimentos sobre las instancias más usadas en la literatura para este problema. Los resultados obtenidos muestran que el algoritmo propuesto obtiene soluciones de buena calidad, superando a las mejores heurísticas encontradas para este problema  en la literatura revisada. Por otro lado, el hecho de proporcionar rápidamente soluciones de buena calidad, hacen de este algoritmo un método apropiado para ser integrado en algoritmos exactos para la resolución del problema tratado.

 

AGRADECIMIENTOS

Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq)

 

REFERENCIAS BIBLIOGRÁFICAS

Aguilar, J. (2016). A general ant colony model to solve combinatorial optimization problems. Revista Colom- biana de Computación-RCC, 2(1).

Brandes, U. and Fleischer, D. (2009). Vertex bisection is hard, too. Journal of Graph Algorithms and Appli- cations, 13(2):119–131.

Bui, T. N. and Moon, B. R. (1996). Genetic algorithm and graph partitioning. IEEE Transactions on computers, 45(7):841–855.

Díaz, J., Petit, J., and Serna, M. (2002). A survey of graph layout problems. ACM Computing Surveys (CSUR), 34(3):313–356.

Díaz, J. A., Luna, D. E., Camacho-Vallejo, J.-F., and Casas-Ramírez, M.-S. (2017). Grasp and hybrid grasp- tabu heuristics to solve a maximal covering location problem with  customer preference ordering.  Expert Systems with Applications, 82:67–76.

Galinier, P., Boujbel, Z., and Fernandes, M. C. (2011). An efficient memetic algorithm for the graph partitioning problem. Annals of Operations  Research, 191(1):1–22.

Jain, P., Saran, G., and Srivastava, K. (2016a). Branch and bound algorithm for vertex bisection minimization problem. In Advanced Computing and Communication Technologies, pages 17–23. Springer.

Jain, P., Saran, G., and Srivastava, K. (2016b). A new integer linear programming and quadratically constrained quadratic programming formulation for vertex bisection minimization problem. Journal of Automation Mobile Robotics and Intelligent Systems, 10.

Jain, P., Saran, G., and Srivastava, K. (2016c). On minimizing vertex bisection using a memetic algorithm. Information Sciences, 369:765–787.

Johnson, D. S., Aragon, C. R., McGeoch, L. A., and Schevon, C. (1989). Optimization by simulated annealing: an experimental evaluation; part i, graph partitioning.  Operations research, 37(6):865–892.

Mestria, M., Ochi, L. S., and de Lima Martins, S. (2013). Grasp with path relinking for the symmetric euclidean clustered traveling salesman problem. Computers & Operations  Research, 40(12):3218–3229.

 

 

Recibido: 04/06/2018
Aceptado: 10/09/2018

Creative Commons License Todo el contenido de esta revista, excepto dónde está identificado, está bajo una Licencia Creative Commons