algoritmos para o problema de particionamento em grafoseduardo/publications/artigo.pdf · o...

16
CLEI 2011 Algoritmos para o Problema de Particionamento em Grafos Thiago de Paulo Faleiros 1,2 Instituto Federal de Educa¸c˜ ao, Ciˆ encia e Tecnologia de Goi´as Luziˆ ania, Brasil Eduardo Candido Xavier 3 InstitutodeComputa¸c˜ao Universidade Estadual de Campinas Campinas, Brasil Resumo Investigamos Problemas de Particionamento de objetos que tˆ em rela¸ oes de similaridade entre si. Instˆ ancias desses problemas podem ser representados por grafos, em que objetos s˜ ao v´ ertices e a similaridade entre dois objetos ´ e representada por um valor associado ` a aresta que liga os objetos. Nosso foco ´ e o estudo de algoritmos para clusteriza¸ ao em grafos, onde deve-se determinar clusteres tal que arestas ligando v´ ertices de clusteres diferentes tenham peso baixo e ao mesmo tempo as arestas entre v´ ertices de um mesmo cluster tenham peso alto. No caso geral estes problemas s˜ ao NP-Dif´ ıceis. Nosso interesse ´ e investigar algoritmos eficientes e que gerem boas solu¸ oes, como Heur´ ısticas, Meta-heur´ ısticas e Algoritmos de Aproxima¸ c˜ao. Dentre os algoritmos estudados, implementamos os mais promissores e fazemos uma compara¸ ao de seus resultados utilizando instˆ ancias geradas computacionalmente. Por fim, propomos um algoritmo que utiliza a metaheur´ ıstica GRASP para o problema considerado e mostramos que para as instˆ ancias de testes geradas, nosso algoritmo obt´ em melhores resultados. Keywords: Problema de Particionamento, Grafos, Meta-heur´ ısticas, Spectral Clustering 1 Introduction Devido ` a dificuldade computacional de se encontrar solu¸c˜ oes ´otimas para mui- tos dos problemas de otimiza¸ c˜aocombinat´ oria, foram elaborados m´ etodos que 1 Este trabalho recebeu aux´ ılio financeiro da FAPESP e do CNPq 2 Email: [email protected] 3 Email: [email protected] This paper is electronically published in Electronic Notes in Theoretical Computer Science URL: www.elsevier.nl/locate/entcs

Upload: others

Post on 10-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

CLEI 2011

Algoritmos para o Problema de

Particionamento em Grafos

Thiago de Paulo Faleiros1,2

Instituto Federal de Educacao, Ciencia e Tecnologia de GoiasLuziania, Brasil

Eduardo Candido Xavier 3

Instituto de ComputacaoUniversidade Estadual de Campinas

Campinas, Brasil

Resumo

Investigamos Problemas de Particionamento de objetos que tem relacoes de similaridade entresi. Instancias desses problemas podem ser representados por grafos, em que objetos sao verticese a similaridade entre dois objetos e representada por um valor associado a aresta que liga osobjetos. Nosso foco e o estudo de algoritmos para clusterizacao em grafos, onde deve-se determinarclusteres tal que arestas ligando vertices de clusteres diferentes tenham peso baixo e ao mesmotempo as arestas entre vertices de um mesmo cluster tenham peso alto. No caso geral estesproblemas sao NP-Difıceis. Nosso interesse e investigar algoritmos eficientes e que gerem boassolucoes, como Heurısticas, Meta-heurısticas e Algoritmos de Aproximacao. Dentre os algoritmosestudados, implementamos os mais promissores e fazemos uma comparacao de seus resultadosutilizando instancias geradas computacionalmente. Por fim, propomos um algoritmo que utiliza ametaheurıstica GRASP para o problema considerado e mostramos que para as instancias de testesgeradas, nosso algoritmo obtem melhores resultados.

Keywords: Problema de Particionamento, Grafos, Meta-heurısticas, Spectral Clustering

1 Introduction

Devido a dificuldade computacional de se encontrar solucoes otimas para mui-tos dos problemas de otimizacao combinatoria, foram elaborados metodos que

1 Este trabalho recebeu auxılio financeiro da FAPESP e do CNPq2 Email: [email protected] Email: [email protected]

This paper is electronically published inElectronic Notes in Theoretical Computer Science

URL: www.elsevier.nl/locate/entcs

Page 2: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

Faleiros, Xavier

abrem mao da otimalidade em troca de solucoes consideradas “boas” e quepossam ser obtidas eficientemente. Em muitas ocasioes, percebe-se que nafalta de uma solucao otima do problema, pode-se utilizar a melhor solucaodisponıvel. Com isso, metodos eficientes que encontrem solucoes nao neces-sariamente otimas, mas suficientemente boas podem ser muito uteis. Dentreesses metodos, destacamos as heurısticas.

Os metodos heurısticos englobam varias tecnicas de resolucao de problemasque obtem solucoes boas mas nao necessariamente otimas. Dentre as variastecnicas, citamos a busca tabu, algoritmos geneticos e GRASP. Para maisinformacoes sobre heurısticas, veja [11]. Heurısticas fornecem solucoes sem umlimite formal de qualidade, ao contrario de solucoes geradas por algoritmosaproximados. Ainda assim, na pratica, o uso de heurısticas tem sido promissorpara a obtencao de solucoes de boa qualidade.

