Documente Academic
Documente Profesional
Documente Cultură
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).
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.
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.
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.