Você está na página 1de 133

COPPE/UFRJ

O PROBLEMA DE CLUSTERIZACAO AUTOMATICA

Marcelo Dib Cruz

Tese de Doutorado apresentada ao Programa de Ps-graduaao o c e em Engenharia COPPE, de da

Sistemas

Computao, ca

Universidade Federal do Rio de Janeiro, como parte dos requisitos necessrios a a ` obtenao do t c tulo de Doutor em Engenharia de Sistemas e Computaao. c Orientadores: Adilson Elias Xavier Luiz Satoru Ochi

Rio de Janeiro Julho de 2010

O PROBLEMA DE CLUSTERIZACAO AUTOMATICA

Marcelo Dib Cruz

TESE SUBMETIDA AO CORPO DOCENTE DO INSTITUTO ALBERTO LUIZ COIMBRA DE POS-GRADUACAO E PESQUISA DE ENGENHARIA (COPPE) DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSARIOS PARA A OBTENCAO DO GRAU DE DOUTOR EM CIENCIAS EM ENGENHARIA DE SISTEMAS E COMPUTACAO.

Examinada por:

Prof. Adilson Elias Xavier, D.Sc.

Prof. Luiz Satoru Ochi, D.Sc.

Prof. Marcia Helena Costa Fampa, D.Sc.

Prof. Nelson Maculan Filho, D. Habil.

Prof. Fabio Protti, D.Sc.

Prof. Victor Manuel Parada Daza, D.Sc.

RIO DE JANEIRO, RJ BRASIL JULHO DE 2010

Cruz, Marcelo Dib O problema de Clusterizaao Automtica/Marcelo Dib c a Cruz. Rio de Janeiro: UFRJ/COPPE, 2010. XIII, 120 p.: il.; 29, 7cm. Orientadores: Adilson Elias Xavier Luiz Satoru Ochi Tese (doutorado) UFRJ/COPPE/Programa de

Engenharia de Sistemas e Computaao, 2010. c Referncias Bibliogrcas: p. 115 120. e a 1. Clusterizaao. c 3. 2. Algoritmos I.

Evolutivos,GRASP,ILS.

Modelos Hibridos.

Xavier, Adilson Elias et al.. II. Universidade Federal do Rio de Janeiro, COPPE, Programa de Engenharia de Sistemas e Computao. III. T ca tulo.

iii

A minha querida me a ( in memoriam).

iv

Agradecimentos
Primeiro, gostaria de agradecer aos meus orientadores Adilson Elias Xavier e Luiz Satoru Ochi pela amizade, ateno, ajuda, dedicao e carinho nesta longa camica ca nhada; aos Professores Marcia Helena Fampa, Nelson Maculam Filho, Fabio Protti, Manuel Parada Daza por terem aceito participar desta avaliao; ca A minha querida esposa Elaine e minha querida lha Giovanna pelo amor, carinho e por compreenderem minha ausncia em momentos importantes de suas vidas; e A minha querida fam , minha me (in memoriam), meu pai, minhas irms, lia a a meus cunhados e sobrinhos pelo amor, carinho e apoio de sempre em todos os momentos da minha vida. A UFRRJ e principalmente ao DEMAT, nas guras de seus professores e funcionrios, que permitiram que este trabalho fosse realizado. a E nalmente, aos amigos do Labotim, aos professores e secretrias do PESC, a pela ajuda, carinho e agradvel conv nos ultimos anos. a vio

Resumo da Tese apresentada a COPPE/UFRJ como parte dos requisitos necessrios ` a para a obteno do grau de Doutor em Cincias (D.Sc.) ca e

O PROBLEMA DE CLUSTERIZACAO AUTOMATICA

Marcelo Dib Cruz

Julho/2010

Orientadores: Adilson Elias Xavier Luiz Satoru Ochi Programa: Engenharia de Sistemas e Computaao c

Clusterizaao o processo em que elementos de um conjunto so alocados para c e a grupos ou clusters de elementos similares. Nos algoritmos de clusterizaao, norc malmente assumido que o nmero de clusters um dado de entrada. Contudo e u e em muitas aplicaoes de clusterizaao, este nmero ideal de clusters no pode ser c c u a determinado ou estimado previamente. Estes problemas so conhecidos como Proa blemas de Clusterizaao Automtica (PCA). Neste trabalho so apresentados vrias c a a a heur sticas, utilizando as metaheur sticas Algoritmos Evolutivos, GRASP e ILS, para a soluo do PCA. So apresentados tambm, mtodos h ca a e e bridos novos, que utilizam modelos exatos para tentar melhorar as solues obtidas pelas heur co sticas. Resultados computacionais foram realizados para um conjunto de instncias, ina cluindo uma comparaao com um algoritmo recente da literatura, e mostram a c ecincia e a robustez dos algoritmos propostos. e

vi

Abstract of Thesis presented to COPPE/UFRJ as a partial fulllment of the requirements for the degree of Doctor of Science (D.Sc.)

THE AUTOMATIC CLUSTERING PROBLEM

Marcelo Dib Cruz

July/2010

Advisors: Adilson Elias Xavier Luiz Satoru Ochi Department: Systems Engineering and Computer Science

Clustering is the process by which elements of a set are assigned for groups or clusters of similar elements. In clustering algorithms, is usually assumed that the number of clusters is known or provided. Unfortunately, the optimal number of clusters is unknown for most applications. This problem is as Automatic Clustering Problem (ACP). In this work, we present some heuristics, using the metaheuristics Evolutive Algorithm, GRASP and ILS, to solve the PCA problem. We also present, a new hybrid methods, that uses exact models trying to provide the heuristics solutions. Computational results on a set of instances, including a comparison with a recent algorithm from the literature, illustrate the eectiveness and the robustness of the proposed method.

vii

Sumrio a
Lista de Figuras Lista de Tabelas 1 Introduo ca 2 O Problema de Clusterizao Automtica ca a 2.1 2.2 Descriao do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . c x xiii 1 3 3

Aplicaoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 c 2.2.1 2.2.2 2.2.3 Particionamento de Grafos . . . . . . . . . . . . . . . . . . . 14 Problema de Formaao de Clulas de Manufatura (PCM) . . 14 c e Reconhecimento de Padres o . . . . . . . . . . . . . . . . . . 15

2.3 2.4

Classicaao dos Algoritmos de Clusterizaao . . . . . . . . . . . . . 16 c c O Conjunto de Instncias . . . . . . . . . . . . . . . . . . . . . . . . 19 a 23

3 Heur sticas para o PCA 3.1

As caracter sticas comuns aos Algoritmos . . . . . . . . . . . . . . . . 24 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 A Etapa de Construo . . . . . . . . . . . . . . . . . . . . . . 24 ca Representaao da Soluao . . . . . . . . . . . . . . . . . . . . 26 c c Memria Adaptativa . . . . . . . . . . . . . . . . . . . . . . . 28 o A Busca Local Inverso Individual . . . . . . . . . . . . . . . 28 a A Busca Local Troca Entre Pares . . . . . . . . . . . . . . . . 29 Reconexo por Caminhos (RC) . . . . . . . . . . . . . . . . . 29 a

3.2

As Heur sticas Propostas . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.2.1 3.2.2 Algoritmos Evolutivos . . . . . . . . . . . . . . . . . . . . . . 30 Os Algoritmos Evolutivos Propostos . . . . . . . . . . . . . . 33

viii

3.2.3 3.2.4 3.2.5 3.2.6 3.3

GRASP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Algoritmos GRASP propostos . . . . . . . . . . . . . . . . . . 41 ILS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Algoritmos ILS propostos . . . . . . . . . . . . . . . . . . . . 46

Resultados Computacionais . . . . . . . . . . . . . . . . . . . . . . . 51 3.3.1 3.3.2 3.3.3 3.3.4 Comparaao dos Algoritmos Evolutivos . . . . . . . . . . . . . 52 c Comparaao dos Algoritmos GRASP . . . . . . . . . . . . . . 55 c Comparaao dos Algoritmos ILS . . . . . . . . . . . . . . . . . 57 c Comparaao dos Melhores Algoritmos . . . . . . . . . . . . . . 60 c 76

4 Mtodos h e bridos de Heur stica com Modelo Exato para o PCA 4.1

Modelos Exatos para o PC . . . . . . . . . . . . . . . . . . . . . . . . 77 4.1.1 4.1.2 O Modelo Exato Dimetro . . . . . . . . . . . . . . . . . . . . 77 a O Modelo Exato K-Medianas . . . . . . . . . . . . . . . . . . 78

4.2

Mtodos H e bridos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 4.2.1 Um Mtodo H e brido da Heur stica AECBL1 com o Modelo Exato Dimetro . . . . . . . . . . . . . . . . . . . . . . . . . . 81 a 4.2.2 Um Mtodo H e brido da heur stica AECBL1 com o Modelo Exato K-Medianas . . . . . . . . . . . . . . . . . . . . . . . . 82 4.2.3 Um Mtodo H e brido da Heur stica AECBL1 com o Modelo Exato K-medianas Utilizando Busca Local . . . . . . . . . . . 86

5 Comparao das Heur ca sticas com o Algoritmo da Literatura 5.1

89

O Algoritmo CLUES . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 5.1.1 5.1.2 5.1.3 O procedimento de Encolhimento . . . . . . . . . . . . . . . . 90 O procedimento de Particionamento . . . . . . . . . . . . . . . 91 O procedimento para encontrar o K otimo . . . . . . . . . . . 91

5.2

Resultados Computacionais . . . . . . . . . . . . . . . . . . . . . . . 92 5.2.1 Imagens das Soluoes . . . . . . . . . . . . . . . . . . . . . . . 98 c 113 115

6 Concluso a Referncias Bibliogrcas e a

ix

Lista de Figuras
2.1 2.2 O conjunto de pontos . . . . . . . . . . . . . . . . . . . . . . . . . . . A partio P 1 = {C1 , C2 , C3 , C4 , C5 } onde C1 = {1, 2}, C2 = {3, 4}, ca C3 = {5, 6} e C4 = {7, 8} e C5 = {9, 8} . . . . . . . . . . . . . . . . . 2.3 A partio P 1 = {C1 , C2 , C3 , C4 , C5 } onde C1 = {1, 2}, C2 = {3, 4}, ca C3 = {5, 6} e C4 = {7, 8} . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4 A partiao P 3 = {C1 , C2 , C3 } onde C1 = {1, 2}, C2 = {3, 4} e C3 = c {5, 6, 7, 8, 9, 10} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.5 2.6 2.7 2.8 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 A partiao P 4 = {C1 , C2 } onde C1 = {1, 2, 3, 4} e C2 = {5, 6, 7, 8, 9, 10} 13 c Classicaao dos mtodos de clusterizao . . . . . . . . . . . . . . . 17 c e ca A instncia comportada 200p4c . . . . . . . . . . . . . . . . . . . . . 19 a A instncia no comportada 300p4c1 . . . . . . . . . . . . . . . . . . 20 a a O Pseudocdigo do procedimento GCP . . . . . . . . . . . . . . . . . 25 o Clculo dos pontos contidos no c a rculo de centro x2 e raio r = u x dmedio 26 O Pseudocdigo do procedimento JCPA . . . . . . . . . . . . . . . . 27 o Exemplo de cruzamento de dois pontos . . . . . . . . . . . . . . . . . 32 Exemplo de mutaao . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 c O psedocdigo do Algoritmo Gentico Tradicional . . . . . . . . . . . 34 o e O pseudocdigo do AECBL1 . . . . . . . . . . . . . . . . . . . . . . . 36 o O pseudocdigo do AECBL2 . . . . . . . . . . . . . . . . . . . . . . . 38 o O pseudocdigo do GRASP . . . . . . . . . . . . . . . . . . . . . . . 39 o 9 9

3.10 O pseudocdigo do procedimento construtivo do GRASP . . . . . . . 40 o 3.11 O pseudocdigo do procedimento construtivo dos algoritmos GRASP o 42

3.12 O pseudocdigo do GBLITRC1 . . . . . . . . . . . . . . . . . . . . . 43 o 3.13 O pseudocdigo do GBLITRC2 . . . . . . . . . . . . . . . . . . . . . 44 o

3.14 O pseudocdigo do ILS . . . . . . . . . . . . . . . . . . . . . . . . . . 46 o 3.15 O pseudocdigo do procedimento Gerar soluao inicial . . . . . . . . 47 o c 3.16 O pseudocdigo do IBLITRC2 . . . . . . . . . . . . . . . . . . . . . . 50 o 3.17 O pseudocdigo do IBLITRC1 . . . . . . . . . . . . . . . . . . . . . . 51 o 3.18 Distribuicao Emp rica do problema ruspini com Alvo 0.5163 e alvo 0.7376 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.19 Distribuicao Emp rica do problema Maronna com Alvo 0.4021 e alvo 0.5745 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.20 Distribuicao Emp rica do problema 200p7c1 com Alvo 0.4031 e alvo 0.5759 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.21 Distribuicao Emp rica do problema 300p3c1 com Alvo 0.4737 e alvo 0.6768 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.22 Distribuicao Emp rica do problema 800p18c1 com Alvo 0.4839 e alvo 0.6914 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 3.23 Distribuicao Emp rica do problema 1000p27c1 com Alvo 0.3690 e alvo 0.5186 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.24 Distribuicao Emp rica do problema 1500p6c1 com Alvo 0.4505 e alvo 0.6936 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.1 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 Os valores da funo ca Indice Silhueta para a instncia 1000p5c1 . . . . 86 a O pseudocdigo do Procedimento de Encolhimento . . . . . . . . . . 90 o O pseudocdigo do Procedimento de Particionamento . . . . . . . . . 92 o Particoes geradas para Ruspini: CLUES (em cima) e o AECBL1 . . . 99 Particoes geradas para Maronna: CLUES (em cima) e o AECBL1 . . 100 Particoes geradas para 200DATA: CLUES (em cima) e o AECBL1 . . 101 Particoes geradas para vowel: CLUES (em cima) e o AECBL1 . . . . 102 Particoes geradas para Broken Ring: CLUES (em cima) e o AECBL1 103 Particoes geradas para 200p2c1: CLUES (em cima) e o AECBL1 . . . 104 Particoes geradas para 300p2c1: CLUES (em cima) e o AECBL1 . . . 105

5.10 Particoes geradas para 300p3c1: CLUES (em cima) e o AECBL1 . . . 106 5.11 Particoes geradas para 300p4c1: CLUES (em cima) e o AECBL1 . . . 107 5.12 Particoes geradas para 500p4c1: CLUES (em cima) e o AECBL1 . . . 108

xi

5.13 Particoes geradas para 700p15c1: CLUES (em cima) e o AECBL1 . . 109 5.14 Particoes geradas para 1000p27c1: CLUES (em cima) e o AECBL1 . 110 5.15 Particoes geradas para 1800p22c: CLUES (em cima) e o AECBL1 . . 111 5.16 Particoes geradas para 2000p9c1: CLUES (em cima) e o AECBL1 . . 112

xii

Lista de Tabelas
2.1 2.2 2.3 2.4 2.5 3.1 3.2 3.3 3.4 3.5 Calculo dos valores relativos a partio P 1 . . . . . . . . . . . . . . . 10 ca Calculo dos valores relativos a partio P 2 . . . . . . . . . . . . . . . 11 ca Calculo dos valores relativos a partio P 3 . . . . . . . . . . . . . . . 12 ca Calculo dos valores relativos a partio P 4 . . . . . . . . . . . . . . . 13 ca Descriao das instncias . . . . . . . . . . . . . . . . . . . . . . . . . 22 c a Comparao entre os algoritmos AECBL1 e AECBL2 . . . . . . . . . 54 ca Comparao entre os algoritmos GBLITRC1 e GBLITRC2 . . . . . . 56 ca Comparao entre os algoritmos IBLITRC2 e IBLITRC1 . . . . . . . 59 ca Comparao entre os algoritmos AECBL1, GBLITRC1 e IBLITRC2 . 62 ca Comparao entre os algoritmos AECBL1, GBLITRC1 e IBLITRC2 ca com o mesmo tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.6 Comparao entre os algoritmos AECBL1, GBLITRC1 e IBLITRC2 ca com um alvo denido . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.1 4.2 4.3 Comparao entre os algoritmos AECBL1 e AECBL1+BLD . . . . . 82 ca Comparao entre os algoritmos AECBL1 e AECBL1+BLM . . . . . 85 ca Comparao entre os algoritmos AECBL1 e AECBL1+BLM e ca AECBL1+BLM+BLK . . . . . . . . . . . . . . . . . . . . . . . . . . 88 5.1 Comparao ca entre os algoritmos AECBL1+BLM+BLK,

AECBL1+BLM e CLUES . . . . . . . . . . . . . . . . . . . . . . . . 94 5.2 Comparao entre os algoritmos AECBL1, GBLITRC1, IBLITRC1 e ca CLUES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

xiii

Cap tulo 1 Introduo ca


Clusterizaao (ou agrupamento) o termo genrico para um processo que une objec e e tos similares em um mesmo grupo. Cada grupo denominado um cluster. O nmero e u de clusters pode ser conhecido a priori ou no. Quando o nmero de clusters conhea u e cido a priori, ele conhecido como Problema de K-Clusterizao ou simplesmente e ca Problema de Clusterizao (PC). Caso contrrio, quando o nmero ideal de cluster ca a u no previamente conhecido, denominado Problema de Clusterizao Automtica a e e ca a (PCA). Ambos os problemas PC e PCA so classicados na literatura como proa blemas NP-Completo [52]. Para o problema PCA, o fato do valor do nmero de u clusters k no ser conhecido a priori, torna-o mais complexo, pois aumenta muito o a nmero de soluoes poss u c veis. Existem vrias aplicaoes relacionadas a clusterizaao: Particionamento de Graa c ` c fos, Problema de Manufatura Flex vel, Formaao de Anis em Sistemas de Telecomuc e nicaoes, Reconhecimento de Padres. Essa ultima aplicaao se apresenta em muitos c o c aspectos como em Processamento de Imagens, Biologia Computacional, Pesquisa de Mercado, Classicao e agrupamento de Documentos, Minerao de Dados, entre ca ca outros. Existem muitos algoritmos para resolver o problema na literatura, principalmente para o PC. O algoritmo mais conhecido o k-means [31], que particiona os objetos e e utiliza o conceito de centride para representar os clusters. o Porm no existem muitos trabalhos relacionados ao PCA. Tratando-se de Mee a taheur sticas, s existem dois trabalhos, um de 2001 [17] e outro de 2004 [47]. Os o dois utilizam Algoritmos Evolutivos.

Neste trabalho foram desenvolvidas novas heur sticas, utilizando conceitos das metaheur sticas Algoritmos Evolutivos, ILS (Iterated Local Search) e GRASP (Greedy Randomized Adaptive Search Procedure). Os algoritmos foram avaliados para vericar o desempenho. O objetivo neste contexto, foi vericar a qualidade das soluoes resultantes, utilizando heur c sticas com enfoques diferentes. Para isso, foi criado um conjunto de procedimentos que so comuns a todas as a heuristicas. Estes procedimentos incluem um pr-processamento, cujo objetivo e e tentar reduzir as dimenses dos dados de entrada do problema e ao mesmo tempo, o gerar solues iniciais de boa qualidade. Os outros procedimentos comuns so as co a buscas locais. Alm disso, foi denida uma estrutura de dados comum para os e algoritmos aqui tratados. Tinha-se como meta desenvolver um modelo exato para o PCA, utilizando a funao c Indice Silhueta, para poder vericar a qualidade das soluoes obtidas. Isto c no foi poss a vel, pois a funao c Indice Silhueta no facilmente linearizvel. A partir a e a da foi procurado na literatura, algum modelo exato para o PCA, o que tambm no , e a foi conseguido. A terceira tentativa foi adaptar algum modelo exato do PC para o PCA. Tambm no foi poss e a vel, pois as funes utilizadas, como a funo Dimetro co ca a [38] e a Estrela [48], so funes decrescentes em relaao ao nmero de clusters. a co c u Ento foram desenvolvidos alguns mtodos h a e bridos de heur sticas e modelos exatos, conformado pela percepo de que os modelos exatos para o PC poderiam ca ser aproveitados para melhorar as soluoes do PCA. c No nal, os algoritmos desenvolvidos foram comparados com um dos algoritmos mais recentes da literatura, denominado CLUES.[51] Este trabalho est organizado da seguinte forma: No cap a tulo 2 descrito o e problema; no cap tulo 3 so descritas as heuristicas utilizando Algoritmo Evolutivo, a ILS e GRASP acompanhado de algumas avalias; No cap ce tulo 4 so mostrados os a mtodos h e bridos e realizadas novos testes computacionais; No Cap tulo 5 so feitas a as comparaoes das heur c sticas propostas com o algoritmo CLUES, e nalmente, no cap tulo 6 so feitas as concluses e descritas algumas propostas para trabalhos a o futuros.

Cap tulo 2 O Problema de Clusterizao ca Automtica a


Clusterizaao o termo genrico para um processo que une objetos similares em um c e e mesmo grupo. Cada grupo denominado um cluster. O nmero de clusters pode e u ser conhecido a priori ou no. Quando o nmero de clusters conhecido a priori, a u e denominamos Problema de K-Clusterizao ou simplesmente Problema de Clusteca rizao (PC). Caso contrrio denominado Problema de Clusterizao Automtica ca a e ca a (PCA). O objetivo deste cap tulo introduzir o tema clusterizao enfatizando o Proe ca blema de Clusterizaao Automtica. Para isso, o tema descrito e so mostradas c a e a algumas aplicaes envolvendo clusterizao. Um mtodo para classicao dos alco ca e ca goritmos apresentado e so mostradas as instncias utilizadas para as avaliaes e a a co dos algoritmos aqui propostos.

2.1

Descrio do Problema ca

Clusterizaao a diviso de dados em grupos de objetos similares. Cada grupo c e a e denominado um cluster. Cada cluster consiste em um grupo de objetos que so a similares entre si e dissimilares com objetos de outros grupos. ` As vezes poderemos ter objetos da entrada que no so similares a nenhum dos a a clusters encontrados. Tais objetos so denominados outliers e ocorrem por erro na a coleta de dados ou erro de digitaao ou fraudes, etc. Os outliers so uma diculdade c a

a mais na procura de soluoes de boa qualidade. c Segundo Pierre Hansen e Brigitte Jaumard [21], para denir o problema de clusterizaao, preciso seguir algumas etapas listadas abaixo: c e Amostragem selecione um conjunto de m objetos X = {x1 , x2 , x3 ....xm } onde esto os clusters; a Dados observe ou tire a medida das p caracter sticas de cada objeto xi X. Isto conduz a uma matriz de dados Mmxp ; Similaridades calcule a partir de Mmxp , a matriz de similaridades Dmxm = (dkl ) entre os objetos de X. Estas similaridades devem satisfazer as propriedades dkl > 0 , dkk = 0 , dkl = dlk onde k,l = 1,2, ...m. As similaridades no a precisam ser necessariamente distncias. a Restries especique o tipo de problema desejado (Subconjunto , Partio, co ca Cobertura, etc. os tipos de problemas sero denidos posteriormente); a Critrio escolha o critrio (ou possivelmente mais de um critrio) para e e e expressar a homogeneidade e/ou separaao dos clusters no problema a ser c tratado; Algoritmo dena um algoritmo para o problema. Codique o algoritmo; Computao aplique o algoritmo escolhido na matriz Dmxm = (dkl ) obtendo ca assim os clusters; Interpretao aplique testes formais ou informais para selecionar os meca lhores clusters. Interprete os resultados; No existe somente uma maneira de denir o signicado de clusters. E necessrio a a especicar o tipo de problema desejado. Os algoritmos de clusterizao so feitos ca a para encontrar vrios tipos de clusters numa base de dados X, como: a 1. Subconjunto S de X ;

2. Partio Pk = {C1 , C2 , ...Ck } de X em k clusters tal que: ca (a) Ci = , para i = 1, .., k (b) Ci Cj = , para i, j = 1, .., k e i = j
k

(c)
i=1

Ci = X

3. Empacotamento (Packing) PAq = {C 1 , C2 , ...Ck } de X em k clusters como em (2) , porm sem a condiao (c); e c 4. Cobertura (Covering) COk = {C1 , C2 , ...Ck } de X em k clusters como em (2), porm sem a condio (b) ; e ca 5. Hierarquia H = {P1 , P2 , ...Pt } com t m partioes de X. O conjunto de c partioes P1 , P2 , ...Pt so denidos tal que Ci Pk , Cj Pl e k > l implica c a que Ci Cj ou Ci Cj = para i , j = 1,....t e i = j. Para avaliar se um cluster bom ou ruim, necessrio denir critrios que quane e a e tiquem a homogeneidade de um cluster e a separaao entre os clusters. Exemplos c de critrios para a denio de separao so: e ca ca a 1. Diviso (Split) s(C j ) de C j , ou a similaridade m a nima entre um objeto de Cj e um outro objeto fora de Cj ; s(Cj ) = M in k : xk C j ; l : xl C j / dkl (2.1)

2. Corte (Cut) c(C j ) de C j , a soma das similaridades entre objetos de Cj e objetos fora de Cj ; c(Cj ) =
k:xk Cj l:xl Cj /

dkl

(2.2)

Podemos ainda considerar o corte normalizado, para eliminar o efeito da cardinalidade dos clusters, dividindo o valor encontrado por |C j | / (m - |C j |). A homogeneidade de um cluster pode ser medida de vrias maneiras diferentes. a Para a denio de homogeneidade temos alguns critrios como: ca e 1. Dimetro (Diameter) d(C j ) de C j , ou a similaridade mxima entre objetos a a de Cj . d(Cj ) = M ax dkl k, l : xk , xl Cj 5 (2.3)

2. Raio (Radius) r(C j ) de C j , ou o menor valor entre todos os objetos xk de Cj da similaridade mxima do objeto xk a r(Cj ) = a um outro objeto de Cj ; (2.4)

M ax M in dkl k : xk C j l : xl C j

3. Estrela (Star) st(C j ) de C j , ou o menor valor entre todos os objetos xk de Cj da soma de similaridades do objeto xk st(Cj ) = a os outros objetos de Cj ; dkl
l: xl Cj

M in k : xk C j

(2.5)

4. Clique (Clique) cl(C j ) de C j , ou a soma das similaridades entre objetos de Cj ; cl(Cj ) =


k,l : xk ,xl Cj

dkl

(2.6)

E poss ter ainda a Estrela normalizada e o Clique normalizado, dividindo o vel valor encontrado por |Cj |-1 e por |Cj | / ( |Cj | - 1 ) respectivamente. Se os objetos xj so pontos do espao Euclidiano Rp ( xi Rp ) ento homogea c a neidade de Cj pode ser medida por referncia ao centro ou centride de Cj , que e o no um ponto de Cj . Assim podemos denir homogeneidade como: a e 1. Soma dos Quadrados ( Sum-of-Squares) ss(Cj ) =
k : xk Cj

( ||xk x||2 )2
1 |Cj |

(2.7) xk dek:xk Cj

onde || ||2 dene a distncia euclidiana dos pontos e x = a nido como o centro ou centride de Cj. o

2. Varincia (Variance) v(C j ) de C j denido como ss(Cj ) dividido por |Cj |. a 3. Raio Contnuo (Continuous Radius) cr(Cj ) = M in M ax || xk x||2 pk : x C xR k j (2.8)

4. Estrela Contnua (Continuous Star) cst(Cj ) = M in x Rp || xk x||2


k: xk Cj

(2.9)