Neste trabalho temos interesse em investigar metodos heurısticos para pro-blemas de particionamento. O objetivo desse problema e particionar um dadoconjunto de objetos de maneira que objetos “similares” pertencam a mesmaparte, enquanto objetos em partes distintas sejam menos “similares”. Taisproblemas aparecem na literatura de maneira bem variada. Isso ocorre prin-cipalmente devido ao grande numero de aplicacoes existentes, cada uma comuma definicao apropriada da funcao de “similaridade”. Os problemas con-siderados sao NP-difıceis e, portanto, e improvavel que sejam encontradosalgoritmos exatos eficientes.

Existem diversas aplicacoes para problemas de particionamento. Em pro-cessamento de imagens, por exemplo, ha problemas de segmentacao de ima-gens que podem ser resolvidos atraves de problemas de particionamento. Ou-tro problema real que pode ser modelado como um problema de particiona-mento e encontrar subconjuntos de paginas da Web que estao relacionadasentre si.

Quanto a organizacao deste trabalho, inicialmente, na Secao 2 sao descritasas funcoes de avaliacao de particionamento. Em seguida, na Secao 3, saomostrados os algoritmos mais promissores para o problema. Na Secao 4, eapresentada a abordagem proposta neste trabalho que utiliza GRASP paraencontrar solucoes para o problema de particionamento em grafos. E por fim,na Secao 5, sao analisados os resultados computacionais das execucoes dosalgoritmos.

1.1 Problemas de Clusterizacao e Particionamento

Neste trabalho consideramos o problema de particionamento de um grafo,que tambem chamaremos de clusterizacao de um grafo. Como instancia doproblema, temos um grafo G = (V,E) com pesos nas arestas que indicam asimilaridade entre os pares de vertices. O objetivo e encontrar uma particao

2

Page 3: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

Faleiros, Xavier

dos vertices, de forma que cada parte, ou cluster, tenha arestas entre verticesinternos com peso alto e o peso das arestas entre vertices de clusteres diferentesseja baixo.

Essa relacao entre os vertices internos de um cluster e todos os outrosvertices, apresenta um paradigma geral para particionamento. Esse para-digma relaciona a densidade intracluster, definida pela soma dos pesos dasarestas internas do subgrafo induzido por Ci (cluster), a esparsidade inter-cluster, definida pela soma dos pesos das arestas que saem do subgrafo (oucluster), ou seja, as arestas do corte induzido pelo particionamento.

Dessa forma, para modelar o problema como um problema de otimizacaocombinatoria, deve-se ter uma funcao de avaliacao cujo o objetivo comum eencontrar particoes que maximizem a densidade intracluster e que tambemmaximizem a esparsidade intercluster.

2 Funcoes de Avaliacao

Nesta secao, vamos definir as funcoes de avaliacao utilizadas para determinarum “bom” particionamento. Antes disso, definiremos a notacao utilizada.Assumiremos que G = (V,E,w) e um grafo simples, conexo, nao direcionado ecom uma funcao w : E → R+. Seja |V | = n e C = {C1, ..., Ck}, Ci∩Cj = ∅ comi 6= j, uma particao (tambem chamaremos de particionamento/clusterizacao)de V , onde cada Ci ⊆ V corresponde a um cluster e ∪ki=1Ci = V . Denotaremospor w(C) a soma do peso de todas as arestas intracluster. Para um subconjuntode arestas E ′ ⊆ E, definimos w(E ′) =

∑e∈E′ w(e). O subgrafo induzido pelo

subconjunto Ci sera denotado por G[Ci], e denotamos por E(Ci) as arestasdeste subgrafo. Sejam X e Y subconjuntos de V . Denotamos por E(X, Y )o conjunto de arestas entre vertices de X e Y . O somatorio dos pesos dasarestas de E(X, Y ) sera denotado por c(X, Y ).

A seguir, serao descritas as funcoes de Corte Normalizado e Desempenho(Performance).

Corte Normalizado - NCut: Seja um particionamento C = {C1, . . . , Ck}com k > 1. O custo do corte normalizado de C e definido como

NCut(C) =k∑i=1

c(Ci, V \Ci)a(Ci)

.

ondea(Ci) =

∑u∈Ci

∑v∈V

w(u, v) = 2∑

e∈E(Ci)

w(e) +∑

e∈E(Ci,V \Ci)

w(e)

Note que, quanto menor for o custo do corte normalizado, melhor sera oparticionamento.

3

Page 4: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

Faleiros, Xavier

Desempenho - Performance: A Performance de um particionamentoC representa o numero de “pares de vertices corretamente interpretados” emum grafo [3]. Informalmente, a Performance e uma soma normalizada decontribuicoes de cada par de vertices. Se os dois vertices estiverem no mesmocluster, entao o par contribui com o peso da aresta entre eles, se houver. Docontrario, o par contribui com um valor fixo, descontado o peso da arestacorrespondente, quando existir. Seja M o peso maximo que uma aresta podeter. Definimos funcoes f e g como:

f(C) =k∑i=1

w(E(Ci))

g(C) =k∑i=1

∑j>i

M |{(u, v) /∈ E|u ∈ Ci, v ∈ Cj}|

