• Nenhum resultado encontrado

ALGORITMOS EVOLUTIVOS EFICIENTES PARA O PROBLEMA DE CLUSTERIZAÇÃO EM GRAFOS ORIENTADOS. Carlos Rodrigo Dias, Luiz S. Ochi

N/A
N/A
Protected

Academic year: 2021

Share "ALGORITMOS EVOLUTIVOS EFICIENTES PARA O PROBLEMA DE CLUSTERIZAÇÃO EM GRAFOS ORIENTADOS. Carlos Rodrigo Dias, Luiz S. Ochi"

Copied!
13
0
0

Texto

(1)

A pesquisa Operacional e os Recursos Renováveis 4 a 7 de novembro de 2003, Natal-RN

ALGORITMOS EVOLUTIVOS EFICIENTES PARA O PROBLEMA DE CLUSTERIZAÇÃO EM GRAFOS ORIENTADOS

Carlos Rodrigo Dias, Luiz S. Ochi

Instituto de Computação - Universidade Federal Fluminense

Rua Passo da Pátria, 156, Bloco E, 3 andar, 24210-240, Niterói, Rio de Janeiro, Brasil e mail: cdias@ic.uff.br, satoru@dcc.ic.uff.br

RESUMO

Este artigo apresenta sugestões para melhorar o desempenho de algoritmos genéticos (AGs) na solução de problemas de elevada complexidade computacional. São propostas alterações em um AG básico incluindo etapas de busca local e/ou diversificação da região de busca. O desempenho de cada uma destas versões é avaliado através de um problema de particionamento de grafos. Resultados computacionais mostram que os algoritmos evolutivos propostos superam um algoritmo genético proposto na literatura, melhorando sensivelmente a qualidade das soluções finais em tempos computacionais semelhantes.

Palavras-chave: metaheurísticas, algoritmos evolutivos, clusterização automática em grafos.

ABSTRACT

This paper presents improvements on the performance of standard genetic algorithms (GAs) in the meaning of solving computational problems with high complexity. These improvements is related to some modifications in the GA including local search and/or diversification procedures. The performance of each proposed version is evaluated in a graph partitioning problem. Extensive computational experiments show that our evolutionary algorithms outperforms a genetic algorithm from the literature, by improving the solution quality significantly with similar computational times.

(2)

1. INTRODUÇÃO

A clusterização corresponde ao processo de agrupamento de elementos de um conjunto tal que os grupos formados, ou clusters, representem uma configuração em que cada elemento possua uma similaridade maior com qualquer elemento do mesmo grupo do que com elementos dos demais grupos. Existem várias aplicações para a clusterização em diversos campos de pesquisa e, por isso, ela tem sido tratada exaustivamente na literatura e, mais recentemente, vem sendo utilizada na mineração de dados [Ber02], bioinformática [HSL+99], engenharia de software [DMM99], dentre outras áreas.

Existem várias técnicas de clusterização na literatura e algumas são mais adequadas para determinados tipos de aplicações.

Dentre as técnicas mais exploradas estão os métodos hierárquicos e os métodos de

particionamento.

Nos algoritmos de clusterização hierárquica os clusters vão sendo formados gradativamente através do agrupamento ou desagregação de elementos/clusters, formando uma hierarquia de

clusters, que é representada através de uma árvore de clusters. A formação dos clusters é

interrompida quando o número de clusters desejado for obtido (se este número tiver sido pré definido) ou caso alguma outra condição de parada ocorra. A falta de refinamento no agrupamento ou desagregação normalmente dá um caráter guloso ao método hierárquico tradicional.

Por outro lado, nos algoritmos de clusterização que utilizam algum método de particionamento, o conjunto de elementos é dividido em vários subconjuntos e a configuração obtida é avaliada. Caso a avaliação da clusterização indique que a configuração não atende ao problema em questão, nova configuração é obtida através da migração de elementos entre os

clusters, e o processo continua de forma iterativa até que algum critério de parada seja alcançado.

Nos métodos de particionamento, a avaliação de todas as alternativas possíveis dos clusters é computacionalmente inviável, limitando com isso o uso exclusivo de métodos exatos para a sua solução. Dessa forma, métodos heurísticos ou aproximados têm sido propostos com frequência e, mais recentemente, vem crescendo a utilização de algoritmos evolutivos, especialmente os algoritmos genéticos (AGs), aplicados a problemas de clusterização [Col98], [CL01].

Embora os AGs sejam muito utilizados na literatura em problemas de otimização combinatória, o desempenho destes, na sua forma tradicional, deixam um pouco a desejar quando comparados com outras metaheurísticas. Com o intuito de tentar melhorar o desempenho dos AGs, diferentes versões do AG tradicional têm sido propostas.