O tema clusterizao bastante vasto[6]. Existem muitos trabalhos na literatura ca e tratando o assunto. A maioria dos trabalhos para encontrar partioes. Normale c mente o nmero de clusters um dado de entrada, ou seja, a maioria dos trabalhos u e para o PC. O mtodo mais conhecido denominado k-means [31] que utiliza, na e e e maioria dos casos, a funao Soma dos Quadrados (equaao 2.7) para a avaliaao. c c c Existem inmeros trabalhos sendo publicados considerando esta funao, com meu c todologias diferentes, como Suavizaao Hiperblica [54], Algoritmos Genticos [28], c o e Global Optimization [5], Busca Tabu [29], entre outros. Na literatura, no existem, do nosso conhecimento, modelos exatos sem restrioes a c para o PCA. Os modelos exatos existentes possuem alguma restriao, como o nmero c u m nimo de pontos em cada cluster ou a capacidade mxima do cluster [25]. a Para o PC, existem dois modelos exatos. O primeiro modelo, denominado Modelo Exato Dimetro [38], utiliza a funao Dimetro, denida na equao (2.3), e a c a ca minimiza o maior dimetro de todos os clusters encontrados. O segundo modelo, a denominado Modelo Exato K-Medianas [48], utiliza a funo Estrela, denida pela ca equaao (2.5), e minimiza a soma das distncias dos pontos do cluster a um ponto c a mais ao centro deste. No enfoque do Problema de Clusterizaao Automtica, adotado no trabalho, c a mais delicada a escolha de uma funao de avaliao. Infelizmente, as funoes e e c ca c os algoritmos utilizados para o PC no funcionam bem na PCA. Por exemplo, as a funoes (ou critrios de deniao de homogeneidade) Soma dos Quadrados (2.7), Esc e c trela (2.5) e Dimetro (2.3) so monotonamente decrescentes em relaao ao nmero a a c u de clusters. Portanto, no podem ser utilizadas diretamente caso o nmero de clusa u ters no seja conhecido a priori. Existem funes que podem ser utilizadas para a co o PCA [13], pois o valor de k no precisa ser conhecido a priori. Entre elas est a a a funao c Indice Silhueta, denida por Kaufman e Rousseeum [27], e que tem se mostrado eciente em vrios trabalhos, como em [44, 51]. a Para este trabalho, os objetos esto associados a pontos no Rn , a similaridade a denida como a distncia euclidiana entre os pontos e a funao de avaliaao a e a c c e funao c Indice Silhueta. O PCA pode ser denido formalmente como: Seja X = {x1 , x2 , x3 ....xm } um conjunto de m pontos no Rn . O objetivo deste problema encontrar uma partio e ca

C = {C1 , C2 , ...Ck } onde k no conhecido a priori. Cada subconjunto Ci C a e e denominado um cluster de X. O Problema de Clusterizaao Automtica pode ser reduzido ao problema de c a otimizaao da seguinte forma: c M aximizar
C

F (C)

1 m

m i=1

s(xi )

(2.10)

S.A.

CC

(2.11)

onde C = {C1 , C2 , ...Ck } uma partiao particular de clusters e C o conjunto e c e de todas as parties poss co veis do conjunto X com k = 2,...,m-1 e onde s(xi ) o e valor da silhueta de cada ponto xi X denido a seguir. Seja xi um ponto pertencente ao cluster Cw C, com |Cw | = V > 1. A distncia a entre os pontos xi e xj denido por dij . A distncia mdia de xi em relao a todos e a e ca os pontos xj Cw dada por a(xi ) onde e a(xi ) = 1 V 1 di,j xj = xi , x j Cw (2.12)

Nos casos em que Cw possuir um unico elemento, denimos a(xi ) = 0. Considere ainda, cada um dos clusters Ct C com t = w e |C t | = T. A distncia mdia do a e ponto xi em relaao a todos os pontos de Ct c e d(xi , Ct ) = 1 T di,j xj Ct (2.13)

Seja b(xi )o menor valor dentre todos os d(xi , Ct ). Ento, a b(xi ) = M in d(xi , Ct ) , Ct = Cw , Ct C (2.14)

O valor da Silhueta do ponto xi X dado por e s(xi ) = b(xi ) a(xi ) max(a(xi ), b(xi )) (2.15)

A funao F na equaao (2.10) utiliza simultaneamente dois critrios para a avac c e liaao da clusterizaao. Como critrio para a homogeneidade, F utiliza a soma das c c e mdias das distncias entre os pontos de cada cluster (similar ao critrio da equao e a e ca (2.6)), e como critrio de separaao a mdia das distncias entre cada ponto e os e c e a pontos do cluster mais prximo e diferente de onde ele est (similar ao critrio da o a e equaao (2.2)). c 8

Figura 2.1: O conjunto de pontos

A funao F possui valores no intervalo [-1,1] e quanto mais prximo estiver de c o 1(um) mais coesos e separados so os clusters. a Para exemplicar a funao F, alguns exemplos so mostrados. Suponha que c a X={1,2,3,4,5,6,7,8,9,10} seja um conjunto de pontos no R2 dispostos como na gura 2.1. A distncia entre dois pontos adjacentes que esto na mesma linha a a horizontal ou vertical igual a 1. As unicas exceoes so as distncias entre os e c a a pontos 4 e 6 e 3 e 5 que tem valor igual a 3. As distncias entre os pontos que a

Figura 2.2: A partiao P 1 = {C1 , C2 , C3 , C4 , C5 } onde C1 = {1, 2}, C2 = {3, 4}, c C3 = {5, 6} e C4 = {7, 8} e C5 = {9, 8}

esto em diagonal tem seus valores decimais aproximados para 0.5 com o objetivo a de simplicar os clculos. a
xi 1 2 3 4 5 6 7 8 9 10 a(x i ) 1 1 1 1 1 1 1 1 1 1 b(x i ) 1.25 1.25 1.25 1.25 1.25 1.25 1.25 1.25 1.25 1.25 s(x i ) 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2

Tabela 2.1: Calculo dos valores relativos a partiao P 1 c

Figura 2.3: A partiao P 1 = {C1 , C2 , C3 , C4 , C5 } onde C1 = {1, 2}, C2 = {3, 4}, c C3 = {5, 6} e C4 = {7, 8}

Para melhorar o entendimento da funao F, so exemplicados 4 partioes desse c a c conjunto. Para cada uma delas calculado o valor de F. As partioes so denomie c a nadas P 1 , P 2 , P 3 e P 4 e possuem 5 , 4 , 3 e 2 clusters respectivamente. Na gura 2.2 mostrada a primeira partiao P 1 , que possui 5 clusters de dois e c pontos cada. A tabela 2.1 mostra os valores de a(xi ) , b(xi ) e s(xi ) de cada ponto 10

desta partiao. As distncias entre os pontos dentro de cada cluster e entre os c a pontos de clusters diferentes esto muito prximas. Tal fato ocasiona valores s(xi ) a o pequenos e conseqentemente, a funao F tambm possui um valor pequeno: F = u c e 10 1 s(x ) = 0.2
10 i=1 i

xi 1 2 3 4 5 6 7 8 9 10

a(x i ) 1 1 1 1 1 1 1.16 1.16 1.16 1.16

b(x i ) 1.25 1.25 1.25 1.25 1.75 1.75 1.75 1.75 2.25 2.25

s(x i ) 0.2 0.2 0.2 0.2 0.2 0.2 0.42 0.42 0.48 0.48

Tabela 2.2: Calculo dos valores relativos a partiao P 2 c

A gura 2.3 mostra a partiao P 2 , que possui 4 clusters, sendo 3 clusters com 2 c pontos e um cluster de 4 pontos. A tabela 2.2 mostra os valores a(xi ) , b(xi ) e s(xi ) de cada ponto desta partiao. Neste caso, as distncias entre os pontos dentro de c a cada cluster e entre os pontos de clusters diferentes continuam prximas, ocasioo nando valores de s(xi ) pequenos. Porm, nesta partio os pontos do cluster C4 e ca esto mais distantes dos pontos do cluster C3 , e com isso o valor de F aumenta um a 10 1 pouco: F = 10 i=1 s(xi ) = 0.34 A gura 2.4 mostra a partio P 3 que possui 3 clusters, sendo 2 clusters com 2 ca pontos e um cluster com 6 pontos. A tabela 2.3 mostra os valores a(xi ), b(xi )es(xi ) de cada ponto desta partiao. Neste caso, os clusters C2 e C3 esto mais distantes, c a aumentando os valores de b(xi ) e s(xi ) e, conseqentemente, o valor de F: F = u 10 1 s(x ) = 0.46
10 i=1 i

A gura 2.5 mostra a partiao P 4 que possui 2 clusters, com 4 e 6 pontos. A c tabela 2.4 mostra os valores a(xi ), b(xi )es(xi ) de cada ponto desta partiao. Neste c caso, os dois clusters esto distantes aumentando os valores de b(xi ) e ,conseqena u 10 1 temente, os valores de s(xi ) e da funao F : F = 10 c i=1 s(xi ) = 0.7 11

Figura 2.4: A partiao P 3 = {C1 , C2 , C3 } onde C1 = {1, 2}, C2 = {3, 4} e C3 = c {5, 6, 7, 8, 9, 10}

O que observado nestes exemplos, que a funo F aumenta ` medida em que e e ca a os pontos prximos se juntam num mesmo cluster e os pontos afastados cam em o clusters separados.
xi 1 2 3 4 5 6 7 8 9 10 a(x i ) 1 1 1 1 1.6 1.6 1.2 1.2 1.6 1.6 b(x i ) 1.25 1.25 1.25 1.25 3.25 3.25 4.25 4.25 5.25 5.25 s(x i ) 0.2 0.2 0.2 0.2 0.5 0.5 0.71 0.71 0.69 0.69

Tabela 2.3: Calculo dos valores relativos a partiao P 3 c

12

Figura 2.5: A partio P 4 = {C1 , C2 } onde C1 = {1, 2, 3, 4} e C2 = {5, 6, 7, 8, 9, 10} ca

2.2

Aplicaes co

Existem muitas aplicaes envolvendo clusterizaao, nas mais diversas reas. Cada co c a area possui suas prprias especicaoes. Algumas das principais aplicaes so mos o c co a tradas a seguir:
xi 1 2 3 4 5 6 7 8 9 10 a(x i ) 1.16 1.16 1.16 1.16 1.6 1.6 1.2 1.2 1.6 1.6 b(x i ) 5.25 5.25 4.25 4.25 3.75 3.75 4.75 4.55 5.75 5.75 s(x i ) 0.77 0.77 0.72 0.72 0.57 0.57 0.74 0.74 0.72 0.72

Tabela 2.4: Calculo dos valores relativos a partiao P 4 c

13

2.2.1

Particionamento de Grafos

O problema pode ser denido como: dado um grafo G= (V , E), onde V o conjunto e de vrtices e E o conjunto de arestas, dividir os vrtices em subconjuntos disjuntos, e e ou clusters, otimizando alguma funo que mede a similaridade entre os vrtices. ca e Existem vrios problemas associados ao particionamento de grafos [8]. No problema a de particionamento balanceado de grafo a diferena de cardinalidade entre o maior c cluster e o menor cluster deve ser de, no mximo, uma unidade. Quando o nmero a u de clusters igual a dois, o problema referenciado na literatura como problema e e de bisseo de grafos ou problema de bi-particionamento de grafos. Existe ainda ca o problema de ediao de arestas onde se deseja encontrar conjuntos de vrtices, de c e tal forma que o custo de inserir e deletar arestas para formar cliques seja m nimo [35]. Outro problema similar agrupar os vrtices do grafo em clusters de tal forma e e que seja maximizado o nmero total das arestas internas a cada cluster, ao mesmo u tempo em que seja minimizado o nmero total de arestas entre pares de vrtices que u e estejam em clusters diferentes [16].

2.2.2

Problema de Formao de Clulas de Manufatura ca e (PCM)

Existem industrias que produzem uma pequena variedade de produtos e um alto volume de produo. Elas geralmente organizam o ambiente de produao em lica c nhas de produao, sendo que cada linha de produao composta de vrios tipos c c e a de mquinas, dedicadas exclusivamente a produo de um unico produto. Porm, a ` ca e em outras industrias produzido uma grande variedade de produtos, com um voe lume mdio de produao de cada item. Portanto, elas precisam de um modelo e c diferente de produo. Uma abordagem diferente a formaao de grupos (clusters) ca e c de mquinas com funcionalidades idnticas, formando departamentos especializaa e dos em uma funao espec c ca. Assim, uma parte de um produto que necessite de operaoes de manufatura de mais de um tipo de mquina, precisar percorrer todos c a a os grupos que contenham os tipos de mquinas necessrios para a sua formao. a a ca Nos ultimos anos um novo modelo de organizao destes sistemas vem sendo usado, ca denominado manufatura celular.

14

A manufatura celular [46] consiste em agrupar mquinas de diferentes funcionalia dades para a manufatura de produtos com diferentes partes. O sistema de produao c ca dividido em vrios grupos ou clusters formados por clulas de mquinas e a e a fam lias de partes, denominados clulas de manufatura. A formaao de clusters e c seguindo este modelo resulta em diversas vantagens para a gesto da produo, tais a ca como: 1. Reduao do transporte de material de produo; c ca 2. Reduao do tempo de produo dos produtos e conseqente aumento da c ca u capacidade de produo; ca 3. Simplicaao do gerenciamento e controle do sistema de produao, agora c c divididos em vrios subsistemas independentes; a 4. Simplicaao do escalonamento das atividades, que agora ser feito separac a damente em cada cluster; 5. Aumento da segurana no trabalho com a minimizaao de manipulaao de c c c material no ambiente de produao; c

2.2.3

Reconhecimento de Padres o

Reconhecimento de padres a area de pesquisa que tem por objetivo a classicaao o e c de objetos (padres) em um nmero de categorias ou classes (clusters) [11]. Por o u exemplo, no reconhecimento de faces, as imagens das faces so os objetos e as classes a so seus nomes ou identicaes. H tambm o problema de categorizaao de faces, a co a e c que classicam as pessoas em categorias, discriminando por exemplo, gnero, faixa e etria e etnia. Nesse caso, as classes so as categorias que as pessoas pertencem. a a Um ponto em comum entre as aplicaoes de reconhecimento de padres que usuc o e almente as caracter sticas dispon veis nos padres de entrada, que tipicamente so o a milhares, no so diretamente utilizadas. Normalmente so utilizadas caracter a a a sticas extra das dos padres de entrada otimizados, usando procedimentos orientados por o dados. Dado um padro, seu reconhecimento ou classicao consiste em uma das a ca seguintes tarefas: classicao supervisionada, em que o padro de entrada identica a e cado como um membro de uma classe pr-denida pelos padres de treinamento, que e o so rotulados com suas classes; e classicao no supervisionada, em que o padro a ca a a associado a uma classe que aprendida com base na similaridade entre os padres e e o 15

de treinamento. O projeto de sistemas de reconhecimento de padres essencialmente o envolve trs aspectos: aquisiao de dados e pr-processamento, representao dos e c e ca dados e tomada de decises. Assim, geralmente o desao encontra-se na escolha de o tcnicas para efetuar esses trs aspectos. Em geral, acredita-se que um problema e e de reconhecimento de padres bem denido e restrito, permitir uma representaao o a c compacta e uma estratgia de deciso simples. As tcnicas de reconhecimento de e a e padres podem ser aplicadas em vrios dom o a nios, dentre os quais temos: Mineraao de Dados (data mining) c Processamento de Imagens Anlise de imagens de documentos para reconhecimento de caracteres (Optical a Character Rocognition - OCR) ; Bio-informtica, anlise de seqncias de prote a a ue nas ou DNA; Busca e classicao em base de dados multim ca dia; Reconhecimento biomtrico, incluindo faces, ou impresses digitais; e ris o Reconhecimento de fala.

2.3

Classicao dos Algoritmos de Clusterizao ca ca

As classicaes dos algoritmos de clusterizaao so gerais e no fazem distino co c a a ca entre o PC e o PCA. No existe uma unica classicao destes algoritmos. Segundo a ca [44] os algoritmos se encontram em dois grandes grupos: Hierrquicos e de Particia onamento. Porm esta classicaao no distingue todos os algoritmos. Adotaremos e c a a classicaao em [17] por ser simples e contemplar os algoritmos existentes na lic teratura. A classicao dos algoritmos de clusterizaao de acordo com a gura 2.6 ca c : e Hierrquico - Os algoritmos Hierrquicos operam sobre o conjunto de ena a trada X de pontos e procuram construir uma arvore de clusters denominada dendograma. Nesta rvore cada n um cluster que pode ter outros clusters a oe lhos, pais ou irmos de forma que, cada ponto de X associado a um unico n a e o 16

da arvore em um dos seus n veis. A literatura apresenta ainda uma diviso dos a algoritmos Hierrquicos em dois grupos de acordo como a rvore constru a a e da. Quando a arvore constru da raiz para as folhas (estratgia top-down ) e da e dizemos que o algoritmo Hierrquico por Diviso. Quando constru das e a a e do folhas para a raiz (estratgia bottom-up) o algoritmo dito Hierrquico por e e a Aglomeraao. O Hierrquico por Diviso comea com um unico cluster conc a a c tendo todos os pontos e recursivamente divide os clusters at um critrio de e e parada. No Hierrquico por Aglomeraao, cada ponto um cluster e a cada a c e momento eles so unidos para formar um novo cluster. Exemplos de algorita mos Hierrquicos para o PC so [19], [20], [26],[55]. No encontramos exemplos a a a para o PCA.

Figura 2.6: Classicaao dos mtodos de clusterizaao c e c

Particionamento - Os algoritmos de Particionamento consistem em classicar os m pontos do conjunto de entrada X em k grupos. Cada grupo contm e pelo menos um ponto e cada ponto pertence ` pelo menos um grupo. E uma a 17

forma de otimizao iterativa, que a cada iteraao realoca os pontos entre ca c os clusters. Os algoritmos de Particionamento so diferentes dos algoritmos a Hierrquicos onde os clusters no so revisitados depois de constru a a a dos. Eles melhoram gradualmente os clusters. Como exemplos destes algoritmos para o PC, temos o k-means [31], que o algoritmo mais conhecido da literatura e que e a cada iterao constri o centride do cluster e avalia a clusterizao atravs ca o o ca e das distncias entre os centrides. So encontradas tambm as variaes do a o a e co k-means, que utilizam metodologias diferentes como suavizaao hiperblica c o [54], Global Optimization [5], arvores [39]. Tem ainda algoritmos que utilizam os k-medoids [12, 36] que so os pontos mais representativos de cada cluster. a Existe ainda um grupo de algoritmos que utilizam as metaheur sticas como Busca Tabu [3, 45], Algoritmos Genticos [9, 28, 30, 41], Simulated Anealing e [37, 44], Colnia de Formigas [22, 43]. Para o PCA temos o [51, 53]. o Baseado em Densidade: os algoritmos Baseados em Densidade denem funoes que utilizam conceitos de densidade e conectividade. A idia agruc e e par, no mesmo cluster, pontos que formam uma regio densa. Essas regies a o podem ter uma forma arbitrria e os pontos nessas regies podem estar arbia o trariamente distribu dos. Como exemplos destes algoritmos para o PC temos [4, 24, 33]. Para o PCA temos o [7, 10]. Baseado em Grades: Os algoritmos Baseados em Grades dividem o espao c que contm os pontos em um determinado nmero de subespaos ou clulas. e u c e Clulas contendo um nmero relativamente grande de pontos so candidatos a e u a clusters. Os resultados dos algoritmos dependem do tamanho das clulas, que e normalmente so parmetros de entrada. Exemplos de algoritmos Baseados a a em Grades para o PC so [42, 49, 50, 56]. Para o PCA temos [1, 34]. a Outros: nesta classe podemos citar os algoritmos Baseados em Modelos. Um modelo de dados utilizado para cada cluster e o objetivo encontrar os e e pontos que se adaptem a cada modelo de dados. Como exemplo para o PC temos o [14]. No existem exemplos para o PCA. a Existem ainda alguns algoritmos que tem caracter sticas de mais de um grupo, como em [17, 44, 47]. Esses algoritmos utilizam duas etapas: a primeira utiliza 18

um procedimento Baseado em Densidade e a segunda um procedimento de Particionamento. Os algoritmos [44, 47] so para o PCA e o [17] para o PC. a

2.4

O Conjunto de Instncias a

Neste trabalho so utilizadas algumas instncias. Entre elas, seis so conhecidas na a a a literatura como Ruspini data set [40] (Ruspini) , IrisDataSet [15] (Iris), Maronna data set [32] (Maronna), 200DATA [15], Vowel data set [23] (Vowel) e Broken Ring [51]. O nmero de instncias da literatura pequeno, e por isso, julgou-se desejvel u a e a gerar outras, com cardinalidades diferentes. Para isso, foram constru das instncias a com 100 a 2000 pontos no espao R2 , com os nmeros de clusters variando de 2 a c u 27. Assim poss avaliar o comportamento dos algoritmos em problemas bem e vel diferentes.

Figura 2.7: A instncia comportada 200p4c a

As instncias foram constru a das atravs de uma ferramenta grca denominada e a Dots, desenvolvida por Soares e Ochi em [44]. O aplicativo Dots constitui-se de uma interface grca sobre um sistema de eixos cartesianos. Nesta interface poss a e vel construir um conjunto de pontos, onde cada cluster tem o formato desejvel, utia lizando somente o mouse. A cada clique do mouse, as coordenadas dos pontos so armazenadas. Desta forma, podemos construir instncias com caracter a a sticas variadas de densidade e formato.

19

Os nomes das instncias foram denidos utilizando o nmero de pontos e o a u nmero de clusters. Por exemplo, a instncia 200p4c possui 200 pontos e 4 clusters. u a Foram denidos dois tipos de instncias: as comportadas, onde os clusters so a a bem denidos e separados, como mostra a gura 2.7; e as no comportadas, que a possuem muitos pontos entre os clusters, como mostra a gura 2.8. As instncias a no comportadas so caracterizadas por nal 1 em seus nomes, como em 300p4c1. a a As instncias comportadas terminam com c em seus nomes, como em 300p4c. a

Figura 2.8: A instncia no comportada 300p4c1 a a

As instncias so mostrados na tabela 2.5. Essa tabela possui 5 colunas, que a a descrevem as caracter sticas de cada instncia. A coluna Nome possui os nomes a das instncias, a coluna Best possui o melhor resultado encontrado na literatura, a a coluna no pontos possui o nmero de pontos, a coluna Dimenso possui o nmero u a u de coordenadas de cada ponto e a coluna no clusters possui o nmero de clusters. O u nmero de clusters de cada instncia no comportada presumido, pois em vrios u a a e a casos os clusters no esto bem denidos. a a
Instncia a Nome Ruspini Iris Maronna 200data Best 0,7376 0.6862 0.5745 0,8231 no pontos 75 150 200 200 Dimenso a R2 R
4

no clusters 4 3 4 4

R2 R
2

20

Nome Vowel Broken Ring 100p2c1 100p3c 100p3c1 100p5c1 100p7c 100p8c1 100p10c 200p2c1 200p3c1 200p4c 200p4c1 200p7c1 200p12c1 300p2c1 300p3c1 300p3c 300p4c1 300p6c1 300p13c1 400p3c 400p4c1 400p17c1 500p3c 500p4c1 500p6c1 600p3c1 600p15c 700p4c 700p15c1 800p4c1 800p10c1 800p18c1 800p23c 900p5c 900p12c

Melhor 0.4483 0.4995 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

no pontos 530 800 100 100 100 100 100 100 100 200 200 200 200 200 200 300 300 300 300 300 300 400 400 400 500 500 500 600 600 700 700 800 800 800 800 900 900

Dimenso a R2 R2 R
2

no clusters 12 5 2 3 3 5 7 8 10 2 3 4 4 7 12 2 3 3 4 6 13 3 4 17 3 4 6 3 15 4 15 4 10 18 23 5 12

R2 R
2

R2 R2 R
2

R2 R
2

R2 R2 R2 R2 R
2

R2 R
2

R2 R2 R
2

R2 R
2

R2 R2 R2 R2 R
2

R2 R
2

R2 R2 R
2

R2 R
2

R2 R2 R2

21

Nome 1000p5c1 1000p6c 1000p14c 1000p27c1 1100p6c1 1300p17c 1500p6c 1500p6c1 1500p20c 1800p22c 2000p9c1 2000p11c

Melhor ? ? ? ? ? ? ? ? ? ? ? ?

no pontos 1000 1000 1000 1000 1100 1300 1500 1500 1500 1800 2000 2000

Dimenso a R2 R2 R
2

no clusters 5 6 14 27 6 17 6 6 20 22 9 11

R2 R
2

R2 R2 R
2

R2 R
2

R2 R2

Tabela 2.5: Descrio das instncias ca a

22

Cap tulo 3 Heur sticas para o PCA


Metaheur sticas so heur a sticas genricas para a soluao aproximada de problemas, e c principalmente problemas de Otimizaao Combinatria de elevada complexidade. c o Entre elas, podemos citar, Algoritmos Evolutivos, GRASP, ILS, Busca Tabu, VNS, entre outras [18]. O PCA um problema combinatrio de elevada complexidade, pois o nmero e o u soluoes poss c veis cresce exponencialmente ` medida que o nmero de pontos cresce. a u No existem muitos trabalhos relacionados ao PCA. Tratando-se de Mea taheur sticas, s existem dois trabalhos, de nosso conhecimento, um de 2001 [17] o e outro de 2004 [47]. Os dois utilizam Algoritmos Evolutivos para a resoluo do ca PCA. O objetivo deste cap tulo propor algumas heur e sticas para a soluao do PCA. c Para isso, so utilizadas as Metaheur a sticas Algoritmo Evolutivo , GRASP e ILS. Estas Metaheur sticas se adequam ao problema e alm disso, possuem enfoques e diferentes. Antes da deniao das heur c sticas, so denidas algumas caracter a sticas comuns aos algoritmos, e que ajudam na geraao de soluoes boas. Elas incluem um procec c dimento de construo de clusters parciais, a representao da soluo, buscas locais ca ca ca e memria adaptativa. o No nal, testes computacionais so realizados para vericar a qualidade das a heur sticas propostas.

23

3.1

As caracter sticas comuns aos Algoritmos

Nesta seo so descritas algumas caracter ca a sticas comuns aos algorimos. Primeiro e denido um procedimento denominado Etapa de Construo, que tem como objetivo ca tentar reduzir os dados de entrada do problema atravs da formao de clusters e ca parciais. Estes clusters parciais so formados, agrupando em um mesmo cluster, a pontos pertencentes a uma regio densa. Desta forma, os algoritmos trabalham com a conjunto de pontos e no necessariamente com pontos unitrios, a a Os algoritmos propostos neste trabalho utilizam a mesma estrutura de dados para representar e gerar a soluao do problema. c Alm disso, os algoritmos utilizam o conceito de memria adaptativa. Este e o conceito no est na deniao original das metaheur a a c sticas, mas pode melhorar as soluoes obtidas.[18] c Finalmente, so denidas as buscas locais Inverso Individual, Troca entre Pares a a e Reconexo por Caminhos que tem como objetivo intensicar a busca de boas a soluoes. Os procedimentos so mostrados a seguir. c a

3.1.1

A Etapa de Construo ca