A funcao f contara a contribuicao dos pares de vertices intracluster, enquantoa funcao g contara a contribuicao M de cada par de vertices nao adjacentesem diferentes clusteres. Para descontar o custo das arestas intercluster, efeita a diferenca (M |E(C)| − w(E(C))), onde E(C) e o conjunto de arestasintercluster. A formula completa da Performance e dada por

Performance(C) =f(C) + g(C) + (M |E(C)| − w(E(C)))

12n(n− 1)M

.

Quanto maior for o valor da Performance, melhor sera o particionamento.

3 Algoritmos

Nesta secao, sao descritos os algoritmos que tratam o problema de particiona-mento em grafos. Propriedades de um bom algoritmo, como a baixa comple-xidade computacional e facilidade de implementacao em aplicacoes praticas,foram consideradas na selecao feita apos a revisao bibliografica.

Alguns algoritmos utilizam uma matriz normalizada M(G), chamada dematriz de transicao, de um dado grafo com pesos nas arestas nao direcionadoG = (V,E,w). Define-se matriz de transicao como M(G) = D(G)−1 × A(G),tal que A(G) e a matriz de adjacencia do grafo G e D(G)−1 e a inversa deuma matriz diagonal D(G). A matriz D(G) possui zeros em todas as posicoesexceto na diagonal, onde em cada posicao [v, v] considera-se a soma dos pesosdas arestas incidentes em v, i.e. D(G) = diag(d(V )), onde v ∈ V , d(v) =∑

(v,u)∈E w(v, u).

4

Page 5: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

Faleiros, Xavier

3.1 Markov Clustering(MCL)

O Algoritmo MCL (veja o Algoritmo 1) foi proposto em [13]. A ideia destealgoritmo e simular passeios aleatorios em um grafo. A matriz de transicaoe utilizada no algoritmo, onde para um par de vertices u, v interpretamos osvalores M(G)[u, v] como a probabilidade de a partir de u irmos para v. Oalgoritmo parte do princıpio que em um passeio aleatorio comecando de umvertice de um cluster denso (com vertices altamente similares) com poucaprobabilidade o passeio ira deixar o cluster ate que varios vertices do clustersejam visitados. No algoritmo puv corresponde ao valor M(G)[u, v].

Algoritmo 1

Entrada: (G = (V,E,w), parametro de expansao e, parametro de inflacao r)

inicio

M ←M(G);

enquanto (M nao e imdepotente) faca

M ←Me;

para todo (u ∈ V ) faca

para todo ( v ∈ V ) faca

puv ← pruv;

para todo (v ∈ V ) faca

puv ← puv∑w∈V puv

;

fim do para

fim do enquanto

H ← grafo induzido pelas entradas diferentes de zero em M ;

C ← particao induzida por componentes conexo de H;

fim

Algoritmo 1. Markov Clustering (MCL)

Para simular os passos de um passeio dentro do grafo, a matriz de transicaoM e elevada a uma potencia e, obtendo M e. Cada entrada peu,v de M e corres-ponde a probabilidade de ir de u para v em e passos em um passeio aleatorio.

Na proxima etapa do algoritmo, chamada de inflacao, cada entrada peu,v eelevada a um valor constante r e re-normalizada logo em seguida. O objetivoe que os valores de transicoes com alta probabilidade sejam intensificados etransicoes baixas sejam degradadas.

Devido a alternancia entre exponenciacao e inflacao, valores baixos ten-derao para zero. Assim, as arestas que ligam vertices de diferentes subgrafosdensos serao degradadas de forma que no resultado final do algoritmo, cadacomponente conexo representara um particionamento.

Na tese de Dongen [13] nao e apresentada uma prova formal demonstrandoque o processo de alternancia entre exponenciacao e inflacao ira levar a “bons”particionamentos. Entretanto, a heurıstica que leva para a formulacao doalgoritmo sugere que bons particionamentos possam ser determinados.

5

Page 6: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

Faleiros, Xavier

3.2 Iterative Conductance Cutting (ICC)

Inicialmente, para entender o Algoritmo ICC (veja o Algoritmo 2), definiremoscorte de condutancia. A condutancia de um corte compara o custo do cortee os pesos das arestas internas dos dois subgrafos induzidos. A condutanciaϕ(Ci) de um corte c(Ci, V \Ci) em G e definido como:

ϕ(Ci) =c(Ci, V \Ci)

min(a(Ci), a(V \Ci)).

A condutancia ϕ(G) de um grafo G e o valor da condutancia mınima dentretodos possıveis cortes de G:

ϕ(G) = minCi⊂V ϕ(Ci)

Note que a funcao de condutancia relaciona bem o paradigma principaldeste trabalho, que e encontrar subconjuntos de vertices com alto peso nasarestas internas e peso baixo nas arestas que ligam diferentes subconjuntos devertices (arestas externas).