Dentre as variações mais usadas de AGs, podemos citar as propostas de acrescentar novos operadores genéticos e novos mecanismos para a geração das populações, bem como para o processo de seleção e reprodução dos indivíduos. Dessa forma uma melhora significativa na qualidade das soluções obtidas vem sendo alcançada pela evolução dos AGs [OR00], [DVO98a], [DVO98b], [OVD01], [DOF97].

Nessa evolução, Glover [Glo77] introduziu a abordagem evolucionária denominada Scatter

Search, que apresenta características semelhantes e complementares aos AGs, e que tem se

mostrado promissora na resolução de problemas de otimização [Lag99], [GL00], [MLC02]. Na abordagem Scatter Search, a idéia principal é trabalhar com uma versão mais determinística de AGs utilizando a idéia da combinação linear de boas soluções (soluções elite) obtidas durante as iterações do algoritmo, sendo cada par destas soluções elite chamadas de solução base e solução alvo. Numa combinação linear de duas ou mais soluções elite, analisamos cada solução intermediária entre elas e espera-se que neste processo, alguma combinação forneça soluções melhores do que as soluções elite.

Em outra proposta de evolução dos AGs, Moscato [Mos89] introduziu os algoritmos

meméticos (AMs), cuja representação formal foi apresentada por Radcliffe e Surry [RS94]. Nos

AMs, é inserida uma busca local a ser aplicada a todos ou parte dos indivíduos ao longo das iterações do algoritmo. Devido ao elevado custo da aplicação de uma busca local a um grande número de indivíduos, os AMs são melhor utilizados quando a busca local for aplicada de tempos em tempos somente a um pequeno número de indivíduos e se a função de aptidão puder ser decomposta e, dessa forma, uma pequena alteração em um indivíduo durante a busca local não

(3)

necessitará atualizar a aptidão do indivíduo como um todo, mas apenas o que se refere à parte afetada pela alteração.

Outra variação dos AGs, proposta por Lorena e Furtado [LF01], corresponde aos Algoritmos

Genéticos Construtivos (AGC), que agregam novas características à proposta tradicional de AG.

Dentre as principais características agregadas está a associação de um rank a cada indivíduo, considerando que um indivíduo pode ser constituído de blocos de sub-soluções ou uma solução completa, e a utilização de uma função de aptidão bi-objetiva, que é utilizada para avaliar tanto as soluções completas quanto os blocos de sub-soluções, os chamados schemata.

Um gargalo dos AGs, se refere aos seus tempos computacionais exigidos e que normalmente são maiores que os exigidos por outras heurísticas. Dentre as alternativas para reduzir esta limitação, está calibrar adequadamente os seus parâmetros, como o tamanho da população, ou trabalhar com versões paralelas de AGs[DVO98a], [DVO98b], [OVD01], [DOF97].

A meta principal desse trabalho é apresentar procedimentos para tornar um AG mais eficiente. Para isso inicialmente foi implementado um AG tradicional (AGB), proposto por Doval

et. al. [DMM99] para a clusterização em grafos, e, em seguida, são sugeridos diferentes ajustes e incorporados novos módulos ao AGB com o intuito de tentar melhorar as soluções obtidas sem que haja um aumento significativo no tempo de execução.

Dessa forma, a contribuição desse trabalho diz respeito à investigação de quanto um AG pode ser melhorado a partir de alterações que não comprometam o seu desempenho global.

Este artigo está organizado da seguinte forma: na Seção 2 é descrito o problema de clusterização em grafos e apresentado o algoritmo genético proposto por Doval et. al. [DMM99]. Em seguida, na seção 3, são descritas as variações propostas. Na seção 4 são apresentadas informações sobre as implementações, os resultados computacionais obtidos e a análise dos resultados obtidos. As conclusões e propostas futuras são apresentadas na seção 5, seguida da bibliografia utilizada.

2. PARTICIONAMENTO DE GRAFOS

O processo de clusterização aplicado a grafos é também referenciado na literatura como

problema de particionamento de grafos. Neste caso, a clusterização tem como objetivo agrupar os

vértices de um grafo em clusters, de forma que os vértices que estejam mais fortemente conectados fiquem reunidos em um mesmo cluster, ao mesmo tempo em que as conexões entre os vértices de diferentes clusters sejam minimizadas [DMM99], [HS99], [MMM94].

A clusterização em grafos é um problema NP-COMPLETO, o que justifica a utilização de heurísticas, com especial atenção para os AGs, para a solução de problemas altamente combinatórios.

O AG tradicional implementado neste trabalho, será referenciado a partir daqui como AG

básico (AGB), foi proposto por Doval et. al. [DMM99] para obter, de forma automática, um bom

particionamento (ou clusterização) de um grafo de dependências de módulos (MDG - Module

Dependency Graph).

Um MDG é uma maneira utilizada pelos projetistas de software para tornarem sistemas complexos mais compreensíveis, e corresponde a um grafo orientado onde os módulos de um sistema são representados pelos vértices e as dependências estáticas entre os módulos são representadas pelas arestas do grafo.