A Etapa de Construo uma etapa inicial, que tem por objetivos tentar reduzir ca e a cardinalidade dos dados de entrada do problema e facilitar a geraao de solues c co iniciais de boa qualidade para os algoritmos. Ela composta por dois procedimentos: e O procedimento Gerar Clusters Parciais (GCP) e o Juno de Clusters Parciais ca Adjacentes (JCPA). O procedimento GCP tende a reduzir a cardinalidade do problema criando clusters parciais baseados no critrio de densidade denido em [17, 47] . O procedimento e JCPA tenta diminuir um pouca mais a cardinalidade do problema juntando clusters parciais adjacentes, ou seja, clusters parciais que esto muito prximos. a o O procedimento GCP agrupa em um mesmo cluster os pontos pertencentes a uma regio densa, como mostra o pseudocdigo da gura 3.1. Inicialmente, nas linhas 1, a o 2 e 3 , para cada ponto denido a menor distncia a outro ponto qualquer. Depois, e a na linha 4, feito uma mdia destas distncias, denominada dmedio . Ento, na linha e e a a 5, cada ponto xi X considerado o centro de um c e rculo cujo valor do raio r = e

24

Procedimento GCP (X,u) 1. Para i = 1 ate m Faa c 2. dmin (xi ) = min||xi xj ||, i = j , j = 1, ..., m
1 m m i=1

3. Fim Para 4. dmedio = dmin (xi )

5. r = u dmedio 6. Para i = 1 at m Faa e c 7. 8. Ni = circulo(xi , r) T = T Ni

9. Fim Para 10. Ordenar T em ordem decrescente 11. i = 1 12. Enquanto T = Faa c 13. 14. 15. Bi = prximo(N j T ) o T = T Nj i=i+1

16. Fim Enquanto 17. Retornar B = {B1 , B2 , ..Bt } , os t clusters parciais. 18. Fim GCP Figura 3.1: O Pseudocdigo do procedimento GCP o u * d medio , onde u um parmetro de entrada. Logo aps, na linha 7, calculado e a o e o conjunto de pontos contidos em cada c rculo Ni = circulo (xi , r), exemplicado na gura 3.2. Estes valores so colocados em uma lista T , indicado nas linhas 8 a e 10, que ordenada em ordem decrescente de cardinalidade. Entre as linhas 12 e e 17, os elementos de T so considerados os clusters parciais B = {B1 , B2 , ..Bt }. a Para que os clusters no possuam elementos em comum, toda vez que um c a rculo selecionado, todos os seus pontos no podem mais entrar em outro c e a rculo. Com este procedimento as regies mais densas so selecionadas. o a Aps este procedimento inicial, realizado um renamento, denominado JCPA o e que tem como objetivo diminuir o nmero de clusters parciais. Assim, efetuada u e uma agregaao de clusters parciais pequenos (com at 4 pontos), que sejam prximos c e o

25

Figura 3.2: Clculo dos pontos contidos no c a rculo de centro x2 e raio r = u x dmedio

a algum outro cluster parcial grande (com mais de 10 pontos). Isto realizado e vericando se este cluster pequeno est a uma distancia dadj do cluster grande, onde a dadj = v dmedio (onde o valor v um parmetro de entrada) e a O psedocdigo de procedimento JCPA descrito na gura 3.3. Os clusters parcio e ais gerados no procedimento GCP so utilizados neste procedimento e est indicado a a na linha 1. Na linha 2 calculado o dadj . Para cada cluster parcial pequeno, e e vericado qual o cluster parcial grande mais prximo em relaao ` distncia entre o c a a os centrides (linhas 3 , 4 e 5). Se este cluster possuir pelo menos um ponto a uma o distancia de dadj de qualquer ponto do outro cluster, ento ele ser incorporado ao a a outro, como mostram as linhas 6 e 7. O retorno deste procedimento o conjunto e de clusters B = {B1 , B2 , ..Bp }, onde p t. Este procedimento reduz o nmero de u clusters remanescentes do procedimento GCP. Os clusters gerados na Etapa de Construo, aps os procedimentos GCP e ca o JCPA, so denominados clusters iniciais. a

3.1.2

Representao da Soluo ca ca
=

Considere os clusters iniciais gerados na Etapa de construao como B c

{B1 , B2 , ...Bp } e seja vi , i = 1, 2, ...p o centride de cada cluster Bi . Para reo presentar uma soluao utilizada uma cadeia binria de p posioes. Por exemplo, c e a c se p = 7, ento uma cadeia binria poderia ser {0110010}. Se o valor correspona a dente ao Bi na cadeia binria for igual a 1, o cluster inicial Bi faz parte da soluao a c como cluster pai. Se o valor correspondente ao Bi na cadeia binria for igual a a 26

Procedimento JCPA (B , v , dmedio ) 1. Seja B = {B1 , B2 , ..Bt } o conjunto de clusters parciais gerados pelo GCP 2. dadj = v dmedio 3. Para i = 1 at t Faa e c 4. 5. 6. 7. 8. 9. Se cardinalidade(Bi ) <= 4 Ento a Bk = menor distancia centroide(Bi ) Se (xr Bi e xs Bk tq ||xr xs || < dadj ) Entao Bk = Bk Bi Fim Se Fim Se

10. Fim Para 11. Retornar B = {B1 , B2, , ..., Bp } clusters iniciais, onde p <= t 12. Fim JCPA Figura 3.3: O Pseudocdigo do procedimento JCPA o 0, Bi considerado um cluster lho. Os clusters lhos so unidos aos clusters pais e a utilizando o critrio de menor distncia entre os centrides. A cada unio, o valor e a o a do centride recalculado. No nal, todos os clusters lhos so unidos aos clusters o e a pais para gerar uma soluo. Portanto, o nmero de clusters pais gerados em cada ca u soluao no alterado. Os clusters gerados aps esse processo so denominados c a e o a clusters nais C = {C1 , C2, , ..., Ck }.
o o o Para mostrar melhor o processo, seja B o = {B1 , B2 , ...Br } um subconjunto de 1 1 1 B onde seus elementos tem valor 0 na cadeia binria e B 1 = {B1 , B2 , ..., Bs } um a

subconjunto de B onde seus elementos tem valor 1 na cadeia binria, onde p = r + s. a


o Inicialmente cada Bi1 candidato unico a cada cluster Ci . Ento para cada Bh B o , e a 1 encontrar um Bz B 1 , tal que seus centrides satisfaam a relaao abaixo : o c c

1 o 1 o ||vz vh || = min||vi vh ||, i = 1, ...., s.

(3.1)

1 o A cada busca, Bz atualizado incorporando Bh e o centride recalculado. O e o e

conjunto B o atualizado. O processo continua at B o = . Assim cada Cj C e e e

27

denido como:
q

Cj =
i=1

Bi onde 1 q p

(3.2)

Aps nalizar este procedimento, uma soluao encontrada. o c e

3.1.3

Memria Adaptativa o

As metaheur sticas utilizadas neste trabalho, no possuem em sua denio o cona ca ceito de Memria Adaptativa. As solues so geradas, porm no so armazenadas o co a e a a para uso posterior. A memria Adaptativa [18] utiliza um conjunto com as melhores soluoes do o c algoritmo, que so atualizadas ao longo das iteraes. Neste trabalho utilizado um a co e conjunto , denominado ELITE , que armazena a melhor soluao de cada iteraao c c do algoritmo. As soluoes armazenadas so difrentes entre si. c a O conjunto ELITE utilizado em dois momentos diferentes em cada algoritmo e proposto: no meio do algoritmo, para efetuar a busca local Reconexo por Caminhos a e no nal do algoritmo, para efetuar uma busca local (Troca entre Pares ou Inverso a Individual, dependendo do algoritmo proposto), com o objetivo de tentar melhorar as melhores solues encontradas. co

3.1.4

A Busca Local Inverso Individual a

A idia bsica desta busca, denominada Inverso Individual, tentar melhorar a e a a e soluao corrente analisando soluoes prximas a ela. Para isso, ela permuta o valor c c o de cada elemento da soluo (1 por 0, ou 0 por 1), um por vez, e calcula o valor ca Indice Silhueta da nova soluo. Porm o algoritmo s aceita a mudana, se o novo ca e o c valor da funao for melhor que o valor anterior. c Por exemplo, imagine que a soluao corrente {0101101}. Primeiramente, c e e trocado o primeiro elemento da soluao. Ento gerada a nova soluo {1101101}. c a e ca Se esta soluo tem valor da funao maior que o anterior, ento ela a nova soluo. ca c a e ca E ento, trocado o segundo elemento. A soluo agora {1001101}. Se esta a e ca e possuir o valor da funao maior que o anterior, ento a mudana aceita. Caso c a c e contrario, a soluao anterior mantida. A busca acaba quando todos os elementos c e

28

da soluo so trocados. ca a A busca local Inverso Individual se justica, pois encontrar o nmero ideal de a u clusters um dos objetivos do problema, e a incluso ou retirada de um cluster pai e a pode melhorar a soluao corrente. c

3.1.5

A Busca Local Troca Entre Pares

A busca local Troca entre Pares uma busca intensiva e troca o status de dois e elementos da soluo com valores diferentes. ca Por exemplo, suponha que a soluo corrente {10111010}. Primeiro trocado ca e e o primeiro e o segundo elemento da soluao. Ento a nova soluo {01111010}. c a ca e Se esta nova soluao melhorar o valor ce Silhueta da soluao anterior, ento ela c Ind c a aceita e a nova soluo corrente. A prxima troca feita entre o primeiro e o e e ca o e terceiro elemento da soluao corrente. Depois, entre o primeiro elemento e o quarto c elemento, e assim, sucessivamente. A busca local termina quando todas as trocas entre dois elementos com valores distintos so testadas. a O objetivo desta busca local tentar encontrar soluaos melhores sem alterar o e c nmero de clusters pais obtidos pelas solues anteriores. u co

3.1.6

Reconexo por Caminhos (RC) a

O procedimento Reconexo por Caminhos (RC) foi proposto originalmente para a os mtodos Tabu Search e Scatter Search [18] como uma estratgia de intensie e caao, explorando trajetrias que conectavam soluoes de boa qualidade obtidas c o c pela heur stica. Este procedimento tem como objetivo procurar solues intermedirias de boa co a qualidade entre duas solues extremas. O princ bsico da RC que, entre duas co pio a e soluoes de qualidade, pode existir uma terceira melhor que as outras. c A RC consiste em traar o caminho entre uma soluo base e uma soluao destino c ca c (alvo) que apresentem boa qualidade e avaliar as soluoes intermedirias obtidas ao c a longo do trajeto. O objetivo deste trajeto encontrar soluoes melhores que a base e c e a alvo. Na Reconexo de Caminhos utilizada, o sentido da trajetria adotado o pera o e curso do caminho partindo da soluao de melhor qualidade (Smelhor ) para a de pior c 29

qualidade(Spior ). Na soluao de melhor qualidade inserido um pedao da soluao c e c c de menor qualidade. Primeiro inserido o ultimo elemento de Spior em Smelhor . Dee pois, so inseridos o ultimo e o penltimo elemento de Spior em Smelhor . O processo a u continua at a troca de todos os elementos das solues. A RC retorna a melhor e co soluao obtida durante todo o processo. c A busca local Reconexo por Caminhos se justica, pois encontrar o nmero ideal a u de clusters um dos objetivos do problema, e entre duas soluoes com nmeros de e c u clusters pais diferentes, existem outras soluoes com diferentes nmeros de clusters c u pais.

3.2

As Heur sticas Propostas

Uma vez denidos os procedimentos comuns, nesta seo so apresentadas as ca a heur sticas propostas. Primeiro apresentado um resumo de cada metahuristica: e e Algoritmo Evolutivo , GRASP e ILS. Para cada uma delas, so propostas duas a heur sticas. No nal, experimentos computacionais so realizados para denir qual a a proposta obtem os melhores resultados.

3.2.1

Algoritmos Evolutivos

A expresso Algoritmos Evolutivos ou Algoritmos Evolucionrios [18] corresponde a a a classe de algoritmos para a soluao de problemas de otimizao que utilizam c ca mtodos computacionais baseados em teoria da evoluao da espcie, proposta por e c e Charles Darwin, e nos princ pios bsicos da herana gentica, descritos por Gregor a c e Mendel. Darwin propo um modelo de evoluao em que uma populao de indiv e c ca duos sofre um processo de evoluo natural e estes so capazes de se adaptarem ao ambiente em ca a que vivem atravs de processos de seleo natural, reproduo, recombinaao sexual e ca ca c e mutao. Os indiv ca duos mais adaptados tm maiores chance de sobreviverem e e gerarem descendentes. O processo de seleao privilegia os indiv c duos com alta capacidade de sobrevivncia e permite que a qualidade mdia da populao melhore e e ca ao longo do processo evolutivo, levando a obteno de um indiv ca duo totalmente adaptado ao ambiente.

30

Os Algoritmos Evolutivos (AEs) utilizam estas idias atravs da manipulao de e e ca uma populaao de indiv c duos (soluoes) que evoluem ao longo de vrias iteraes do c a co AE, chamados de geraes. Os AES so divididos em vrios grupos, onde o principal co a a representante denominado Algoritmos Genticos (AG) descrito a seguir. e e Algoritmos Genticos e O comportamento dos AGs corresponde a uma analogia com o comportamento dos indiv duos de uma populao da natureza. Considerando uma populaao de inca c div duos da natureza, estes competem entre si por diferentes recursos dispon veis ao seu meio ambiente (habitat) como gua, comida e abrigo. Cada um dos ina div duos possuem caractecter sticas externas (fentipo) relacionadas a sua constio tui ao genetica (gentipo), que os diferem entre si em relaao a adaptao ao meio c e o c ` ca ambiente em que vivem. Esta adaptaao afeta diretamente a capacidade de sobrec vivncia por per e odo suciente para se reproduzirem pelo acasalamento. Atravs e do acasalamento, as caractecter sticas genticas dos dois indiv e duos envolvidos so a combinadas e tranmitidas para a prole. Desta forma, as geraoes futuras possuem c uma grande probabilidade de serem formadas por indiv duos com caracter sticas necessrias para um maior tempo de vida, em relao as geraoes anteriores. Este a ca c processo denominado seleo natural. e ca Em um AG tradicional, cada indiv duo corresponde ` codicaao de uma soluao a c c para o problema considerado. Para realizar esta codicaao (ou representao da c ca soluao) , normalmente utilizado um vetor de valores binrios, inteiros ou reais, que c e a constitui o prprio indiv o duo. A populao corresponde a um conjunto de soluoes ca c do problema. O fentipo de um indiv o duo obtido a partir da sua submisso a uma funo que e a ca ir avaliar a qualidade do seu cdigo gentico. Esta funo denominada funo a o e ca e ca de aptido e representa a qualidade de cada indiv a duo em relaao ao problema c modelado. Num AG, os cdigos genticos de indiv o e duos mais aptos, tem uma chance maior de serem tansmitidos para as geraoes futuras, atravs dos processos de seleao c e c e reproduo. ca Um AG utiliza operadores genticos sobre os indiv e duos da populaao como o c operador de cruzamanto e o operador de mutaao. c

31

Figura 3.4: Exemplo de cruzamento de dois pontos

O operador de cruzamento combina partes do cdigo gentico de indiv o e duos diferentes. Existem diversas formas de utilizaao do operador de cruzamento, como c o cruzamento de dois pontos.

Figura 3.5: Exemplo de mutaao c

O cruzamento de dois pontos atua sobre dois indiv duos diferentes. Este operador funciona da seguinte maneira: pares de pontos de cruzamento so obtidos a de forma aleatria e os valores dos indiv o duos localizados entre cada par de pontos so trocados. Os dois pontos de corte denem os segmentos dos vetores que sero a a trocados entre os mesmos para gerar novos indiv duos. A aplicaao do operador de c cruzamento a um par de indiv duos normalmente est sujeita a uma taxa de probaa bilidade, denida como parmetro para a execuo do AG. A gura 3.4 mostra este a ca 32

procedimento. O operador de mutaao realiza trocas aleatrias de alguns valores dos indiv c o duos, e sua aplicao, tambm est sujeita a uma taxa de probabilidade, denida como ca e a parmetro. A gura 3.5 mostra um exemplo de mutaao. a c

Procedimento Algoritmo Gentico Tradicional e 1. i = 0 2. Gerar a populao inicial P(0) ca 3. Avaliar a populao inicial P(0) ca 4. Enquanto no (condio de trmino) Faa a ca e c 5. 6. 7. 8. i=i+1 selecionar P(i) de P(i-1) Aplicar os operadores genticos a P(i) e Avaliar os indivduos de P(i)

9. Fim-enquanto 10. Fim Procedimento Figura 3.6: O psedocdigo do Algoritmo Gentico Tradicional o e Estes operadores permitem a exploraao de novas caracter c sticas nos indiv duos e correspondem a evoluao dos indiv c duos. O objetivo dos operadores genticos e e permitir que diferentes reas do espao de busca possam ser exploradas, evitando a a c convergncia prematura do algoritmo para um otimo local, ainda distante do timo e o global. O pseudocdigo mostrado na gura 3.6 mostra o funcionamento de um AG o tradicional. Para modelar um problema espec co utilizando um AG, necessrio considerar: e a Representao dos indiv ca duos: como representar as poss veis soluoes para o c problema. Funo de aptido : de que forma a funao de aptido pode representar, de ca a c a forma precisa, a qualidade de cada soluo obtida. ca Seleao e Reproduo: como ser realizada a seleao de indiv c ca a c duos de uma geraao, para serem aplicados os operadores genticos e com isso, constitu c e rem 33

a populao da geraao seguinte. ca c Operadores genticos : quais os operadores genticos devem ser aplicados, e e e de que forma. Outros paramtros : quais os valores que devem ser utilizados para o tamanho e da populao, critrio de parada, entre outros. ca e

3.2.2

Os Algoritmos Evolutivos Propostos

Uma vez denidos os procedimentos comuns e a metaheur stica Algoritmos Evolutivos, podemos denir as implementaes utilizadas. Foram implementados duas co verses para o AEs, denominados Algoritmo Evolutivo Construtivo com Busca Local o 1 (AECBL1) e AECBL2 . A diferena entre as implementaes a ordem que as c co e buscas locais so chamadas. a O AECBL1 e AECBL2 so mtodos compostos de duas fases. A fase inicial a e corresponde a Etapa de Construo, denida anteriormente. A segunda etapa dos ca AECBLs possuem um algoritmo gentico com busca local que utiliza conceitos de e memria adaptativa para a busca da melhor congurao de uma soluao poss o ca c vel. As duas fases dos AECBLs so denotadas por: fase de construo e o mdulo a ca o evolutivo. As duas fases so mostradas a seguir. a A Fase de Construo ca A fase de construao dos algoritmos evolutivos propostos igual a Etapa de Consc e truao, denida na seao 3.1.1. c c O Mdulo Evolutivo o O mdulo evolutivo composto de um Algoritmo Gentico tradicional acrescido o e e de 3 buscas locais. O algoritmo gentico puro nem sempre consegue bons resule tados. Ento, necessria a utilizao de busca local para melhorar a qualidade a e a ca das soluoes. Por isso, foram utilizadas as buscas locais Inverso Individual , Troca c a entre Pares e Reconexo por Caminhos. a A racionalidade de utilizar algoritmos genticos gerar aleatoriamente um e e nmero qualquer de clusters pais. Como o nmero de clusters pais um dos obu u e 34

jetivos do problema, o algoritmo gentico permite gerar a cada iteraao, nmeros e c u diferentes de clusters pais. Para construir a populao inicial, o algoritmo gera um nmero bem maior de ca u indiv duos (dez vezes o tamanho da populao) e escolhe aqueles com os maiores ca valores de aptido. Este procedimento permite comear o algoritmo gentico com a c e uma populao de melhor qualidade. ca Para efetuar a seleo dos indiv ca duos para cruzamento, so utilizados dois opea radores. Esses operadores se alternam. O primeiro operador escolhe aleatoriamente os dois indiv duos dentre os 60% com melhores valores de aptido. E o segundo a operador, escolhe um indiv duo aleatoriamente entre os 60% com melhores valores de aptido e o outro, entre os 40% restantes. a O operador de cruzamento utilizado o cruzamento de dois pontos. Os indiv e duos so submetidos ao cruzamento com probabilidade pc . a O operador de mutaao utilizado realiza a troca de um elemento do indiv c duo, com probabilidade pm . Aps a aplicaao dos operadores de cruzamento e mutaao, os descendentes o c c que obtiverem valores de aptido melhores que os valores da populao atual so a ca a inseridos na nova populao. ca A cada t iteraoes, os melhores indiv c duos da populaao passam pela busca local c (Inverso Individual no AECBL1 e Troca entre Pares no AECBL2 ) . O objetivo a e intensicar a procura de soluoes diferentes no conjunto de solues existentes. c co A cada r iteraoes, o melhor indiv c duo da populaao e o melhor indiv c duo do conjunto ELITE, dos algoritmos AECBL1 e AECBL2, passam pelo Busca local Reconexo por Caminhos. a A cada iteraao, a melhor soluao armazenada no conjunto ELITE. No c c e nal, o conjunto ELITE passa por uma segunda busca local (Troca entre Pares no AECBL1 e Inverso Individual no AECBL2). O objetivo tentar melhorar as mea e lhores soluoes encontradas. c Os Pseudocdigos dos Algoritmos o A gura 3.7 mostra o pseudocdigo do AECBL1. o O algoritmo utiliza os seguintes parmetros de entrada: o conjunto de pontos a

35

Procedimento AECBL1 (X, Tpop , Gmax , pc , pm , u , v , t , r) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Fim Se Fim Enquanto Se (k mod t = 0 ) Entao Inverso Individual (P) a Fim Se Se ( k mod r) = 0 Entao Reconexao por Caminhos(P,ELITE) Fim Se Atualizar conjunto Elite (ELITE) G = Fase de Construo (X,u,v) ca P = Gerar Populao Inicial(G , Tpop) ca Para k = 1 ate Gmax Faa c i=1 Enquanto i < T pop/2 Faa c Seleciona (p1, p2) q = random (100) Se (q Pc 100) Ento a i=i+1 Se Cruzamento (p1,p2,f1,f2) Ento a M utacao(p1, p2, Pm ) Fim Se Se(Avaliar Soluo (f1,f2) ) Ento ca a Atualizar populao (p1, p2, P) ca Fim Se

25. Fim Para 26. Troca entre Pares (ELITE) 27. Retornar (Melhor soluo) ca 28. Fim AECBL1 Figura 3.7: O pseudocdigo do AECBL1 o

36

X , o tamanho da populao denida Tpop, o nmero de iteraes que o algoritmo ca u co ir executar Gmax , as probabilidades de cruzamento pc e mutaao pm , os valores de a c u e v utilizados na fase de Construao e os valores t e r , que representam a perioc dicidade que o algoritmo executa as buscas locais Inverso Individual e Reconexo a a por Caminhos. Na linha 1, executada a fase de construo no conjunto de pontos X. Este e ca utiliza os parmetros u e v e gera um conjunto de clusters iniciais G. a Na linha 2 gerada a populao P , tendo como entrada G e o tamanho da e ca populaao Tpop. Os passos entre as linhas 3 e 17 mostram a execuao das geraoes c c c do AECBL1. So realizadas Gmax iteraoes no algoritmo, ou seja, so constru a c a das Gmax geraoes no algoritmo gentico. c e Nesta gura, p1 e p2 representam indiv duos com respectivos valores de aptido a f1 e f2 . A cada gerao, pares de indiv ca duos so selecionados para fazer o cruzamento. a Porm, cada cruzamento s realizado, dependendo da probabilidade pc . O cruzae oe mento feito em indiv e duos diferentes. A mutao realizada em um dos indiv ca e duos ( p1 ou p2 , escolhido aleatoriamente), dependendo da probabilidade pm . Aps o o cruzamento e a mutaao, feita uma avaliaao da funao de aptido para vericar se c e c c a as novas soluoes melhoram as solues anteriores da populaao. Se isso acontecer, c co c a populao atualizada. Isto est indicado entre as linhas 5 e 17. ca e a A cada t iteraoes, nas linhas 18, 19 e 20, realizada a busca denominada c e Inverso Individual nos melhores elementos da populaao. a c A cada r iteraoes, nas linhas 21, 22 e 23, realizada a busca local Reconexo por c e a Caminhos entre o melhor elemento da populao e o melhor elemento do conjunto ca ELITE. A cada geraao, na linha 24, a melhor soluao encontrada armazenada no c c e conjunto ELITE. Este conjunto s armazena a soluao se est for melhor que a pior o c a soluao do conjunto ELITE e diferente das outras. c A busca Troca entre Pares realizada no conjunto ELITE e est indicada na e a linha 26. O retorno do AECBL1 a melhor soluao encontrada aps a execuao de e c o c todos os procedimentos. Isto est indicado na linha 27. a O algoritmo AECBL2 semelhante ao anterior e as difenas esto nas linhas 19 e c a

37

Procedimento AECBL2 (X, Tpop , Gmax , pc , pm , u , v , t , r) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Fim Se Fim Enquanto Se (k mod t = 0 ) Entao Troca entre Pares (P) Fim Se Se ( k mod r) = 0 Entao Reconexao por Caminhos(P,ELITE) Fim Se Atualizar conjunto Elite (ELITE) G = Fase de Construo (X,u,v) ca P = Gerar Populao Inicial(G , Tpop) ca Para k = 1 ate Gmax Faa c i=1 Enquanto i < T pop/2 Faa c Seleciona (p1, p2) q = random (100) Se (q Pc 100) Ento a i=i+1 Se Cruzamento (p1,p2,f1,f2) Ento a M utacao(p1, p2, Pm ) Fim Se Se(Avaliar Soluo (f1,f2) ) Ento ca a Atualizar populao (p1, p2, P) ca Fim Se

25. Fim Para 26. Inverso Individual(ELITE) a 27. Retornar (Melhor soluo) ca 28. Fim AECBL2 Figura 3.8: O pseudocdigo do AECBL2 o

38

e 26, onde as buscas locais Inverso Individual e Troca entre Pares esto invertidas. a a O pseudocdigo do algoritmo AECBL2 mostrado na gura 3.8. o e

3.2.3

GRASP

A metaheur stica GRASP ( Greedy Randomized Adaptative Search Procedure) foi proposta por Feo e Rezende[18]. E um processo iterativo do tipo multistart para obter solus para problemas de Otimizaao combinatria. E um mtodo que conce c o e siste de duas fases: uma de construao e outra de busca local. A primeira fase c constroi uma soluao vivel para o problema proposto. A busca local tenta melhoc a rar a soluo obtida na fase anterior. ca O pseudocdigo do GRASP, na sua forma clssica, mostrado na gura 3.9. o a e Na linha 1, os dados do problema so lidos. Nas linhas de 2 ` 8, so realizadas as a a a iteraoes do GRASP. Estas iteraoes so realizadas por MaxIter iteraes. Na linha c c a co 3 executada a fase de construao e na linha 4 a busca local. Na linha 5 vericado e c e se a soluo obtida na iteraao melhor a que soluao encontrada at o momento. ca c e c e Na linha 6 feita atualizaao da melhor soluao. e c c Procedimento GRASP 1. 2. 3. 4. 5. 6. 7. 8. 9. Fim Se Fim Para Retornar x Ler os Dados do Problema Para k = 1 at MaxIter Faa e c Construir uma soluo Randomizada (fase de construo) ca ca Encontrar y aplicando uma busca local em x (fase de busca local) Se f(y) < f ento a x = y ; f = f (y)

10. Fim GRASP Figura 3.9: O pseudocdigo do GRASP o Na fase de construao, o conjunto de elementos candidatos formado por todos c e os elementos que no foram incorporados a soluao parcial em construao e que no a c c a inviabilizam esta, caso sejam incorporados. A escolha do prximo elemento a ser ino 39

