You are on page 1of 6

Busca tabu para o problema de particionamento em grafos

Cairo A. O. Rocha1 , Antonio C. de Oliveira1


1
Departamento de Informática e Estatı́stica - Universidade Federal do Piauı́
Campus Ministro Petrônio Portella, Centro de Ciências da Natureza
SG-09 CEP 64.049-550 Teresina - Piauı́
cairoaorocha@gmail.com, costa@ufpi.br

Abstract. Tabu search is a metaheuristic that has been used successfully to solve
several hard combinatorial optimization problems. One of these problems is the
graph partitioning problem, which divides the nodes of a graph in K-partitions.
This problem has several applications, and the formation of clusters is the most
important in computer science area. This paper describe a tool that uses tabu
search with short-term memory to solve the graph partitioning problem, named
GPTabu. The computational results were compared with the initial solution and
the METIS software, which uses a heuristic method.

Resumo. A busca tabu é uma metaheurı́stica que vem sendo utilizada com
sucesso para resolver diversos problemas difı́ceis de otimização combinatória.
Entre esses problemas pode-se citar o particionamento em grafos, que divide os
nós de um grafo em K-partições. Esse problema tem diversas aplicações, sendo
a formação de clusters a mais importante na área da computação. Nesse tra-
balho foi implementado uma ferramenta que utiliza a busca tabu com memória
de curto prazo para resolver o problema de particionamento em grafos, intitu-
lado GPTabu. Os resultados computacionais foram comparados com a solução
inicial e com o software METIS, que utiliza um método heurı́stico.

1. Introdução
Muitos problemas de otimização combinatória que surgem nas organizações, na indústria,
na automação e na própria computação, podem ser resolvidos por meio de uma mod-
elagem em grafos. Ou seja, estes problemas necessitam considerar um conjunto de
conexões entre pares de objetos. Os relacionamentos derivados dessas conexões podem
ser usados para solucionar o respectivo problema.
Metaheurı́sticas vem sendo utilizadas eficientemente para resolver problemas de
otimização combinatória. Entre as mais usadas pode-se citar o GRASP, Simulated An-
nealing, Algoritmos Genéticos, Colônia de formigas e Busca Tabu [Reeves 1993]. Esta
última será a base deste trabalho que tem por objetivo propor uma implementação de
busca tabu com memória de curto prazo para o problema de particionamento em grafos
(graph partitioning), resultando no software intitulado GPTabu.
O artigo está divididido da seguinte maneira: A seção 2 define a busca tabu e o
algoritmo utilizado. A seção 3 define o problema de particionamento em grafos. A seção
4 mostra os resultados obtidos pela ferramenta e a seção 5 conclui e expõe trabalhos
futuros.
2. Busca tabu
Busca tabu é uma metaheurı́stica que guia uma heurı́stica de busca local para explorar
o espaço de soluções além da otimalidade local [Glover and Laguna 1995]. Tabu diz re-
speito a “algo proibido”, e funcionam na busca tabu basicamente restringindo movimentos
ou soluções que foram visitadas recentemente. Essa restrição é feita utilizando estruturas
de memórias projetadas para esse propósito, permitindo movimentos de piora na busca e
assim permitindo que ela escape de ótimos locais.
A busca tabu incorpora memória adaptativa e exploração responsiva a fim de
qualificá-la como uma busca inteligente. Memória adaptativa permite que procedimen-
tos sejam capazes de procurar em uma grande porção do espaço de soluções com um
mı́nimo de requisitos de memória. A conjectura da exploração responsiva na busca tabu
é que uma escolha mal feita estrategicamente rende mais informações que uma boa es-
colha aleatória, pois com o uso da memória, uma má escolha em um ponto particular pode
ajudar a fazer uma boa decisão mais tarde no processo. As restrições podem acontecer
de diversas maneiras, como restringir um elemento de entrar na solução, restringir um
elemento de ser excluı́do de uma solução, restringir a troca entre dois elementos , entre
outros [Glover and Laguna 1995]. Um elemento ou movimento de troca permanece tabu
por um perı́odo chamada perı́odo tabu (tabu tenure).
Outro conceito importante na busca tabu é o critério de aspiração. O critério de
aspiração determina quando as restrições tabu podem ser removidas, removendo uma
classificação tabu que havia sido aplicada a um movimento [Glover and Laguna 1995]. O
primeiro critério de aspiração que foi utilizado remove a classificação tabu de um movi-
mento se ele levar a uma solução melhor que a melhor solução encontrada até o momento
(Aspiração por objetivo global).

2.1. Algoritmo da busca tabu