No AGB proposto, em contraste com a maioria dos métodos utilizados para clusterização, não é necessário especificar previamente o número de clusters em que o MDG, que corresponde a um grafo orientado, deve ser particionado, sendo a obtenção do melhor número de clusters parte do processo de solução do problema. Com isso a complexidade desta variante é maior que os modelos onde o número de clusters é previamente fixado.

Durante a execução do AGB, cada indivíduo da população corresponde a uma solução viável, podendo cada solução possuir um número diferente de clusters. Para avaliar a qualidade de uma clusterização de um grafo orientado, os autores apresentam uma métrica que leva em consideração as diversas conexões entre os vértices do grafo.

(4)

A métrica, denominada qualidade de modularização (MQ – Modularization Quality), é utilizada como a função de aptidão do AG. O objetivo do AG é encontrar um bom (possivelmente ótimo) particionamento através da maximização da MQ, que é definida como sendo:



=

>

=

− = =

1

1

2 ) 1 ( 1 , , 1

k

A

k

B

k

A

MQ

i k k k j i ij k

i i onde: Ai é a intraconectividade do cluster i Bi,j é a interconectividade entre clusters i e j k é o total de clusters da solução

A intraconectividade Ai de um cluster i é uma medida que considera o total de arestas dentro

de cada um dos clusters da solução (densidade do cluster), sendo definida como:

2

i i i

N

A

=

µ

, onde µi é total de arestas internas do cluster i e Ni o seu total de vértices.

A interconectividade Bi,j entre os clusters i e j é uma medida que leva em consideração o total

de arcos entre os pares de clusters de uma solução. Considerando um par de clusters i e j, com εij

sendo total de arcos do cluster i para o cluster j, Ni e Nj os totais de vértices dos cluster i e j,

respectivamente, a medida da interconectividade Bi,j entre o par de clusters é dado por:



=

=

se

i

j

N

N

j

i

se

B

j i ij j i

2

0

,

ε

Os valores da intraconectividade e interconectividade variam entre 0 e 1 e uma clusterização de boa qualidade é aquela que possui um valor grande para o somatório da intraconectividade de cada um dos clusters e um valor pequeno para o somatório da interconectividade entre todos os pares de clusters possíveis no particionamento.

O valor de MQ corresponde à diferença entre a média de intraconectividade e a média de interconectividade, podendo variar entre –1 e 1. Tendo em vista que a função MQ premia a obtenção de clusters coesos (com alto valor de intraconectividade) e penaliza particionamentos com muitas dependências entre seus clusters (alto valor de interconectividade), quanto maior for o valor de MQ, melhor será a clusterização.

Como exemplo, a Figura 2.1 indica o valor de MQ para duas clusterizações diferentes para um mesmo grafo com 8 vértices, sendo a clusterização (a) melhor do que a clusterização (b).

A representação utilizada para que seja possível associar cada indivíduo do AGB a uma solução para o problema de clusterização é a codificação apresentada em Cole [Col98] como

group-number.

Na codificação group-number uma clusterização de n objetos é representada por um vetor de

n inteiros onde o i-ésimo inteiro indica o número do grupo contendo o i-ésimo objeto. Portanto, no

particionamento de grafos, para cada indivíduo, é utilizado um vetor de inteiros de tamanho n, onde

n é o total de vértices do grafo. A Figura 2.2 mostra um indivíduo representando uma solução de

clusterização para um grafo com 8 vértices.

1 3 5 7 4 8 2 6 1 3 5 7 4 8 2 6 (a) (b)

(5)

MQa = 0.3958 MQb = 0,0833

Figura 2.1 – Dois exemplos de clusterização e os respectivos valores de MQ

Figura 2.2 – Exemplo de representação group-number e a clusterização correspondente No AGB, Doval et. al. [DMM99] propõem que o número de indivíduos das populações ao longo das gerações seja mantido fixo, com um total de 10 × n indivíduos, onde n é o total de vértices do grafo, mas analisando apenas grafos de pequenas dimensões (menor ou igual a 100).

Entretanto, utilizando este critério, o tamanho da população pode se tornar muito grande para grafos com número elevado de vértices, como por exemplo da ordem de milhares de vértices.

Dessa forma, na implementação do AGB nesse trabalho foi adotado o tamanho da população como sendo [máximo {100, n}], que, empiricamente, mostrou ser um valor satisfatório, em comparação com a proposta inicial. Conforme especificado no AGB, a população inicial é gerada de forma aleatória, podendo cada indivíduo corresponder a uma clusterização com número de

clusters diferente dos demais.

Partindo-se da geração da população inicial, dá-se início ao processo evolutivo, onde populações de indivíduos fazem parte das gerações. Cada geração corresponde a uma iteração do AG, em que ocorrem inicialmente os passos de seleção e reprodução de uma população para gerar uma nova população.

Durante a seleção e reprodução de uma população, n indivíduos são escolhidos da população atual de acordo com os valores das suas respectivas funções de aptidão. A seleção no AGB, utiliza o método da roleta, complementado com elitismo, sendo este último utilizado para garantir que o indivíduo mais apto da população corrente seja selecionado para a próxima população. Os n indivíduos selecionados formam a nova população, que será utilizada na próxima iteração do AG. No AGB, Doval et. al. [DMM99] estipula o total de iterações realizadas como sendo 200 × n, onde

n é o número de vértices do grafo.

Vale observar que, a partir desta definição, para grafos contendo centenas, ou milhares, de vértices o número de iterações pode ser muito elevado.

Dessa forma, na implementação do AGB, adotamos o valor de 100 × n, que é um número razoável de iterações e, além de produzir resultados satisfatórios, reduziu pela metade o tempo total de execução nos testes realizados nesse trabalho.

Tendo em vista que, mesmo com o ajuste no número de gerações com base no total de vértices, pode-se ter um número de gerações e tempo de execução elevados, adotamos um segundo critério de parada restringindo o tempo de execução do algoritmo para no máximo 4 horas.

Em cada geração, imediatamente após a seleção e reprodução, é aplicado o operador de cruzamento, que é usado para combinar pares de indivíduos com o objetivo de obter novos indivíduos (a Figura 2.3a apresenta um exemplo, onde o número inteiro associado a r-ésima posição do indivíduo corresponde ao cluster onde o elemento r está agrupado).

O operador mutação é aplicado a cada indivíduo da população após a aplicação do operador de cruzamento (Figura 2.3b).

No operador mutação, o valor de cada i-ésimo elemento do indivíduo, com 1 ≤ i ≤ n, possui uma mesma probabilidade de ser trocado por um valor aleatório q, tal que 1 ≤ q ≤ n, ou seja, o

1 3 5 7 4 8 2 6 1 2 3 4 5 6 7 8 1 2 1 3 1 2 1 3 Indivíduo: vértices

(6)

número máximo de clientes será o número de elementos (vértices) do problema (grafo) associado. A taxa de aplicação do operador mutação é igual a 0,004 × log2(n).

Figura 2.3 – Exemplos de aplicação dos operadores cruzamento (a) e mutação (b).

3. MELHORANDO O DESEMPENHO DO AGB

Resultados obtidos preliminarmente a partir da execução do AGB mostraram-se insatisfatórios para grafos orientados contendo algumas dezenas de vértices, o que pode ser comprovado a partir dos testes cujos resultados são apresentados na Seção 4. Apesar dos resultados insatisfatórios do AGB, foi constatado que a sua função MQ permite uma boa avaliação da qualidade de uma clusterização, mesmo sem uma definição prévia da quantidade de clusters da solução.

A partir da análise do comportamento do AGB nesta bateria de testes preliminar, foi possível identificar seus pontos deficientes. A partir daí, propomos alternativas para tentar melhorar o seu desempenho no tocante a qualidade dos resultados gerados. As propostas vão desde a otimização de parâmetros até o desenvolvimento de novos módulos a serem adicionados ou como substitutivos no AGB.

As sugestões são implementadas em diferentes versões do AGB, e podemos colocar como destaques: um mecanismo de calibração no número de clusters considerados durante o operador mutação, a inserção de um procedimento de busca local e uma rotina para gerar uma nova população heterogênea com base nas informações contidas na melhor solução encontrada até o momento. A seguir, é descrita cada uma das novas versões propostas:

• Versão 1 (AG1)

Corresponde a uma versão do AGB, com a inserção de uma busca local a ser executada em

cada geração, após a aplicação do operador mutação, sobre o indivíduo mais apto da população.

O objetivo da busca local é tentar refinar o indivíduo mais apto em cada geração, através da transposição dos vértices entre os clusters.

O processo de transposição é simples e realizado em cada i-ésimo elemento do vetor solução, através da substituição do seu valor. Esta transposição é determinada pelas conexões de cada vértice, que está em um determinado cluster, com os demais clusters da solução e só é realizada uma vez para cada vértice do grafo, a cada aplicação da busca local. Uma transposição só é efetivada se conseguir melhorar a aptidão do indivíduo.

De acordo com a natureza da solução para o problema de particionamento de grafos proposta, não é possível decompor a função de aptidão e, portanto, a cada transposição é necessária uma nova avaliação de todo o indivíduo e não apenas do gene alterado. Isto exige um custo computacional elevado e, por isto, a busca local será aplicada a apenas um indivíduo de cada geração: o indivíduo mais apto. 1 2 1 3 1 2 1 3 2 1 1 1 3 2 2 3 1 2 1 1 3 2 2 3 2 1 1 3 1 2 1 3 1 2 1 3 1 2 1 3 1 2 1 3 7 2 1 3 (a) (b)

(7)

• Versão 2 (AG2)

Essa versão é baseada no AG1, entretanto, com a introdução de uma forma de calibrar o número de clusters de uma solução por um processo de mutação. Ou seja, a cada geração, considerando nc como sendo o número de clusters da melhor solução obtida até a geração corrente, o valor aleatório q do cluster sorteado para cada gene selecionado para ser alterado no operador mutação será obtido dentro do intervalo 1 ≤ q ≤ nc + (10% de nc).

O objetivo desta alteração é permitir que ocorra um ajuste gradativo no número máximo de

clusters das soluções consideradas em cada geração, convergindo-se para o número de clusters

ótimo, ao mesmo tempo em que a busca local é utilizada para acelerar esta convergência. • Versão 3 (AG3)

Essa versão utiliza a busca local introduzida no AG1 e a calibração do número de clusters no processo de mutação, introduzida no AG2, entretanto, nessa versão foi realizada uma modificação no algoritmo de busca local. Recordando o que foi exposto, no AG1, a cada aplicação da busca local sobre um indivíduo, um vértice pode ser transposto de um cluster para outro apenas uma vez, e, no final da busca local pode-se ter uma nova configuração de clusterização.

A proposta do AG3 é que, imediatamente após a transposição de todos os vértices em uma busca local, e consequente obtenção de uma nova clusterização, deve-se aplicar a busca local novamente para verificar se, a partir desta nova clusterização podem ocorrer novas transposições de vértices entre os clusters, obtendo assim uma outra clusterização que deverá ser melhor do que a obtida na primeira aplicação da busca local.

Nesta nova proposta, esta “reaplicação” da busca local deverá ocorrer enquanto a clusterização obtida for sendo melhorada na busca local. Este processo será referenciado daqui a diante como reaplicação da busca local (busca local conhecida como best improvement).

• Versão 4 (AG4)

Essa versão utiliza a busca local introduzida no AG1 com a alteração proposta no AG3, denominada reaplicação da busca local, acrescida de uma nova proposta. Nesta nova proposta, após a geração aleatória da população inicial, a busca local é aplicada ao melhor indivíduo desta população (best iter).

Em seguida, é gerada uma nova população através de um módulo de diversificação de uma população, em que o indivíduo mais apto gerado até então (best global) é replicado n vezes (onde n é o tamanho da população) e em cada cópia do best global, selecionamos uma ou mais janelas onde o tamanho e as posições destas janelas são escolhidos de forma aleatória.

Obtidas essas janelas, para cada cópia, os elementos do interior destas janelas são apagados e reconstruídos aleatoriamente. No exemplo da Figura 3.2, uma população, com 5 indivíduos, é criada com cópias do best global, inserindo valores aleatórios em janelas de tamanhos e posições aleatórias.

O objetivo deste procedimento é investigar uma região do espaço de busca próximo do melhor (best global), sem contudo perder o caráter estocástico do procedimento. É importante ressaltar que os demais operadores, cruzamento e mutação, continuam sendo utilizados da forma definida no AG básico. Nas demais iterações, sempre que o best global for atualizado, ativa-se o processo de diversificação.

É importante ressaltar que no AG4, a diversificação sempre utiliza o indivíduo mais apto obtido após a execução da busca local. Ou seja, mesmo que numa dada iteração, o best global seja atualizado várias vezes na fase de reprodução pelos operadores utilizados ou durante a busca local, somente ao final da iteração é que a diversificação será ativada (se for o caso).

(8)

Figura 3.2 - Exemplo de procedimento de diversificação baseada no melhor indivíduo gerado até a iteração corrente

• Versão 5 (AG5)

Esta versão possui as mesmas características do AG4, inclusive o módulo de diversificação, diferindo apenas no número de vezes que o módulo de diversificação pode ser executado a cada iteração.

Como foi descrito no AG4, o módulo de diversificação é ativado uma vez após a geração da população inicial e uma vez a cada atualização do best global.

Dessa forma, no AG4 a utilização do módulo de diversificação poderia obter uma solução melhor do que o best global, o que não é considerado tendo em vista que o próximo passo é a população diversificada obtida ser selecionada para a próxima iteração.

O AG5 foi implementado com o objetivo de considerar essa possibilidade, ou seja, após a execução do módulo de diversificação na atualização do best global, a população obtida será novamente avaliada e a busca local será aplicada sobre o melhor da população.

Caso o melhor obtido pela busca local seja melhor do que o best global, este será novamente atualizado e o módulo de diversificação será novamente ativado.

Este processo será repetido enquanto o módulo de diversificação, seguido da aplicação da busca local, atualizarem o best global.

Este processo repetitivo será referenciado neste trabalho como diversificação com repetição e vale observar ele não deve ser considerado como sendo uma iteração da evolução do AG.

• Versão 6 (AG6)

Esta versão é baseada no AG4, entretanto, foi realizada uma alteração no seu operador mutação introduzindo o mecanismo de calibração no número estimado de clusters usado na versão AG2.

O objetivo desta alteração é permitir que ocorra um ajuste gradativo no número máximo de

clusters das soluções consideradas em cada geração, convergindo-se para o número de clusters

ótimo, ao mesmo tempo em que a reaplicação da busca local é utilizada para acelerar esta convergência e a utilização do módulo diversificação investiga uma região do espaço de busca.

• Versão 7 (AG7)

Esta versão é baseada no AG5, mas incluindo o mecanismo de calibração no número de

clusters introduzida no AG2.

O objetivo desta alteração é permitir que ocorra um ajuste gradativo no número máximo de

clusters das soluções consideradas em cada geração, convergindo-se para o número de clusters

ótimo, ao mesmo tempo em que a reaplicação da busca local é utilizada para acelerar esta convergência e a utilização, com a possibilidade de repetição, do módulo diversificação investiga uma região do espaço de busca.

1 1 1 3 2 2 1 3 diversificação best global 1 2 4 3 2 2 1 1 nova população 1 1 3 5 1 5 1 3 2 7 3 3 2 3 4 3 1 1 2 5 2 2 1 3 1 1 1 3 2 5 5 2 indivíduo 1 indivíduo 2 indivíduo 3 indivíduo 4 indivíduo 5

(9)

3.1. Quadro Resumo das Versões

O quadro apresentado na Tabela 3.1 indica, de forma comparativa, as características de cada versão:

Versões do AG implementados módulos

incorporados AGB AG1 AG2 AG3 AG4 AG5 AG6 AG7

Ajuste no nº de clusters sorteados X X X X

Busca local X X X X X X X

Reaplicação da Busca Local X X X X X

Diversificação X X X X

Diversificação com Repetição X X

Tabela 3.1 – Quadro resumo das versões de AGs implementados, onde uma célula com (X) indica que o módulo associado foi incorporado.

4. RESULTADOS COMPUTACIONAIS

Nos testes computacionais cada uma das sete (7) versões do AGB foram executadas sobre os mesmos grafos orientados e os resultados obtidos serão descritos nessa seção. Os algoritmos foram implementadas na linguagem C, e o sistema de computação utilizado nos testes foi um microcomputador com um processador Intel Pentium 800MHz, com 128 MB de memória RAM, e sistema operacional MS Windows 98.

Para a avaliação dos algoritmos propostos, devido a inexistência de nosso conhecimento de instâncias do problema de particionamento de grafos em bibliotecas públicas, foram criados, artificialmente, várias classes de grafos orientados, com quantidades diferentes de vértices: 10, 20, 40, 60, 80, 100, 120, 150, 200 e 500 vértices. Para cada quantidade de vértices indicada, foram criados dois ou mais grafos, com características de formação diferentes.

Devido a presença de componentes aleatór, f9s(.c,ra cads algoritm)mexecs oa cads gra0,

(10)

Total de vértices 10 20 40 60 80 100 120 150 200 500 Total

Número de grafos diferentes 2 2 2 4 2 2 2 2 2 2 22

Número de testes para cada grafo 3 3 3 3 3 3 3 3 3 3

Total de Testes Realizados 6 6 6 12 6 6 6 6 6 6 66

Tabela 4.1 – Tabela com parâmetros dos testes efetuados

0 . 0 0 0 5 0 0 . 0 0 0 1 0 0 0 . 0 0 0 1 5 0 0 . 0 0 0 2 0 0 0 . 0 0 0 2 5 0 0 . 0 0 0 3 0 0 0 . 0 0 0 3 5 0 0 . 0 0 0 1 0 2 0 4 0 6 0 8 0 1 0 0 1 2 0 1 5 0 2 0 0 N ú m e r o d e V é r t i c e s d o G r a f o Tempo ( s) A G BA G 1 A G 2 A G 3 A G 4 A G 5 A G 6 A G 7

Figura 4.1 – Tempo médio de execução, em segundos, para cada versão do AG, considerando cada tamanho de grafo (em quantidade de vértices)

Vamos denotar, para cada grafo G, a melhor solução obtida pela execução de todas as diferentes versões como best(G). O quadro apresentado na Tabela 4.2 indica o número de vezes que cada versão conseguiu obter a solução best(G), para cada grafo G. Vale observar que aqueles testes que não alcançaram a solução best(G), muitas vezes chegaram próximos a ela, como ilustra a Tabela 4.3 e as Figuras 4.2 e 4.3. 10 vért. 20 vért. 40 vért. 60 vért. 80 vért. 100 vért. 120 vért. 150 vért. 200 vért. 500 vért. AGB 6 0 0 0 0 0 0 0 0 0 AG1 6 3 3 10 3 2 0 1 3 0 AG2 6 3 3 7 2 4 1 0 1 2 AG3 6 0 3 7 2 4 1 0 2 3 AG4 6 0 4 8 2 2 1 0 3 0 AG5 6 0 3 9 1 2 1 1 3 1 AG6 6 0 3 6 2 1 0 0 2 3 AG7 6 0 3 6 0 0 0 0 1 1

(11)

10 vért. 20 vért. 40 vért. 60 vért. 80 vért. 100 vért. 120 vért. 150 vért. 200 vért. 500 vért. AGB 100.00% 94.07% 75.22% 71.69% 74.55% 67.73% 69.17% 71.22% 65.59% 61.56% AG1 100.00% 99.84% 99.26% 99.74% 99.14% 99.00% 98.19% 99.07% 99.36% 74.92% AG2 100.00% 99.84% 99.26% 99.31% 98.06% 99.35% 99.12% 98.36% 99.00% 98.58% AG3 100.00% 99.08% 99.26% 99.36% 98.94% 99.49% 99.02% 97.17% 98.96% 98.78% AG4 100.00% 99.39% 99.51% 99.62% 99.05% 98.83% 98.50% 97.51% 99.36% 75.07% AG5 100.00% 99.39% 99.26% 99.86% 98.41% 98.71% 98.64% 98.28% 99.33% 75.87% AG6 100.00% 99.39% 99.26% 98.60% 98.70% 97.71% 98.51% 97.48% 99.20% 98.41% AG7 100.00% 99.39% 99.26% 99.14% 98.01% 97.44% 97.29% 97.51% 98.78% 98.02%

Tabela 4.3 – Tabela com percentual do valor médio da aptidão obtido nos testes de cada versão, com relação ao best(G).

60.00% 65.00% 70.00% 75.00% 80.00% 85.00% 90.00% 95.00% 100.00% 10 20 40 60 80 100 120 150 200 500 AGB AG1 AG2 AG3 AG4 AG5 AG6 AG7

Figura 4.2 – Gráfico referente à tabela 4.3.

96.50% 97.00% 97.50% 98.00% 98.50% 99.00% 99.50% 100.00% 10 20 40 60 80 100 120 150 200 500 AG1 AG2 AG3 AG4 AG5 AG6 AG7

Figura 4.3 – Redução da escala do gráfico na Figura 4.2, para exibir detalhes dos algoritmos a partir do AG1.

Com base nas Figuras 4.2, 4.3 e nas Tabelas 4.2 e 4.3, podemos concluir que:

→ Todas as sete versões aqui propostas ao contrário do AG da literatura (ABG), produziram soluções finais médias no máximo a 3% do best(G) para todos os grafos G analisados com até 200 vértices (veja Tabela 4.3).

(12)

→ As duas últimas versões propostas: AG6 e AG7 além deste resultado, produziram soluções médias em no máximo 2% do best(G) para todos os grafos G com 500 vértices. Estes resultados os colocam como os melhores candidatos na solução de problemas de particionamento de grafos de grande porte.

→ Observamos no entanto que o desempenho de alguns algoritmos aqui analisados podem ter uma dependência forte no tipo de grafo utilizado. Isto foi comprovado através dos testes realizados, em que algumas versões se saíram bem melhores do que outras, para determinados grafos utilizados. Nestes termos observamos que as duas últimas versões (AG6 e AG7) foram as que se apresentaram mais robustas com desempenho médio em no máximo a 2,5% dos valores best(G), para todos os tipos e tamanhos de grafos G considerados (veja Tabela 4.3)).