corporado determinada pela avaliaao de todos os elementos candidatos de acordo e c com uma funo gulosa (custo incremental). Esta funo avalia os benef ca ca cios ganhos com a insero deste elemento na soluo em construao. A avaliaao dos elementos ca ca c c leva a criaao de uma lista restrita de candidatos (LRC) formado por um subconc junto dos melhores candidatos, isto , aqueles cuja incorporaao ` soluo parcial e c a ca corrente resulta nos melhores custos incrementais (aspecto guloso do algoritmo). O elemento a ser incorporado a soluo parcial selecionado, aleatoriamente, dentro ` ca e da LRC (aspecto probabil stico do algoritmo). Uma vez que o elemento selecionado foi incorporado soluo parcial, a LRC atualizada e os custos incrementais so a ca e a reavaliados (aspecto Adaptativo). Procedimento Construtivo 1. 2. 3. 4. 5. 6. 7. 8. 9. x= Enquanto ( x no for uma soluo completa) Faa a ca c Avaliar os custos dos elementos candidatos Construir uma lista de candidados LRC Selecionar aleatoriamente um elemento s LRC x=x+s Fim-enquanto Retornar x FIM Procedimento Construtivo Figura 3.10: O pseudocdigo do procedimento construtivo do GRASP o O procedimento construtivo mostrado na gura 3.10. Na linha 1 , a soluao a e c ser constru inicializada. A soluo constru entre as linhas 2 e 7. Nas linhas da e ca e da 3 e 4, os custos de cada candidato so avaliados e formam a LRC. Um elemento a e escolhido na LRC aleatoriamente (linha 5), e na linha 6 , este elemento incorporado e a soluo. O retorno deste procedimento uma soluo inicial vivel. ca e ca a A busca local tenta melhorar a soluao corrente e encontrar um otimo local. c Para isto, a busca local substitui, iterativamente, a soluo corrente por uma soluao ca c melhor, pertencente a sua vizinhana. c Vrios conceitos e mdulos de aperfeioamento foram propostos para tentar mea o c lhorar as soluoes da Metaheur c stica GRASP. Alguns exemplos so GRASP reaa 40

tivo, Memria a Longo Prazo, entre outros. Porm existe um mdulo, denominado o e o GRASP com ltro, cujo conceito utilizado neste trabalho. Este mdulo descrito e o e a seguir. GRASP com Filtro Os mtodos de construao em otimizaao combinatria, normalmente, tm a funao e c c o e c de gerar uma soluao vivel para o problema. Mtodos que utilizam construo e c a e ca busca local se caracterizam por construir e posteriormente renar a soluao inicial. c O que observado, que as buscas locais utilizam a maior parte dos tempos e e totais dos mtodos. e Uma forma de tentar reduzir os tempos de uma busca local melhorar as solues e co iniciais. Esta sugesto bem justicada no caso do GRASP, onde a cada iterao a e ca e gerada uma soluo inicial e posteriormente essa renada por uma busca local. ca e A proposta de usar um ltro na etapa de construo GRASP, simplesmente, ca se reduz a cada iterao GRASP gerar p soluoes iniciais e selecionar somente as ca c melhores para efetuar a busca local.

3.2.4

Algoritmos GRASP propostos

Uma vez denidos os procedimentos comuns e a metaheur stica GRASP, podemos denir as implementaoes utilizadas. Foram implementados duas verses, denomic o nados Grasp com Busca Local Inverso Individual e Troca entre Pares e Reconexo a a por Caminhos 1 (GBLITRC1) e GBLITRC2 . Os algoritmos possuem duas fases : a fase de construo e a fase de busca local. ca A fase de construo comun para as duas implementaoes. Eles utilizam os ca e c procedimentos da Etapa de Construo e geram uma lista LRC com com o nmero de ca u clusters pais das melhores soluoes encontradas. Esta lista utilizada posteriormente c e para gerar as soluoes iniciais. c A fase de busca local utiliza as buscas locais Troca entre Pares, Inverso indivia dual e Reconexo por Caminhos. A diferena entre os algoritmos a ordem em que a c e as buscas locais aparecem. Os procedimentos so mostrados a seguir. a

41

A fase de Construo ca A fase de construao do GRASP utiliza os procedimentos da Etapa de construao, c c denida na seao 3.1.1. Nesta fase, so geradas vrias soluoes, e o nmero de c a a c u clusters pais das melhores, so armazenados em uma lista LRC. a Inicialmente, o procedimento Gerar LRC utiliza a Etapa de Construao para c construir os clusters iniciais B = {B1 , ..., Bp }. Depois, a cada ietrao gerada ca e uma soluao com k clusters pais, k variando entre 2 e p-1. Os k clusters pais so c a escolhidos, aleatoriamente, entre os p clusters iniciais possveis. Este procedimento repetido MaxIter vezes. Cada soluo encontrada avaliada atravs da funo e ca e e ca Indice Silhueta e o nmero de clusters pais das melhores solues so armazenados u co a na LRC, cujos valores so diferentes. a Aps a geraao da lista LRC, os algoritmos tem uma boa estimativa do nmero o c u ideal de clusters. Procedimento Gerar LRC (X , u , v , M axIter) 1. 3. 4. 5. 6. 7. 8. 9. G = Etapa de Construo (X, u , v) ca Para i = 1 ate MaxIter Faa c Para k = 2 ate p-1 Faa c s0 = Gerar Solucao(k , G) Atualizar LRC(s0 ) Fim Para Fim Para Retornar LRC

10. Fim Gerar LRC Figura 3.11: O pseudocdigo do procedimento construtivo dos algoritmos GRASP o O procedimento mostrado na gura 3.11. Na linha 1 so gerados os clusters e a iniciais atravs da Etapa de Construao. Estes clusters so arnazenados no conjunto e c a G. Depois feito um processo iterativo, que a cada momento, gera uma soluo e ca com k clusters pais , 2 < k < p 1. Cada soluao avaliada e as melhores so c e a armazenadas numa lista denominada LRC. Isto est indicado entre as linhas 4 e a 7. Este processo iterativo repetido por MaxIter vezes, como indica a linha 3. O e retorno deste procedimento a LRC. e 42

Para gerar uma soluo inicial, escolhido um elemento nc LRC. Ento ca e a e gerada uma soluo contendo nc clusters pais, escolhidos, aleatoriamente, entre os ca p poss veis. A Fase de Busca Local O algoritmo GBLITRC1 gera uma soluao inicial e aplica a busca local Inverso c a Individual. A cada t iteraes, o algoritmo tambm aplica a busca local Reconexo co e a por Caminhos. No nal, o algoritmo aplica a busca local Troca entre Pares, no conjunto ELITE gerado. O algoritmo GBLITRC2, gera uma soluo inicial e aplica a busca local Troca ca entre Pares. A cada t iteraoes, o algoritmo tambm aplica a busca local Reconexo c e a por caminhos. No nal, o algoritmo aplica a busca local Inverso individual, no a conjunto ELITE gerado. Procedimento GBLITRC1 (X, u, v , MaxIter , Gmax , t ) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Gerar LRC (X,u,v,MaxIter) Para k = 1 ate Gmax Faa c Selecionar nc LRC s0 = Gerar solucao inicial(nc) s1 = Inversao Individual(s0 ) Se ( k mod t) = 0 Ento a Reconexao por Caminhos (s1 , s ) Fim Se Atualizar ELITE(s1 ) s = Retornar melhor (ELITE)

11. Fim Para 12. Troca entre Pares(ELITE) 13. s = Retornar melhor (ELITE) 14. Retornar (s ) 15. Fim GBLITRC1 Figura 3.12: O pseudocdigo do GBLITRC1 o

43

Os pseudocdigos dos Algoritmos o Os pseudocdigo do algoritmo GBLITRC1 mostrado na gura 3.12. O algoritmo o e utiliza os seguintes parmetros de entrada: o conjunto de pontos X , os valores de a u , v e M axIter utilizados no procedimento Gerar LRC, o nmero de iteraoes que u c o algoritmo executa Gmax e o valor t, que representa a periodicidade que o algoritmo executa a busca local Reconexo por Caminhos. a Procedimento GBLITRC2 (X, u, v , MaxIter, Gmax , t ) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Gerar LRC (X,u,v,MaxIter) Para k = 1 ate Gmax Faa c Selecionar nc LRC s0 = Gerar solucao inicial(nc) s1 = Troca entre Pares(s0 ) Se ( k mod t) = 0 Ento a Reconexao por Caminhos (s1 , s ) Fim Se Atualizar ELITE(s1 ) s = Retornar melhor (ELITE)

11. Fim Para 12. Inverso Individual(ELITE) a 13. s = Retornar melhor (ELITE) 14. Retornar (s ) 15. Fim GBLITRC2 Figura 3.13: O pseudocdigo do GBLITRC2 o Na linha 1 , gerada a LRC atravs do procedimento Gerar LRC. O processo e e iterativo do GRASP se repete por Gmax vezes, e seleciona um elemento nc LRC, e gera uma soluao s0 com este nmero de clusters pais. Depois a soluao s0 passa pela c u c busca local Inversao Individual gerando uma nova soluao s1 . A cada t iteraes, a c co soluao s1 passa por uma outra busca local denominada Reconexo por Caminhos, c a juntamente com s , que a melhor soluao do Conjunto ELITE. Isto est indicado e c a entre as linhas 2 e 8. Nas linhas 9 e 10, o conjunto ELITE e s so atualizados. No a nal, na linha 12 , o conjunto ELITE passa pela busca local Troca Entre Pares. A 44

Melhor soluao s o retorno do algoritmo. c e O algoritmo GBLITRC2 semelhante ao anterior e as difenas esto nas linhas 5 e c a e 12, onde as buscas locais Inverso Individual e Troca entre Pares esto invertidas. a a O pseudocdigo do algoritmo GBLITRC2 mostrado na gura 3.13. o e

3.2.5

ILS

A metaheur stica ILS (Iterated Local Search) foi proposta por Loureno, Martin e c Stutze em 2002 [18]. A ILS consiste, basicamente, na aplicaao iterativa de um proc cedimento de busca local em uma soluo inicial s0 . A soluao inicial obtida atravs ca c e e de uma heur stica de construo ou de um procedimento aleatrio de construo. A ca o ca busca local tenta melhorar a soluao inicial, no primeiro momento, e posteriormente c nas soluoes perturbadas, com o objetivo de produzir soluoes timas ou prximas c c o o a elas. O desempenho da Metaheur stica ILS usualmente est condicionado a escolha a dos 3 procedimentos bsicos: busca local , pertubao e critrio de aceitao. Estes a ca e ca procediemntos esto intimamente ligados ao problema a ser resolvido. a Algumas consideraoes so necessrias para desecrever o ILS. Seja P o problema c a a a ser resolvido e f a funo associada ao problema. Seja S o conjunto de todas as ca soluoes viveis de P e seja S S o conjunto de todos os timos locais de P. O c a o objetivo do ILS trabalhar com S e no com S, para obter solues de melhor e a co qualidade, pois trabalha num conjunto mais restrito. O objetivo explorar S , considerando uma trajetria que possibilite a passagem e o de uma soluao atual s S para uma nova soluo s S , independente desta c ca soluao estar prxima ou no da atual. Para isto feito uma pertubaao em s , o c o a e c que conduz a uma soluao intermediria s1 S. Ento aplicado uma busca local c a a e a s1 e encontra-se uma nova soluao s S . Se esta soluao for aceita no teste c c de aceitaao, ento passa a ser o novo elemento da trajetria, ou seja, s = s . Se c a o s no for aceito no teste de aceitao, feito uma nova perturbao e o processo a ca e ca coninua at um nmero MaxIter de iteraoes. e u c O pseudocdigo do algoritmo mostrado na gura 3.14. Na linha 1 gerado uma o e e soluao inicial s0 . Na linha 2, esta soluo passa por uma busca local e gera uma c ca nova soluao s S . Depois comea um processo iterativo do ILS, que se repete c c 45

Procedimento Iterated Local Search 1. 2. 3. 4. 5. 6. 7. 8. s0 = Gerar Soluo Inicial ca s = Busca local(s0 ) Repita s1 = Pertubao(s ) ca s = Busca local(s1 ) s = Critrio aceitao (s , S ) e ca At (sejam efetuadas MaxIter iteraes) e co Fim Procedimento Figura 3.14: O pseudocdigo do ILS o por M axIter vezes. Na linha 4 a soluo s perturbada e gera uma nova soluo ca e ca s1 S. Na linha 5, s1 passa por uma busca local e tranformada em s S . Na e linha 6 o critrio de aceitaao aplicado e o processo iterativo continua. e c e

3.2.6

Algoritmos ILS propostos

Uma vez denidos os procedimentos comuns e a metaheur stica ILS, podemos denir as implementaoes utilizadas. Foram implementados duas verses para o ILS, denoc o minadas ILS com Busca Local Inverso Individual e Troca entre Pares e Reconexo a a por caminhos 1 (IBLITRC1) e IBLITRC2. Os algoritmos possuem 4 componentes principais: o procedimento Gerar soluao inicial, as buscas locais, a perturbaao e o c c critrio de aceitaao. A diferena entre os algoritmos a ordem que as buscas locais e c c e so chamadas. a O procedimento Gerar soluao Inicial comun para as duas implementaoes. c e c Ele utiliza a Etapa de Construo (denido na seo 3.1.1) para gerar os clusters ca ca iniciais. O procedimento gera vrias solus e armazena em uma lista LRC, o nmero a ce u de clusters pais das melhores soluoes encontradas. Alm da LRC, o procedimento c e retorna a melhor soluao encontrada. c As buscas locais utilizadas so Troca entre Pares, Inverso individual e Recoa a nexo por Caminhos. a A perturbaao altera o nmero de clusters pais da soluo corrente e utiliza os c u ca dados da LRC. 46

Procedimento Gerar Soluo Inicial (X , u , v , Iter) ca 1. 3. 4. 5. 6. 7. 8. 9. 10. G = Etapa de Construo (X, u, v) ca Para i = 1 ate Iter Faa c Para k = 2 ate p-1 Faa c s0 = Gerar solucao(k , G) Atualizar LRC(s0 ) Se s0 > s Ento a s = s0 Fim Se Fim Para

11. Fim Para 12. Retornar s e LRC 13. Fim Gerar Soluo Inicial ca Figura 3.15: O pseudocdigo do procedimento Gerar soluo inicial o ca O critrio de aceitaao utilizado que a soluo gerada aceita como soluo e c e ca e ca corrente, se esta melhorar a melhor soluao encontrada at o momento. As compoc e nentes so mostrados a seguir. a O Procedimento Gerar soluo inicial ca O procedimento Gerar soluo inicial muito parecido com o procedimento consca e trutivo do GRASP, e gera, inclusive, uma lista LRC. Porm o retorno deste procee dimento a melhor soluo encontrada. e ca O procedimento mostrado na gura 3.15. Na linha 1 so gerados os clusters e a iniciais atravs da Etapa de Construao. Estes clusters so arnazenados no conjunto e c a G. Depois feito o processo iterativo que, a cada momento, gera uma soluo com e ca k clusters pais , 2 < k < p 1. Cada soluao avaliada e o nmero de clustres pais c e u das melhores so armazenadas numa lista denominada LRC. Alm disso, a melhor a e soluao ca armazenada em s . Isto est indicado entre as linhas 4 e 10. Este c a processo iterativo repetido por Iter vezes, como indica a linha 3. O retorno deste e procedimento s e a LRC. e

47

As Buscas Locais O algoritmo IBLITRC1 aplica a busca local Inverso Individual na soluao inicial a c e nas soluoes perturbadas. A cada t iteraes, o algoritmo tambm aplica a busca c co e local Reconexo por Caminhos. No nal, o algoritmo aplica a busca local Troca a entre Pares, no conjunto ELITE gerado. O algoritmo IBLITRC2 aplica a busca local Troca entre Pares na soluao inicial c e nas soluoes perturbadas. A cada t iteraes, o algoritmo tambm aplica a busca c co e local Reconexo por Caminhos. No nal, o algoritmo aplica a busca local Inverso a a individual, no conjunto ELITE gerado. A Perturbao ca O objetivo da perturbaao alterar o nmero de clusters pais da soluo corrente. c e u ca Dado uma soluo inicial, esta pode ter um nmero de clusters pais menor ou maior ca u que o ideal. Portanto pode ser necessrio aumentar ou diminuir este nmero. A a u pertubaao deve aumentar ou diminuir este valor em uma unidade, caso o nmero c u de clusters pais esteja bem prximo ao ideal, ou ainda, aumentar ou diminuir em n o unidades, para procurar soluoes afastadas da soluao inicial. c c A perturbao comea incrementando o nmero de clusters pais em uma unica c u dade. Se a soluao obtida aps a perturbaao e a busca local for melhor que a c o c anterior, o processo repetido, ou seja, o nmero de clusters pais desta soluao obe u c tida incrementado em uma unidade de novo. Caso a soluao obtida no melhore a e c a anterior, ento a perturbao aumenta o nmero de clusters pais em 2 unidades. O a ca u processo continua enquanto a soluao possuir o nmero de clusters pais dentro do c u limite superior (ls ) denido pela LRC. Depois, o nmero de clusters pais da soluo u ca decrementado at atingir o limite inferior (li ) da LRC. A perturbaao no permite e e c a que um determinado nmero de clusters pais seja utilizado mais de uma vez, para u efetuar a busca local. O procedimento Perturbar descrito abaixo: e Perturbar(s , l , li , ls , ag) Dado uma soluao qualquer s, a perturbao c ca aumenta ou diminui o nmero de clusters pais da soluao em n unidades, dependendo u c do valor do ag (ag = n ) ; O valor do ag pode ser positivo ou negativo. Se for positivo, aumenta o nmero de clusters pais em n unidades. Se for negativo, diminui u o nmero de clusters pais em n unidades. Se ag = 1, aumenta em uma unidade u 48

e se ag = -1 , diminui em uma unidade. Para isto, so escolhidos n clusters pais, a aleatoriamente, do conjunto de clusters lhos. O numero de clusters pais na soluao, c aps a perturbaao, varia entre o menor valor da LRC (li ) e o maior valor da LRC o c (ls ), ou seja , li n + l ls , onde l o nmero de clusters pais da soluao antes da e u c perturbaao. c O Critrio de Aceitao e ca O critrio de aceitao utilizado que a soluo gerada aceita como soluao core ca e ca e c rente, se esta melhorar a melhor soluo encontrada at o momento. ca e Os pseudocdigos dos Algoritmos o A perturbaao aumenta ou diminui o nmero de clusters pais dentro dos limites c u denidos pela LRC. Porm, quando a busca Reconexo de Caminhos realizada, e a e esta pode encontrar uma soluo melhor, fora dos limites da LRC. Quando isto ca ocorre, os limites so atualizados e incluem este novo valor. a Os pseudocdigo do algoritmo IBLITRC2 mostrado na gura 3.16. O algoritmo o e utiliza os seguintes parmetros de entrada: o conjunto de pontos X , os valores de a u , v e Iter utilizados no procedimento Gerar Soluao Inicial e o valor t, que c representa a periodicidade que o algoritmo executa a busca local Reconexo por a Caminhos. Na linhas 1 gerado uma soluo inicial s0 . Na linha 2, esta soluao passa pela e ca c busca local Troca entre Pares, gerando s1 . Na linha 3 vericado o nmero de e u clusters pais (l) da soluao s1 . Nas linhas 4, 5, 6 e 7 so denidos os limites para o c a nmero de clusters pais, atravs da lista LRC gerada no procedimento anterior. O u e conjunto I denido e possui todos os valores inteiros entre os valores li e ls . As e iteraoes do ILS esto descritas entre as linhas 7 e 20. Primeiro a soluao passa por c a c uma perturbaao e depois realizada a busca local Troca entre Pares. A cada t c e iteraoes realizada a busca local Reconexo por Caminhos entre a soluao corrente c e a c s3 e a melhor soluao do conjunto ELITE. Isto est descrito entre as linhas 8 e 11. c a Nas linhas 12 e 13 so atualizados os novos limites do conjunto I. Nas linhas 15, 16 a e 17 atualizada a soluao corrente. Nas linha 18 e 19 so atualizados o ag e o e c a conjunto ELITE.

49

Na linha 21 realizada a busca local Inverso Individual no conjunto ELITE e e a na linha 22, s recebe a melhor soluo do conjunto ELITE. O algoritmo retorna s . ca O psedocdigo do algoritmo IBLITRC1 mostrado na gura 3.17. A diferena o e c deste algoritmo para o anterior a ordem em que as buscas locais so chamadas e e a esto indicados nas linhas 2, 9 e 21. a Procedimento IBLITRC2 (X, u, v, Iter, t) 1. 2. 3. 4. 5. 6. 7. 8. 9 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. s0 = Gerar Soluo Inicial(X , u , v , Iter ) ca s1 = Troca entre Pares(s0 ) l = Retornar nmero clusters pais(s1 ) u li = Mnimo(LRC) ls = Mximo(LRC) a Denir I = [li , ls ] Enquanto (li l ls ) Faa c s2 = perturbar(s1 , l, li , ls , ag) s3 =Troca entre Pares (s2 ) Se (iterao mod t) = 0 Entao ca s3 = Reconexao por Caminhos(s3 , ELIT E) l1 = Retornar nmero clusters pais(s3 ) u Atualizar (I,l1) Fim Se Se (s3 > s1 ) Ento a s1 = s3 Fim Se Atualizar (f lag) Atualizar ELIT E(s3 )

20. Fim Enquanto 21. Inversao Individual(ELITE) 22. s = retornar melhor (ELIT E) 23. Retornar (s ) 24. Fim IBLITRC2 Figura 3.16: O pseudocdigo do IBLITRC2 o

50

3.3

Resultados Computacionais

Nesta seo so realizados alguns testes computacionais para vericar o desempenho ca a dos algoritmos propostos. Primeiramente, so comparados os algoritmos que utia lizam a mesma metaheur stica : AECBL1 e AECBL2; GBLITRC1 e GBLITRC2; IBLITRC1 e IBLITRC1. Estas comparaoes vo indicar quais as verses de cada c a o Procedimento IBLITRC1 (X, u, v, Iter, t) 1. 2. 3. 4. 5. 6. 7. 8. 9 10. 11. 12. 13. 14. 15. 16. 17. 18. 18. s0 = Gerar Soluo Inicial (X , u , v , Iter) ca s1 = Inverso Individual (s0 ) a l = Retornar nmero clusters pais(s1 ) u li = Mnimo(LRC) ls = Mximo(LRC) a Denir I = [li , ls ] Enquanto (li l ls ) Faa c s2 = perturbar(s1 , l, li , ls , ag) s3 = Inverso Individual (s2 ) a Se (iterao mod t) = 0 Entao ca s3 = Reconexao por Caminhos (s3 , ELIT E) l1 = Retornar nmero clusters pais(s3 ) u Atualizar (I,l1) Fim Se Se (s3 > s1 ) Ento a s1 = s3 ; Fim Se Atualizar (f lag) Atualizar ELIT E(s3 )

20. Fim Enquanto 21. Troca entre Pares (ELITE) 22. s = retornar melhor (ELIT E) 23. Retornar (s ) 24. Fim IBLITRC1 Figura 3.17: O pseudocdigo do IBLITRC1 o 51

metaheu stica obtem os melhores resultados. Depois, os melhores algoritmos sero comparados de vrias formas diferentes. a a Primeiro, utilizando o mesmo tempo, depois vericando o tempo de convergncia, e e nalmente, fazendo distribuiao Emp c rica de Probabilidade. Todos os algoritmos foram implementados usando a linguagem C++ com o compilador gcc verso 4.1.2 no ambiente Linux Ubuntu 7.5. Nos testes de contagem de a tempo foram utilizados computadores com processadores Intel Xeon Quad core onde cada processador tem 3.00 Ghz e com 16G de memria RAM. o Todos os algoritmos utilizam alguns parmetros comuns, pois compartilham a a Etapa de Construao. Foi utilizado o valor de u variando entre 1 e 4.5 e o valor de c v dependente do tamanho do problema. Se m <= 200 ento v = 0 e se m > 200 a ento v = 2. a

3.3.1

Comparao dos Algoritmos Evolutivos ca

Para comparar os algoritmos Evolutivos, necessrio denir os parmetros. O e a a AECBL1 e AECBL2 utilizam os mesmos parmetros para que as comparaoes entre a c eles sejam mais justas. A taxa de cruzamento dos indiv duos de cada geraao foi xada como 80% do c tamanho da populaao. O nmero de mutaoes foi xado em 10% do tamanho c u c da populaao. Portanto, as probabilidades de cruzamento Pc e mutaao Pm foram c c xados em 0.20 e 0.90. O tamanho da populao escolhido foi de 1/3 do tamanho do indiv ca duo com um valor mximo de 20 indiv a duos. O tamanho do conjunto ELITE foi xado com cinco elementos. O nmero de iteraoes do algoritmo (Gmax )foi xado como 50. O valor de u c t, que indica a periodicidade da busca local (Inverso Individual no AECBL1 e Troca a entre Pares no AECBL2) foi xado em 5 iteraoes. Esta busca realizada somente c e nos 3 melhores elementos da populao. A busca local reconexo de Caminhos ca a e executada 4 vezes, nas iteraoes 18, 28 , 38, e 48. Estes valores de entrada foram c alcanados aps a execuao de um conjunto de testes preliminares. c o c

52

AECBL1 Nome Ruspini Iris Maronna 200data Vowel Broken Ring 100p2c1 100p3c 100p3c1 100p5c1 100p7c 100p7c1 100p10c 200p2c1 200p3c1 200p4c 200p4c1 200p7c1 200p12c1 300p2c1 300p3c 300p3c1 300p4c1 300p6c1 300p13c1 400p3c 400p4c1 400p17c1 500p3c 500p4c1 500p6c1 600p3c1 600p15c 700p4c 700p15c1 800p4c1 Melhor 0.7376 0.6862 0.5745 0.8231 0.4246 0.4995 0.7427 0.7858 0.5802 0.6972 0.8338 0.4911 0.8336 0.7642 0.6805 0.7725 0.7449 0.5759 0.5770 0.7764 0.7663 0.6768 0.6065 0.6636 0.5644 0.7985 0.5989 0.5138 0.8249 0.6595 0.6287 0.7209 0.7812 0.7969 0.6804 0.7021 I. Silhueta 0.7376 0.6862 0.5745 0.8231 0.4246 0.4995 0.7427 0.7858 0.5802 0.6958 0.8338 0.4911 0.8336 0.7642 0.6797 0.7725 0.7449 0.5759 0.5753 0.7764 0.7663 0.6768 0.5910 0.6636 0.5644 0.7985 0.5989 0.5138 0.8249 0.6595 0.6287 0.7209 0.7812 0.7969 0.6804 0.7021 t(s) 0.9 2.7 2.8 4.3 15.4 39.6 1.8 2.2 2.4 1.6 1.8 1.9 1.8 2.3 3.1 3.1 3.2 2.7 2.8 5.1 7.2 6.4 5.7 5.4 5.3 9.1 6.2 10.6 9.5 8.1 8.5 18.3 32.7 31.5 23.4 38.6 NC 4 3 4 3 27 5 2 3 3 7 7 7 10 2 3 4 4 13 13 2 3 3 2 8 13 3 4 2 3 5 6 3 15 4 15 4 % 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.20 0.00 0.00 0.00 0.00 -0.12 0.00 0.00 0.00 -0.29 0.00 0.00 0.00 -2.56 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 I. Silhueta 0.7376 0.6862 0.5745 0.8231 0.4174 0.4995 0.7427 0.7858 0.5802 0.6972 0.8338 0.4911 0.8336 0.7642 0.6805 0.7725 0.7449 0.5741 0.5770 0.7758 0.7663 0.6768 0.6065 0.6572 0.5615 0.7985 0.5989 0.5138 0.8249 0.6595 0.6287 0.7187 0.7812 0.7969 0.6804 0.7021