O algoritmo da busca tabu (com memória de curto prazo) utilizado é o seguinte
[Glover 1990]:
1. Gerar uma solução inicial.
2. Criar uma vizinhança de movimentos candidatos: Cada movimento deve gerar
uma nova solução a partir da solução inicial.
3. Escolher o melhor candidato viável: Considerando as restrições tabu e critério de
aspiração, escolher o melhor candidato viável como a nova solução atual. Salvar
como a melhor solução se ela melhora a melhor solução anterior.
4. Critério de parada: Se alcançou um número total de iterações, pára.
5. Continuar: Atualiza as condições de admissibilidade (restrições tabu e critério de
aspiração) e retorna para 2.

3. Particionamento em grafos
Seja G = (V,A) um grafo valorado e não-direcionado com um conjunto de vértices V =
1, ..., m e um conjunto de arestas A = 1, ..., n com pesos associados aos vértices e arestas.
Considera-se o problema de particionamento de grafos, o particionamento do conjunto de
vértices V em k subconjuntos distintos S1 , ..., Sk de tamanhos especı́ficos m1 ≥ m2 ≥
... ≥ mk , de modo que se minimize o peso total das arestas conectando vértices em
subconjuntos distintos da partição.
Cada um desses subconjuntos é chamado de subdomı́nio ou partição. O termo
partição também pode definir o conjunto de todos os subdomı́nios. O resultado final
desse particionamento é conhecido como partição K-way do grafo. Esse problema é muito
conhecido por ser um problema NP-difı́cil [Garey and Johnson 1979] e por esse motivo
encontrar uma solução ótima não é uma tarefa fácil, portanto costuma ser possı́vel obter
apenas uma boa aproximação para a solução do problema [Carvalho 2002].
Ao executar o particionamento, é importante garantir que exista um balancea-
mento de carga entre os subdomı́nios. Considerando-se um grafo que representa o
domı́nio de um problema a ser resolvido e o particionamento desse grafo em k partições,
obter o melhor balanceamento de carga significa que cada partição obtida deve ter um
número de vértices igual ou proporcional ao peso dos vértices e que o número de arestas
entre as partições seja o mı́nimo possı́vel [Carvalho 2002].
Em algumas situações deve ser considerado o fator desbalanceamento. O des-
balanceamento pode ser definido como max(P k)/P opt, onde max(P k) é o tamanho do
maior subdomı́nio e P opt é o peso ótimo do subdomı́nio. Assim sendo, o problema de
particionamento permitindo um desbalanceamento de x% , pode ser definido como: en-
contrar uma partição para o grafo G, tal que P k ≤ P opt ∗ (100 + x)/100 , para todos o
K subdomı́nios.

3.1. Aplicações do problema de particionamento em grafos


Existem muitas aplicações importantes desse problema, tais como: computação
cientı́fica, projeto de circuitos VLSI, sistemas de informações geográficas, operações
de pesquisa e escalonamento de tarefas, mineração de dados, gerenciamento de trans-
portes, reordenação de matrizes esparsas para garantir uma decomposição mais eficiente,
formação de cluster, etc.
Uma das aplicações mais utilizadas de particionamento em grafos em ciência
da computação consiste na formação de cluster de computadores. O problema de
clusterização de computadores consiste em: dado um problema computacional de grande
porte com domı́nios computacionais não estruturados a ser resolvido em uma máquina
distribuı́da ou em um conjunto de máquinas, o problema consiste em particionar o
domı́nio do problema de modo que cada um dos subdomı́nios seja resolvido em diferentes
processadores a fim de diminuir o tempo de resolução do problema. Uma partição de-
pende do problema e da máquina, seja p o número de processadores, deseja-se particionar
o problema em p subdomı́nios, de tamanhos praticamente iguais, proporcionando um bal-
anceamento de carga e ao mesmo tempo, minimizando o número total de comunicações
entre os processadores.

3.2. Corte de arestas


Foi utilizada a métrica do corte de arestas para calcular a qualidade da solução. Corte
de arestas é definido como o conjunto de arestas cujos vértices incidentes pertencem
a subdomı́nios diferentes, ou simplesmente o conjunto de arestas que interligam sub-
domı́nios diferentes. Conforme observa-se na Figura 1, o grafo foi particionado com 3
subdomı́nios(partição 3-way) e apresentou um corte de arestas igual a 7, pois existem 4
arestas entre os subdomı́nios A e B, 2 arestas entre os subdomı́nios B e C e 1 aresta entre
os subdomı́nios C e A.
Figura 1. Um grafo particionado em 3 subdomı́nios e com corte de arestas = 7

No caso de arestas valoradas, um procedimento semelhante é executado, mas uti-