5. CONCLUSÕES E SUGESTÕES

Neste trabalho o objetivo principal, foi a de analisar o comportamento de diferentes versões de algoritmos evolutivos baseados em populações de soluções. Para isto foram desenvolvidos desde uma versão básica de algoritmos genéticos (AGB), e outras incluindo: mecanismos de controle no número de clusters, módulos de busca local, mecanismos de diversificar uma população de soluções.

Os testes computacionais mostram que existe uma evolução dos algoritmos à medida que estas propostas são incluídas num AGB. Um outro resultado relevante foi verificar que as versões

mais completas (AG6 e AG7), ou seja, aquelas que incluem maior número de módulos propostos,

foram as que tiveram melhor desempenho em instâncias de grande porte (acima de 200 vértices). Em termos de sugestões para trabalhos futuros, estamos iniciando pesquisas onde o objetivo é desenvolver algoritmos evolutivos cooperativos e adaptativos cuja característica principal, é aproveitar as conclusões deste trabalho para obter algoritmos mais consistentes com desempenho médio estável em todos os tipos de grafos de entrada. Outro trabalho a ser iniciado, será a obtenção de versões paralelas dos algoritmos aqui apresentados, não somente para reduzir os tempos computacionais exigidos pelas versões seqüenciais, mas também para aproveitar a comunicação entre processadores para tentar melhorar a qualidade das soluções geradas.