AECBL2 t(s) 5.4 5.9 4.9 5.2 42.3 267.3 9.2 9.9 8.2 5.7 10.7 4.5 12.3 11.2 7.1 11.1 4.9 14.4 16.7 20.6 33.4 34.5 16.1 14.4 10.7 36.1 43.3 45.6 65.4 40.3 44.8 112.2 99.7 130.7 135.7 326.8 NC 4 3 4 3 2 5 2 3 3 8 7 7 10 2 3 4 4 14 13 2 3 3 2 8 13 3 4 2 3 3 6 3 15 4 15 4 % 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.31 0.00 -0.08 0.00 0.00 0.00 -0.96 -0.51 0.00 0.00 0.00 0.00 0.00 0.00 -0.31 0.00 0.00 0.00 0.00

53

Nome 800p10c1 800p18c1 800p23c 900p5c 900p12c 1000p5c1 1000p6c 1000p14c 1000p27c1 1100p6c1 1300p17c 1500p6c 1500p6c1 1500p20c 1800p22c 2000p9c1 2000p11c

Melhor 0.4681 0.6914 0.7873 0.7160 0.8408 0.6391 0.7356 0.8306 0.5196 0.6717 0.8229 0.6941 0.6436 0.8232 0.8036 0.6230 0.7129

I. Silhueta 0.4681 0.6914 0.7873 0.7160 0.8408 0.6391 0.7356 0.8306 0.5186 0.6717 0.8229 0.6941 0.6436 0.8232 0.8036 0.6230 0.7129

t(s) 34.7 24.9 55.4 71.2 70.8 71.5 76.7 84.7 112.3 91.5 121.3 214.7 205.6 243.5 305.1 344.2 354.7

NC 2 19 23 5 12 5 6 14 25 6 17 6 6 20 22 9 11

% 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.19 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.06

I. Silhueta 0.4642 0.6894 0.7873 0.7160 0.8408 0.6391 0.7356 0.8306 0.5196 0.6717 0.8229 0.6941 0.6436 0.8232 0.8036 0.6229 0.7129

t(s) 234.6 120.6 248.8 768.9 645.8 657.4 879.7 567.7 896.5 765.4 879.7 1987.5 1876.8 2298.9 2768.8 2213.7 2342.6

NC 10 19 23 5 12 5 6 14 29 6 17 6 6 20 22 9 11

% -0.83 -0.29 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.02 0.00 -0.06

Mdia Percentual e

Tabela 3.1: Comparao entre os algoritmos AECBL1 e AECBL2 ca

Os algoritmos Evolutivos foram executados 5 vezes para cada instncia. Os rea sultados esto na tabela 3.1. Nessa tabela a coluna Nome contm os nomes dos a e instncias. A coluna Melhor contm a maior mdia da funo a e e ca Indice Silhueta encontrado pelos dois algoritmos. A coluna I. Silhueta contm a mdia dos valores e e da funao c Indice Silhueta que cada algorimo encontrou. A coluna t(s) contm a e mdia dos tempos de execuao de cada algoritmo e a coluna NC contm o nmero e c e u de clusters que a melhor soluao de cada algoritmo encontrou. A coluna % contm c e a diferena percentual que a mdia das solues encontradas est da melhor mdia c e co a e encontrado pelos dois algoritmos. Se o valor negativo, por que a mdia das e e e soluoes encontradas est pior que a melhor mdia e, se o valor nulo, signica que c a e e a mdia encontrada igual a melhor mdia. Os melhores resultados esto realados e e e a c em negrito. Neste contexto, observando os resultados da tabela 3.1, vericamos que os algoritmos obtem resultados semelhantes. Isto devido ao bom funcionamento e 54

das Buscas Locais Inverso Individual e Troca entre Pares. Porm, a busca Troca a e entre Pares muito demorada, o que acarreta um tempo de execuo muito alto e ca para o algoritmo AECBL2. O AECBL1, utilizando a busca local Inverso India vidual consegue, praticamente, os mesmos resultados com um tempo de execuo ca muito menor. Portanto, o algoritmo escolhido para futuras anlises foi o AECBL1. a

3.3.2

Comparao dos Algoritmos GRASP ca

Para comparar os algoritmos que utilizam a metaheur stica GRASP, necessrio e a denir os parmetros. O GBLITRC1 e GBLITRC2 utilizam os mesmos parmetros. a a

GBLITRC1 Nome Ruspini Iris Maronna 200data Vowel Broken Ring 100p2c1 100p3c 100p3c1 100p5c1 100p7c 100p7c1 100p10c 200p2c1 200p3c1 200p4c 200p4c1 200p7c1 200p12c1 300p2c1 300p3c 300p3c1 300p4c1 300p6c1 Melhor 0.7376 0.6862 0.5745 0.8231 0.4183 0.4995 0.7427 0.7858 0.5802 0.6958 0.8338 0.4868 0.8336 0.7642 0.6797 0.7725 0.7449 0.5701 0.5705 0.7764 0.7663 0.6768 0.5910 0.6607 I. Silhueta 0.7376 0.6862 0.5745 0.8231 0.4183 0.4995 0.7427 0.7858 0.5802 0.6958 0.8338 0.4868 0.8336 0.7642 0.6797 0.7725 0.7449 0.5701 0.5695 0.7764 0.7663 0.6768 0.5910 0.6607 t(s) 0.8 1.9 2.2 2.8 11.4 25.2 1.2 1.8 1.3 1.4 1.3 1.2 1.4 2.1 2.5 2.4 2.4 2.3 2.3 4.1 4.2 4.2 4.3 4.3 NC 4 3 4 3 3 5 2 3 3 8 7 27 10 2 3 4 4 8 13 2 3 3 2 8 % 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.18 0.00 0.00 0.00 0.00 0.00 I. Silhueta 0.7376 0.6862 0.5745 0.8231 0.4174 0.4876 0.7427 0.7858 0.5802 0.6958 0.8338 0.4738 0.8336 0.7642 0.6797 0.7725 0.7449 0.5684 0.5705 0.7764 0.7663 0.6768 0.5910 0.6534

GBLITRC2 t(s) 2.4 3.2 4.6 5.6 9.1 87.4 2.4 2.6 2.8 5.1 5.9 2.5 8.5 7.6 12.5 11.5 13.5 10.2 12.2 8.9 9.4 12.5 8.4 27.5 NC 4 3 4 3 3 5 2 3 3 8 7 2 10 2 3 4 4 8 8 2 3 3 2 9 % 0.00 0.00 0.00 0.00 -0.22 -2.38 0.00 0.00 0.00 0.00 0.00 -2.67 0.00 0.00 0.00 0.00 0.00 -0.30 0.00 0.00 0.00 0.00 0.00 -1.10

55

Nome 300p13c1 400p3c 400p4c1 400p17c1 500p3c 500p4c1 500p6c1 600p3c1 600p15c 700p4c 700p15c1 800p4c1 800p10c1 800p18c1 800p23c 900p5c 900p12c 1000p5c1 1000p6c 1000p14c 1000p27c1 1100p6c1 1300p17c 1500p6c 1500p6c1 1500p20c 1800p22c 2000p9c1 2000p11c

Melhor 0.5450 0.7985 0.6018 0.5138 0.8249 0.6597 0.6287 0.7209 0.7812 0.7969 0.6804 0.7033 0.4681 0.6914 0.7873 0.7160 0.8408 0.6390 0.7356 0.8306 0.5188 0.6704 0.8229 0.6941 0.6436 0.7914 0.8036 0.6230 0.7129

I. Silhueta 0.5450 0.7985 0.6018 0.5138 0.8249 0.6597 0.6287 0.7209 0.7812 0.7969 0.6804 0.7033 0.4681 0.6914 0.7873 0.7160 0.8408 0.6390 0.7356 0.8306 0.5161 0.6704 0.8229 0.6941 0.6436 0.7914 0.8036 0.6230 0.7129

t(s) 4.2 5.6 4.3 6.2 6.8 6.7 6.6 9.3 15.2 36.4 21.8 26.8 28.7 19.2 27.7 33.2 47.9 55.4 47.4 63.2 74.1 71.3 89.5 124.4 123.6 146.3 218.8 204.8 217.3

NC 2 3 4 2 3 3 6 3 15 4 15 4 2 19 23 5 12 5 6 14 24 6 17 6 6 22 22 9 11

% 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.52 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.01

I. Silhueta 0.5450 0.7985 0.6015 0.5138 0.8249 0.6597 0.6281 0.7209 0.7812 0.7969 0.6777 0.7033 0.4681 0.6904 0.7549 0.7160 0.8408 0.6390 0.7356 0.7989 0.5188 0.6704 0.8179 0.6941 0.6436 0.7884 0.8036 0.6229 0.7043

t(s) 10.6 12.5 18.2 18.5 17.2 15.8 27.2 17.2 91.6 62.7 125.4 78.5 36.7 142.2 192.5 94.3 104.7 148.5 179.2 406.6 473.2 227.8 702.4 320.2 334.2 1148.4 1309.6 982.4 1577.5

NC 2 3 4 2 3 3 6 3 15 4 17 4 2 19 27 5 12 5 6 14 26 6 17 6 6 20 22 9 11

% 0.00 0.00 -0.05 0.00 0.00 0.00 -0.10 0.00 0.00 0.00 -0.40 0.00 0.00 -0.14 -4.12 0.00 0.00 0.00 0.00 -3.82 0.00 0.00 -0.61 0.00 0.00 -0.38 0.00 0.00 -1.21 -0.33

Mdia Percentual e

Tabela 3.2: Comparao entre os algoritmos GBLITRC1 e GBLIca TRC2

O tamanho da LRC de 7 elementos. O nmero de iteraes Gmax realizadas e u co de 35. O valor de MaxIter igual a 5. A busca local reconexo por Caminhos e e a e 56

executada 4 vezes, nas iteraes 15 , 20 , 25 e 30. O tamanho do conjunto ELITE co foi xado com cinco elementos. De modo similar ao ocorrido nos AEs, a escolha destes parmetros foi baseada em testes preliminares. a Os algoritmos GRASP foram executados 5 vezes para cada instncia. Os rea sultados esto na tabela 3.2. Nessa tabela a coluna Nome contm os nomes dos a e instncias. A coluna Melhor contm a maior mdia da funo a e e ca Indice Silhueta encontrado pelos dois algoritmos. A coluna I. Silhueta contm a mdia dos valores e e da funao c Indice Silhueta que cada algorimo encontrou. A coluna t(s) contm a e mdia dos tempos de execuao de cada algoritmo e a coluna NC contm o nmero e c e u de clusters que a melhor soluao de cada algoritmo encontrou. A coluna % contm c e a diferena percentual que a mdia das solues encontradas est da melhor mdia c e co a e encontrado pelos dois algoritmos. Se o valor negativo, por que a mdia das e e e soluoes encontradas est pior que a melhor mdia e, se o valor nulo, signica que c a e e a mdia encontrada igual a melhor mdia. Os melhores resultados esto realados e e e a c em negrito. As solues obtidas pelos dois algoritmos dependem dos valores da LRC. E neco cessario que a busca local procure soluoes com nmeros de clusters pais prximos c u o (mas no necessariamente iguais) a estes valores. Isto acontece com a busca local a Inverso individual, utilizada pelo GBLITRC1. Alm disso, esta busca rpida e a e e a com isso, o tempo de execuo total do algoritmo pequeno. A busca local Troca ca e entre Pares (utilizada pelo GBLITRC2 ) s procura soluoes com o nmero de cluso c u ters pais identicos aos valores da LRC. Quando a LRC no encontra o nmero ideal a u de clusters , o algoritmo GBLITRC2 no funciona bem. Alm disso, como a busca a e local Troca entre Pares muito demorada, o tempo total do algoritmo muito e e alto. O algoritmo GBLITRC1 obtem os melhores resultados com o menor tempo de execuao e portanto, foi escolhido para anlises futuras. c a

3.3.3

Comparao dos Algoritmos ILS ca

Para comparar os algoritmos que utilizam a metaheur stica ILS, necessrio denir e a os parmetros. O IBLITRC1 e IBLITRC2 utilizam os mesmos parmetros. a a O tamanho da LRC de 7 elementos. O nmero de iteraoes realizadas dee u c e pendente dos valores da LRC e varia entre o menor e o maior valor encontrados. 57

O valor de Iter igual a 10. A busca local reconexo por Caminhos executada e a e 4 vezes, nas iteraes que correspondem a 50%, 65% , 75% e 85% do nmero total co u de iteraoes. O tamanho do conjunto ELITE foi xado com cinco elementos. De c modo similar aos ocorridos nos AEs e GRASPs, os valores dos parmetros foram a alcanados aps a execuao de testes preliminares. c o c

IBLITRC2 Nome Ruspini Iris Maronna 200data Vowel Broken Ring 100p2c1 100p3c 100p3c1 100p5c1 100p7c 100p7c1 100p10c 200p2c1 200p3c1 200p4c 200p4c1 200p7c1 200p12c1 300p2c1 300p3c 300p3c1 300p4c1 300p6c1 300p13c1 400p3c 400p4c1 400p17c1 500p3c Melhor 0.7376 0.6862 0.5745 0.8231 0.4341 0.4994 0.7427 0.7858 0.5802 0.6958 0.8338 0.4835 0.8336 0.7642 0.6797 0.7725 0.7449 0.5394 0.5693 0.7764 0.7663 0.6768 0.5910 0.6636 0.5441 0.7985 0.5989 0.5138 0.8249 I. Silhueta 0.7376 0.6862 0.5745 0.8231 0.4341 0.4994 0.7427 0.7858 0.5802 0.6958 0.8338 0.4835 0.8336 0.7642 0.6797 0.7725 0.7449 0.5394 0.5693 0.7764 0.7663 0.6768 0.5910 0.6636 0.5441 0.7985 0.5989 0.5138 0.8249 t(s) 0.8 3.4 1.7 1.9 87.3 17.5 9.5 0.9 9.4 1.1 23.2 1.1 20.3 1.8 1.7 1.7 1.9 1.5 1.9 4.2 1.9 2.7 2.6 3.1 2.8 5.2 2.7 8.5 2.3 NC 4 3 2 3 23 5 2 3 3 8 7 7 10 2 3 4 4 2 8 2 3 3 2 8 2 3 4 2 3 % 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

IBLITRC1 I. Silhueta 0.7376 0.6862 0.5745 0.8231 0.4183 0.4957 0.7427 0.7858 0.5802 0.6958 0.8338 0.4835 0.8336 0.7642 0.6805 0.7725 0.7449 0.5394 0.5693 0.7758 0.7663 0.6768 0.5910 0.6636 0.5441 0.7985 0.5989 0.5138 0.8249 t(s) 0.7 2.2 1.2 1.3 23.2 14.8 8.2 0.8 7.1 0.9 17.8 0.9 18.8 1.5 1.1 1.2 1.1 1.1 1.6 3.3 1.2 2.1 1.9 2.9 2.1 4.1 2.1 7.9 2.1 NC 4 3 2 3 3 5 2 3 3 8 7 7 10 2 3 4 4 2 8 2 3 3 2 8 2 3 4 2 3 % 0.00 0.00 0.00 0.00 -3.64 -0.74 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.08 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

58

Nome 500p4c1 500p6c1 600p3c1 600p15c 700p4c 700p15c1 800p4c1 800p10c1 800p18c1 800p23c 900p5c 900p12c 1000p5c1 1000p6c 1000p14c 1000p27c1 1100p6c1 1300p17c 1500p6c 1500p6c1 1500p20c 1800p22c 2000p9c1 2000p11c

Melhor 0.6597 0.6287 0.7209 0.7812 0.7969 0.6804 0.6643 0.4681 0.6914 0.7873 0.7160 0.8408 0.6391 0.7356 0.8306 0.4769 0.6717 0.8229 0.6941 0.6436 0.8232 0.8036 0.6230 0.7129

I. Silhueta 0.6597 0.6287 0.7209 0.7812 0.7969 0.6799 0.6643 0.4681 0.6914 0.7873 0.7160 0.8408 0.6391 0.7356 0.8306 0.4769 0.6717 0.8229 0.6941 0.6436 0.8232 0.8036 0.6230 0.7129

t(s) 2.6 4.2 4.8 37.4 9.7 15.1 9.2 10.2 35.9 44.9 36.4 51.2 31.3 28.3 166.5 43.6 50.7 120.7 67.4 70.8 311.2 969.3 325.6 438.4

NC 3 6 3 15 4 15 4 2 19 23 5 12 5 6 14 2 6 17 6 6 20 22 9 11

% 0.00 0.00 0.00 0.00 0.00 -0.07 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

I. Silhueta 0.6597 0.6287 0.7209 0.7812 0.7969 0.6804 0.6643 0.4681 0.6837 0.7873 0.7160 0.8408 0.6391 0.7356 0.8306 0.4769 0.6717 0.8229 0.6774 0.6436 0.8232 0.8036 0.6230 0.7129

t(s) 2.1 3.3 4.2 33.2 8.2 10.9 7.2 9.1 23.5 31.9 31.2 45.2 17.2 22.3 88.7 40.3 40.4 72.6 55.6 60.3 270.6 876.8 284.3 387.3

NC 3 6 3 15 4 15 4 2 23 23 5 12 5 6 14 2 6 17 5 6 20 22 9 11

% 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -1.11 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -2.41 0.00 0.00 0.00 0.00 0.00 -0.15

Mdia Percentual e

Tabela 3.3: Comparao entre os algoritmos IBLITRC2 e IBLIca TRC1

Os algoritmos ILS foram executados 5 vezes para cada instncia. Os resultados a esto na tabela 3.3. Nessa tabela a coluna Nome contm os nomes dos instncias. a e a A coluna Melhor contm a maior mdia da funo e e ca Indice Silhueta encontrado pelos dois algoritmos. A coluna I. Silhueta contm a mdia dos valores da funao e e c Indice Silhueta que cada algorimo encontrou. A coluna t(s) contm a mdia dos tempos de e e execuao de cada algoritmo e a coluna NC contm o nmero de clusters que a melhor c e u 59

soluao de cada algoritmo encontrou. A coluna % contm a diferena percentual c e c que a mdia das solues encontradas est da melhor mdia encontrado pelos dois e co a e algoritmos. Se o valor negativo, por que a mdia das soluoes encontradas est e e e c a pior que a melhor mdia e, se o valor nulo, signica que a mdia encontrada e e e e igual a melhor mdia. Os melhores resultados esto realados em negrito. e a c No ILS, para cada soluo perturbada necessrio uma busca local intensiva ca e a para alcanar o otimo local. c A busca local intensiva a Troca entre Pares, e est no algoritmo IBLITRC2. e a Este algoritmo consegue os melhores resultados, porm, como esta busca mais e e demorada, o algoritmo tem um tempo de execuao maior que o IBLITRC1. c O IBLITRC1 utiliza a busca local Inverso Individual, que procura solues a co prximas a soluo perturbada, porm no uma busca intensiva e nem sempre o ca e a e encontra o otimo local. Portanto, o algoritmo escolhido para anlises futuras foi o a IBLITRC2.

3.3.4

Comparao dos Melhores Algoritmos ca

Uma vez que os algoritmos que utilizam a mesma metaheur stica foram comparados, nesta seo sero comparados as melhores verses de cada metaheur ca a o stica, a saber: AECBL1, GBLITRC1 e IBLITRC2. Os algoritmos utilizam os parmetros denidos nas comparaoes anteriores. a c

AECBL1 Nome Ruspini Iris Maronna 200data Vowel Broken Ring 100p2c1 100p3c 100p3c1 100p5c1 100p7c Melhor 0.7376 0.6862 0.5745 0.8231 0.4341 0.4995 0.7427 0.7858 0.5802 0.6958 0.8338 % 0.00 0.00 0.00 0.00 -2.19 0.00 0.00 0.00 0.00 0.00 0.00 t(s) 0.9 2.7 2.8 4.3 15.4 39.6 1.8 2.2 2.4 1.6 1.8 NC 4 3 4 3 27 5 2 3 3 7 7 %

GBLITRC1 t(s) 0.8 1.9 2.2 2.8 11.4 25.2 1.2 1.8 1.3 1.4 1.3 NC 4 3 4 3 3 5 2 3 3 7 7 %

IBLITRC2 t(s) 0.8 3.4 1.7 1.9 87.3 17.5 9.5 0.9 9.4 1.1 23.2 NC 4 3 4 3 23 5 2 3 3 7 7

0.00 0.00 0.00 0.00 -3.64 0.00 0.00 0.00 0.00 0.00 0.00

0.00 0.00 0.00 0.00 0.00 -0.02 0.00 0.00 0.00 0.00 0.00

60

Nome 100p7c1 100p10c 200p2c1 200p3c1 200p4c 200p4c1 200p7c1 200p12c1 300p2c1 300p3c 300p3c1 300p4c1 300p6c1 300p13c1 400p3c 400p4c1 400p17c1 500p3c 500p4c1 500p6c1 600p3c1 600p15c 700p4c 700p15c1 800p4c1 800p10c1 800p18c1 800p23c 900p5c 900p12c 1000p5c1 1000p6c 1000p14c 1000p27c1 1100p6c1 1300p17c 1500p6c

Melhor 0.4911 0.8336 0.7642 0.6797 0.7725 0.7449 0.5759 0.5753 0.7764 0.7663 0.6768 0.5910 0.6636 0.5644 0.7985 0.6018 0.5138 0.8249 0.6597 0.6287 0.7209 0.7812 0.7969 0.6804 0.7033 0.4681 0.6914 0.7873 0.7160 0.8408 0.6391 0.7356 0.8306 0.5186 0.6717 0.8229 0.6941

% 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.48 0.00 0.00 -0.03 0.00 0.00 0.00 0.00 0.00 -0.17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

t(s) 1.9 1.8 2.3 3.1 3.1 3.2 2.7 2.8 5.1 7.2 6.4 5.7 5.4 5.3 9.1 6.2 10.6 9.5 8.1 8.5 18.3 32.7 31.5 23.4 38.6 34.7 24.9 55.4 71.2 70.8 71.5 76.7 84.7 112.3 91.5 121.3 214.7

NC 7 10 2 3 4 4 13 13 2 3 3 2 8 13 3 4 2 3 5 6 3 15 4 15 4 2 19 23 5 12 5 6 14 25 6 17 6

% -0.88 0.00 0.00 0.00 0.00 0.00 -1.01 -1.01 0.00 0.00 0.00 0.00 -0.44 -3.44 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.02 0.00 0.00 -0.48 -0.19 0.00 0.00

t(s) 1.2 1.4 2.1 2.5 2.4 2.4 2.3 2.3 4.1 4.2 4.2 4.3 4.3 4.2 5.6 4.3 6.2 6.8 6.7 6.6 9.3 15.2 36.4 21.8 26.8 28.7 19.2 27.7 33.2 47.9 55.4 47.4 63.2 74.1 71.3 89.5 124.4

NC 27 10 2 3 4 4 8 8 2 3 3 2 8 2 3 4 17 3 5 6 3 15 4 15 4 2 19 23 5 12 5 6 14 24 6 17 6

% -1.55 0.00 0.00 0.00 0.00 0.00 -6.34 -1.04 0.00 0.00 0.00 0.00 0.00 -3.60 0.00 -0.48 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.07 -5.55 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -8.04 0.00 0.00 0.00

t(s) 1.1 20.3 1.8 1.7 1.7 1.9 1.5 1.9 4.2 1.9 2.7 2.6 3.1 2.8 5.2 2.7 8.5 2.3 2.6 4.2 4.8 37.4 9.7 15.1 8.2 10.2 35.9 44.9 36.4 51.2 31.3 28.3 166.5 43.6 50.7 120.7 67.4

NC 7 10 2 3 4 4 2 8 2 3 3 2 8 2 3 4 2 3 5 6 3 15 4 15 4 2 19 23 5 12 5 6 14 2 6 17 6

61

Nome 1500p6c1 1500p20c 1800p22c 2000p9c1 2000p11c

Melhor 0.6436 0.8232 0.8036 0.6230 0.7129

% 0.00 0.00 0.00 0.00 0.00 -0.05

t(s) 205.6 243.5 305.1 344.2 354.7

NC 6 20 22 9 11

% 0.00 -3.86 0.00 0.00 0.00 -0.28

t(s) 123.6 146.3 218.8 204.8 217.3

NC 6 22 22 9 11

% 0.00 0.00 0.00 0.00 0.00 -0.50

t(s) 70.8 311.2 969.3 325.6 438.4

NC 6 20 22 9 11

Mdia Percentual e

Tabela 3.4: Comparao entre os algoritmos AECBL1, GBLITRC1 ca e IBLITRC2

Os melhores algoritmos foram executados 5 vezes para cada instncia. Os rea sultados esto na tabela 3.4. Nessa tabela a coluna Nome contm os nomes dos a e instncias. A coluna Melhor contm a maior mdia da funo a e e ca Indice Silhueta encontrado pelos trs algoritmos. A coluna % contm a diferena percentual que a e e c mdia das soluoes encontradas est da melhor mdia encontrado pelos trs algorite c a e e mos. Se o valor negativo, por que a mdia das soluoes encontradas est pior e e e c a que a melhor mdia e, se o valor nulo, signica que a mdia encontrada igual e e e e a melhor mdia. Os melhores resultados esto realados em negrito. A coluna t(s) e a c contm a mdia dos tempos de execuao de cada algoritmo e a coluna NC contm e e c e o nmero de clusters que a melhor soluo de cada algoritmo encontrou. u ca Os algoritmos AECBL1, GBLITRC1 e IBLITRC2 obtiveram valores da funo ca Indice Silhueta muito prximos, indicando que o desempenho dos algoritmos, na o mdia, muito semelhante. e e O algoritmo AECBL1 obteve os melhores resultados, seguido pelo GBLITRC1. O resultado devido, possivelmente pelo fato, do AECBL1 trabalhar com um cone junto de soluoes que se combinam e formam novas soluoes. Alm disso a busca loc c e cal Inverso Individual auxilia a convergncia do algoritmo, buscando novas soluoes a e c prximas as pertencentes a populaao. Com isso, o espao de busca intensamente o c c e vasculhado. O algoritmo auxiliado pelas buscas Reconexo por caminhos e no e a nal pela Troca entre Pares que intensicam ainda mais a procura de novas soluoes. c O GBLITRC1 sempre trabalha com apenas uma soluao inicial a cada iteraao, e c c portanto, tem mais diculdade de vasculhar o espao de busca. O IBLITRC2 trac 62

balha com uma busca local para cada nmero de clusters pais. Se a busca local no u a encontrar o timo local, os resultados podem no ser muito bons. o a Em relaao ao tempo de processamento, o AECBL1 utiliza um tempo maior c que os outros algoritmos. Porm, como mostra a tabela 3.5, mesmo xando como o e mtodo de parada dos algoritmos o maior tempo de execuao de todas as algoritmos, e c acrescidos de 20% deste valor, o AECBL1 continua obtendo as melhores solues. co