lizando o peso das arestas ao invés da quantidade de arestas. Além disso, a soluções
sofreram uma penalização proporcional ao seu desbalanceamento, soluções com 10% de
desbalanceamento tiveram seu custo piorado em 10% e assim sucessivamente, incorpo-
rando implicitamente o desbalanceamento.

4. Resultados computacionais
Foram realizados experimentos com problemas com 300, 500 e 1000 vértices, para 2
e 4 partições. Cada problema foi gerado aleatoriamente e executado 10 vezes para ser
obtido o resultado médio (apesar desta implementação da busca tabu ser determinı́stica,
a solução inicial foi gerada aleatoriamente, ocasionando pequenas diferenças entre as
soluções finais). A busca tabu realizou 1000 iterações, executando o algoritmo definido
na seção 2.1.

4.1. Comparação entre a qualidade da solução inicial e final

A Figura 2 e a Tabela 1 mostram a melhoria entre a qualidade da solução inicial e a final.


A medida que a dimensão do problema aumenta (mais vértices, arestas e uma quantidade
maior de partições), essa melhoria na qualidade da solução foi piorando.

Dimensão Partições Custo inicial Custo final Melhoria


300 2 1654 890 85%
300 4 2501 1451 72%
500 2 3247 1909 70%
500 4 4869 3103 57%
1000 2 6489 3853 68%
1000 4 9787 6291 55,5%
Tabela 1. Melhoria entre a qualidade da solução inicial e final
Figura 2. Comparação da qualidade da solução inicial e final. (a) 2 partições (b)
4 partições

4.2. Comparação entre a qualidade da solução da ferramenta e o software METIS


Para validação da ferramenta GPTabu, foram efetuados testes entre ela e o software
METIS [Karypis and Kumar 1998]. O METIS é um software para particionar grafos
grandes e irregulares, particionar grandes malhas e redução de ordem de matrizes es-
parsas. Os algoritmos no Metis são baseados no particionamento de grafos multinı́vel.
A Figura 3 mostra a comparação entre a qualidade da solução obtida pela ferra-
menta GPTabu e o software METIS. A qualidade da solução obtida pelas duas ferramentas
é bastante semelhante.

Figura 3. Comparação da qualidade da solução entre as ferramentas GPTabu x


METIS. (a) 2 partições (b) 4 partições

A Tabela 2 mostra o tempo computacional em segundos que as ferramentas gastam


em média para chegar ao resultado. Por ser um método heurı́stico, o METIS é bem mais
rápido que o GPTabu, que utiliza uma metaheurı́stica.
Dimensão Partições Tempo (s) - GPTabu Tempo (s) - METIS
300 2 8 0.01
4 26 0.01
500 2 27 0.01
4 85 0.01
1000 2 111 0.01
4 344 0.01
Tabela 2. Comparação entre os tempos computacionais das ferramentas

5. Conclusões e trabalhos futuros


A ferramenta GPTabu obteve boas soluções para o problema de particionamento em
grafos, melhorando mais de 50% a qualidade da solução inicial, para problemas de di-
mensão média. Porém, a ferramenta ainda não é competitiva com softwares já renomados
disponı́veis no mercado, pois apesar de obter resultados semelhantes, o tempo computa-
cional é significantemente maior. A utilização de técnicas adequadas de intensificação e
diversificação talvez possam reverter essa situação.
Como trabalhos futuros, serão implementadas estratégias de intensificação e
diversificação, como por exemplo o Filter-and-Fan [Glover 1998], afim de tentar obter
uma solução de melhor qualidade. A paralelização do método poderá reduzir o tempo
computacional e obter soluções de melhor qualidade, além permitir resolver problemas
de maiores dimensões. Além disso, a criação de uma nova métrica, unindo o corte de
arestas com o balanceamento de carga poderá ser utilizada.

Referências
Carvalho, E. C. A. (2002). Particionamento de grafos de aplicação e mapeamento em
grafos de arquiteturas heterogêneas. Master’s thesis, Universidade Federal do Rio
Grande do Sul.
Garey, M. R. and Johnson, D. S. (1979). Computers and intractability. A guide to the
theory of NP-completeness. Freeman.
Glover, F. (1990). Tabu search: A tutorial. Special Issue on the Practice of Mathematical
Programming.
Glover, F. (1998). A template for scatter search and path relinking.
Glover, F. and Laguna, M. (1995). Tabu search tutorial.
Karypis, G. and Kumar, V. (1998). Metis: a software package for partitioning unstruc-
tured graphs, partitioning meshes, and computing fill-reducing order of sparse matri-
ces.
Reeves, C., editor (1993). Modern Heuristic Techniques for Combinatorial Problem.
McGraw-Hill.

You might also like