6. REFERÊNCIAS

[Ber02] P. Berkhin, “Survey of Clustering Data Mining Techniques”, Accrue Software, 2002.

[CL01] Y. Chiun. e L. W. Lan, “Genetic Clustering Algorithms”, European Journal Of Operational Research (135) 2, pp. 413-427, 2001

[Col98] R. M. Cole, “Clustering with Genetic Algoritms”, Master’s thesis, Dept. of Computer Science, Univ. of Western Australia, 1998.

[DMM99] D. Doval, S. Mancoridis e B. S. Mitchell, “Automatic Clustering of Software Systems using a Genetic Algorithm”, Proceedings of the 1999 Int. Conf. on Software Tools and Engineering Practice (STEP '99), 1999.

[DOF97] L. M. A. Drummond, L. S. Ochi e R. M. V. Figueiredo, “Design and Implementation of a Parallel Genetic Algorithm for the Travelling Purchaser Problem”, In Applied Computing /ACM, pp. 257-263, 1997. [DVO98a] L. M. A. Drummond, D. S. Vianna e L. S. Ochi, “Genetic Algorithm for the Vehicle Routing Problem”, In Future Generations on Computer Systems, Elsevier, vol. 14(5-6), pp. 285-292, 1998.

[DVO98b] L. M. A. Drummond, D. S. Vianna e L. S. Ochi, “An evolutionary hybrid metaheuristic for solving the vehicle routing problem with heterogeneous fleet”, In Lecture Notes in Computer Scince, Springer Verlag, vol. 1391, pp. 187-195, 1998.

[GL00] F. Glover e M. Laguna, “Fundamentals of Scatter Search and Path Relinking”, Control and Cybernetics, vol 29, no. 3, pp. 653-684, 2000.

[Glo77] F. Glover, “Heuristics for Integer Programming Using Surrogate Constraints”, Decision Sciences, vol. 8, no. 7, pp. 156-166, 1977.

[HS99] E. Hartuv e R. Shamir, “A Clustering Algorithm based on Graph Connectivity”, Technical report, Tel Aviv University, Dept. of Computer Science, 1999.

[HSL99] E. Hartuv, A. Schmitt, J. Lang, et al., “An Algorithm for Clustering for Gene Expression Analysis”, Proc. of Third Annual International Conference on Computational Molecular Biology (RECOMB ‘99), 1999.

(13)

[Lag99] M. Laguna, “Scatter Search”, In Handbook of Applied Optimization, P. M. Pardalos and M. G. C. Resende (Eds.), Oxford University Press, pp. 183-193, 2002.

[LF01] L. A. N. Lorena e J. C. Furtado, “Constructive Genetic Algorithm for Clustering Problems”, Evolutionary Computation vol. 9, no. 3, pp. 309-327, 2001.

[MLC02] R. Martí, M. Laguna e V. Campos, “Scatter Search vs Genetic Algorithms”, Technical Report, University of Colorado at Boulder, 2002.

[MMM+94] H. S. Maini, K. G. Mehrotra, C. K. Mohan e S. Ranka, “Genetic Algorithms for Graph Partitioning and Incremental Graph Partitioning”, Proc. of the 1994 conference on Supercomputing, pp. 449-457, 1994.

[Mos89] P. Moscato, “On Evolution, Search, Optimization, Genetic Algorithms and Martial Arts: Towards Memetic Algorithms”, Technical report, Caltech Concurrent Computation Program, California Institute of Technology, 1989.

[OR00] L. S. Ochi e M. L. Rocha, “A new hybrid evolutionary algorithm for the vehicle routing and scheduling problems”, In Proc. Of the Ninth International Conference on Intelligence Systems: Artificial Intelligence Applications for the New Millennium, pp 135-140, 2000.

[OVD01] L. S. Ochi, D. S. Vianna e L. M. A. Drummond, “An asynchronous parallel metaheuristic for the period vehicle routing problem”, In Future Generations Computer Systems, Elsevier, vol. 17, pp. 379-386, 2001.

[RS94] N. J. Radcliffe e P. D. Surry, “Formal Memetic Algorithms”, In T. Fogarty, editor, Evolutionary Computing: AISB Workshop, volume 865 of Lecture Notes in Computer Science, pp. 1-16, Springer-Verlag, 1994.

Referências

Documentos relacionados

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

5 “A Teoria Pura do Direito é uma teoria do Direito positivo – do Direito positivo em geral, não de uma ordem jurídica especial” (KELSEN, Teoria pura do direito, p..

No entanto, maiores lucros com publicidade e um crescimento no uso da plataforma em smartphones e tablets não serão suficientes para o mercado se a maior rede social do mundo

esta espécie foi encontrada em borda de mata ciliar, savana graminosa, savana parque e área de transição mata ciliar e savana.. Observações: Esta espécie ocorre

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Este era um estágio para o qual tinha grandes expetativas, não só pelo interesse que desenvolvi ao longo do curso pelas especialidades cirúrgicas por onde

Taking into account the theoretical framework we have presented as relevant for understanding the organization, expression and social impact of these civic movements, grounded on

Neste estudo foram estipulados os seguintes objec- tivos: (a) identifi car as dimensões do desenvolvimento vocacional (convicção vocacional, cooperação vocacio- nal,