AECBL1 Nome Ruspini Iris Maronna 200data Vowel Broken Ring 100p2c1 100p3c 100p3c1 100p5c1 100p7c 100p7c1 100p10c 200p2c1 200p3c1 200p4c 200p4c1 200p7c1 200p12c1 300p2c1 300p3c 300p3c1 300p4c1 300p6c1 300p13c1 400p3c 400p4c1 400p17c1 Melhor 0.7376 0.6862 0.5745 0.8231 0.4341 0.4995 0.7427 0.7858 0.5802 0.6958 0.8338 0.4911 0.8336 0.7642 0.6797 0.7725 0.7449 0.5759 0.5753 0.7764 0.7663 0.6768 0.5910 0.6636 0.5644 0.7985 0.6018 0.5138 % 0.00 0.00 0.00 0.00 -2.12 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.48 0.00 NC 4 3 4 3 27 5 2 3 3 7 7 7 10 2 3 4 4 13 13 2 3 3 2 8 13 3 4 2

GBLITRC1 % 0.00 0.00 0.00 0.00 -3.64 0.00 0.00 0.00 0.00 0.00 0.00 -0.88 0.00 0.00 0.00 0.00 0.00 -1.01 -1.01 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 NC 4 3 4 3 3 5 2 3 3 7 7 27 10 2 3 4 4 8 8 2 3 3 2 8 2 3 4 2

IBLITRC2 % 0.00 0.00 0.00 0.00 0.00 -0.02 0.00 0.00 0.00 0.00 0.00 -1.55 0.00 0.00 0.00 0.00 0.00 -6.34 -1.04 0.00 0.00 0.00 0.00 0.00 -3.60 0.00 -0.48 0.00 NC 4 3 4 3 23 5 2 3 3 7 7 7 10 2 3 4 4 2 8 2 3 3 2 8 2 3 4 2

63

Nome 500p3c 500p4c1 500p6c1 600p3c1 600p15c 700p4c 700p15c1 800p4c1 800p10c1 800p18c1 800p23c 900p5c 900p12c 1000p5c1 1000p6c 1000p14c 1000p27c1 1100p6c1 1300p17c 1500p6c 1500p6c1 1500p20c 1800p22c 2000p9c1 2000p11c

Melhor 0.8249 0.6597 0.6289 0.7209 0.7812 0.7969 0.6804 0.7033 0.4681 0.6914 0.7873 0.7160 0.8408 0.6391 0.7356 0.8306 0.5186 0.6717 0.8229 0.6941 0.6436 0.8232 0.8036 0.6230 0.7129

% 0.00 -0.03 0.00 0.00 0.00 0.00 0.00 -0.17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.05

NC 3 5 6 3 15 4 15 4 2 19 23 5 12 5 6 14 25 6 17 6 6 20 22 9 11

% 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.48 0.00 0.00 0.00 0.00 -3.86 0.00 0.00 0.00 -0.21

NC 3 5 6 3 15 4 15 4 2 19 23 5 12 5 6 14 24 6 17 6 6 22 22 9 11

% 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -8.04 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -0.40

NC 3 5 6 3 15 4 15 4 2 19 23 5 12 5 6 14 2 6 17 6 6 20 22 9 11

Mdia Percentual e

Tabela 3.5: Comparao entre os algoritmos AECBL1, GBLITRC1 ca e IBLITRC2 com o mesmo tempo

A prxima comparaao determina a mdia dos tempos que os algoritmos utio c e lizam para alcanar um determinado valor da funao c c Indice Silhueta, denominado de ALVO. O ALVO utilizado a menor mdia da funao e e c Indice Silhueta que os algoritmos encontram. Isto mostrado na tabela 3.6. e Todos os algoritmos possuem um procedimento para gerar a soluao inicial ou c 64

as solues iniciais. O procedimento do AECBL1 mais rpido, pois o algoritmo co e a no precisa de alguma estimativa do nmero ideal de clusters. O GBLITRC1 e a u IBLITRC2 precisam estimar o nmero ideal de clusters ou valores prximos a este. u o Por isso, utilizam a LRC, que precisa de mais tempo para ser gerada. O IBLITRC2 possui um procedimento inicial mais demorado que o GBLITRC1. Portanto, quando o ALVO encontrado no procedimento que gera a soluao e c inicial, o AECBL1 mais rpido, seguido pelo GBLITRC1. Porm, considerando a e a e mdia dos tempos de todos os problemas para encontrar o ALVO, o GBLITRC1 e e mais rpido, seguido pelo IBLITRC2. a

AECBL1 Nome Ruspini Iris Maronna 200data Vowel Broken Ring 100p2c1 100p3c 100p3c1 100p5c1 100p7c 100p7c1 100p10c 200p2c1 200p3c1 200p4c 200p4c1 200p7c1 200p12c1 300p2c1 300p3c 300p3c1 300p4c1 300p6c1 Alvo 0.7376 0.6862 0.5745 0.8231 0.4183 0.4995 0.7427 0.7858 0.5802 0.6958 0.8338 0.4835 0.8336 0.7642 0.6797 0.7725 0.7449 0.5394 0.5693 0.7764 0.7663 0.6768 0.5910 0.6607 t(s) 0.1 0.4 0.4 1.2 7.3 39.2 0.2 0.2 0.2 0.2 0.3 0.4 0.2 2.4 3.5 0.3 3.1 0.3 0.7 4.8 0.5 6.2 5.3 0.7

GBLITRC1 t(s) 0.2 0.5 0.5 0.4 9.8 24.5 0.3 0.3 0.3 0.3 0.8 0.9 0.3 0.4 1.2 0.4 0.5 0.4 1.2 0.9 0.6 3.8 3.9 4.1

IBLITRC2 t(s) 0.2 0.6 0.6 0.5 8.5 46.3 0.4 0.4 0.4 0.4 0.9 0.6 0.4 0.5 0.7 0.7 0.7 0.5 0.8 0.8 0.7 0.8 0.8 2.5

65

Nome 300p13c1 400p3c 400p4c1 400p17c1 500p3c 500p4c1 500p6c1 600p3c1 600p15c 700p4c 700p15c1 800p4c1 800p10c1 800p18c1 800p23c 900p5c 900p12c 1000p5c1 1000p6c 1000p14c 1000p27c1 1100p6c1 1300p17c 1500p6c 1500p6c1 1500p20c 1800p22c 2000p9c1 2000p11c

Alvo 0.5441 0.7985 0.5989 0.5138 0.8249 0.6595 0.6287 0.7209 0.7812 0.7969 0.6799 0.7021 0.4681 0.6914 0.7873 0.7160 0.8408 0.6390 0.7356 0.8306 0.4769 0.6717 0.8229 0.6941 0.6436 0.8232 0.8036 0.6230 0.7129

t(s) 0.3 0.4 0.3 0.4 0.4 0.7 0.8 17.6 32.1 3.2 4.7 8.3 2.8 23.6 21.5 5.4 32.3 67.2 55.2 64.7 6.1 11.3 14.2 201.4 171.3 27.3 290.4 329.2 332.1 34.02

t(s) 0.4 0.8 0.8 0.7 0.8 2.9 6.1 6.4 14.8 7.8 20.5 24.6 6.5 18.2 25.1 7.3 44.2 52.1 10.6 38.2 9.5 10.6 89.7 22.5 111.3 139.4 202.4 189.2 201.3 24.93

t(s) 0.5 2.7 0.9 0.9 0.9 2.3 2.3 2.4 36.9 6.4 14.2 7.1 5.3 6.4 35.3 11.7 17.2 15.6 18.8 150.2 12.3 25.9 73.4 54.2 60.2 71.3 728.5 224.5 103.4 33.24

Mdia dos tempos(s) e

Tabela 3.6: Comparao entre os algoritmos AECBL1, GBLITRC1 ca e IBLITRC2 com um alvo denido

Em um outro experimento procurou-se vericar a velocidade de convergncia e com uma medida m nima de qualidade. O experimento, baseado no trabalho de 66

[2], considera a distribuiao emp c rica de probabilidade de se atingir um determinado valor alvo na soluao incubente, ou seja, considera-se o tempo necessrio para c a produzir soluoes com custo maior ou igual ao valor alvo. Neste trabalho foram c avaliados os mtodos AECBL1, GBLITRC1 e IBLITRC2, sendo que os tempos de e processamento para cada uma das 100 execues de cada mtodo foram computaco e dos. Os resultados de cada mtodo foram plotados associando-se o i-simo menor e e tempo de execuao ti com a probabilidade pi = (i 1/2)/100 gerando os pontos c zi = (ti , pi ), para i = 1,...,100. Foram testados sete instncias, Ruspini, Maronna , 200p7c1, 300p3c1, 800p18c1, a 1000p27c1 e 1500p6c1 que possuem cardinalidades de 75 , 200, 200, 300, 800, 1000 e 1500 pontos respectivamente. Os valores alvos considerados nos experimentos deste trabalho foram denidos como as maiores mdias encontradas por todos os mtodos e e e 70% destes valores. Portanto, os valores so os seguintes: para Ruspini xou-se os a alvos em 0.7376 e 0.5163; para Maronna xou-se os alvos em 0.5745 e 0.4021; para 200p7c1 xou-se os alvos em 0.5759 e 0.4031; para 300p3c1 xou-se os alvos em 0.6768 e 0.4737; para 800p18c1 xou-se os alvos em 0.6914 e 0.4839; para 1000p27c1 xou-se os alvos em 0.5186 e 0.3690; e para 1500p6c1 xou-se os alvos em 0.6436 e 0.4505. Os resultados desse experimento so mostrados, respectivamente, nas guras a 3.18, 3.19, 3.20, 3.21, 3.22, 3.23, e 3.24. Os resultados deste experimento conrmam os resultados na comparaao antec rior. Todos os algoritmos possuem um procedimento para gerar a soluao inicial ou c as solues iniciais. O procedimento do AECBL1 mais rpido, pois o algoritmo co e a no precisa de estimativa do nmero ideal de clusters. O GBLITRC1 e IBLITRC2 a u precisam estimar o nmero ideal de clusters ou valores prximos a este. Por isso, u o utilizam a LRC, que precisa de mais tempo para ser gerada. O IBLITRC2 gera somente uma soluo e por isso, o tempo inicial de processamento maior que o ca e GBLITRC1, que gera uma soluo a cada iteraao. Portanto, quando o ALVO enca c e contrado no procedimento da geraao da soluao inicial, o AECBL1 mais rpido, c c e a seguido pelo GBLITRC1. Porm, quando o ALVO no encontrado no procedie a e mento inicial, o IBLITRC2 e GBLITRC1 se alternam na tendncia de encontrar o e alvo mais rapidamente. Normalmente, em problemas de menor cardinalidade, o AECBL1 mais rpido, e a

67

pois encontra o alvo no procedimento para gerar a soluo inicial, seguidos pelos ca GBLITRC1 e IBLITRC2, como mostram as guras 3.18, 3.19. Nos problemas de

Figura 3.18: Distribuicao Emp rica do problema ruspini com Alvo 0.5163 e alvo 0.7376

68

Figura 3.19: Distribuicao Emp rica do problema Maronna com Alvo 0.4021 e alvo 0.5745

69

Figura 3.20: Distribuicao Emp rica do problema 200p7c1 com Alvo 0.4031 e alvo 0.5759

70

Figura 3.21: Distribuicao Emp rica do problema 300p3c1 com Alvo 0.4737 e alvo 0.6768

71

Figura 3.22: Distribuicao Emp rica do problema 800p18c1 com Alvo 0.4839 e alvo 0.6914

72

Figura 3.23: Distribuicao Emp rica do problema 1000p27c1 com Alvo 0.3690 e alvo 0.5186

73

Figura 3.24: Distribuicao Emp rica do problema 1500p6c1 com Alvo 0.4505 e alvo 0.6936

74

maior cardinalidade, com alvos mais dif ceis, o AECBL1 demora mais para alcanar c o alvo, como mostram as guras 3.21, 3.22 e 3.24. O IBLITRC2 mais rpido, e a seguido pelo GBLITRC1. E importante ressaltar que, nas instncias 200p7c1 e 1000p27c1, nos alvos mais a dif ceis, como mostram as guras 3.20 e 3.23, somente o AECBL1 conseguiu convergir, mostrando a sua robustez.

75

Cap tulo 4 Mtodos h e bridos de Heur stica com Modelo Exato para o PCA
A utilizaao de Programao Linear Inteira permite que alguns problemas sejam c ca modelados (ou formulados) e resolvidos de maneira exata atravs da utilizaao de e c pacotes de software. Porm, nem todos os problemas combinatrios possuem funoes e o c lineares, o que restringe a utilizao desta ferramenta em muitos problemas. Alm ca e disso, em alguns problemas do tipo NP-dif cil, os softwares s conseguem resolver o problemas de cardinalidade pequena. Tinha-se como meta, desenvolver vrias heur a sticas de boa qualidade, e depois desenvolver um modelo exato para o PCA, utilizando a funao c Indice Silhueta, para poder vericar a qualidade das soluoes obtidas. Isto no foi poss c a vel, pois a funo ca Indice Silhueta no facilmente linearizvel. A partir da tentamos encontrar na a e a , literatura, algum modelo exato para o PCA, sem restrioes, o que tambm no c e a conseguimos. A terceira tentativa foi adaptar algum modelo exato do PC para o PCA. Tambm no foi poss e a vel, pois as funes utilizadas, como a funo Dimetro co ca a e a Estrela, so funoes decrescentes em relao ao nmero de clusters. a c ca u Ento, foi percebido que os modelos exatos para o PC poderiam ser aproveitados a para melhorar as soluoes do PCA, atravs de um mtodo h c e e brido de heur stica e modelo exato. O objetivo deste cap tulo descrever os mtodos h e e bridos propostos. Primeiro, so descritos os mtodos exatos para PC. Depois so descritos os mtodos h a e a e bridos e feitas algumas comparaoes para analisar a ecincia dos mtodos. c e e

76

4.1

Modelos Exatos para o PC

Neste trabalho, os problemas modelados como um problema de Programao Linear ca Inteira e resolvidos de modo exato sero denominados modelos exatos. a Na literatura, no existem modelos exatos sem restrioes para o PCA. Os modelos a c exatos existentes possuem alguma restriao, como o nmero m c u nimo de pontos em cada cluster ou a capacidade mxima do cluster [25]. a Existem dois modelos exatos para o PC. O primeiro modelo, denominado Modelo Exato Dimetro, minimiza o maior dimetro de todos os clusters encontrados. O a a segundo modelo, denominado Modelo Exato K-Medianas , minimiza a soma das distncias dos pontos do cluster a um ponto mais ao centro deste. Os modelos so a a descritos a seguir.

4.1.1

O Modelo Exato Dimetro a

Este modelo foi denido por M. R. Rao em 1971 [38], e um modelo linear inteiro e 0-1. O objetivo deste modelo minimizar a maior distncia interna de todos os e a clusters, ou ainda, minimizar a maior diagonal de todos os clusters. Cada ponto s pode pertencer a um cluster e o nmero de clusters k um dado de entrada. A o u e grande diculdade deste modelo que o nmero de restries cresce rapidamente, a e u co ` medida que as quantidades de pontos m e de clusters k crescem. Portanto, o modelo exato Dimetro indicado somente para valores de k e m pequenos. A funao deste a e c modelo a funo Dimetro, denida na equao (2.3). O modelo descrito abaixo: e ca a ca e

M in Z = Dmax

(4.1)

S.A. Dl dij (xil + xjl 1) i, j, l,

i, j = 1, . . . . , m,

l = 1, . . . , k

(4.2)

xil = 1 i,
l=1

i = 1, . . . , m

(4.3)

Dmax Dl l, l = 1, . . . , k

(4.4)

77

xil {0, 1}

i, l,

i = 1, ..., m,

l = 1, ..., k

(4.5)

Dl 0 onde 1 xij = 0

l,

l = 1, ..., k

(4.6)

se o ponto i pertence ao cluster j caso contrario.

dij = distancia entre o ponto i e o ponto j.

Dl = diametro do cluster l.

Dmax = maior diametro de todos os clusters. As restrioes (4.2) garantem que a diagonal de cada cluster maior ou igual a c e distncia mxima entre dois pontos dentro do cluster. As restrioes (4.3) garantem a a c que cada ponto s pode ser alocado a um cluster e, nalmente, as restries (4.4) o co garantem que Dmax seja maior que todas as outras diagonais de todos os clusters.

4.1.2

O Modelo Exato K-Medianas

Este modelo foi denido por Hrishikesh D. Vinod em 1969 [48] e um modelo linear e inteiro 0-1. Na descrio deste modelo necessria a deniao de mediana de um cluster, ca e a c que um ponto, que pertence ao cluster e que est mais prximo a todos os outros e a o pontos do cluster. O objetivo deste modelo selecionar k medianas do conjunto X, e uma mediana para cada cluster, onde a soma das distncias dos outros pontos do a cluster a esta mediana m e nima. Cada mediana s pode pertencer a um cluster e o o nmero de clusters k um dado de entrada. A funao deste modelo a funao u e c e c Estrela, denida pela equaao (2.5). O modelo descrito abaixo. c e
m m

M in
i=1 j=1

dij xij

(4.7)

78

S.A.
j=1

xij = 1 i,
m

i = 1, ..., m

(4.8)

xjj = k
j=1

(4.9)

xij xjj

i, j,

i = 1, ..., m j = 1, ..., m

(4.10)

xij {0, 1} onde 1 xij = 0

i, j,

i = 1, ..., m,

j = 1, ..., m

(4.11)

se o ponto i esta associado a mediana j caso contrario.

xjj = 1, signif ica que o ponto j e a mediana.

dij = distancia entre o pontos i e o ponto j. As restries (4.8) garantem que cada ponto i seja associado a somente uma meco diana j. As restrioes (4.9) garantem que sejam escolhidos exatamente k medianas. c Finalmente as restries (4.10), garantem que o ponto i est associado ao ponto j, co a somente se o ponto j for uma mediana.

4.2

Mtodos H e bridos

Uma alternativa na resoluao de problemas de otimizaao formular matematicac c e mente o problema e conseguir um mtodo exato, rpido e eciente. Uma das formas e a de se conseguir isto utilizando Programao Inteira. No problema de Clusterizaao e ca c Automtica no diferente. Porm, a funo a a e e ca Indice Silhueta, no facilmente linea e arizvel. Alm disso, no existe na literatura nenhum modelo exato, sem restrioes, a e a c utilizando qualquer funo, para resolver o PCA. ca Existem modelos exatos para o PC. Porm, as funoes utilizadas so diferentes e c a da funao c Indice Silhueta. O que tentaremos, relacionar as funoes Dimetro e e c a Estrela com a funao c Indice Silhueta. 79

Como as funoes citadas acima no resolvem o PCA, pois no conseguem enconc a a trar o nmero ideal de clusters, necessrio utilizar a heur u e a stica para estimar este nmero. Portanto deniremos mtodos h u e bridos, que utilizam heur stica e modelos exatos. O objetivo tentar melhorar as solues obtidas pela heur e co stica atravs e de modelos exatos. A heur stica escolhida foi o AECBL1, pois obteve os melhores resultados. A funo ca Indice Silhueta, denida nas equaoes (10 -15) mostrada abaixo: c e 1 m
m i=1

M aximizar
C

F (C)

s(xi )

s(xi ) = 1 V 1

b(xi ) a(xi ) max(a(xi ), b(xi )) di,j xj = xi , x j Cw

a(xi ) =

b(xi ) = M in d(xi , Ct ) ,

Ct = Cw

Ct C

Analisando esta funo, vericado que uma das formas de tentar melhorar o seu ca e valor minimizando o valor de a(xi ) para cada ponto de X. Este valor m e e nimo quando os pontos pertencentes a cada cluster esto o mais prximo poss a o vel. Os mtodos h e bridos utilizam um modelo exato para minimizar as distncias dos pontos a dentro de cada cluster. Os mtodos h e bridos funcionam da seguinte maneira: primeiro a heur stica e executada utilizando a funo ca Indice Silhueta e encontra um valor k para o nmero u de clusters. Ento, o modelo exato executado, utilizando o valor k gerado antea e riormente, e tenta minimizar as distncias dos pontos dentro dos clusters. Assim a uma nova soluo encontrada. Depois, calculada a funo silhueta desta nova ca e e ca soluao. A soluo com o maior valor da funao c ca c Indice Silhueta escolhida. e Para avaliar o desempenho dos mtodos h e bridos, testes computacionais foram realizados. Todos os algoritmos foram implementados usando compilador C++ no ambiente Linux Ubuntu 7.5. Os mtodos h e bridos chamam as bibliotecas do XPRESS, para a execuo dos modelos exatos. Nos testes de contagem de tempo ca foram utilizados computadores com processadores Intel Xeon Quad core 3.00 Ghz com 16G de memria RAM. o 80

4.2.1

Um Mtodo H e brido da Heur stica AECBL1 com o Modelo Exato Dimetro a

O objetivo desta seao descrever um mtodo h c e e brido onde o modelo exato utilizado o modelo Dimetro. e a Neste caso, o modelo exato Dimetro gera clusters coesos minimizando a maior a diagonal de todos os clusters. O AECBL1 passa para o mtodo h e brido apenas o valor de k. O modelo exato funciona como uma busca local, que tenta melhorar a soluao c obtida pela heur stica. Por isso, o modelo denido como uma busca local e repree sentado por BLD (Busca Local Dimetro). a A tabela 4.1 mostra os resultados encontrados. Esta tabela mostra o nome da instncia, o valor da funo a ca Indice Silhueta, o tempo em segundos e o nmero de u clusters do AECBL1. Mostra tambm os dados do mtodo h e e brido AECBL1 + BLD como o valor da funo ca Indice Silhueta, o tempo em segundos, o nmero de clusters u e a variao percentual da funao ca c Indice Silhueta em relaao a soluao encontrada c ` c pelo AECBL1. Nas instncias comportadas (Ruspini, Iris , Maronna , 200DATA, 100p3c, a 200p4c, 300p3c e 400p3c) foi observado que o AECBL1 e o mtodo h e brido convergiam para o mesmo valor da funao c Indice Silhueta.

AECBL1 Nome Ruspini Iris Maronna 200data 100p2c1 100p3c 100p3c1 200p2c1 200p3c1 200p4c 200p4c1 300p2c1 I. Silhueta 0.7376 0.6862 0.5745 0.8231 0.7427 0.7858 0.5802 0.7642 0.6797 0.7725 0.7449 0.7764 t(s) 0.9 2.7 2.8 4.3 1.8 2.2 2.4 2.3 3.1 3.1 3.2 5.1 NC 4 3 4 3 2 3 3 2 3 4 4 2

AECBL1+BLD I. Silhueta 0.7376 0.6862 0.5745 0.8231 0.7427 0.7858 0.5802 0.7642 0.6797 0.7725 0.7449 0.7772 t(s) 78.5 128.2 798.9 344.2 17.2 62.3 244.8 172.6 584.5 879.3 2229.1 1073.7 NC 4 3 4 3 2 3 3 2 3 4 4 2 % 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.18

81

300p3c 300p3c1 300p4c1 400p3c

0.7663 0.6768 0.5910 0.7985

7.2 6.4 5.7 9.1

3 3 2 3

0.7663 0.6768 0.5910 0.7985

966.7 2161.4 1885.3 3154.8

3 3 2 3

0.00 0.00 0.00 0.00

Tabela 4.1: AECBL1+BLD

Comparao entre os algoritmos AECBL1 e ca

Quando as instncias so no comportadas, vericado que o mtodo h a a a e e brido consegue melhorar o AECBL1 em apenas um caso, na instncia 300p2c1. a Portanto, percebido que o mtodo h e e brido testado melhora as soluao de apenas c uma instncia e no eciente na maioria dos casos. Outro grande problema deste a a e modelo que apenas instncias pequenas podem ser executadas. O tempo necessrio e a a para execuao das instncias muito alto. c a e

4.2.2

Um Mtodo H e brido da heur stica AECBL1 com o Modelo Exato K-Medianas

O objetivo desta seao descrever um mtodo h c e e brido onde o modelo exato utilizado o modelo K-Medianas. Este modelo mais rpido que o anterior e consegue e e a executar instncias de cardinalidade maior. a A funao Estrela, utilizada neste modelo, denida como a soma dos pontos de c e cada cluster a um ponto mais ao centro deste mesmo cluster, denominado mediana. Portanto, o objetivo desta funo tornar os clusters coesos. Quanto mais coeso for ca e cada cluster, menor essa soma. e Este modelo pode melhorar as solues obtidas pelo AECBL1, pois quanto mais co coesos forem os clusters, mais prximos esto os pontos de cada cluster e menor o o a e valor de cada a(xi ) de cada ponto. Supondo que o AECBL1 encontre boas soluoes, interessante que algumas inc e formaoes sejam passadas para o modelo exato. Alm do valor do k, importante c e e tambm passar alguns clusters encontrados. O modelo exato deve escolher as mee dianas pertencentes a estes clusters. Para isso, algumas restrioes so inclu c a das no

82