Dessa forma, a ideia do Algoritmo ICC (proposto por [9]) e que em umbom particionamento {C1, ..., Ck} do grafo, cada Ci tem o valor do corte decondutancia ϕ(Ci) baixo e, ao mesmo tempo, o valor de condutancia de G[Ci](ϕ(G[Ci]) nao e baixo.

Inicialmente o algoritmo considera como particionamento apenas umaparticao que contem todos os vertices, i.e., C = {V }. A cada iteracao o algo-ritmo verifica se existe uma particao C ⊂ C que possa ser separada em duasnovas particoes tal que o valor da condutancia destas duas novas particoesseja baixo. Para encontrar estas duas novas particoes o algoritmo considera osubgrafo induzido G[C] e acha um corte com condutancia mınima aproximada.

O algoritmo procede enquanto houver particoes que possam ser divididas.

Algoritmo 2Entrada: (G = (V,E,w), limiar de condutancia 0 < α∗ < 1)

inicio

C ← {V };enquanto (∃ C ∈ C com ϕ(G[C]) < α∗) faca

x← autovetor de M(G[C]) associado ao segundo maior autovalor;

S ← {S ⊂ C | maxv∈S(xv) < minw∈C\S(xw)};C′ ← arg minS∈S(ϕ(S));C ← (C\{C})

⋃{C’,C\C’};

fim enquanto

fim

Algoritmo 2. Iterative Conductance Cutting (ICC)

O problema de encontrar o corte de condutancia mınima e NP -Difıcil [9].Dessa forma, o Algoritmo ICC utiliza uma heurıstica que retorna uma apro-ximacao para o corte de condutancia mınima. A heurıstica para aproximar o

6

Page 7: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

Faleiros, Xavier

corte de condutancia mınima pode ser descrita da seguinte forma: primeira-mente calcula-se o autovetor x ∈ Rn relativo ao segundo maior autovalor λ2da matriz M(G[C]), onde G[C] e o grafo induzido do subconjunto de verticesC; a partir dos valores de x = {x1, ..., xk} ordena-los em ordem crescente, talque xi1 ≤ xi2 ≤ ... ≤ xik e em seguida encontrar o valor t que minimize acondutancia ϕ({xi1 , ..., xit}), 1 ≤ t ≤ k.

No trabalho de [9] e provado um limite superior para a aproximacao coma seguinte relacao:

ϕ(G) ≥ 1− λ2 ≥φ(G)2

2(1)

onde φ(G) e o valor do corte de condutancia encontrado pelo algoritmo apro-ximado que utiliza a heurıstica do segundo autovetor λ2.

3.3 Geometric MST Clustering (GMC)

A ideia do Algoritmo GMC [3] (veja o Algoritmo 3) e imergir um grafo G noespaco Rn e atribuir peso as arestas. Os valores dos pesos serao dados pelarelacao de distancia entre vertices. Em seguida, e criada uma arvore geradoramınima (Minimum Spanning Tree - MST) com os novos pesos das arestas deG. Seja T uma MST gerada com os novos pesos. Para encontrar os clusteres,sao removidas arestas de T com peso superior a um limiar τ . Chamaremos deF (T, τ) a floresta induzida por todas as arestas de T com peso no maximo τ .Para cada limiar τ , os componentes conexos de F (T, τ) gerarao uma solucaocom clusteres que denotamos por C(τ). A solucao final e determinada pelolimiar τ que otimiza a funcao de qualidade (ver Secao 2) aplicada sobre C(τ).Veja o Algoritmo 3 para a descricao em pseudocodigo do Algoritmo GMC.

Algoritmo 3

Entrada: (G = (V,E,w), numero de dimensoes para imersao d ,

funcao de avaliacao de clusteres q)

inicio

(1, λ2, ..., λd+1)← d+ 1 maiores autovalores de M(G);

d′ ← max{i|1 ≤ i ≤ d, λi > 0};x1, ..., xd′ ← autovetores de M(G) associados com λ1, ..., λd′ respectivamente;

para todo (e = (u, v) ∈ E) faca

w′(e)←d′∑i=1

|xi[u]− xi[v]|;

fim do para

T ← arvore geradora mınima de G em relacao a w′;Dentre todos τ ∈ {w(e)| ∈ T}, devolva C(τ) que otimiza q(C(τ));

fim

Algoritmo 3. Geometric MST Clustering (GMC)

O Algoritmo GMC cria a matriz de transicao do grafo de entrada e seleci-ona os autovetores uteis para fazer a imersao do grafo no espaco. Uma imersaodo grafo G no espaco e construıda a partir de d autovetores {x1, x2, ..., xd} da

7

Page 8: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

Faleiros, Xavier

matriz de transicao M(G) que estao associados aos maiores autovalores me-nores ou iguais a um. Formalmente, podemos enunciar o problema da imersaode um grafo G no espaco d-dimensional da seguinte forma:

Problem 3.1 (Imersao no Espaco) [6] Dado como entrada um grafo G =(V,E) com n vertices – sem perda de generalidade assumimos que V ={1, 2, ..., n} – e uma funcao de custo g : Rn×d → R, onde d representa onumero de dimensoes. O objetivo e determinar uma funcao % : V → Rd talque, se a funcao de custo g tem um mınimo global, entao o valor de g(A) e omınimo com a matriz A construıda como

A =

%(1)

...

%(n)

.

Note que no algoritmo a imersao para cada vertice v e dada por %(v) =(x1[v], x2[v], . . . , xd′ [v]).

Para ilustrarmos o processo de imersao de um grafo e a sua relacao comclusteres, tomaremos como exemplo um grafo (ver Figura 1) e aplicaremoso processo descrito pelo Algoritmo GMC. Para simplificar a ilustracao, seraconsiderada a imersao do grafo G′ em uma reta (d = 1).

Sejam o grafo G′ = (V ′, E ′), representado pela Figura 1, e x1 o autovetorassociado ao segundo maior autovalor de M(G′).

Figura 1. Grafo G′ dado como entrada para o exemplo de imersao no espaco Rn.

Neste caso % e dado pelo unico autovetor x1, e e uma funcao que atribuium valor real a cada vertice. A representacao e dada pela Figura 2.

Figura 2. Reta com a imersao dos vertices do grafo G1.

8

Page 9: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

Faleiros, Xavier

Note que os pontos {e, g, d, f} estao posicionados proximos um dos outrose distantes dos pontos {c, b, a}. Para o grafo G′, que e um grafo com pou-cos vertices, e possıvel perceber que os clusteres sao os conjuntos de vertices{e, g, d, f} e {c, b, a} apenas com o auxılio dessa imersao.

Quanto ao tempo de execucao, o Algoritmo GMC e dominado pelo tempode calcular os autovetores da matriz de transicao e o tempo da criacao daarvore geradora mınima.

4 GRASP para o problema de Particionamento

Nesta secao, e apresentada uma nova abordagem que utiliza a meta-heurısticaGRASP para tratar o problema de particionamento em grafos. GRASP (Gre-edy Randomized Adaptive Search Procedure) e uma meta-heurıstica iterativa,desenvolvida por Feo e Resende [4], em que a cada iteracao duas fases a saoexecutadas: construcao e busca local.

Na fase de construcao, uma solucao viavel e criada progressivamente apartir do zero. Em cada iteracao, apenas um elemento e adicionado a solucao.A selecao do proximo elemento e guiado por uma funcao gulosa-aleatoria quemede o benefıcio que o mais recente elemento escolhido concede para a solucaoate entao construıda.

Na busca local, o objetivo e tentar melhorar a solucao inicial S de maneiraiterativa. A cada iteracao, e gerado um conjunto de solucoes vizinhas de S,denotado por N(S). Este conjunto e gerado atraves de pequenas modificacoesna solucao atual S. A melhor solucao em N(S) e escolhida para ser a solucaoatual, se esta melhorar o custo da funcao objetivo em relacao a S. O processoe repetido ate encontrarmos um mınimo local, quando a solucao atual naopode ser melhorada.

Para descrever a utilizacao da meta-heurıstica GRASP para tratar o pro-blema de particionamento em grafos, deve-se ater em dois passos importantes.Primeiro, como construir uma solucao inicial viavel para o problema de par-ticionamento em grafos e, em seguida, como gerar os vizinhos para realizar abusca local.

4.1 Construcao da Solucao Inicial

Foram elaboradas varias estrategias para a fase de construcao. Para cadaestrategia, considera-se um grafo G = (V,E,w) dado como entrada. Abaixosao descritas as estrategias:

Classificacao gulosa utilizando centroides: Seja R um subconjuntocom k vertices de V . Chamaremos cada vertice ri ∈ R, para i = 1, . . . , |R|, decentro. Cada centro ri correspondera a um cluster Ci do particionamento C,

9

Page 10: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

Faleiros, Xavier

onde 1 ≤ i ≤ k. A estrategia e atribuir cada vertice ao cluster mais similar deforma que a soma dos pesos das arestas para outros clusteres seja baixa. Emoutras palavras, um vertice v ∈ V sera atribuıdo ao cluster Ci (correspondenteao centro ri) que tenha o menor valor para

q(v, Ci) =1

w(v, ri) + ε+

∑{u∈Cj |i 6=j}

w(v, u), (2)

onde ε e uma constante, tal que 0 < ε ≤ 1.

Para encontrar o conjunto R com os centros iniciais resolvemos o problemado k-centro ou k-means. Embora ambos sejam NP -Difıceis, existem algorit-mos aproximados rapidos com bom fator de aproximacao e heurısticas queretornam bons resultados [8] [7] [10].

Antes de buscar o conjunto R de centros de um grafo G, devemos cons-truir uma representacao do grafo no espaco d-dimensional. Para construir arepresentacao, e feito o processo de imersao no espaco (veja o Problema 3.1).Veja o Algoritmo 4 para a construcao da imersao.

O Algoritmo 4 utiliza o mesmo princıpio de imersao utilizado pelo algo-ritmo GMC. Uma representacao do vertice u ∈ V no espaco corresponderaa um vetor linha %(u) de R, onde a matriz R e formada pelos autovetoresx1, ..., xd de M correspondente aos d maiores autovalores 1, λ2, ..., λd.

Algoritmo 4

Entrada (G = (V,E,w) com n vertices, d e o numero de dimensoes para

imersao)

inicio

Represente cada vertice de V como um inteiro de 1 ate n;

Construa a matriz de transicao de probabilidade M(G);

(1, λ2, ..., λd)← d maiores autovalores de M(G);

x1, ..., xd ← autovetores de M(G) associado com 1, λ2, ..., λd;

para todo (i de 1 ate n) faca

%(i)← (x1[i], ..., xd+1[i]);

retorne a representacao %;

fim

Algoritmo 4. imersao – Algoritmo para imersao no espaco

O algoritmo guloso-aleatorio utilizado pelo GRASP para a construcao deuma solucao inicial viavel e descrito no Algoritmo 5. Inicialmente, o algoritmocria uma representacao dos vertices do grafo no espaco e busca o conjunto decentros da representacao. Na descricao do Algoritmo 5, utilizamos o metodo k-centros para encontrar esse conjunto. Entretanto, nos testes computacionais,utilizamos tambem o algoritmo k-means. Cada centro sera atribuıdo a umcluster diferente. Em seguida, escolhemos aleatoriamente um conjunto T ′

com um numero x vertices. Cada vertice desse conjunto e atribuıdo ao clusterque minimiza a funcao q definida em (2). O algoritmo para quando todos osvertices forem atribuıdos a algum dos k clusteres.

10

Page 11: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

Faleiros, Xavier

Algoritmo 5

Entrada: (grafo G = (V,E,w) , valor constante x, numero k de clusteres)

inicio

%← imersao(G);

R← k − center(%);Atribua cada vertice de R a um diferente cluster Ci, onde 1 ≤ i ≤ k;

T ← V \R;

enquanto (T 6= ∅) faca

Escolha aleatoriamente um subconjunto T ′ ⊆ T tal que |T ′| ≤ x;

para todo (p ∈ T ′) faca

{p} ∪ argminri∈Rq(Ci);

T ← T − T ′;fim do enquanto

Retorne o particionamento {C1, . . . , Ck};fim

Algoritmo 5. Algoritmo Aleatorio Guloso para construcao de uma solucao do problema departicionamento.

Classificacao Gulosa Aleatoria: Elaboramos uma outra forma maissimples de construir uma solucao inicial viavel. Seja R um subconjuntode V com k centros escolhidos aleatoriamente. Cada cluster sera formadoincrementalmente, escolhendo a aresta de maior peso que sai de um verticepertencente a um cluster e unindo esse cluster ao vertice da aresta. Inici-almente, serao criados k clusteres C1, . . . , Ck com apenas um vertice de Rem cada um. A cada passo do algoritmo, escolhemos a aresta de maior pesoque liga um vertice v ainda nao associado a um vertice de algum cluster Ci,1 ≤ i ≤ k, e adicionamos v a Ci.

Solucoes iniciais de heurısticas: Outra forma de construir solucoesiniciais e aproveitar o particionamento retornado por outras heurısticas comoo ICC e MCL, que podem ser usados para gerar a solucao inicial.

4.2 Busca Local

Nesta secao descrevemos como gerar uma vizinhanca para uma dada solucao.A partir de uma solucao inicial C, uma solucao vizinha C ′ ∈ N(C) e obtidapela operacao de “movimento”. Essa operacao corresponde a mover algunsvertices de um cluster Ci ∈ C para outro cluster Cj ∈ C.

Seja G′ = (Ci, E′, w) o subgrafo induzido pelos vertices de Ci; aplicamos o

corte mınimo em G′ e obtemos os subconjuntos S e S, separados pelo corte.Dentre S e S considere o de menor tamanho, digamos S. Um movimentocorresponde a atribuicao de todos os vertices de S para um outro cluster Cj.Para cada atribuicao teremos uma uma nova solucao que sera uma solucaovizinha de C.

Seja k o numero de clusteres. Em cada iteracao da busca local, serao feitosk cortes mınimos e k(k − 1) movimentos. As operacoes de movimentos temcomplexidade O(n), restando o corte mınimo como a operacao mais onerosa.

11

Page 12: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

Faleiros, Xavier

A forma tradicional de resolver o problema de corte mınimo e por meio desua relacao com o problema de fluxo maximo. Ford e Fulkerson [5] mostrarama dualidade entre o fluxo maximo de s para t e o corte (s, t) mınimo (minimun(s, t)-cut). No problema de corte (s, t) mınimo, s e t sao dois vertices quedevem ser separados por um corte mınimo. Encontrar um corte mınimo deum grafo pode ser resolvido encontrando-se o corte de custo mınimo dentre oscortes (s, t) mınimos entre um vertice fixo s e cada outro vertice t ∈ V \{s}.O algoritmo mais rapido para se resolver o problema do corte mınimo usandofluxo tem complexidade de tempo O(n3) [1]. Neste trabalho, utilizamos umalgoritmo determinıstico simples e rapido, com complexidade de tempo O(n3)[12].

5 Resultados Computacionais

Nesta secao, apresentamos uma comparacao entre os algoritmos escolhidos,analisando os resultados aplicando as funcoes NCut e Performance.

Quanto aos recursos utilizados nos testes, todos os experimentos foramexecutados em um computador Intel XEON 2.40GHz com 1GB de RAMutilizando o sistema operacional LINUX versao 2.6. As implementacoes dosalgoritmos foram escritas em Java (1.6.0). Foi utilizada a biblioteca LAPACKque prove rotinas para resolver problemas de algebra linear (principalmentedecomposicao em autovetores e autovalores) [2].

5.1 As Instancias

Seguindo o processo de geracao aleatoria de grafos descrita por Brandes etal [3], criamos um gerador aleatorio de grafos com n vertices e com clusteresde tamanho quase uniformes. Um gerador P (n, s, v) determina uma particaoC = (C1, . . . , Ck) de {1, . . . , n} com |Ci| sendo uma variavel aleatoria comvalor esperado s e desvio padrao s

v. O valor de k depende da escolha de n, s e

v. Dada uma particao C = P (n, s, v) e probabilidades pin e pout, um grafo G egerado. Os pesos das arestas do grafo G sao definidos da seguinte forma: parauma aresta cujos vertices estao em um mesmo cluster Ci, o peso e um valorescolhido aleatoriamente no intervalo [pin, 1]; para uma aresta cujos os verticesestao em clusteres diferentes, o peso e um valor escolhido aleatoriamente nointervalo [0, pout]. Caso o grafo gerado nao seja conexo, arestas adicionais compeso pout sao adicionadas.

Para nosso experimento, os parametros (n, s, v), pin e pout sao definidos aseguir. Tomamos v = 4 e escolhemos s por meio de uma distribuicao uniformealeatoria de {n

l| log n ≤ l ≤

√n}. Experimentos sao executados para n = 500.

Todas as combinacoes de probabilidades de pin e pout que distam de 0.05 saoconsideradas desde que o valor de probabilidade pin seja maior que o valor

12

Page 13: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

Faleiros, Xavier

de pout (pin > pout). Com isso, foram criadas 171 instancias. As instanciascom probabilidade pin alta e pout baixa sao “faceis” de se encontrar um “bom”particionamento. Chamaremos essas instancias “faceis” de instancias esparsas.Chamaremos de instancias “densas” aquelas com probabilidade pout alta.

5.2 Parametros e Implementacao dos Algoritmos

Os parametros do Algoritmo MCL foram definidos com e = 2 e r = 2, comosugerido no trabalho [6]. No Algoritmo GMC, os melhores resultados foramencontrados para o parametro d = 5. No Algoritmo ICC, para que ele pu-desse encontrar o particionamento em todas as instancias, iniciamos os testescom α = 0.4. Caso o Algoritmo ICC tenha encontrado um particionamentocom apenas um cluster, incrementamos α em 0.01 e aplicamos o ICC nova-mente. Sucessivas execucoes do ICC com α incrementado foram feitas ate queo resultado fosse um particionamento com mais de um cluster.

Modificamos o Algoritmo GMC para que ele gerasse particionamentos cujonumero de clusteres estivesse entre um limite inferior e um limite superior.No processo realizado pelo Algoritmo GMC modificado, apos a construcao daarvore geradora mınima T (ver Algoritmo 3 ), o particionamento e calculadosomente se o numero de componentes desconexos da floresta induzida F (T, τ)for maior que 2 e menor que 40. Usamos o limite inferior 2 para que nunca fossegerado o particionamento trivial e o limite superior 40 para que o algoritmo naogerasse particionamentos que extrapolam a quantidade de clusteres esperados.

Na meta-heurıstica GRASP, o numero maximo de iteracoes executadas e15. Alem disso, incluımos na busca local a capacidade de ser interrompidase, apos varias buscas nas solucoes vizinhas, nao ocorrer uma melhora signifi-cativa na solucao. Isso foi feito na implementacao para diminuir o tempo deconvergencia. Foram feitos varios testes para encontrar qual a porcentagem demelhora considerada significativa. Notamos que, se em 10 iteracoes da buscalocal, em cada iteracao a solucao vizinha melhora menos de 0, 5% em relacaoa solucao corrente, a convergencia para o otimo local sera bastante lenta.

5.3 Os resultados

Os resultados sao apresentados para cada funcao de avaliacao. Para mostrar deforma resumida os resultados dos testes sobre as 171 instancias, agrupamos osresultados em relacao ao valor de pout. Para cada valor fixo de pout e mostradaa media dos resultados para todos os valores de pin. Alem disso, para ogrupo pout foi construıdo quatro graficos, dois para apresentarem os valoresdas funcoes de avaliacao e outros dois, um para cada funcao de avaliacao, comos tempos de processamento dos algoritmos.

Os itens que sao apresentados nos graficos sao os seguintes: grasp (icc) –com solucoes iniciais geradas pelos algoritmos ICC, MCL, k-centro, k-means,

13

Page 14: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

Faleiros, Xavier

classificacao gulosa utilizando centroides e classificacao gulosa aleatoria; grasp– Algoritmo GRASP sem a utilizacao do resultado do Algoritmo ICC parasolucao inicial; mcl – Algoritmo MCL; icc – Algoritmo ICC; gmc – AlgoritmoGMC; result – que corresponde aos particionamentos gerados por P (n, s, v)e utilizados nas construcoes das instancias de testes.

As figuras 3 e 5 mostram os resultados obtidos pelos algoritmos conside-rando as funcoes de NCut e Performance e os resultados agrupados pelo valorde probabilidade pout (o eixo x representa pout). Os resultados obtidos pelosalgoritmos grasp e grasp (icc) sao praticamente identicos. Isso mostra que,mesmo sem uma solucao inicial dada pelo ICC, a busca local ainda convergede forma eficiente.

Note que o Algoritmo mcl nao encontrou nas instancias densas (com pout >0.2) particionamentos com mais de dois clusteres. Por outro lado, o Algoritmogmc encontrou particionamento para todas as instancias, mas com o valor dePerformance menor do que o do particionamento gerador result.

Considerando a funcao de NCut, o Algoritmo icc encontrou bons particio-namentos apenas para instancias com grafos esparsos. Considerando a funcaode Performance, o Algoritmo icc encontrou “bons” particionamentos.

Figura 3. Comparacao dos particionamentos obtidos com o particionamento gerador (Avaliadospor NCut e agrupados por pout).

As Figuras 4 e 6 apresentam o tempo de execucao dos algoritmos paraas funcoes de NCut e Performance. Podemos notar que os algoritmos mcle gmc apresentam poucas variacoes no tempo de execucao. Temos que otempo de execucao do gmc e significantemente menor do que qualquer outroalgoritmo testado. O Algoritmo icc apresenta uma piora no tempo a medidaque o grafo se torna mais denso, que e justificado pelos sucessivos incrementosno parametro α.

Os algoritmos grasp e grasp (icc) possuem tempo bastante variavel,porque a busca local depende da qualidade da solucao inicial para chegar aum otimo local. Por outro lado os algoritmos grasp e grasp (icc) sao osunicos algoritmos que apresentam resultados muito proximos de result para

14

Page 15: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

Faleiros, Xavier

Figura 4. Comparacao dos tempos de execucao dos algoritmos (NCut como funcao objetivo e osdados agrupados por pout).

ambas as funcoes de avaliacao consideradas neste trabalho.

Figura 5. Comparacao dos particionamentos obtidos com o particionamento gerador (Avaliadospor Performance e agrupados por pout).

Figura 6. Comparacao dos tempos de execucao dos algoritmos (Performance como funcao objetivoe os dados agrupados por pout).

15

Page 16: Algoritmos para o Problema de Particionamento em Grafoseduardo/publications/artigo.pdf · O Algoritmo MCL (veja o Algoritmo1) foi proposto em [13]. A ideia deste algoritmo e simular

Faleiros, Xavier

6 Conclusao

Neste trabalho apresentamos algoritmos para o problema de particionamentoem grafos e propomos uma nova heurıstica GRASP para o problema. Para asfuncoes de avaliacao de qualidade consideradas, a heurıstica GRASP apresen-tou uma significativa melhora na qualidade das solucoes geradas.

Outro ponto relevante obtido com os resultados foi a validacao da tecnicade imersao do grafo no espaco. Gracas a essa tecnica fomos capazes de aplicaralgoritmos de clusterizacao, como o k-means e k-center, em dados represen-tados por grafos. Alem disso, a simplicidade dos algoritmos aqui descritosmotiva a sua utilizacao em aplicacoes praticas.

Referencias

[1] R. K. Ahuja, J. B. Orlin, and R. E. Tarjan. Improved time bounds for the maximum flowproblem. SIAM J. Comput., 18(5):939–954, 1989.

[2] E. Anderson, Z. Bai, J. Dongarra, A. Greenbaum, A. McKenney, J. Du Croz, S. Hammerling,J. Demmel, C. Bischof, and D. Sorensen. Lapack: a portable linear algebra library forhigh-performance computers. In Supercomputing ’90: Proceedings of the 1990 ACM/IEEEconference on Supercomputing, pages 2–11, Los Alamitos, CA, USA, 1990. IEEE ComputerSociety Press.

[3] U. Brandes, M. Gaertler, and D. Wagner. Engineering graph clustering: Models andexperimental evaluation. ACM Journal on Experimental Algorithm, 12(1):1–26, June 2008.

[4] T. Feo and M. Resende. A probabilistic heuristic for a computationally difficult set coveringproblem. Operations Research Letters, 8(2):67 – 71, 1989.

[5] L.R. Ford and D.R. Fulkerson. Maximal flow through a network. Canadian Journal ofMathematics, 8:399–404, 1956.

[6] M. Gaertler. Clustering with spectral methods. Diplomarbeit, fachbereich informatik undinformationswissenschaft, Universitat Konstanz, March 2002.

[7] T. Gonzalez. Clustering to minimize the maximum intercluster distance. Theor. Comput. Sci.,38:293–306, 1985.

[8] D.S. Hochbaum and D.B. Shmoys. A best possible heuristic for the k-center problem.Mathematics of Operations Research, 10:180–184, 1985.

[9] R. Kannan, S. Vempala, and A. Vetta. On clusterings: Good, bad and spectral. J. ACM,51(3):497–515, 2004.

[10] T. Kanungo, D. Mount, N. Netanyahu, C. Piatko, R. Silverman, and A. Wu. A local searchapproximation algorithm for k-means clustering. In SCG ’02: Proceedings of the eighteenthannual symposium on Computational geometry, pages 10–18, New York, NY, USA, 2002. ACM.

[11] Z. Michalewicz and D. B. Fogel. How to Solve It: Modern Heuristics. Springer, 2004.

[12] M. Stoer and F. Wagner. A simple min cut algorithm. In ESA ’94: Proceedings of the SecondAnnual European Symposium on Algorithms, pages 141–147, London, UK, 1994. Springer-Verlag.

[13] S. van Dongen. Graph Clustering by Flow Simulation. PhD thesis, University of Utrecht, May2000.

16