modelo. Estas restries obrigam o modelo exato a escolher algumas medianas perco tencentes a estes clusters. Por exemplo, se o cluster passado para o modelo exato e o C3 e este denido contendo os seguintes pontos C3 = {1,3,5,7}, ento a restrio e a ca utilizada x11 + x33 + x55 + x77 = 1, ou seja, o modelo exato tem que escolher um e dos quatro pontos como uma mediana do problema. O objetivo de passar somente alguns clusters encontrados ao modelo exato, e deixar o modelo ex vel, ou seja, o modelo exato utiliza informaoes da soluo c ca encontrada pelo AECBL1 e tem liberdade de procurar por suas prprias informaes o co no problema. Neste trabalho, a metade dos clusters encontrados pelo AECBL1 e passada para o modelo exato. A funao c Indice Silhueta tambm utiliza, no critrio de avaliaao, a distncia e e c a entre pontos de clusters diferentes, denida como b(xi ). Quando uma soluo ca e modicada, os valores de a(xi ) e b(xi ) tambm so modicados. Portanto, o que e a pode ocorrer que a mudana, alm de diminuir o valor de a(xi ), pode diminuir e c e tambm o valor de b(xi ). Se a diminuiao dos valores b(xi ) for maior que a diminuiao e c c dos valores a(xi ), ento o valor do a ndice Silhueta da nova soluao pior que o valor c e da soluao anterior. Com isso, no podemos garantir que a soluao gerada pelo c a c modelo exato K-medianas melhore a funo ca Indice Silhueta. O modelo exato funciona como uma busca local, que tenta melhorar a soluao c obtida pela heur stica. Por isso, o modelo denido como uma busca local e repree sentado por BLM (Busca Local K-medianas). A tabela 4.2 mostra os resultados. Esta tabela mostra o nome da instncia, o a valor da funao c Indice Silhueta, o tempo em segundos e o nmero de clusters do u AECBL1. Mostra tambm, os dados do mtodo h e e brido AECBL1 + BLM como o valor da funo ca Indice Silhueta, o tempo em segundos, o nmero de clusters e a u variao percentual da funao ca c Indice Silhueta em relaao ` soluao encontrada pelo c a c AECBL1. Foi observado que na maioria das instncias comportadas (Ruspini, Iris, Maa ronna, 200DATA, 100p3c, 100p7c, 100p10c, 200p4c, 300p3c, 400p3c, 500p3c, 600p15c, 700p4c, 800p23c, 900p5c, 900p12c, 1000p6c, 1000p14c, 1300p17c, 1500p6c, 1800p22c e 2000p11c), as solues da heur co stica e do modelo h brido possuem o mesmo valor da funao c Indice Silhueta. As instncias comportadas possuem clusa

83

ters coesos e separados.

AECBL1 Nome Ruspini Iris Maronna 200data Vowel Broken Ring 100p2c1 100p3c 100p3c1 100p5c1 100p7c 100p7c1 100p10c 200p2c1 200p3c1 200p4c 200p4c1 200p7c1 200p12c1 300p2c1 300p3c 300p3c1 300p4c1 300p6c1 300p13c1 400p3c 400p4c1 400p17c1 500p3c 500p4c1 500p6c1 600p3c1 600p15c 700p4c I. Silhueta 0.7376 0.6862 0.5745 0.8231 0.4246 0.4995 0.7427 0.7858 0.5802 0.6958 0.8338 0.4911 0.8336 0.7642 0.6797 0.7725 0.7449 0.5759 0.5753 0.7764 0.7663 0.6768 0.5910 0.6636 0.5644 0.7985 0.5989 0.5138 0.8249 0.6595 0.6287 0.7209 0.7812 0.7969 t(s) 0.9 2.7 2.8 4.3 15.4 39.6 1.8 2.2 2.4 1.6 1.8 1.9 1.8 2.3 3.1 3.1 3.2 2.7 2.8 5.1 7.2 6.4 5.7 5.4 5.3 9.1 6.2 10.6 9.5 8.1 8.5 18.3 32.7 31.5 NC 4 3 4 3 27 5 2 3 3 8 7 7 10 2 3 4 4 13 13 2 3 3 2 8 13 3 4 2 3 3 6 3 15 4

AECBL1+BLM I. Silhueta 0.7376 0.6862 0.5745 0.8231 0.4246 0.4995 0.7427 0.7858 0.5802 0.6958 0.8338 0.4950 0.8336 0.7642 0.6797 0.7725 0.7449 0.5775 0.5753 0.7774 0.7663 0.6768 0.5910 0.6636 0.5644 0.7985 0.6065 0.5138 0.8249 0.6597 0.6317 0.7209 0.7812 0.7969 t(s) 3.3 6.1 9.5 9.8 82.6 256.5 5.2 5.6 5.8 4.3 4.7 4.9 6.3 7.1 8.7 8.5 7.7 7.2 10.5 18.3 19.2 23.4 21.8 20.1 29.8 31.2 32.3 42.4 63.7 62.2 63.3 100.2 87.9 186.5 NC 4 3 4 3 27 5 2 3 3 8 7 7 10 2 3 4 4 13 13 2 3 3 2 8 13 3 4 2 3 3 6 3 15 4 % 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.79 0.00 0.00 0.00 0.00 0.00 0.28 0.00 0.13 0.00 0.00 0.00 0.00 0.00 0.00 1.27 0.00 0.00 0.03 0.48 0.00 0.00 0.00

84

Nome 700p15c1 800p4c1 800p10c1 800p18c1 800p23c 900p5c 900p12c 1000p5c1 1000p6c 1000p14c 1000p27c1 1100p6c1 1300p17c 1500p6c 1500p6c1 1500p20c 1800p22c 2000p9c1 2000p11c

I. Silhueta 0.6804 0.7021 0.4681 0.6914 0.7873 0.7160 0.8408 0.6391 0.7356 0.8306 0.5186 0.6717 0.8229 0.6941 0.6436 0.8232 0.8036 0.6230 0.7129

t(s) 23.4 38.6 34.7 24.9 55.4 71.2 70.8 71.5 76.7 84.7 112.3 91.5 121.3 214.7 205.6 243.5 305.1 344.2 354.7

NC 15 4 2 19 23 5 12 5 6 14 25 6 17 6 6 20 22 9 11

I. Silhueta 0.6917 0.7044 0.4777 0.6914 0.7873 0.7160 0.8408 0.6431 0.7356 0.8306 0.5186 0.6733 0.8229 0.6941 0.6458 0.7884 0.8036 0.6270 0.7129

t(s) 145.3 266.3 246.8 210.2 230.7 353.3 317.8 522.6 445.5 440.3 495.7 651.2 970.9 1945.8 1798.3 1601.5 3882.2 5407.8 4640.3

NC 15 4 2 19 23 5 12 5 6 14 25 6 17 6 6 20 22 9 11

% 1.66 0.33 2.05 0.00 0.00 0.00 0.00 0.63 0.00 0.00 0.00 0.24 0.00 0.00 0.34 0.00 0.00 0.64 0.00

Tabela 4.2:

Comparao entre os algoritmos AECBL1 e ca

AECBL1+BLM

Uma vez que nas instncias comportadas, as solues encontradas pelo AECBL1 a co e o Mtodo H e brido obtiveram os mesmos valores para a funo ca Indice Silhueta, as instncias no comportadas foram testadas. Nestes problemas, mais dif a a e cil encontrar o nmero ideal de clusters. Porm, observado que, uma vez que o numero u e e de k xado e o melhor poss e e vel, o modelo exato K-Medianas tende a colocar os pontos nas melhores posioes relativas a cada cluster. Isto faz que o modelo exato c melhore tambm a funo e ca Indice Silhueta destas instncias. Isso acontece em 13 a instncias. a

85

4.2.3

Um Mtodo H e brido da Heur stica AECBL1 com o Modelo Exato K-medianas Utilizando Busca Local

Agora tentaremos melhorar o resultado nal do mtodo, atravs de um renamento e e do mtodo anterior. O objetivo deste novo mdulo fazer uma busca local no valor e o e de k. Esta busca denominada Busca Local em k (BLk). e Foi vericado, empiricamente, atravs da execuo de vrias instncias com vae ca a a lores de k diferentes, que a funao c Indice Silhueta cresce a medida que o valor k ` se aproxima de seu melhor valor e diminui a medida que k se afasta. A gura 4.1 ` mostra este comportamento da instncia 1000p5c1. a

Figura 4.1: Os valores da funao c Indice Silhueta para a instncia 1000p5c1 a Portanto, supondo que o AECBL1 no encontre o valor ideal de k, poss a e vel fazer um busca local atravs do modelo exato K-medianas, para tentar encontrar o e melhor valor. O mtodo funciona da seguinte maneira: Inicialmente o AECBL1 executado e e e gera um valor k. Depois, o mtodo h e brido executa o modelo exato K-Medianas com os valores de k no intervalo [k-3, k+3]. Para cada k, gerada uma nova soluo e ca e calculado o Indice Silhueta. O maior valor do Indice Silhueta entre as soluoes c e escolhido. A BLk s executada nos casos em que os valores da funao oe c Indice Silhueta dos algoritmos AECBL1 e AECBL1+BLM so diferentes. a

86

AECBL1 Nome Ruspini Iris Maronna 200data Vowel Broken Ring 100p2c1 100p3c 100p3c1 100p5c1 100p7c 100p7c1 100p10c 200p2c1 200p3c1 200p4c 200p4c1 200p7c1 200p12c1 300p2c1 300p3c 300p3c1 300p4c1 300p6c1 300p13c1 400p3c 400p4c1 400p17c1 500p3c 500p4c1 500p6c1 600p3c1 600p15c 700p4c 700p15c1 800p4c1 I. Silhueta 0.7376 0.6862 0.5745 0.8231 0.4246 0.4995 0.7427 0.7858 0.5802 0.6958 0.8338 0.4911 0.8336 0.7642 0.6797 0.7725 0.7449 0.5759 0.5753 0.7764 0.7663 0.6768 0.5910 0.6636 0.5644 0.7985 0.5989 0.5138 0.8249 0.6595 0.6287 0.7209 0.7812 0.7969 0.6804 0.7021 t(s) 0.9 2.7 2.8 4.3 15.4 39.6 1.8 2.2 2.4 1.6 1.8 1.9 1.8 2.3 3.1 3.1 3.2 2.7 2.8 5.1 7.2 6.4 5.7 5.4 5.3 9.1 6.2 10.6 9.5 8.1 8.5 18.3 32.7 31.5 23.4 38.6

AECBL1+BLM I. Silhueta 0.7376 0.6862 0.5745 0.8231 0.4246 0.4995 0.7427 0.7858 0.5802 0.6958 0.8338 0.4950 0.8336 0.7642 0.6797 0.7725 0.7449 0.5775 0.5753 0.7774 0.7663 0.6768 0.5910 0.6636 0.5644 0.7985 0.6065 0.5138 0.8249 0.6597 0.6317 0.7209 0.7812 0.7969 0.6917 0.7044 t(s) 3.3 6.1 9.5 9.8 82.6 256.5 5.2 5.6 5.8 4.3 4.7 4.9 6.3 7.1 8.7 8.5 7.7 7.2 10.5 18.3 19.2 23.4 21.8 20.1 29.8 31.2 32.3 42.4 63.7 62.2 67.3 100.2 87.9 186.5 145.3 266.3 NC 4 3 4 3 27 5 2 3 3 8 7 2 10 2 3 4 4 13 13 2 3 3 2 9 13 3 4 2 3 3 6 3 15 4 15 4

AECBL1+BLM+BLK I. Silhueta 0.7376 0.6862 0.5745 0.8231 0.4337 0.4995 0.7427 0.7858 0.5802 0.6958 0.8338 0.4950 0.8336 0.7642 0.6797 0.7725 0.7449 0.5775 0.5796 0.7774 0.7663 0.6768 0.5910 0.6636 0.5672 0.7985 0.6065 0.5138 0.8249 0.6597 0.6317 0.7209 0.7812 0.7969 0.6917 0.7044 t(s) 3.3 20.3 9.5 9.8 302.4 1467.7 5.2 5.6 5.8 12.4 4.7 12.5 6.3 21.8 22.6 8.5 28.3 27.4 32.7 58.7 19.2 71.3 75.5 74.9 73.3 31.2 174.6 221.4 63.7 291.3 331.9 505.8 87.9 186.5 916.7 1968.3 NC 4 3 4 3 30 5 2 3 3 8 7 2 10 2 3 4 4 13 12 2 3 3 2 9 12 3 4 2 3 3 6 3 15 4 15 4 % 0.00 0.00 0.00 0.00 2.14 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.75 0.00 0.00 0.00 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

87

Nome 800p10c1 800p18c1 800p23c 900p5c 900p12c 1000p5c1 1000p6c 1000p14c 1000p27c1 1100p6c1 1300p17c 1500p6c 1500p6c1 1500p20c 1800p22c 2000p9c1 2000p11c

I. Silhueta 0.4681 0.6914 0.7873 0.7160 0.8408 0.6391 0.7356 0.8306 0.5186 0.6717 0.8229 0.6941 0.6436 0.8232 0.8036 0.6230 0.7129

t(s) 34.7 24.9 55.4 71.2 70.8 71.5 76.7 84.7 112.3 91.5 121.3 214.7 205.6 243.5 305.1 344.2 354.7

I. Silhueta 0.4777 0.6914 0.7873 0.7160 0.8408 0.6431 0.7356 0.8306 0.5186 0.6733 0.8229 0.6941 0.6458 0.7884 0.8036 0.6270 0.7129

t(s) 246.8 210.2 230.7 353.3 317.8 522.6 445.5 440.3 495.7 651.2 970.9 1945.8 1798.3 1601.5 3882.2 5407.8 4640.3

NC 2 19 27 5 12 5 6 14 25 6 17 6 6 20 22 9 11

I. Silhueta 0.4777 0.6991 0.7873 0.7160 0.8408 0.6431 0.7356 0.8306 0.5229 0.6733 0.8229 0.6941 0.6458 0.7884 0.8036 0.6270 0.7129

t(s) 1416.2 1370.4 230.7 353.3 317.8 4654.7 445.5 440.3 3215.2 4608.8 970.7 1945.8 15101.5 1601.5 3882.2 40876.7 4640.3

NC 2 18 27 5 12 5 6 14 24 6 17 6 6 20 22 9 11

% 0.00 1.11 0.00 0.00 0.00 0.00 0.00 0.00 0.83 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

Tabela 4.3:

Comparao entre os algoritmos AECBL1 e ca

AECBL1+BLM e AECBL1+BLM+BLK

A tabela 4.3 mostra os resultados obtidos. Esta tabela mostra o nome da instncia, o valor da funo a ca Indice Silhueta, o tempo em segundos e o nmero u de clusters dos algoritmos AECBL1, AECBL1+BLM e AECBL1+BLM+BLk. Mostra tambm, a variaao percentual da funo e c ca Indice Silhueta do mtodo e h brido AECBL1+BLM+BLk, em relao ao melhor valor encontrado pelo mtodo ca e AECBL1+BLM. Neste caso, observamos que o mtodo proposto AECBL1+BLM+BLk consee gue melhorar o mtodo h e brido AECBL1+BLM anterior em 5 instncias, onde o a AECBL1 no encontrou o nmero ideal de clusters. A grande desvantagem deste a u mtodo o tempo, pois necessrio executar o modelo exato sete vezes, aumentando e e e a signicativamente o tempo nal deste mtodo. e

88

Cap tulo 5 Comparao das Heur ca sticas com o Algoritmo da Literatura


O PCA um problema recente e no possui muitos trabalhos na literatura. Os e a algoritmos existentes utilizam vrias funoes diferentes para avaliar a qualidade das a c partioes. c Alm disso, no existe na literatura, um conjunto signicativo de instncias com e a a resultados conhecidos para a funao c Indice Silhueta, que possam ser utilizados para testes e comparaes. co Foi encontrado na literatura, um algoritmo denominado CLUES (CLUstEring based on local Shirinking), que resolve o PCA e utiliza a funao c Indice Silhueta. O CLUES um algoritmo recente que foi publicado em 2007. O cdigo fonte foi e o disponibilizado e utilizado para executar as instnciass propostas. O cdigo fonte a o foi utilizado sem qualquer alteraao. c O objetivo deste cap tulo comparar os algoritmos propostos com o CLUES. No e nal, so mostradas algumas imagens das partioes encontrados pelo CLUES e pelo a c AECBL1, cujo objetivo visualizar as diferenas entre as soluoes. e c c

5.1

O Algoritmo CLUES

O algoritmo CLUES foi desenvolvido por Xiaogang Wang, Weiliang Qiu e Ruben H. Zamar e foi publicado na revista Computacional Statistics & Data Analysis em 2007.[51].

89

O CLUES um algoritmo iterativo que une pontos prximos atravs de um e o e procedimento, denominado procedimento de Encolhimento (Shirinking procedure), que baseado em K-vizinhos prximos. Aps este procedimento, o CLUES faz um e o o particionamento e avalia o resultado atravs de uma funao. O CLUES possui dois e c mdulos independentes com funoes diferentes. Um mdulo utiliza a funao o c o c Indice Silhueta e o outro a funo CH index. O CLUES comparou as soluoes encontradas ca c pelas duas funoes e concluiu que a funo c ca Indice Silhueta gera as melhores soluoes. c Neste trabalho, utilizado somente o mdulo da funao e o c Indice Silhueta. A estimativa do melhor valor de K e a partiao nal so obtidos simultaneamente. c a Para isso, o algoritmo comea com valores pequenos de K e os incrementa at a c e funao ser maximizada. No nal, o CLUES retorna o valor da funo, o valor de g c ca (nmero de clusters encontados) e a imagem da partio. u ca O algoritmo CLUES possui 3 etapas: O Procedimento de Encolhimento, O Procedimento de Particionamento e o Procedimento que determina o valor de K otimo. Os procedimentos so mostrados a seguir. a

5.1.1

O procedimento de Encolhimento

Neste procedimento, cada ponto vai ser encolhido para um regio densa. Isto a e realizado atravs do conceito de K-vizinhana do ponto. e c Seja Y = {y1 , y2 , y3 , ....yn } o conjunto de todos os pontos do problema. Seja K um valor dado , uma distncia dada e M o nmero mximo de iteraes utilizadas. a u a co O procedimento mostrado na gura 5.1. e Procedimento de Encolhimento Passo 1: t = 1 ; Y[t] = Y ; Y[t+1] = Y Passo 2: yi
[t+1] [t] [t] [t+1]

= media yj , yj NK (yi
[t] [t+1]

), i = 1, ..n

Passo 3: d = maxn maxp |yij yij i=1 j=1 Passo 4:

Passo 4.1: se d < ou t > M ento va para o passo 5 a Passo 4.2: caso contrrio, yij = yij a Passo 5: sejam
[t+1] yi [t] [t+1]

, t = t + 1 e v para o passo 2 a

, i = 1,..n , os grupos de pontos resultantes

Figura 5.1: O pseudocdigo do Procedimento de Encolhimento o

90

Este procedimento um processo iterativo que depende do valor de K. Para e cada K dado, o procedimento junta os K vizinhos pximos a cada ponto. Este o procedimento executado para todos os pontos. e

5.1.2

O procedimento de Particionamento

Uma vez que os pontos so agrupados, necessrio fazer o particionamento. Este a e a particionamneto feito utilizando uma lista com as menores distncias entre os e a pontos encolhidos. Para denir este procedimento necessrio denir dois conjuntos: Su o conjunto e a de ndices dos pontos j inclu a dos na lista e Sr o conjunto de e ndices a serem inclu dos. Inicialmente Su = e Sr = 1, ..., n , ou seja, Sr contm todos os e ndices de todos os pontos do problema. Primeiro, escolhido um ponto aleatriamente, por e o exemplo a. Seja ya o conjunto de pontos gerados no procedimento anterior. Depois encontrado o ponto mais prximo a ele, por exemplo yb . O processo repetido e o e at que todos os pontos entrem na lista. Distncias grandes entre pontos sugere o e a in de um novo cluster. cio Neste procediemnto denido um valor que auxilia a descoberta de novos cluse ters, denominado IQR (Inter Quartile Range). Ele denido como a diferena e c entre as mdias das maiores distncias ( aquelas com valores maiores que 75% do e a total) e as menores distncias (aquelas com valores menores que 25% do total). O a pseudocdigo do procedimento descrito na gura 5.2. o e

5.1.3

O procedimento para encontrar o K otimo

Os procedimentos anteriores dependem do valor de K. O ideal para este mtodo e fazer K variar de 2 at n-1 e, para cada valor, executar o algoritmo e avaliar a e e partiao atravs da funo denida. Porm, isto faria o algoritmo car muito lento. c e ca e Para acelerar o processo, introduzido um fator de acelerao , 0 < < 1. e ca O valor inicial de K e o incremento so denidos como n. Por exemplo, se a |Y | = 1000 e = 0.05 ento K inicial 50, e depois 100, 150, etc. a e O CLUES possui um mdulo de renamento para melhorar a qualidade das o partioes obtidas, denindo um novo intervalo de valores de K para fazer uma nova c 91

Procedimento de Particionamento Passo 1: t = 1 , SU = 0 e SR = 1, 2, ...n Passo 2: seja a SR Passo 3: Se SR = ento a Encontrar b SR tal que b = argmind(ya , yb ), ou seja, o vizinho mais proximo de ya db = d(ya , yb ) SR = SR b e SU = SU + b t=t+1ea=b V a para o passo 3 Passo 4: R =
n1 i=1

di /n 1 + 1.5 IQR

Passo 5: Inicialize Ci = 1 , i = 1...n , g = 1 e t = 1 Passo 6: Se dt > R entao g = g + 1 Passo 7: CSU [t+1] = g onde SU [t + 1] e o (t + 1)th elemento de SU Passo 8: Se t < n entao t = t + 1 e v para o passo 6. Seno v para o passo 9 a a a Passo 9: Retornar Ci , i = 1, ..., n Figura 5.2: O pseudocdigo do Procedimento de Particionamento o busca. Por exemplo, suponha que |Y | = 1000 e que o algoritmo encontre K igual a 250. Porm, suponha ainda que o K timo 257. Ento feita uma busca nos e o e a e valores de K entre (250- n) e (250 + n), ou seja, o algoritmo agora executado e com os valores de K variando entre 200 e 300.

5.2

Resultados Computacionais

Nesta seo so realizados alguns testes computacionais para vericar o desempenho ca a dos algoritmos propostos. Primeiramente, so comparados os algoritmos h a bridos com o CLUES e depois so comparadas as melhores heur a sticas com o CLUES. Todos os algoritmos propostos foram implementados usando a linguagem C++ com o compilador gcc verso 4.1.2 no ambiente Linux Ubuntu 7.5. O CLUES foi a implemntado utilizando a linguagem R. Nos testes de contagem de tempo foram utilizados computadores com processadores Intel Xeon Quad core onde cada processador tem 3.00 Ghz e com 16G de memria RAM. o

92

Os algoritmos propostos neste trabalho utilizam os parametros denidos anteriormente. No CLUES, alguns parmetros so denidos, como o = 0.05 e o a a = 0.0001.

Porm, no necessrio entrar com qualquer parmetro para a execuo do CLUES. e a e a a ca

AECBL1+BLM+BLK Nome Ruspini Iris Maronna 200data Vowel Broken Ring 100p2c1 100p3c 100p3c1 100p5c1 100p7c 100p7c1 100p10c 200p2c1 200p3c1 200p4c 200p4c1 200p7c1 200p12c1 300p2c1 300p3c 300p3c1 300p4c1 300p6c1 300p13c1 400p3c 400p4c1 400p17c1 500p3c 500p4c1 Melhor 0.7376 0.6862 0.5745 0.8231 0.4483 0.4995 0.7427 0.7858 0.5966 0.7034 0.8338 0.5511 0.8336 0.7642 0.6797 0.7725 0.7544 0.5775 0.5796 0.7774 0.7663 0.6768 0.5924 0.6636 0.5994 0.7985 0.6204 0.5524 0.8249 0.6597 % 0.00 0.00 0.00 0.00 -3.26 0.00 0.00 0.00 -2.75 -1.08 0.00 -10.18 0.00 0.00 0.00 0.00 -1.26 0.00 0.00 0.00 0.00 0.00 -0.24 0.00 -5.37 0.00 -2.24 -6.99 0.00 0.00 t(s) 3.3 20.3 9.5 9.8 302.4 1467.7 5.2 5.6 5.8 12.4 4.7 12.5 6.3 21.8 22.6 8.5 28.3 27.4 32.7 58.7 19.2 71.3 75.5 74.9 73.3 31.2 174.6 221.4 63.7 291.3 NC 4 3 4 3 30 5 2 3 3 8 7 7 10 2 3 4 4 8 8 2 3 3 2 9 2 3 4 2 3 3

AECBL1+BLM % 0.00 0.00 0.00 0.00 -5.29 0.00 0.00 0.00 -2.75 -1.08 0.00 -10.18 0.00 0.00 0.00 0.00 -1.26 0.00 -0.74 0.00 0.00 0.00 -0.24 0.00 -5.84 0.00 -2.24 -6.99 0.00 0.00 t(s) 3.3 6.1 9.5 9.8 82.6 256.5 5.2 5.6 5.8 4.3 4.7 4.9 6.3 7.1 8.7 8.5 7.7 7.2 10.5 18.3 19.2 23.4 21.8 20.1 29.8 31.2 32.3 42.4 63.7 62.2 NC 4 3 4 3 27 5 2 3 3 8 7 7 10 2 3 4 4 8 8 2 3 3 2 9 2 3 4 2 3 3 % 0.00 -18.01 0.00 -43.85 0.00 0.00 -29.81 0.00 0.00 0.00 0.00 0.00 0.00 -22.64 -0.84 0.00 0.00 -3.84 -2.97 -36.98 -27.97 -12.47 0.00 -12.78 0.00 0.00 0.00 0.00 0.00 -21.93

CLUES t(s) 0.6 1.3 4.2 2.8 26.8 31.8 3.7 1.6 1.8 3.1 3.7 4.1 2.7 3.1 3.9 3.6 3.4 8.8 8.5 4.7 9.2 4.4 4.6 11.9 10.8 9.6 12.8 20.2 10.1 9.9 NC 4 3 4 3 9 5 5 3 3 6 7 7 10 3 3 4 4 9 9 5 3 4 4 7 9 3 4 15 3 3

93

Nome 500p6c1 600p3c1 600p15c 700p4c 700p15c1 800p4c1 800p10c1 800p18c1 800p23c 900p5c 900p12c 1000p5c1 1000p6c 1000p14c 1000p27c1 1100p6c1 1300p17c 1500p6c 1500p6c1 1500p20c 1800p22c 2000p9c1 2000p11c

Melhor 0.6684 0.7209 0.7812 0.7969 0.6917 0.7143 0.5071 0.6991 0.7873 0.7160 0.8408 0.6431 0.7356 0.8306 0.5631 0.6847 0.8229 0.6941 0.6597 0.8232 0.8036 0.6270 0.7129

% -5.49 0.00 0.00 0.00 0.00 -1.39 -5.80 0.00 0.00 0.00 0.00 0.00 0.00 0.00 -7.14 -1.66 0.00 0.00 -2.11 0.00 0.00 0.00 0.00 -1.07 5.1:

t(s) 331.9 505.8 87.9 186.5 916.7 1968.3 1416.2 1370.4 230.7 353.3 317.8 4654.7 445.5 440.3 3215.2 4608.8 970.7 1945.8 15101.5 1601.5 3882.2 40876.7 4640.3

NC 6 3 15 4 15 4 2 18 23 5 12 5 6 14 24 6 17 6 6 20 22 9 11

% -5.49 0.00 0.00 0.00 0.00 -1.39 -5.80 -1.10 0.00 0.00 0.00 0.00 0.00 0.00 -7.90 -1.66 0.00 0.00 -2.11 0.00 0.00 0.00 0.00 -1.17

t(s) 67.3 100.2 87.9 186.5 145.3 266.3 246.8 210.2 230.7 353.3 317.8 522.6 445.5 440.3 495.7 651.2 970.9 1945.8 1798.3 1601.5 3882.2 5407.8 4640.3

NC 6 3 15 4 15 4 2 19 23 5 12 5 6 14 24 6 17 6 6 20 22 9 11

% 0.00 -2.51 -3.66 0.00 -4.66 0.00 0.00 -0.72 -6.17 -14.40 -5.15 -13.23 0.00 -7.61 0.00 0.00 -10.33 -1.38 0.00 -16.50 -19.95 -14.61 -14.97 -7.27

t(s) 16.7 9.6 37.1 12.9 22.9 15.9 29.7 42.2 47.7 24.4 63.1 38.0 38.3 51.6 67.4 39.9 80.4 73.6 61.7 92.9 136.1 123.2 93.6

NC 6 3 16 4 17 4 8 19 22 7 10 7 6 11 14 6 15 5 6 13 18 7 8

Mdia Percentual e Tabela

Comparao ca

entre

os

algoritmos

AECBL1+BLM+BLK, AECBL1+BLM e CLUES

A Tabela 5.1 mostra a comparao entre o CLUES e os Mtodos h ca e bridos. Os algoritmos foram executados 5 vezes para cada instncia. Nas duas tabelas a sea guir, as colunas tem os seguintes signicados : a coluna Nome contm os nomes das e instncias. A coluna Melhor contm a maior mdia da funo a e e ca Indice Silhueta encontrado pelos algoritmos. A coluna % contm a diferena percentual que a mdia e c e das soluoes encontradas est da melhor mdia encontrado pelos 3 algoritmos. Se c a e o valor negativo, por que a mdia das solues encontradas est pior que a mee e e co a 94

lhor mdia e, se o valor nulo, signica que a mdia encontrada igual a melhor e e e e mdia. Os melhores resultados esto realados em negrito. A coluna t(s) contm a e a c e mdia dos tempos de execuao de cada algoritmo e a coluna NC contm o nmero e c e u de clusters que a melhor soluo de cada algoritmo encontrou. ca Nesta comparaao, obervado que os mtodos h c e e bridos obtem os melhores resultados. O AECBL1+BLM+BLK tem a melhor mdia percentual , seguido pelo e AECBL1+BLM e pelo CLUES. E importante observar que a diferena entre as c mdias muito grande. e e Alm das melhores mdias, eles tambm alcanam os melhores valores em uma e e e c uma quantidade maior de instncias. O AECBL1+BLM+BLK chega nos melhores a valores em 39 instncias, num total 53. O AECBL1+BLM chega nos melhores valoa res em 37 instncias, enquanto CLUES chega em 25 instncias. Portanto, podemos a a concluir que os mtodos h e bridos funcionam muito melhor que o CLUES. Porm o tempo dos mtodos h e e bridos so muito maiores que o tempo do CLUES. a Ento, o CLUES comparado com as heur a e sticas, que possuem os tempos mais prximos. Isto mostrado na tabela 5.2. o e
AECBL1 Nome Ruspini Iris Maronna 200data Vowel Broken Ring 100p2c1 100p3c 100p3c1 100p5c1 100p7c 100p7c1 100p10c 200p2c1 200p3c1 200p4c 200p4c1 200p7c1 200p12c1 300p2c1 300p3c Melhor 0.7376 0.6862 0.5745 0.8231 0.4483 0.4995 0.7427 0.7858 0.5966 0.7034 0.8338 0.5511 0.8336 0.7642 0.6797 0.7725 0.7544 0.5759 0.5753 0.7764 0.7663 % 0.00 0.00 0.00 0.00 -5.29 0.00 0.00 0.00 -2.75 -1.08 0.00 -10.89 0.00 0.00 0.00 0.00 -1.26 0.00 0.00 0.00 0.00 t(s) 0.9 2.7 2.8 4.3 15.4 39.6 1.8 2.2 2.4 1.6 1.8 1.9 1.8 2.3 3.1 3.1 3.1 2.7 2.8 5.1 7.2 NC 4 3 4 3 27 5 2 3 3 7 7 7 10 2 3 4 4 8 13 2 3 % 0.00 0.00 0.00 0.00 -6.69 0.00 0.00 0.00 -2.75 -1.08 0.00 -11.67 0.00 0.00 0.00 0.00 -1.26 -1.01 -1.01 0.00 0.00 GBLITRC1 t(s) 0.8 1.9 2.2 2.8 11.4 25.2 1.2 1.8 1.3 1.4 1.3 1.2 1.4 2.1 2.5 2.4 2.4 2.3 2.3 4.1 4.2 NC 4 3 4 3 3 5 2 3 3 7 7 27 10 2 3 4 4 14 13 2 3 % 0.00 0.00 0.00 0.00 -3.17 0.00 0.00 0.00 -2.75 -1.08 0.00 -12.27 0.00 0.00 0.00 0.00 -1.26 -6.34 -1.04 0.00 0.00 IBLITRC1 t(s) 0.8 3.4 1.7 1.9 87.3 17.5 9.5 0.9 9.4 1.1 23.2 1.1 20.3 1.8 1.7 1.7 1.9 1s 1.9 4.2 1.9 NC 4 3 2 3 23 5 2 3 3 7 7 7 10 2 3 4 4 1.5 8 2 3 % 0.00 -18.01 0.00 -43.85 0.00 0.00 -29.81 0.00 0.00 0.00 0.00 0.00 0.00 -22.64 -0.84 0.00 0.00 -3.58 -2.24 -36.90 -27.97 CLUES t(s) 0.6 1.3 4.2 2.8 26.8 31.8 3.7 1.6 1.8 3.1 3.7 4.1 2.7 3.1 3.9 3.6 3.4 8.8 8.5 4.7 9.2 NC 4 3 4 3 9 5 5 3 3 6 7 7 10 3 3 4 4 9 9 5 3

95

Nome 300p3c1 300p4c1 300p6c1 300p13c1 400p3c 400p4c1 400p17c1 500p3c 500p4c1 500p6c1 600p3c1 600p15c 700p4c 700p15c1 800p4c1 800p10c1 800p18c1 800p23c 900p5c 900p12c 1000p5c1 1000p6c 1000p14c 1000p27c1 1100p6c1 1300p17c 1500p6c 1500p6c1 1500p20c 1800p22c 2000p9c1 2000p11c

Melhor 0.6768 0.5924 0.6636 0.5944 0.7985 0.6204 0.5524 0.8249 0.6597 0.6684 0.7209 0.7812 0.7969 0.6804 0.7143 0.5071 0.6941 0.7873 0.7160 0.8408 0.6391 0.7356 0.8306 5631 0.6847 0.8229 0.6941 0.6597 0.8232 0.8036 0.6230 0.7129

% 0.00 -0.24 0.00 -5.84 0.00 -3.47 -6.99 0.00 -0.03 -5.94 0.00 0.00 0.00 0.00 -1.71 -7.69 -0.39 0.00 0.00 0.00 0.00 0.00 0.00 -7.90 -1.90 0.00 0.00 -2.44 0.00 0.00 0.00 0.00 -1.24

t(s) 6.4 5.7 5.4 5.3 9.1 6.2 10.6 9.5 8.1 8.5 18.3 32.7 31.5 23.4 38.6 34.7 24.9 55.4 71.2 70.8 71.5 76.7 84.7 112.3 91.5 121.3 214.7 205.6 243.5 305.1 344.2 354.7

NC 3 2 8 13 3 4 2 3 3 6 3 15 4 15 4 2 19 23 5 12 5 6 14 24 6 17 6 6 20 22 9 11

% 0.00 -0.24 -0.44 -9.08 0.00 -3.00 -6.99 0.00 0.00 -5.94 0.00 0.00 0.00 0.00 -1.54 -7.69 -0.39 0.00 0.00 0.00 0.00 0.00 0.00 -8.35 -2.09 0.00 0.00 -2.44 -3.86 0.00 0.00 0.00 -1.46

t(s) 4.2 4.3 4.3 4.2 5.6 4.3 6.2 6.8 6.7 6.3 9.3 15.2 36.4 21.8 26.8 28.7 19.2 27.7 33.2 47.9 55.4 47.4 63.2 74.1 71.3 89.5 124.4 123.6 146.3 218.8 204.8 217.3

NC 3 2 8 13 3 4 17 3 5 6 3 15 4 15 4 10 19 23 5 12 5 6 14 25 6 17 6 6 20 22 9 11

% 0.00 -0.24 0.00 -9.23 0.00 -3.47 -6.99 0.00 0.00 -5.94 0.00 0.00 0.00 -0.07 -7.00 -7.69 -0.39 0.00 0.00 0.00 0.00 0.00 0.00 -15.31 -1.90 0.00 0.00 -2.44 0.00 0.00 0.00 0.00 -1.67

t(s) 2.7 2.6 3.1 2.8 5.2 2.7 8.5 2.3 2.6 4.2 4.8 37.4 9.7 15.1 8.2 10.2 35.9 44.9 39.4 51.2 31.3 28.3 16.5 43.6 50.7 120.7 67.4 70.8 311.2 969.3 325.6 438.4

NC 3 2 8 2 3 4 2 3 3 6 3 15 4 15 4 2 19 23 5 12 5 6 14 2 6 17 6 6 20 22 9 11

% -12.47 0.00 -12.78 0.00 0.00 0.00 0.00 0.00 -21.93 0.00 -2.51 -3.66 0.00 -3.07 0.00 0.00 0.00 -6.17 -14.40 -5.15 -12.69 0.00 -7.61 0.00 0.00 -10.33 -1.38 0.00 -16.50 -19.95 -14.06 -14.97 -7.07

t(s) 4.4 4.6 11.9 10.8 9.6 12.8 20.2 10.1 9.9 16.7 9.6 37.1 12.9 22.9 15.9 29.7 42.2 47.7 24.4 63.1 38.0 38.3 51.6 67.4 39.9 80.4 73.6 61.7 92.9 136.1 123.2 93.6

NC 4 4 7 9 3 4 15 3 3 6 3 16 4 17 4 8 19 22 7 10 7 6 11 14 6 15 5 6 13 18 7 8

Mdia Percentual e

Tabela 5.2: Comparao entre os algoritmos AECBL1, GBLITRC1, IBLITRC1 ca e CLUES

As heur stica possuem uma mdia percentual muito prxima, indicando que pose o suem um desempenho muito parecido. Porm quando comparado com o CLUES, e a diferena das mdias % aumenta muito, passando de -1.67 para -7.07, que uma c e e diferena muito grande. c Alm das melhores mdias, as heur e e sticas tambm alcanam os melhores valores e c em uma uma quantidade maior de instncias. O AECBL1 chega nos melhores a 96

valores em 36 instncias, num total 53. O GBLITRC1 chega nos melhores valores a em 33 instncias, e o IBLITRC1 chega nos melhores valores em 34 instncias. O a a CLUES chega nos melhores valores em 27 instncias. a Analisando o desempenho dos melhores mtodos propostos, vericamos e que o AECBL1+BLM+BLK conseguiu os melhores resultados, seguidos por AECBL1+BLM, AECBL1, GBLITRC1 e IBLITRC2. Todos os mtodos apresene tados neste trabalho conseguiram a mdia dos valores da funao e c Indice Silhueta, executados em 53 instncias, melhores que a mdia do CLUES. a e Os algoritmos AECBL1, GBLITRC1 e IBLITRC2 obtiveram valores da funo ca Indice Silhueta muito prximos, indicando que o desempenho dos algoritmos, na o mdia, muito semelhante. O algoritmo AECBL1 obteve os melhores resultados, e e seguido pelo GBLITRC1. O resultado devido, possivelmente pelo fato, do AECBL1 e trabalhar com um conjunto de solues que se combinam e formam novas soluoes. co c Alm disso a busca local Inverso Individual auxilia a convergncia do algoritmo, e a e buscando novas soluoes prximas as pertencentes a populao. Com isso, o espao c o ca c de busca intensamente vasculhado. O algoritmo auxiliado pelas buscas Recoe e nexo por caminhos e no nal pela Troca entre Pares que intensicam ainda mais a a procura de novas solues. O GBLITRC1 sempre trabalha com apenas uma soluo co ca inicial a cada iterao, e portanto, tem mais diculdade de vasculhar o espao de ca c busca. O IBLITRC2 trabalha com uma busca local para cada nmero de clusters u pais. Se a busca local no encontrar o timo local, os resultados podem no ser a o a muito bons. Os algoritmos AECBL1, GBLITRC1 e IBLITRC2 trabalham com conjuntos de pontos, e estes so combinados para formarem uma soluo. Esta combinaao a ca c pode acarretar que alguns pontos no quem em suas melhores posioes relativas a c a cada cluster. No mtodo h e brido AECBL1 + BLM foi observado que, uma vez que o AECBL1 encontra o valor de k e este o melhor poss e vel, o modelo exato KMedianas tende a colocar os pontos, individualmente, nas melhores posioes relativas c a cada cluster. Isto faz que o modelo exato melhore o valor da funao c Indice Silhueta em algumas soluoes geradas pelo AECBL1. Porm, quando o valor de k no o c e a e melhor poss vel, o mtodo h e brido AECBL1+BLM+BLK pode encontrar um valor melhor para k e com isso, melhorar as solues geradas pelo mtodo AECBL1+BLM. co e

97

Em relao ao tempo de processamento, vericado que o algoritmo mais rpido ca e a o CLUES seguidos por GBLITRC1, AECBL1, IBLITRC2, AECBL1+BLM e e AECBL1+BLM+BLK . As mdias dos tempos de execuo de todas as intncias e ca a so respectivamente 27.29s, 34.56s, 53.03s, 58.66s, 487.07s e 1758.48s. Os tempos de a processamento dos mtodos h e bridos so mais altos, pois executam o modelo exato a K-medianas, que demanda muito tempo de execuao. E importante ressaltar que, em c instncias de cardinalidade pequena e mdia (de 100 a 800 pontos), os algoritmos a e CLUES, GBLITRC1, AECBL1 e IBLITRC2 possuem tempos de processamento semelhantes, alternando o algoritmo que possui o menor tempo.

5.2.1

Imagens das Soluoes c

Nesta seo so mostradas algumas imagens das soluoes encontradas. As imagens ca a c so do AECBL1 e do CLUES. a O AECBL1 foi utilizado pois a melhor heur e stica e possui um tempo de execuao prximo ao CLUES. Primeiro, na parte de cima de cada gura, mosc o e trada a partio gerada pelo CLUES. Na parte de baixo da gura, mostrada a ca e partiao do AECBL1. c O objetivo desta seao ilustrar algumas soluoes geradas pelos algoritmos. As c e c instncias escolhidas possuem soluoes diferentes entre os algoritmos. As instncias a c a escolhidas foram Ruspini , Maronna , 200Data , Vowel , Broken Ring ,200p2c1 , 300p2c1 , 300p4c1, 500p4c1 , 700p15c1, 1000p27c1, 1800p22c e 2000p9c1. As guras entre 5.3 e 5.15 mostram, respectivamente, as imagens das solues encontradas pelos co algoritmos. Cada cor diferente na imagem indica um cluster diferente. E observado que as parties obtidas pelo AECBL1 so mais denidas que as co a partioes do CLUES, justicando os melhores valores obtidos pelo AECBL1 para a c funao c Indice Silhueta.

98

Figura 5.3: Particoes geradas para Ruspini: CLUES (em cima) e o AECBL1

99

Figura 5.4: Particoes geradas para Maronna: CLUES (em cima) e o AECBL1

100

Figura 5.5: Particoes geradas para 200DATA: CLUES (em cima) e o AECBL1

101

Figura 5.6: Particoes geradas para vowel: CLUES (em cima) e o AECBL1

102

Figura 5.7: Particoes geradas para Broken Ring: CLUES (em cima) e o AECBL1

103

Figura 5.8: Particoes geradas para 200p2c1: CLUES (em cima) e o AECBL1

104

Figura 5.9: Particoes geradas para 300p2c1: CLUES (em cima) e o AECBL1

105

Figura 5.10: Particoes geradas para 300p3c1: CLUES (em cima) e o AECBL1

106

Figura 5.11: Particoes geradas para 300p4c1: CLUES (em cima) e o AECBL1

107

Figura 5.12: Particoes geradas para 500p4c1: CLUES (em cima) e o AECBL1

108

Figura 5.13: Particoes geradas para 700p15c1: CLUES (em cima) e o AECBL1

109

Figura 5.14: Particoes geradas para 1000p27c1: CLUES (em cima) e o AECBL1

110

Figura 5.15: Particoes geradas para 1800p22c: CLUES (em cima) e o AECBL1

111

Figura 5.16: Particoes geradas para 2000p9c1: CLUES (em cima) e o AECBL1

112

Cap tulo 6 Concluso a


Neste trabalho, apresentamos novas heur sticas para resolver o PCA. As heur sticas existentes, que utilizam metaheur sticas, usam na maioria dos casos, Algoritmos Evolutivos. As nossas contribuies so novas heur co a sticas utilizando Algoritmos Evolutivos, GRASP e ILS. Alm disso, propomos um novo procedimento para e juntar clusters parciais e novas buscas locais. Foram propostos tambm, novos e mtodos h e bridos que utilizam modelos exatos para melhorar as solues obtidas co pelas heur sticas. Finalmente, os melhores algoritmos propostos neste trabalho foram comparados com um algoritmo recente da literatura. Foi observado que as implementaoes dos AEs, GRASPs e ILSs que utilizavam c caracter sticas comuns, como o Etapa de Construo, a representao da soluo ca ca ca e as buscas locais, obtiveram um desempenho semelhante, com vantagem para a heur stica que utiliza Algoritmo Evolutivo. Os AEs, acrescidos de buscas locais, melhoram muito o seu desempenho. Os algoritmos AECBL1, GBLITRC1 e IBLITRC2 obtiveram valores da funo ca Indice Silhueta muito prximos, indicando que o desempenho dos algoritmos, na o mdia, muito semelhante. O algoritmo AECBL1 obteve os melhores resultados, e e seguido pelo GBLITRC1. O resultado devido, possivelmente pelo fato, do AECBL1 e trabalhar com um conjunto de solues que se combinam e formam novas soluoes. co c Alm disso a busca local Inverso Individual auxilia a convergncia do algoritmo, e a e buscando novas soluoes prximas as pertencentes a populao. Com isso, o espao c o ca c de busca intensamente vasculhado. O algoritmo auxiliado pelas buscas Recoe e nexo por caminhos e no nal pela Troca entre Pares que intensicam ainda mais a a

113

procura de novas solues. O GBLITRC1 sempre trabalha com apenas uma soluo co ca inicial a cada iterao, e portanto, tem mais diculdade de vasculhar o espao de ca c busca. O IBLITRC2 trabalha com uma busca local para cada nmero de clusters u pais. Se a busca local no encontrar o timo local, os resultados podem no ser a o a muito bons. Os mtodos h e bridos conseguiram melhorar alguns valores da funao c Indice Silhueta obtidas pelas heur sticas. Estes mtodos utilizam um modelo exato para e auxiliar a busca por soluoes melhores. O que foi observado que, uma vez que o c e nmero de k xado e o melhor poss u e e vel, o modelo exato tende a colocar os pontos nas melhores posioes relativas a cada cluster, quando comparado com as soluoes c c obtidas pela heur stica. Isto aconteceu em 40 das 53 instncias. a Na comparaao dos mtodos propostos com um algoritmo da literatura, denomic e nado CLUES, percebemos que todos obtiveram resultados melhores. Os algoritmos propostos obtiveram uma mdia dos valores da funo no conjunto das instncias tese ca a tadas melhores que o CLUES e tambm, alcanaram o melhor valor em um nmero e c u maior de instncias. a Como propostas para trabalhos futuros temos: Desenvolver outras metaheur sticas como VNS, Busca Tabu utilizando as caracter sticas comuns, denidas neste trabalho, para vericar os seus desempenhos; Melhorar os mtodos h e bridos atravs de uma melhor integraao entre a e c heur stica e o modelo exato K-Medianas. Tentar melhorar o modelo exato K-Medianas, para diminuir os tempos de execuao dos mtodos h c e bridos.

114

Referncias Bibliogrcas e a
[1] AGRAVAL, R. ET AL ; Automatic Subspace Clustering of High Dimensional Data, Data Mining and Knowledge Discovery 11, pp. 533, 2005. [2] ALEX, R., BIRATO, S., RESENDE, M.; Parallel GRASP with path relinking for job scheduling . Parallel Computing (29), pp. 393-340. 2003 [3] ALJABER,N.; BAEK, W.; CHEN, C. L. A Tabu Search Approach to the Cell Formation Problem, Computers and Industrial Engineering, pp. 169-185. 1997. [4] ANKERST, M.; BREUNIG,M. M.; KRIEGEL,K. P.; SANDER,J. Optics: ordering points to identify the clustering structure, Proceeding of International Conference on Management of Data, pp. 4960, 1999. [5] BAGIROV, A. M.; YEARWOOD, J. A new Nonsmooth Optimization Algorithm for Minimum Sum-of-squares Clustering Problems; European Journal of Operational Research, Vol. 170 issue 2, 2006. [6] BERKHIN, P. Survey of Clustering Data Mining Techniques. Accrue Software, 2002. [7] BIRANT, D.; KUT, A. ST-Dbscan: An algorithm for clustering spatialtemporal data. Data & Knowledge Engineering 60, pp. 208221, 2007. [8] DIAS, C. R. (Dissertao de Mestrado) Algoritmos Evolutivos para o Problema ca de Clusterizao em Grafos Orientados: Desenvolvimento e Anlise Exca a perimental. Orientador: Luiz Satoru Ochi. Programa de Ps Grad. em o Computaao, IC/UFF, 2004. c

115

[9] DOVAL, D., MANCORIDIS, S. E MITCHELL, B. S. Automatic Clustering of Software Systems using a Genetic Algorithm, 1999 International Conference on SoftwareTools and Engineering Practice, 1999. [10] DUAN, L. ET AL. A local-density based spatial clustering algorithm with noise, Information Systems, 2006. [11] DUDA, R. and HART, P. ; Pattern Classication and Scene Analysis. John Wiley & Sons, New York, NY. 1973. [12] ESTER, M.; KRIEGEL, H. P.; XU, X. A database interface for clustering in large spatial databases. In Proc. of the 1st Intl Conference on Knowledge Discovery in Databases and Data Mining, Montreal, Canada, 1995. [13] FACELI, K. , CARVALHO, A.C.P.L.F , SOUTO, M. C. P. Validaao de Algoc ritmos de Agrupamento; Relatrio tcnico do ICMC. 2005. o e [14] FISHER, L. Knowledge acquisition via incremental conceptual clustering, Machine Learning 2, pp. 139172. 1987. [15] FISHER, R. The use of multiple measurements in taxonomic problems. Annual Eugenics 7, pp. 179-188. 1936. [16] FOULDS, L.R.; NEUMANN, K. A network ow model of group technology; Mathematical and computer modeling, 38, 2003. [17] GARAI, G. , CHAUDHURI, B. B. ; A novel genetic algorithm for automatic clustering. Pattern Recognition Letters. pp 173-187. 2004. [18] GLOVER, F.; KOCHENBERGER, G. A. Handbook of Metaheuristics. Kluwer Academic Publishers. 2003. [19] GUHA, S.; RASTOGI, R.; SHIM, K. Cure: An ecient clustering algorithm for large databases, Proc.of ACM SIGMOD Conference, pp. 73-84. 1998. [20] GUHA S.; RASTOGI R.; SHIM, K. Rock: a robust clustering algorithm for categorical attributes, Proceedings of 15th International Conference on Data Engineering, pp. 512521, 1999.

116

[21] HANSEN, P.; JAUMARD, B. Cluster Analysis and Mathematical Programming; Mathematical Programming no. 79. pp.191-215. 1997. [22] HAN,Y.; SHI,P. An improved ant colony algorithm for fuzzy clustering in image segmentation; Neurocomputing 70.pp 665671. 2007. [23] HASTIE, T.;TIBSHIRANI, R.; FRIEDMAN, J. The Elements of Statistical Learning. Data Mining , Inference, and prediction. Springer. 2001. [24] HINNEBURG, A.; KEIM, D. A. An ecient approach to clustering in large multimedia databases with noise, Proceedings of 4th International Conference on Knowledge Discovery and Data Mining, New York City, NY, pp. 5865. 1998. [25] JI, X.; MITCHEL, J. Branch-and-price-and-cut on the clique partitioning problem with minimum clique size requirement. Discrete Optimization, vol.4. pp. 87-102. 2005. [26] KARYPIS, G.; HAN, E. H.; KUMAR, V. Chamaleon: A Hierarchical Clustering Algorithm Using Dynamic Modeling, IEEE Computer, 32 , pp. 6875. 1999. [27] KAUFMAN,L.; ROUSSEEUM, P. J. Finding Groups in Data : An introduction to cluster Analysis. A Wiley-Intercience publication. 1990. [28] LASZLO, M.; MUKHERJEE, S. A Genetic Algorithm that exchanges neighboring centers for k-means clustering; Pattern Recognition Letters, 2007. [29] LIU, Y. ET AL. A tabu search approach for the minimum sum-of-squares clustering problems. Information Sciences. doi. 10.1016./j.ins.2008.01.022. 2008. [30] LORENA, L. A. N.; FURTADO, J. C. Constructive Genetic Algorithm for Clustering Problems. Evolutionary Computation, vol. 9, no. 3, pp. 309327, 2001. [31] MACQUEEN,J. B. Some Methods for classication and Analysis of Multivariate Observations, Proceedings of 5-th Berkeley Symposium on Mathema117

tical Statistics and Probability, Berkeley, University of California Press 1, 1967. [32] MARONNA, R.; JACOVKIS, P. M. Multivariate clustering procedures with variable metrics. Biometrics30, pp. 499-505. 1974. [33] MA, S.; WANG, T. J.; TANG,S. W. A New Fast Clustering Algorithm Based on Reference and Density, Lectures Notes in Computer Science, vol. 2762, Springer, Berlin, pp. 214225, 2003. [34] MA, W. M.; EDEN,C.; TOMMY, W.S. A new shifting grid clusting algorithm, Pattern Recognition 37, pp. 503514, 2004. [35] MEHROTRA, A.; TRICK, M. A. Cliques and clustering: a combinatorial approach. Operations Research Letters, 22, 1998. [36] NG, R. T.; HAN, J. Ecient and Efective clustering methods for spatial data mining. In Proc. of the VLDB Conference, Santiago, Chile, September 1994. [37] OSMAN, I. H. ; CHISTOFIDES, N. Capacitated clustering problems by hibrid simulated annealing and tabu search, International Transactions in Operational research, pp 317-336, 1994. [38] RAO, M. R. Cluster Analysis and Mathematical Programming; Journal of the American Statistical Association, vol. 66, pp.622-626. 1971. [39] REDMOND, S. J. , HENEGGHAN , C. A method for initialing the k-means clustering algorithm using kd-trees. Pattern Recognition Letters 28, 2007. [40] RUSPINI, E. H. Numerical methods for fuzzy clustering. Information Science. pp. 319-350. 1970. [41] SANGHAMITRA, B.; UJJWAL, M. An evolutionary technique based on KMeans algorithm for optimal clustering, Information Sciences,146, pp. 221237. 2002.

118

[42] SHEIKHOLESLAMI,G.; CHATTERJEE,S.; ZHANG, A. WaveCluster:

wavelet-based clustering approach for spatial data in very large data bases, VLDB J. 8, pp. 289304, 2000. [43] SHELOKAR, P.S; JAYARAMAN, V.K.; KULKARNI, B.D. An ant colony approach for clustering. Analytica Chimica Acta 509, pp. 187195. 2004. [44] SOARES, S. S. F. Dissertao de Mestrado) Metaheur ca sticas para o Problema de Clusterizao Automtica . Orientador: Luiz Satoru Ochi. Programa ca a de Ps Graduaao em Computao,IC/UFF, 2004. o c ca [45] SUNG, C. S.; JIN, H. W. A tabu-search based heuristic for clustering, Pattern Recognition 33, pp. 849-858, 2000. [46] TRINDADE, A. R. (Dissertao de Mestrado) Metaheuristicas para o Problema ca de Clusterizaao de Clulas de Manufatura . Orientador: Luiz Satoru c e Ochi. Programa de Ps Grad. em Computaao, IC/UFF, 2004. o c [47] TSENG., L. Y.; YANG, S. B. A genetic approach to the automatic clustering problem. Pattern Recognition 34 .pp 415-424. 2001. [48] VINOD, H. D. Integer Programming and Theory of Groups; J. American Statistic Association Vol. 64, pp. 506-519. 1969. [49] WANG, W.; YANG,J.; MUNTZ, R. Sting: a statistical information grid approach to spatial data mining, Proceedings ofthe International Conference on Very Large Data Bases, pp. 186195. 1997. [50] WANG,W.; YANG,J.; MUNTZ,J; Sting+: an approach to active spatial data mining, Proceedings of15th International Conference on Data Engineering, pp. 116125, 1999. [51] WANG, X. ET AL. Clues: A non-parametric clustering method based on local shrinking, Computational Statistics & Data Analysis. pp.286298, 2007. [52] WELCH, J. W. Algorithmic complexity: three NP-hard problems in computacional statistics. Journal of Statistical Computation and Simulation 15. pp. 17-25. 1983 119

[53] YUJIAN, L. A clustering algorithm based on maximal -distant subtrees, Pattern Recognition, 2006. [54] XAVIER , A. E. The Hyperbolic Smoothing Clustering Method; Pattern Recognition Letters. 2009, di 10.1016/j.patcog.2009.06.018. 2009. o [55] ZHANG, T.; RAMAKRISHNAN, R.; LIVNY, M. Birch: An ecient data clustering method or very large databases. SIGMODRec. 25, 2, pp. 103114. 1996. [56] ZHAO,Y. C.; SONG,J. Gdilc: a grid-based density-isoline clustering algorithm, Proceedings ofInternational Conferences on Info-tech and Info-net, Vol. 3, pp. 140145, 2001.

120

Você também pode gostar