AGRUPAMENTO DE DADOS UTILIZANDO ALGORITMO DE COLÔNIA DE FORMIGAS. André Luís Lauro

Tamanho: px
Começar a partir da página:

Download "AGRUPAMENTO DE DADOS UTILIZANDO ALGORITMO DE COLÔNIA DE FORMIGAS. André Luís Lauro"

Transcrição

1 COPPE/UFRJ AGRUPAMENTO DE DADOS UTILIZANDO ALGORITMO DE COLÔNIA DE FORMIGAS André Luís Lauro Dissertação de Mestrado apresentada ao Programa de Pós-graduação em Engenharia Civil, COPPE, da Universidade Federal do Rio de Janeiro, como parte dos requisitos necessários à obtenção do título de Mestre em Engenharia Civil. Orientadora: Beatriz de Souza Leite Pires de Lima Rio de Janeiro Setembro de 28

2 AGRUPAMENTO DE DADOS UTILIZANDO ALGORITMO DE COLÔNIA DE FORMIGAS André Luís Lauro DISSERTAÇÃO SUBMETIDA AO CORPO DOCENTE DO INSTITUTO ALBERTO LUIZ COIMBRA DE PÓS-GRADUAÇÃO E PESQUISA DE ENGENHARIA (COPPE) DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIAS EM ENGENHARIA QUÍMICA. Aprovada por: Profª. Beatriz de Souza Leite Pires de Lima D.Sc. Prof. Nelson Francisco Favilla Ebecken, D.Sc. Profª. Valeria Menezes Bastos, D.Sc. RIO DE JANEIRO, RJ - BRASIL SETEMBRO DE 28 ii

3 Lauro, André Luís Agrupamento de Dados Utilizando Algoritmo de Colônia de Formigas/ André Luís Lauro. Rio de Janeiro: UFRJ/COPPE, 28. IX, 75 p.: il.; 29,7 cm. Orientadora: Beatriz de Souza Leite Pires de Lima Dissertação (mestrado) UFRJ/ COPPE/ Programa de Engenharia Civil, 27. Referencias Bibliográficas: p Agrupamento de Dados. 2. Colônia de Formigas. I. Lima, Beatriz de Souza L. P. de. II. Universidade Federal do Rio de Janeiro, COPPE, Programa de Engenharia Civil. III. Titulo. iii

4 AGRADECIMENTOS trabalho. Aos Professores Beatriz Lima e Nelson Ebeken, pela orientação e apoio ao longo deste Ao Diretor do HNMD, Alte Montenegro, e demais companheiros de trabalho, pela compreensão durante minha última e crucial etapa da elaboração da dissertação. Aos funcionários do Programa de Engenharia Civil da COPPE, em especial à Elizabeth, por seu apoio na minha vida acadêmica. Aos amigos e irmãos que, direta ou indiretamente contribuíram durante a elaboração deste trabalho, Paulo, Urias, Adriano, Rodrigo e Assis. Aos meus pais, Tarcísio e Cléa, a quem devo tudo o que já conquistei. E a Deus, acima de tudo. iv

5 Resumo da Dissertação apresentada à COPPE/UFRJ como parte dos requisitos necessários para a obtenção do grau de Mestre em Ciências (M.Sc.). AGRUPAMENTO DE DADOS UTILIZANDO ALGORITMO DE COLÔNIA DE FORMIGAS André Luís Lauro Setembro /28 Orientadora: Beatriz de Souza Leite Pires de Lima Programa: Engenharia Civil O objetivo deste trabalho é fazer um estudo sobre o Algoritmo Simples de Agrupamento por Colônia de Formigas. O Algoritmo de Agrupamento por Colônia de Formiga é uma ferramenta da linha de computação baseada em modelos encontrados na natureza, que busca solução para o problema de agrupamento de dados. O estudo apresenta uma revisão bibliográfica referente ao surgimento e modificações propostas no Algoritmo, analisando sua dinâmica e seus parâmetros, e apresenta experimentos de aplicação do algoritmo em algumas bases de dados. Para a realização dos experimentos, o algoritmo foi implementado no software MATLAB, de forma que se pudesse avaliar seu comportamento no que diz respeito aos seus parâmetros e convergência ao longo das iterações. v

6 Abstract of Dissertation presented to COPPE/UFRJ as partial fulfillment of the requirements for the degree of Master of Science (M.Sc.) DATA CLUSTERING APPLYING STANDART ANT CLUSTERING ALGORITHM André Luís Lauro September/28 Advisor: Beatriz de Souza Leite Pires de Lima Department: Civil Engineering The purpose of this work is to study and analyze the Standard Ant Clustering Algorithm (SACA) and other variations of this algorithm. The Standard Ant Clustering Algorithm is a computational intelligence paradigm inspired by the behavior of natural ants which seeks solutions for data clustering problems. This study presents a literature review concerning the appearance and proposed changes in the algorithm SACA, analyzing its dynamics and its parameters, and present experiments of applying this algorithm on some databases. The algorithm was implemented using MATLAB software, so that it is possible to evaluate a number of well-known benchmark data sets. The results were analyzed and commented in detail. vi

7 SUMÁRIO 1 - INTRODUÇÃO MOTIVAÇÃO OBJETIVO ORGANIZAÇÃO DO TRABALHO ANÁLISE DE AGRUPAMENTO O AGRUPAMENTO NO COTIDIANO PRINCIPAIS CONCEITOS ABORDADOS NOS ALGORITMOS DE AGRUPAMENTO OBJETO E ATRIBUTO DISTÂNCIA E SIMILARIDADE MATRIZ DE DADOS E DE SIMILARIDADE GRUPO OU CLUSTER CARACTERÍSTICAS RECOMENDÁVEIS PARA UM MÉTODO DE AGRUPAMENTO MÉTODOS DE AGRUPAMENTO MÉTODOS FUNDAMENTADOS EM PARTICIONAMENTO MÉTODOS HIERÁRQUICOS MÉTODOS BASEADO EM DENSIDADE MÉTODOS BASEADOS EM ESTRUTURAS DE GRADE MÉTODOS BASEADOS EM MODELOS ALGORITMO SIMPLES DE CLUSTERIZAÇÃO POR COLÔNIA DE FORMIGA INTRODUÇÃO DESCRIÇÃO DO ALGORITMO DE AGRUPAMENTO INSPIRADO EM COLÔNIA DE FORMIGAS PRINCÍPIOS BÁSICOS DINÂMICA DO ALGORITMO: PSEUDOCÓDIGO DO SACA FUNÇÕES E PARÂMETROS ENVOLVIDOS NO ALGORITMO PRINCIPAIS ALTERAÇÕES PROPOSTAS NO ALGORITMO BÁSICO DE CLUSTERIZAÇÃO SACA MÉTODO ANT-CLASS - APLICAÇÃO DO ALGORITOM K-MEANS APERFEIÇOAMENTOS NO ALGORITMO ORIGINAL ADAPTAÇÃO DA FUNÇÃO VIZINHANÇA vii

8 MEMÓRIA CURTA COM LOOK-AHEAD DOS AGENTES RAIO DE PERCEPÇÃO CRESCENTE SEPARAÇÃO ESPACIAL VIZINHANÇA PONDERADA MODIFICAÇÃO DAS FUNÇÕES PROBABILIDADES ORIGINAIS AJUSTE DOS PARÂMETROS INDEPENDENTES DOS DADOS PARÂMETROS DEPENDENTES DAS CARACTERÍSTICAS DA BASE DE DADOS APLICAÇÃO DE REDE-NEURAL E ALGORITMO GENÉTICO NO SACA REDE NEURAL ALGORITMO GENÉTICO EXPERIMENTOS UTILIZAÇÃO DE ALGORITMO GENÉTICO PARA A DEFINIÇÃO DOS PARÂMETROS DO SACA ALTERAÇÕES NO SACA UTILIZAÇÃO DO ALGORITMO GENÉTICO ADAPTATIVE ANT CLUSTERING ALGORITHM: A 2 CA PROBABILIDADE DE DEIXAR O OBJETO ROTINA DE ADAPTAÇÃO DE K P VISÃO PROGRESSIVA DO AGENTE HEURÍSTICA FEROMÔNIO SEGMENTAÇÃO DE DADOS EM UM NÚMERO DESCONHECIDO DE GRUPOS IMPLEMENTAÇÃO FLUXOGRAMA DESCRIÇÃO DA IMPLEMENTAÇÃO PARÂMETROS A SEREM ESTABELECIDOS ALTERAÇÕES IMPLEMENTADAS EXPERIMENTOS E RESULTADOS BASE DE DADOS RUSPINI EXPERIMENTO I EXPERIMENTO II EXPERIMENTO III EXPERIMENTO IV BASE DE DADOS IRIS viii

9 EXPERIMENTO I EXPERIMENTO II BASE DE DADOS HEART EXPERIMENTO I CONCLUSÕES E TRABALHOS FUTUROS REFERÊNCIAS BIBLIOGRÁFICAS...72 ix

10 1 - INTRODUÇÃO MOTIVAÇÃO A Análise de Agrupamento é uma importante atividade humana. Desde criança, nós aprendemos a distinguir diferenças entre grupos de objetos. Aprendemos as diferenças entre cachorros e gatos, entre animais e plantas, assim como muitos outros casos. Inconscientemente nós vamos continuamente melhorando nossa capacidade de distinguir grupos em tudo que observamos. Em data-mining, esta atividade é formalizada, estudada e largamente utilizada. Considerando o amplo espectro das ferramentas disponíveis nesta área de conhecimento humano, a Análise de Agrupamento é uma ferramenta fundamental. Ela permite extrair as primeiras informações, após seu pré-processamento, de uma base de dados que nunca tenha sido trabalhada. E obviamente extrai aquelas informações ocultas, que poderão ser trabalhadas, estudadas e utilizadas exaustivamente. Já existem muitas ferramentas para realizar esta atividade. Infelizmente, ainda não existe a ferramenta perfeita. Todas elas necessitam de muitos parâmetros de entrada, muitas vezes são parâmetros difíceis de serem definidos. E a maioria das ferramentas disponíveis necessita da informação de quantidade de grupos existentes na base de dados. Esta informação nem sempre é disponível. No primeiro contato que se tem com o algoritmo de agrupamento inspirado na natureza denominado Standart Ant Clustering Algorithm, SACA, pode-se observar que o mesmo possui uma vantagem com relação a maioria dos outros algoritmos de agrupamento. Ele não necessita da informação inicial do número de grupos da base de dados a ser trabalhada OBJETIVO O algoritmo de agrupamento por colônia de formigas é um algoritmo que foi proposto recentemente, e cujos recursos ainda não estão totalmente explorados. Ele teve sua primeira abordagem para aplicação como uma ferramenta de agrupamento de dados em 1994 (LUMER e FAIETA). Este trabalho tem o objetivo de esmiuçar o algoritmo e apresentá-lo de uma forma bem clara, de forma a possibilitar a avaliação de sua evolução, dinâmica e desempenho. 1

11 1.3 - ORGANIZAÇÃO DO TRABALHO A dissertação é composta, além deste capítulo, de seis outros capítulos que estão organizados da seguinte forma: O capítulo 2 faz uma abordagem do problema de agrupamento. Apresenta tópicos sobre o significado do agrupamento no cotidiano; os principais conceitos sobre o assunto, que serão largamente utilizados ao longo desta dissertação; as características recomendáveis para um método de agrupamento; e quais os principais métodos de agrupamento existentes. O capítulo 3 apresenta o Standart Ant Clustering Algorithm SACA, Algoritmo Simples de Agrupamento por Colônia de Formigas. Faz uma descrição do algoritmo original; apresenta seu pseudocódigo e as funções e parâmetros envolvidos. O capítulo 4 apresenta as principais alterações propostas no algoritmo original, existentes na literatura sobre o assunto. Estas propostas foram motivadas, principalmente, pelos problemas de convergência relatados na maioria dos artigos pertinentes. O capítulo 5 apresenta a implementação do algoritmo, assim como algumas das alterações apresentadas no capítulo anterior, no software MATLAB. O capítulo 6 apresenta alguns experimentos realizados com o algoritmo, com o objetivo de se fazer um estudo do comportamento de sua dinâmica e seus principais parâmetros. O capítulo 7 apresenta as conclusões do trabalho e aponta sugestões para trabalhos futuros em linhas de pesquisa abordando o algoritmo de colônia de formigas. 2

12 2 - ANÁLISE DE AGRUPAMENTO O AGRUPAMENTO NO COTIDIANO Em mineração de dados, o processo de se agrupar um conjunto de dados que representam um conjunto de objetos físicos ou abstratos em classes de objetos similares é chamado de agrupamento, ou clusterização. Um grupo é uma coleção de objetos que são similares entre si dentro do mesmo grupo, e são dissimilares em relação a objetos de outros grupos. Um conjunto de dados semelhantes, que atenda ao conceito citado, dentro de uma base de dados, pode ser considerado coletivamente como um grupo, ou cluster, para efeito de muitas aplicações. Em termos práticos, a Análise de Agrupamento tem sido largamente utilizada em numerosas aplicações, tais como reconhecimento de padrões, análise de dados, processamento de imagens e pesquisas de mercado. Seguem-se algumas das aplicações típicas das técnicas provenientes da Análise de Agrupamento: Nas grandes empresas, a clusterização, utilizandose as bases de dados relativos aos clientes, pode auxiliar o gerente a descobrir distintos grupos dos mesmos, definindo seus padrões de consumo. Em biologia, a técnica pode ser utilizada para se deduzir a taxonomia de plantas e animais, associando-se genes com a similaridade de suas funcionalidades, e esclarecer estruturas inerentes a populações. A análise de agrupamento também pode ser usada na Web para ajudar a classificar documentos com o objetivo de se descobrir informações. Trata-se de uma importante ferramenta de data-mining, que pode ser usada isoladamente, para o esclarecimento de distribuições de determinado conjunto de dados, observando-se as características de cada cluster. Por meio dessas ferramentas, pode-se identificar regiões densas e esparsas no hiper-espaço da base de dados, e, conseqüentemente, descobrir padrões gerais de distribuição, e correlações interessantes, até então ocultas, dentre os atributos dos dados. Pode ser usada, também, como um degrau de pré-processamento para outros algoritmos, como a classificação, que será operada considerando-se os grupos detectados. Como um ramo da estatística, a Análise de Agrupamento tem sido estudada há muitos anos, focando, principalmente, na análise de grupos baseada em distâncias (k-means). Diferentemente da ferramenta classificação, a clusterização não dispõe de conjuntos de classes pré-definidas para servirem como exemplo. Por esta razão, a clusterização é uma forma de aprendizagem baseada na observação, e não no exemplo. 3

13 Em data-mining, muito tem sido o esforço em se encontrar métodos eficientes para se fazer análise de agrupamento em grandes bases de dados. Muita pesquisa tem sido feita no sentido de se encontrar métodos de agrupamento que atendam ao máximo das características recomendáveis para sua eficiência na aplicação de casos reais. Um resumo dessas características será apresentado em item seguinte PRINCIPAIS CONCEITOS ABORDADOS NOS ALGORITMOS DE AGRUPAMENTO Serão apresentados, a seguir, alguns conceitos mais freqüentemente encontrados na análise de agrupamento, e que serão amplamente utilizados no presente trabalho OBJETO E ATRIBUTO Na literatura de análise de agrupamento, encontram-se diferentes palavras para expressarem o mesmo conceito. Os termos objeto, item, indivíduo, registro, observação denotam um item individual da base de dado. No presente trabalho serão utilizados, principalmente, os termos registro e item. Considerando-se um registro em um espaço, utilizam-se os termos variável ou atributo para denominarem as suas características observadas e registradas (os componentes escalares individuais). Um registro, portanto, possui vários atributos. Matematicamente, um conjunto de dados com n objetos, cada qual caracterizado por d atributos, é representado por D={x 1,x 2,...,x n }, onde x i =(x i1,x i2,...,x id ) T é o um vetor que representa o objeto de ordem i, e x ij é o componente que representa o atributo de ordem j do objeto x i. O número de atributos d é chamado de dimensionalidade do conjunto de dados DISTÂNCIA E SIMILARIDADE Distância e similaridade representam uma importante regra em análise de agrupamento. Na literatura sobre análise de agrupamento, medida de similaridade, coeficiente de similaridade, medida de dissimilaridade, ou simplesmente distância são termos utilizados para expressarem a quantificação de similaridade ou dissimilaridade entre dois objetos do conjunto de dados. 4

14 A generalização da fórmula de distância entre dois objetos é dada pela distância de Minkowski, a saber (HAN e KAMBER, 21): d q q q ( i, j) = ( x x + x x + + x x ) q i1 j 2 12 j 2... Onde q é um inteiro positivo. Esta fórmula representa a distância de Manhattan, quando q =1, e a distância Euclidiana, quando q=2. id jd MATRIZ DE DADOS E DE SIMILARIDADE Uma matriz de dados representa n registros, tais como pessoas, por exemplo, com d atributos, tais como idade, altura, peso, raça, e etc. A estrutura pode ser em forma de uma tabela relacional ou uma matriz n d (n objetos d variáveis): x : xn :... x x 1d : nd Matriz dissimilaridade representa as medidas de dissimilaridades por meio de uma tabela n n, onde d(i,j) é a medida de dissimilaridade entre os objetos i e j. De uma forma geral, d(i,j) é um número não negativo que se aproxima de quando os objetos i e j são altamente similares, e se torna maior quanto mais os objetos são dissimilares. Considerandose que d(i,j)=d(j,i), e d(i,i)=, a matriz toma a seguinte forma: d(2,1) d( 3,1 ) : d( n,1) d(3,2) : d( n,2) :

15 GRUPO OU CLUSTER Na Análise de Agrupamento, o termo grupo, cluster ou classe é utilizado para definir um subconjunto de objetos pertencentes a um conjunto de dados que possuem entre si alguma relação, que os definem como sendo do mesmo grupo. Geralmente, o senso comum sobre um cluster o define como sendo um conjunto de objetos cujos itens possuem algumas características, a saber: compartilham as mesmas propriedades (atributos) ou as possuem bem parecidas; possuem pequenas distâncias, ou dissimilaridades mútuas; são claramente distintos dos outros objetos, que não pertencem ao grupo, do conjunto de dados. Considerando-se o hiper-espaço dos atributos, um grupo normalmente ocupa uma região relativamente densa e contínua desse espaço, que podem constituir as mais diversas formas CARACTERÍSTICAS RECOMENDÁVEIS PARA UM MÉTODO DE AGRUPAMENTO agrupamento. Existem atualmente muitos métodos disponíveis para a realização da análise de Apesar de existirem alguns consensos, sobre as qualidades de muitos algoritmos tradicionais, e até alguns novos, não existe, ainda, um algoritmo perfeito, que atenda a todas as características requeridas para um método ideal. Pode-se enumerar as principais características recomendáveis para um algoritmo de agrupamento, a saber (HAN e KAMBER, 21): Escalabilidade - Muitos algoritmos de agrupamento funcionam muito bem quando são aplicados a pequenas bases de dados, contendo menos de 2 objetos. Existem, contudo, bases de dados contendo milhões de objetos. Se no agrupamento for considerado somente uma amostra da base de dados, os resultados poderão ser viciados. A escalabilidade é, portanto, uma característica altamente recomendável para um bom algoritmo. O mesmo deve funcionar tanto em bases pequenas quanto nas grandes, com um custo computacional compatível. 6

16 Capacidade de tratar diferentes tipos de atributos - Muitos algoritmos são projetados para agruparem dados baseados em distância (dados numéricos, portanto). Existem, no entanto, em bases de dados que requeiram um trabalho de agrupamento, vários tipos de atributos, tais como binários, nominais e ordinais. Capacidade de descobrir grupos com formatos diversos - Muitos algoritmos de agrupamento determinam os grupos baseados em medidas de distância Euclidiana ou Manhattan. Algoritmos baseados em tais medidas de distância tendem a encontrarem grupos esféricos com tamanhos e densidades similares. No entanto, um cluster pode possuir outra forma qualquer. É importante, portanto, que sejam disponibilizados algoritmos capazes de trabalharem e descobrirem diferentes formatos de clusters. Reduzida necessidade de parâmetros de inicialização Muitos algoritmos necessitam que sejam utilizados certos parâmetros para sua inicialização, tal como o número desejado de grupos. O resultado da análise do agrupamento desses algoritmos podem ser sensíveis aos parâmetros de entrada. E, normalmente, esses parâmetros são difíceis de serem estimados, principalmente em bases de dados com objetos com alta dimensionalidade. Isto não somente pode tornar-se um ônus para o usuário, mas pode acarretar um controle difícil da qualidade dos resultados obtidos. Capacidade de tratar dados com ruídos A maioria das bases de dados reais contém outliers, faltas de dados, dados desconhecidos, ou errados. Alguns algoritmos de clusterização podem ser sensíveis a essas exceções a ponto de conduzirem a um resultado de baixa qualidade. Independência da ordem de apresentação dos dados Alguns algoritmos são sensíveis à ordem que os dados são introduzidos. Por exemplo, alguns conjuntos de dados, quando apresentam os dados ordenados de forma diferente, podem gerar grandes diferenças na formação dos grupos pelo algoritmo. Isto é extremamente inconveniente, pois é importante que a ordem apresentada não interfira no resultado. No mundo real, não há como se ter o controle da ordenação mais adequada a um determinado algoritmo, principalmente quando a base de dados é muito extensa. 7

17 Tratar dados de alta dimensionalidade Uma base de dados ou uma data warehouse pode conter muitas dimensões, ou atributos. Muitos algoritmos são excelentes quando os dados possuem poucos atributos, tais como dois ou três. Os olhos humanos são excelentes para visualizarem agrupamentos, no máximo, em espaços tridimensionais. É um desafio, no entanto, a visualização de grupos em espaços de altas dimensões, especialmente quando se considera que os dados podem ser esparsos e podem formar grupos com as formas (hiper-formas) mais variáveis. Os algoritmos devem se adequar, portanto, para trabalharem com dados com maiores quantidades de atributos. Agrupamento de acordo com restrições impostas Há casos, no mundo real, em que é necessário estabelecerem-se vários tipos de limites para os quais se quer o agrupamento. Um exemplo seria o agrupamento de necessidades de clientes por regiões. Uma tarefa desafiante para um eficiente algoritmo seria encontrar grupos que satisfizessem determinadas limitações especificadas pelo usuário. Interpretabilidade e empregabilidade Os usuários de um algoritmo de agrupamento esperam que eles consigam resultados que possam ser interpretados, compreensíveis e utilizáveis. É importante, portanto, estudar qual o objetivo da aplicação que se deseja para se selecionar o método mais adequado, dentre os existentes ou disponíveis MÉTODOS DE AGRUPAMENTO Existem inúmeros algoritmos de agrupamento disponíveis atualmente na literatura. A escolha do algoritmo apropriado vai depender principalmente do tipo de dados no qual se quer trabalhar e qual o propósito da aplicação. Se a análise de agrupamento for utilizada como uma ferramenta exploratória ou descritiva, é possível e até recomendável que se tente vários algoritmos para se descobrir qual é o mais adequado. De uma forma geral, os métodos de agrupamento podem ser classificados de acordo com as seguintes categorias, de acordo com HAN e KAMBER, 21: 8

18 MÉTODOS FUNDAMENTADOS EM PARTICIONAMENTO Dado uma base de dados com n objetos, o algoritmo constrói k partições de dados, onde cada partição representa um cluster, e k n. Os dados são classificados em k grupos, que satisfazem as seguintes exigências: cada grupo deve conter pelo menos um objeto, e cada objeto deve pertencer a exatamente um grupo. Dado o valor de k, o número de partições a serem construídas, o método cria uma partição inicial. Então ele utiliza uma técnica de realocação iterativa que tenta melhorar as partições por meio do movimento dos objetos de uma partição para a outra. O critério geral de uma boa partição é que os objetos na mesma partição estejam próximos ou relacionados uns com os outros, ao passo que objetos de partições diferentes estejam distantes ou bem diferentes. Existem outros critérios para se julgar a qualidade das partições. Para se concluir o agrupamento com êxito, torna-se necessário o registro exaustivo de todas as possíveis partições. Ao invés disso, a maioria das aplicações adota um dos dois métodos: (1) algoritmo k-means, onde cada grupo é representado pela média dos valores dos objetos pertencentes ao mesmo; e (2) algoritmo k-medoid, onde cada cluster é representado por um objeto localizado próximo ao centro do grupo. Esses métodos de agrupamento heurísticos trabalham bem para encontrarem grupos em formatos esféricos, em bases de dados médias para grandes. Para encontrar grupos com formatos complexos e trabalhar com bases de dados grandes, o método baseado em particionamento puro já não atende tão eficazmente MÉTODOS HIERÁRQUICOS Um método hierárquico cria uma decomposição hierárquica de um dado conjunto de dados. Um método hierárquico pode ser classificado em aglomerativo ou divisor, baseado em como a decomposição hierárquica é formada. A abordagem aglomerativa, também chamada de abordagem bottom-up começa com cada objeto formando um grupo separado. Ele vai combinando sucessivamente os objetos ou grupos próximos, até que todos os grupos formem um único grupo (o mais elevado nível da hierarquia), ou até atingir uma determinada condição. A abordagem divisora, também denominada de abordagem top-down, inicia com todos os objetos pertencentes ao mesmo grupo. Em cada iteração sucessiva, um grupo é dividido em grupos menores, até cada grupo contiver somente um objeto ou uma determinada condição de parada. 9

19 MÉTODOS BASEADO EM DENSIDADE A maior parte dos métodos baseados em particionamento agrupa os objetos considerando-se a distância entre os mesmos. Desta maneira, esses métodos ficam limitados a encontrarem grupos em formato esférico, pois encontram dificuldades em descobrirem grupos com formatos distintos. Outros métodos foram desenvolvidos baseados na noção de densidade. A idéia geral é que o método faça um desenvolvimento contínuo de um dado grupo enquanto a densidade (número de objetos) em sua vizinhança exceda algum limite estabelecido, ou seja, para aquele objeto dentro de um dado grupo, a vizinhança de um dado raio deve conter um mínimo de objetos. Desta maneira, este método pode ser utilizado para filtrar outliers e descobrir grupos com formatos diversos MÉTODOS BASEADOS EM ESTRUTURAS DE GRADE Esses métodos dividem o espaço dos objetos em um número finito de células, de forma a formarem uma estrutura de grade. Todas as operações de agrupamento são realizadas nessa estrutura. A principal vantagem dessa abordagem é o tempo de processamento, que é independente do número de objetos, dependendo somente do número de células em cada dimensão do espaço dividido MÉTODOS BASEADOS EM MODELOS Esses métodos supõem um modelo estatístico para o agrupamento, e encontra o melhor ajuste dos dados para o dado modelo. Um algoritmo baseado em modelo aloca os grupos por meio da construção de uma função densidade que reflita uma distribuição espacial dos itens dos dados, de acordo com o modelo previamente estabelecido. 1

20 3 - ALGORITMO SIMPLES DE CLUSTERIZAÇÃO POR COLÔNIA DE FORMIGA INTRODUÇÃO O comportamento coletivo complexo dos insetos sociais forma-se oriundo da interação do comportamento simples de cada indivíduo que forma a coletividade. Esse comportamento permite o desenvolvimento de um largo espectro de atividades essenciais para o desenvolvimento e sobrevivência da coletividade afim. As atividades vão desde a procura por alimentos e construção de ninhos, até o controle térmico da colônia e arrumação da ninhada. Formação de cemitérios e arrumação da ninhada são dois exemplos notáveis de comportamento coletivo de insetos. A formação de cemitérios tem sido observada em diferentes espécies de formigas, tais como Pheidole pallidula (figura 1), Lasius Níger e Messor sancta. Quando as formigas morrem, elas são carregadas para fora dos ninhos pelas formigas operárias, onde são depositadas em montes. O mecanismo fundamental por trás deste comportamento que leva ao agrupamento surge em função da atração entre corpos já depositados e as operárias que estão carregando outros corpos. Pequenos grupos de corpos atraem as operárias para depositarem novos corpos, e através deste mecanismo de feed-back, os tamanhos dos grupos vão aumentando (HARTMANN, 25). Figura 1 - Organização do cemitério da espécie Pheidole pallidula (HANDL, 23) 11

21 A organização das larvas (ninhada) foi observada na espécie Leptothorax unifasciatus (figura 2). DENEUBOURG et al. (1991), observaram que os ovos são arrumados numa pilha próxima à pilha das larvas, porém mais afastados da pilha dos casulos, ou então as três categorias eram colocadas em locais completamente diferentes do ninho. A organização da ninhada na formiga Leptothorax quando se movimenta para um novo local de ninho foi estudado por FRANKS et al (1992). Esse estudo mostrou que os itens da ninhada eram arrumados em forma de anéis concêntricos. Os ovos e micro-larvas de tamanho padrão eram colocados no centro, e aqueles de tamanhos maiores eram distanciados do centro proporcionalmente à sua dimensão quanto maior, mais afastado. As pupas e pré-pupas eram distribuídas em posições externas entre os anéis das larvas correspondentes aos seus tamanhos, conforme figura 2 (HARTMANN, 25). Figura 2 - Organização da ninhada da espécie Leptothorax unifasciatus (HANDL, 23) Os comportamentos coletivos dos insetos sociais têm inspirado a ciência da computação em fazer simulações computacionais para tentar reproduzi-los. Há, pelo menos, dois grandes motivos para isto. O primeiro é que os mecanismos subjacentes responsáveis por esses comportamentos são ainda desconhecidos. Por meio da simulação, esses mecanismos subjacentes podem ser estudados e desvendados, estudos que trazem, como conseqüência, um melhor entendimento da natureza. O outro motivo é que esses comportamentos coletivos possuem características muito atraentes, tais como robustez e 12

22 confiabilidade devido à redundância. Aplicações dos comportamentos coletivos dos insetos à ciência da computação podem conduzir a excelentes técnicas. Modelos computacionais baseados nas atividades de agrupamento e arrumação dos insetos tem levado a algoritmos eficientes para utilização na área de data-mining. O agrupamento de corpos mortos pela espécie de formiga Pheidole pallidula inspirou DENEUBOURG et al. (1991) sobre o agrupamento por um grupo de agentes homogêneos. O modelo apresentado contém formigas que se movem randomicamente, e é baseado no princípio que quando uma formiga descobre um objeto, a probabilidade dela pegar o objeto é maior se o objeto estiver isolado. De forma similar, a probabilidade de deixar o objeto é alta se a formiga estiver numa área contendo outros objetos. A base do modelo é, portanto, duas probabilidades, uma para pegar, e outra para deixar o objeto. Esse trabalho inicial tem inspirado muitas outras pesquisas em computação e implementações robóticas com coletividade de agentes que realizam o agrupamento ou organização de objetos. Uma implementação robótica de agrupamento, inspirada nesse modelo, foi realizada por BECKERS, HOLLAND e DENEUBOURG, No experimento, eles utilizaram robôs simples, que não tinham memória. Utilizando esses agentes simples, os autores puderam observar um comportamento que levava ao agrupamento de objetos pelos robôs. DENEUBOURG et al., (1991) também apresentaram uma extensão desse mecanismo de agrupamento que organiza dois diferentes tipos de objetos. A base desse mecanismo é diferente nas probabilidades de pegar e largar os objetos. Objetos que são isolados ou localizados em áreas com uma alta densidade do outro tipo de objeto possuem uma alta probabilidade de serem pegos. Por outro lado, a probabilidade de se deixar o objeto aumenta se a formiga estiver numa área de alta densidade do mesmo tipo do objeto. LUMER e FAIETA (1994), generalizaram o modelo de DENEUBOURG et al. para a aplicação na análise exploratória de dados. Diferentemente de DENEUBOURG et al., eles utilizaram uma função de similaridade contínua para avaliar a similaridade entre diferentes objetos DESCRIÇÃO DO ALGORITMO DE AGRUPAMENTO INSPIRADO EM COLÔNIA DE FORMIGAS PRINCÍPIOS BÁSICOS O Algoritmo Simples de Clusterização por Formiga (Standart Ant Clustering Algorithm - SACA) foi apresentado inicialmente por LUMER e FAIETA (1994). Esse 13

23 modelo foi inspirado no estudo do comportamento que levam a espécie de formiga Pheidole pallidula (figura 1) a organizar seus corpos mortos em grupos de itens semelhantes. O mesmo consiste, basicamente, em uma simulação de colônia de agentes de formigas que se move aleatoriamente em uma grade toroidal bidimensional, onde objetos (registros dos dados) estão posicionados. Os registros (índices dos dados) são, inicialmente, dispostos (espalhados) randomicamente na grade bidimensional, independentemente da dimensão dos dados. Cada célula da grade só pode conter um registro, e cada registro só pode ocupar uma célula por vez. Desta forma, uma célula da grade pode estar vazia ou estar hospedando um registro específico. Os agentes também deverão estar espalhados, inicialmente randomicamente, pela grade. Eles têm a capacidade de pegar, um por vez, itens (índice de dados) dentro da grade e movê-los para outra posição da grade, deixando-os ou não nessa nova posição, conforme uma prévia avaliação. A idéia geral é dispor itens que são similares no espaço original N- dimensional dentro de uma vizinhança na grade bidimensional. Isto significa que, no final do processo, os índices que são vizinhos dentro da grade bi-dimensional, serão similares no seu espaço de atributos original. Na dinâmica do processo, com relação aos agentes, as seguintes situações poderão acontecer: (1) o agente está carregando um item i e avalia a probabilidade de deixá-lo na posição corrente, de acordo com uma probabilidade de deixar o item; (2) o agente está numa célula ocupada por um item solto, então avalia a probabilidade de pegar o item. A probabilidade de um agente pegar um item aumenta com a baixa densidade de presença de itens na vizinhança, e diminui com a presença de itens similares na vizinhança. Inversamente, a probabilidade de um agente deixar um item aumenta com a alta densidade de itens semelhantes na vizinhança e diminui com a baixa densidade de presença de itens similares na vizinhança DINÂMICA DO ALGORITMO: I - Fase Inicial: 1 - Todos os itens que representam os índices dos dados são espalhados randomicamente na grade bidimensional toroidal. Cada item ocupa uma célula. 2 Cada agente pega, randomicamente, um item; 3 Cada agente ocupa uma posição da grade, correspondente ao item que pegou. 14

24 II Fase de agrupamento: 1 Um agente é selecionado randomicamente; 2 O agente executa um passo, de acordo com um determinado padrão, carregando o item, e assumindo uma nova posição na grade; 3 O agente decide probabilisticamente se deixará o item em sua nova posição. Se a decisão for de deixar o item, ele deixa o item na célula corrente, e imediatamente vai procurar outro item livre para pegá-lo. Ao selecionar um novo item livre escolhendo randomicamente dentro de um índice com todos os itens disponíveis o agente decide probabilisticamente, considerando a posição do item, se vai pegar o item. Caso decida não pegar, o agente seleciona outro item e faz a avaliação novamente. Este processo continua até o agente pegar um item. 4 Volta-se ao passo inicial, e repete-se o processo para outros agentes, por um número de iterações pré-estabelecido. 15

25 PSEUDOCÓDIGO DO SACA HANDL (23), apresentou o seguinte pseudocódico: Algorithm 1 basic-ant 1: begin 2: INITIALISATION PHASE 3: Randomly scatter data items on the toroidal grid 4: for each j in 1 to #agents do 5: i := randon_select (remaining items) 6: pick_up (agent (j),i) 7: g := randon_select (remaining_empty_grid_locations) 8: place_agent (agent (j), g) 9: end for 1: MAIN LOOP 11: for each it_ctr in 1 to #iterations do 12: j := randon_select(all_agents) 13: step (agent (j), stepsize) 14: i := carried_item (agent(j)) 15: drop: = drop_item? (f*(i)) 16: if drop = TRUE then 17: while pick = FALSE do 18: i := randon_select(free_data_items) 19: pick: = pick_item? (f*(i)) 2: end while 21: end if 22: end for 23: end FUNÇÕES E PARÂMETROS ENVOLVIDOS NO ALGORITMO A probabilidade de um agente pegar um item deve aumentar com a baixa densidade de presença de itens na vizinhança, e deve diminuir com a presença de itens similares na vizinhança. Inversamente, a probabilidade de um agente deixar um item deve aumentar com a alta densidade de itens semelhantes na vizinhança e deve diminuir com a baixa densidade de presença de itens similares na vizinhança. As operações de pegar ou deixar os dados são, portanto, decisões probabilísticas. Suas respectivas probabilidades podem ser fornecidas pelas funções de densidade de DENEUBOURG et al., a saber: 16

26 k p p ( ) p i = (1) ( ) k p + f i ( i) f ( i) f p ( ) d i = (2) kd Os parâmetros k p e k d determinam a influência que a função vizinhança ou função densidade, f(i), exerce no cálculo das probabilidades do agente em pegar e deixar o item. Os autores estabeleceram seus valores em.1 e.3, respectivamente prob pegar (kp=,1) f(i) Figura 3 - Variação da probabilidade de pegar em função de f(i) 17

27 prob deixar (kd=,3) f(i) Figura 4 - Variação da probabilidade de deixar em função de f(i) LUMER e FAIETA definiram a função vizinhança, dada por: f ( i) 1 2 σ = j ( i, j) δ 1 α em outros se casos f ( i) > (3) A dissimilaridade entre os itens, δ ( i, j) [,1] dados em seu espaço original N-dimensional. Euclidiana, dada por: ( i j) ) 2 2 2, = x i1 x j1 + xi2 x j xin x jn δ, (4), quantifica a distância entre os dois A métrica usada, no caso, é a distância onde i = (x i1, x i2,..., x in ), e j = (x j1, x j2,..., x jn ) são os valores dos atributos de dois dados N-dimensionais. α [,1], é um parâmetro escalar que estabelece a dependência em relação aos dados, σ 2, tipicamente σ 2 {9,49}, é o tamanho da vizinhança local (quantidade de células da grade que o agente consegue perceber, onde o agente está no centro). Este valor depende do σ 1 raio de percepção do agente em cada direção, que, conseqüentemente, é dado por. A 2 18

28 figura 5 apresenta vizinhanças para valores de σ 3, 5 e 7. A vizinhança hachurada equivale a σ = 3, a intermediária, a σ = 5, e a mais externa a σ = 7. A função vizinhança f(i) é levada em consideração no cálculo das probabilidades do agente deixar ou pegar o objeto. A densidade de objetos próximos, bem como suas similaridades são computadas no cálculo. Figura 5 - Possíveis vizinhanças de percepção de uma formiga. LUMER e FAIETA, além das implementações descritas anteriormente, introduziram os seguintes conceitos: Memória de curta duração, de forma a permitir o agente lembrar dos últimos itens transportados, assim como seus respectivos locais onde foram deixados. Após pegar um item, a formiga leva em consideração os itens anteriormente transportados, e compara com o item atual. Isto permite que o agente transporte o item atual para o local para onde foi transportado aquele item com o qual mais se assemelha. População heterogênea de agentes neste caso, os agentes podem ter diferentes ajustes de parâmetros. Esse conceito foi limitado ao tamanho do passo que um agente pode dar no seu movimento randômico. Passo significa a quantidade de células da grade bidimensional que o agente é capaz de transpor em um movimento. Esse ajuste permite, então, ter uma população de agentes com diferentes velocidades de movimento. 19

29 4 - PRINCIPAIS ALTERAÇÕES PROPOSTAS NO ALGORITMO BÁSICO DE CLUSTERIZAÇÃO SACA MÉTODO ANT-CLASS - APLICAÇÃO DO ALGORITOM K-MEANS MONMARCHÉ (1999), observou que o algoritmo simples de clusterização por colônia de formiga, a princípio, possui a vantagem de não necessitar de uma informação inicial do número de classes ou de uma partição inicial, quando o mesmo é aplicado a uma base de dados. As partições criadas, portanto, pelo algoritmo, são compostas por muitos grupos. Os grupos formados são homogêneos (formados por dados da mesma classe), porém a quantidade dos mesmos costuma ser maior que o número de classes da base de dados e costuma aparecer erros de classificação. Deste modo, o autor propôs a aplicação do algoritmo K-means para eliminar os erros de agrupamento e agrupar os itens que ficaram livres, isto é, objetos que estão sozinhos, pois estavam sendo carregados pelos agentes no momento do término das iterações. O autor também implementou algumas alterações no cerne do algoritmo original. A principal é a introdução de pilhas de dados. Ou seja, uma célula pode aceitar mais de um dado. Segue a descrição do algoritmo proposto: Cada dado é um vetor de dimensão n e simbolizado por um objeto. Inicialmente, todos os objetos são espalhados randomicamente em uma grade bidimensional toroidal, cujo tamanho é proporcional ao tamanho da base de dados. Durante a execução do algoritmo, os objetos poderão ser colocados numa mesma célula, constituindo-se pilhas. Uma pilha representa uma classe. A distância entre dois objetos X e Y pode ser calculada pela distância Euclidiana entre os dois pontos no espaço R n. O centro das classes é determinado pelo centro de massa dos seus pontos. Não existe relação entre as posições dos objetos na grade bidimensional e os valores de seus atributos em R n. Um número fixo de formigas se move na grade bidimensional, e pode executar diferentes ações. Cada formiga se move a cada iteração, e deve executar a ação de pegar ou de deixar o objeto. Se a formiga não está carregando um objeto, então ela pode: 2

30 Pegar um objeto de uma célula da sua vizinhança, de acordo com uma probabilidade calculada; pegar o objeto mais dissimilar de uma pilha de sua vizinhança (isto é, o objeto mais distante do centro de massa da pilha). Se a formiga estiver carregando um objeto, então ela pode: Deixar o objeto numa célula vazia de sua vizinhança, de acordo com uma probabilidade calculada; deixar o objeto na célula de outro objeto da vizinhança, se ambos estiverem próximos o suficiente no espaço Rn, proximidade esta dada pelo valor da dissimilaridade; deixar o objeto em uma pilha de sua vizinhança, se a distância entre o objeto e o centro de massa da pilha assim permitir. Para se conseguir a convergência do algoritmo, o autor propôs a aplicação de quatro etapas, a saber: 1) Algoritmo baseado em colônia de formiga para um primeiro agrupamento. 2) Algoritmo K-means utilizando-se, como ponto de partida, os grupos formados pela etapa anterior. 3) Algoritmo baseado em colônia de formigas, porém com as pilhas previamente encontradas. 4) Algoritmo K-means mais uma vez. Para avaliar o resultado de seu algoritmo, do quanto as partições obtidas se aproximam do real, o autor propôs duas medidas de performance. A primeira medida seria o índice de erro de classificação. Esta seria computada da seguinte forma: Para um dado grupo H, formado pelo algoritmo, considerar-se-ía a predominância da classe de acordo com o atributo classe da base de dados, previamente conhecido, mas não levado em consideração na computação. Todo o objeto que estivesse nessa pilha H, e não pertencesse ao atributo predominante, seria considerado um erro. O índice de erro de classificação seria simplesmente a relação entre os objetos errados (considerando-se todos os grupos formados) e o total de número de objetos da base de dados. A segunda medida seria simplesmente o número de grupos criados. 21

31 4.2 - APERFEIÇOAMENTOS NO ALGORITMO ORIGINAL HANDL (23), observou dois grandes problemas no algoritmo de agrupamento por colônia de formiga original. O principal era devido à natureza do resultado apresentado pelo algoritmo: ele não gera uma partição explícita, mas uma distribuição espacial dos elementos numa representação gráfica. Apesar de o resultado ser óbvio para a observação humana, a avaliação do resultado requer uma interação humana. Outro grande problema vislumbrado pela autora foi a dificuldade de se ajustar os diversos parâmetros do algoritmo para diferentes tipos de dados. Visando aperfeiçoar o algoritmo, a autora introduziu as seguintes alterações: ADAPTAÇÃO DA FUNÇÃO VIZINHANÇA As funções que estabelecem as probabilidades da formiga pegar ou deixar o objeto (1) e (2) permaneceram as mesmas. A autora continuou usando os valores estipulados para k p e k d, respectivamente.1 e.3. No entanto, a função vizinhança (f(i)), dado por (3), foi substituída pela seguinte função (f*(i)): f * ( i) 1 2 σ = j ( i, j) δ 1 α em outros se casos f * ( i) ( i, j) δ > j 1 α > Esta definição de f*(i) combina duas importantes propriedades. Primeiramente, assim como na função de vizinhança original f(i), a divisão pelo tamanho da vizinhança σ 2 (5) penaliza as células vazias da vizinhança, permitindo a indução a um agrupamento compacto. Em segundo lugar, a restrição adicional dissimilaridades entre os objetos. ( i, j) δ j 1 > serve para penalizar severamente altas α MEMÓRIA CURTA COM LOOK-AHEAD DOS AGENTES A idéia de o agente possuir uma memória já tinha sido abordada por LUMER e FAIETA (1994). Nesse caso, cada agente se lembra dos últimos dados carregados e de suas posições da grade onde foram deixados. Quando um novo dado é pego, a posição do melhor 22

32 dado recentemente pego (aquele com menor dissimilaridade) é utilizada para guiar o movimento randômico do agente. A autora considerou que, num sistema com vários agentes, um item que foi memorizado numa determinada célula, já pode ter sido removido por outro agente. Considerando o comentado, a autora implementou o seguinte procedimento: Uma formiga, localizada numa célula da grade p, e carregando um item i, usa sua memória para proceder todas as posições memorizadas, uma após outra. Cada uma delas é avaliada utilizando-se a função vizinhança f*(i), e a adequabilidade de cada uma para o dado correntemente com o agente é examinada. Aquela posição que obtiver o melhor resultado poderá fazer com que o agente pule para ela, de acordo com uma probabilidade calculada. Caso não ocorra o pulo, a memória do agente é desativada, e o agente continua seu movimento randômico RAIO DE PERCEPÇÃO CRESCENTE O tamanho da vizinhança das células na grade bidimensional percebida pela formiga delimita as informações utilizadas durante o processo de agrupamento. Por esta razão, é interessante estipular uma grande vizinhança para melhorar a qualidade de agrupamento na grade. Contudo, a utilização de vizinhança muito grande, além de requerer um custo computacional muito alto (o número de células consideradas aumenta quadraticamente com o aumento do raio de percepção), inibe a formação de grupos na fase inicial do processo. Portanto, a autora propôs a utilização de um raio de percepção que aumenta com o tempo. Isto permite economizar custo computacional na primeira parte do processo, e previne dificuldades de formação de grupos no início. Essa tática também acelera a dissolução de pequenos grupos indesejáveis. Em sua implementação, foi utilizado um raio de percepção inicial de 1 (σ = 3) com um incremento linear até alcançar 5 (σ = 11) SEPARAÇÃO ESPACIAL Para o algoritmo em questão, a separação espacial dos grupos em formação, na grade, é fundamental para que os grupos a serem consolidados sejam bem formados. Podem-se formar grupos com pouca distância entre si na grade. Isto em função de os grupos tenderem a se formar em qualquer local onde haja uma maior densidade de dados similares. Após sua formação inicial, os grupos tendem a se movimentarem muito lentamente pela grade. 23

33 Para evitar que os grupos se formem muito próximos, a autora utilizou, após a primeira fase, durante um curto intervalo de iterações (entre os tempos t inicial e t final, previamente estabelecidos), uma função vizinhança modificada. O parâmetro 1/σ 2 foi substituído por 1/N occ, onde N occ é o número real de células ocupadas na vizinhança local. Desta forma, somente similaridade, e não densidade, será levado em consideração. Isto acarreta o efeito de se espalhar os dados novamente na grade, mas de uma forma organizada. Após esse período, a função vizinhança volta à sua forma original. Então novos grupos serão formados, porém com maior probabilidade de serem gerados próximo aos centros das regiões, devido à baixa qualidade das fronteiras de suas vizinhanças VIZINHANÇA PONDERADA A autora investigou a utilização de uma ponderação no valor que cada célula contribui para o cálculo final da função vizinhança, de forma que as células mais próximas da vizinhança dessem uma contribuição maior no cálculo. Para implementar essa idéia, foi utilizado um termo de ponderação, w(i,j), a ser multiplicado por cada parcela da equação. A função vizinhança, então, toma a seguinte forma: f * ( i) 1 2 σ = De forma que: (, j) w i max j ( i, j) δ w( i, j) 1 α em outros casos ( dx( i, j ), dy( i, j )) ρ = e (7) se f * ( i) ( i, j) δ > j 1 α > Onde ρ é o raio de percepção e d x (i,j) e d y (i,j) são as distâncias, na grade, na horizontal e na vertical, dos dados i e j. Desta forma, os pesos estarão no intervalo [1/e,1] (para ρ =3 e σ max =7), com maior peso para as células que estão mais próximas a posição da formiga. A autora observou que a utilização da ponderação leva a uma melhoria na qualidade local dos grupos formados, porém a qualidade geral ainda se apresenta baixa. Um efeito constatado foi que a ponderação resulta na formação de grupos com dinâmica mais solta, e leva a um alto custo computacional. (6) 24

34 MODIFICAÇÃO DAS FUNÇÕES PROBABILIDADES ORIGINAIS A autora introduziu, também, um conjunto de funções para cálculo das probabilidades diferente do proposto por LUMER e FAIETA. A probabilidade de se pegar o item, é determinada por: ( i) ( i) 1. se f * 1. 1 = em outros casos f * ( i) * p pegar 2 E a probabilidade de deixar o item é: ( i) ( i) 1. se f * 1. = f *( i) em outros casos * p 4 deixar Essas funções possuem duas vantagens com relação às originais. Além de ser mais simples, o que requer menor recurso computacional; não necessita dos parâmetros k p e k d, que exigem uma certa complexidade para seu ajuste. Os comportamentos das funções podem ser visualizados nos gráficos a seguir: (8) (9) prob pegar* f*(i) Figura 6 - Comportamento da probabilidade modificada de pegar 25

35 prob deixar * f*(i) Figura 7 - Comportamento da probabilidade modificada de deixar Examinando as equações, e considerando os experimentos da autora, observa-se que a estratégia de se deixar o objeto torna-se mais cauteloso que a versão definida por LUMER e FAIETA. A probabilidade em regiões de baixa similaridade torna-se menor, e, em regiões de alta similaridade torna-se maior. A probabilidade de se deixar o objeto torna-se determinístico (p deixar = 1) para regiões onde a função vizinhança maior ou igual a um, f* (i) 1. E somente para esta região (valores da função de vizinhança maior ou igual a um, f* (i) 1) a operação de pegar o objeto torna-se viável. Essa formulação, no entanto, pelo exposto pela autora, não é aplicável para o algoritmo básico, proposto por DENEUBOURG. Somente se torna viável juntamente com algumas das alterações propostas, tais como aumento do raio de percepção, memória dos agentes, e o pequeno intervalo da iteração com a função vizinhança modificada AJUSTE DOS PARÂMETROS INDEPENDENTES DOS DADOS O algoritmo de agrupamento por colônia de formigas exige o ajuste de vários parâmetros. Alguns são independentes dos dados, a saber: número de agentes (no entendimento da autora), que foi ajustado para 1; o tamanho da memória do agente, ajustado para 1, e os valores de t inicial e t final (que delimitam o intervalo das iterações utilizado na separação espacial ), que foram arbitrados em,45 N e,55 N, onde N é o número total de iterações. 26

36 PARÂMETROS DEPENDENTES DAS CARACTERÍSTICAS DA BASE DE DADOS Alguns parâmetros devem ser ajustados levando-se em consideração o tamanho da base de dados, de forma a otimizar a velocidade de convergência Tamanho da grade Dado um conjunto de N itens itens, a grade deve ter uma dimensão, número de células, N celulas, de forma a disponibilizar espaço suficiente para permitir os agentes se movimentarem livremente e encontrarem células livres para poderem realizar a operação de deixar o dado. Isto pode ser alcançado utilizando-se a relação entre quantidade de itens e quantidade de células de 1, de acordo com as experiências da autora. Esta relação estabelece o tamanho da grade, quadrada, com dimensões de 1. N x 1. N células. itens itens Quantidade de iterações O número total de iterações também cresce com o aumento do tamanho da base de dados. A autora estabeleceu como N iterações = 2.N itens, com o mínimo de 1 milhão de iterações Adaptação de α O valor adequado de α é crucial para o correto funcionamento do algoritmo, pois tratase do parâmetro que vais escalar a dissimilaridade dentro da função vizinhança, f*(i). Durante o processo de seleção, α vai determinar a percentagem de itens da base de dados que serão considerados similares: um valor de α muito pequeno pode inibir a formação de grupos na grade; já um valor excessivamente elevado pode resultar na fusão de grupos distintos. No caso limite, todos os itens formariam um único grupo. A escolha adequada do valor de α depende, no entanto, do grau de dissimilaridade entre os dados, e conseqüentemente, não deve ser escolhido sem uma prévia avaliação dos mesmos. Por esta razão, pode-se conseguir um ajuste automático do parâmetro, monitorandose as intensidades das atividades dos agentes. Isto por meio do registro do sucesso e 27

37 insucesso das operações de deixar e largar os dados. A autora estabeleceu, então, o seguinte esquema de adaptação para o parâmetro: Gera-se uma população heterogênea de agentes, cada um com seu parâmetro α, gerado randomicamente dentro do intervalo [,1]. Cada agente terá seu parâmetro corrigido após cada N efetivos movimentos. Durante esse tempo, será registrado o número de operações de deixar o dado que falharam, N falhas. A razão de falhas será determinada como r falhas =N falhas /N efetivos, onde N efetivos é fixado em 1. Então o ajuste se dá seguindo-se a seguinte regra: α +.1 se rfalhas >.99 α (1) α.1 se rfalhas.99 Desta forma, α vai se ajustando durante todo o processo, o que torna este método bem robusto, além de permitir a adaptação do parâmetro dentro das diferentes fases que ocorrem ao longo do processo APLICAÇÃO DE REDE-NEURAL E ALGORITMO GENÉTICO NO SACA Foram propostas (HARTMANN, 25) adaptações no SACA de forma que o algoritmo fosse capaz de fazer o agrupamento, com separação dos grupos ou organização anelar dos dados. O autor considerou todas as premissas do algoritmo básico. O ambiente é uma grade bidimensional toroidal. Cada célula da grade poderá conter somente um objeto, um agente ou um agente e um objeto. Os objetos são os índices dos dados, que são espalhados randomicamente no início do processo. Estes objetos poderão ser movimentados pelas formigas, dentro da grade, formando determinados padrões de arrumação na grade. A coletividade de formigas é formada por agentes que se movimentam pela grade, e podem pegar ou largar os objetos nas células. Quanto ao tamanho da grade, foi considerada a mesma fórmula do trabalho anteriormente citado, HANDL (23). Com relação ao número de formigas, foi estipulado, no entanto, como um décimo do número de objetos, N agentes /N objetos =.1. Consideraram-se todos os agentes idênticos, e cada agente pode realizar três operações básicas: 1) Pegar um objeto; 28

38 2) deixar um objeto numa determinada célula; e 3) se movimentar na grade REDE NEURAL HARTMANN (25) propôs a aplicação de uma rede neural artificial para decidir o comportamento do agente. A rede decide, então, se o agente vai pegar ou vai largar o objeto, bem como o tipo de movimento a ser executado. Trata-se de uma rede simples feed foward, com uma camada oculta. A formiga percebe os objetos que estão localizados em suas oito células vizinhas, bem como o objeto que ela está conduzindo correntemente (figuras 4 e 5). Esses nove elementos são as variáveis de entrada da rede. Figura 8 - Representação da rede neural com uma camada oculta (HARTMANN, 25) Figura 9 - Representação das células da vizinhança de uma formiga (HARTMANN, 25) 29

39 O mapeamento da vizinhança da formiga é mostrado na figura 5, onde cada célula da vizinhança fornece as informações para um nó de entrada da rede neural (nós 1 a 8 da figura 4). O outro nó de entrada da rede, nó A, recebe informações referentes ao objeto que está sendo carregado pela formiga. A rede neural possui seis nós de saída, que controlam o comportamento da formiga, a saber: As duas primeiras saídas (P e D) decidem se a formiga irá pegar ou deixar o objeto. As duas seguintes (F e B) especificam se a formiga se movimentará para frente ou para trás, podendo cancelar as outras saídas. Como a formiga poderá ter movimento em oito direções diferentes, as últimas saídas (L e R) definem se as direções iniciais poderão ser deslocadas para direita ou para a esquerda. No modelo adotado, o comportamento das formigas está simplificado, de forma que elas não se percebem entre si. Isto significa que elas podem entrar em deadlocks quando uma tenta se movimentar para a célula da outra. Para se evitar isto, uma formiga que permanece na mesma posição durante dez iterações consecutivas, é movimentada para uma posição desocupada da grade, gerada randomicamente ALGORITMO GENÉTICO O ambiente em pauta é composto por objetos e uma coletividade de formigas, conforme descrito no item anterior. Um indivíduo vai representar um ambiente no contexto evolucionário. Num ciclo evolucionário, haverá uma geração de ambientes, cada um com uma quantidade específica de iterações. Quando todos os ambientes numa geração são completados, eles são avaliados e é criada a próxima geração de ambientes. O algoritmo genético será utilizado para determinar os pesos dos nós da rede neural que controla as formigas no ambiente EXPERIMENTOS O autor relata que foram realizados quatro experimentos, com diferentes níveis de complexidade. Para se conseguir os resultados esperados, a função fitness foi adaptada para cada caso. 3

40 O primeiro experimento consistiu em resolver o problema de se agrupar objetos idênticos. Para isto, todos os objetos deveriam ocupar uma área contínua. Para resolver este problema, foi criada uma função fitness baseada na idéia de que cada objeto deveria estar rodeado por quantos objetos fosse possível. O segundo experimento consistiu em se agrupar três diferentes tipos de objetos. O êxito deste experimento consistiu em se criar três diferentes grupos separados, e cada um contendo um tipo de objeto. Para resolver este problema foi modificada a função fitness do primeiro caso. Como agora existem diferentes tipos de objetos, cada objeto não deveria somente estar rodeado por quantos objetos fossem possíveis, mas deveria ter o menor número possível de objetos diferentes de si em sua vizinhança. Os terceiro e quarto experimentos consistiram em se fazer uma organização anelar com dois e três tipos de objetos, respectivamente. A estrutura constitui-se de um grupo central de um determinado objeto envolvido por um anel de outro tipo de objeto (e um segundo anel com um terceiro tipo de objeto, no caso do quarto experimento). Para conseguir esses resultados, o autor recorreu à métrica utilizada por WILSON et AL, 24, para elaboração da função fitness UTILIZAÇÃO DE ALGORITMO GENÉTICO PARA A DEFINIÇÃO DOS PARÂMETROS DO SACA De acordo com ARANHA et al. (25), os recentes aperfeiçoamentos nas técnicas de agrupamento por colônia de formigas, tem demonstrado que o algoritmo está se tornando competitivo, principalmente quando se trata de bases de dados com alta dimensionalidade ou bases onde não se tem o conhecimento prévio do número de classes. Contudo, foi observado que existe um grande número de parâmetros no algoritmo em pauta, cujos efeitos no desempenho final ainda não são completamente conhecidos. Pequenas diferenças em uma constante podem ocasionar grandes diferenças no resultado final. O autor propôs, então, a utilização de algoritmo genético para que os melhores parâmetros para uma determinada tarefa possam ser escolhidos automaticamente ALTERAÇÕES NO SACA O autor implementou o algoritmo original, SACA, com as seguintes alterações: 31

41 A função vizinhança foi programada da seguinte forma: f ( i) = M d S t d ( i, j) Onde: Md é a distância Euclidiana máxima entre dois objetos dentro de todo o conjunto da base de dados; d(i,j) é a distância Euclidiana não normalizada entre os objetos i e j; St é o número total de objetos na vizinhança de i; e O tamanho da vizinhança de uma formiga é dado pelo parâmetro sight, visibilidade, que pode ser configurado. Definiu-se, então o fator de aglomeração, c(i), dado por: c t ( i) 2 2 t crowd (11) 2 S = (12) S + k Onde 1< k crowd < (2*sight) 2 é uma constante inteira que sintoniza o comportamento de c(i). Multiplica-se, então, f(i)*c(i), quando a formiga for deixar o objeto, e f(i)*(1-c(i)), quando a formiga for pegar o objeto. Esses resultados são usados, então, nas funções originais, das probabilidades de pegar ou deixar o objeto, dadas por DENEUBOURG, conforme (1) e (2). O comportamento das formigas ocorre conforme o SACA UTILIZAÇÃO DO ALGORITMO GENÉTICO Para aperfeiçoar o algoritmo de clusterização por colônia de formigas, o autor propôs a otimização de seus parâmetros por meio da utilização de algoritmo genético. É notável que o estudo da sensibilidade dos muitos parâmetros, otimizando-os, é um tópico reconhecidamente complexo e merecedor de muito esforço para se chegar a resultados satisfatórios do algoritmo. Em sua implementação, ARANHA et al.(25) representaram um indivíduo do algoritmo genético como sendo o conjunto das configurações dos parâmetros (tabela 1). Para cada geração, roda-se o programa uma vez com cada conjunto de parâmetros, e calcula-se a função fitness para cada rodada. 32

42 Tabela 1 - Parâmetros utilizados no SACA adaptado Nome Valor k p, constante de se pegar (...1.) k d, constante de deixar (...1.) k crowd, constante de aglomeração (1...(2*sight) 2 ) sight, visibilidade da formiga w size, tamanho da grade (inteiro) n ants, número de formigas (inteiro) O autor usou uma estratégia com elite no algoritmo genético, onde, para cada geração, os melhores indivíduos η elite são copiados para a próxima geração, onde outros indivíduos são gerados por meio de crossover entre os indivíduos da elite. Para a operação de crossover, são escolhidos dois indivíduos, pais, da elite. Então é criado um novo indivíduo por meio de uma escolha randômica dos valores dos parâmetros oriundos dos indivíduos pais. É utilizada, também, a operação de mutação. Essa operação pode tanto alterar o valor de um parâmetro em 1%, ou gerar um novo valor randômico para o parâmetro. O sucesso da aplicação do algoritmo genético está estreitamente relacionado com a escolha apropriada da função de fitness. Uma das principais virtudes do SACA é sua capacidade de auto-detectar o número de grupos existentes na base de dados. Essa informação, portanto, é utilizada como uma das funções fitness. O autor definiu como um cluster o conjunto dos objetos que estão agrupados a uma distância máxima de 2 unidades de distância de Manhattan (como a distância de Manhattan tem ordem 1, isso equivale a 2 células da grade) Somente o número de grupos, no entanto, não define o quão eficiente está o algoritmo de agrupamento. É necessário, também, medir a qualidade dos grupos. Para se conseguir essa medição o autor utilizou a métrica que ele denominou de average local linkage, média da ligação local, dada por: ALL ( C) ( c ) f i = (13) C size Onde: C size é o número de objetos pertencentes ao grupo; e cada c i C é um objeto pertencente ao grupo. 33

43 4.5 - ADAPTATIVE ANT CLUSTERING ALGORITHM: A 2 CA Uma das dificuldades de se aplicar o algoritmo de agrupamento por colônia de formigas para resolver problemas complexos é devido ao fato de, na maior parte dos casos, o algoritmo gera um número de grupos maior que o número de grupos efetivo. Além disso, esses algoritmos não estabilizam numa solução particular. Grupos são construídos e destruídos ao longo das iterações (VIZINE et al., 25). Com o objetivo de superar as dificuldades enumeradas, e, conseqüentemente, melhorar a qualidade dos resultados, ou autores propuseram um algoritmo adaptativo, Adaptive Ant- Clustering Algorithm (A 2 CA), que é mais robusto em termos de geração de número de grupos, e tende a convergir para boas soluções ao longo do processo de agrupamento. Para atingir esse objetivo, três principais alterações foram introduzidas no algoritmo original, SACA (LUMER e FAIETA, 1994), a saber: 1) Uma rotina de adaptação (redução) do valor do parâmetro que controla a probabilidade de as formigas pegarem um objeto da grade; 2) um campo de visão progressivo, que permite a formiga enxergar uma área maior; 3) utilização de uma função de feromônio associada às células da grade, de modo a permitir um aumento da probabilidade de uma formiga deixar um objeto numa região mais densa da grade. Essas modificações favorecem um processo adaptativo, cujo objetivo seria a convergência para um agrupamento estável PROBABILIDADE DE DEIXAR O OBJETO Além das alterações propostas, descritas nos itens seguintes, VIZINE et al. (25) utilizou, para o cálculo da probabilidade de se deixar o objeto pelo agente, uma função diferente da proposta originalmente por DENEUBOURG, e descrita no item O cálculo da probabilidade utilizado foi o seguinte: p deixar ( i), se f ( i) 2 f < kd, = 1 em outros casos 34

44 1.8 prob deixar f(i) Figura 1 - Comportamento da probabilidade de deixar para k d =,15 A figura 1 mostra o comportamento da probabilidade de um agente deixar o registro considerando-se k d =, ROTINA DE ADAPTAÇÃO DE K P De acordo com o relatado pelos autores, uma simples alteração introduzida no SACA permite uma melhora em sua propriedade de convergência. Trata-se da programação de uma rotina para que o valor do parâmetro k p, que influencia a probabilidade do agente pegar o objeto, decresça no decorrer das iterações. O esquema adotado é o seguinte: após um ciclo de 1. iterações, o valor de k p decresce geometricamente, a cada ciclo, até um valor mínimo permitido k pmin, que corresponde ao critério de parada do algoritmo. Na implementação apresentada pelos autores, k p segue o seguinte esquema: k p k p.98, (14) k p min =.1. prob de pegar kp = f(i) prob de pegar kp = f(i) Figura 11 - Probabilidades de pegar o item para kp=.1 e kp=.1 35

45 A figura 11 mostra as funções das probabilidades de o agente pegar o registro quando k p =,1 e k p =,1. A função considerada é a da proposta original (DENEUBOURG), p ( i) = k p k + f ( i) p p VISÃO PROGRESSIVA DO AGENTE No algoritmo SACA, o valor da função densidade, f(i), dada pela equação (3), depende do campo de visão, σ 2, de cada formiga. A definição de um valor fixo para σ 2 pode causar, as vezes, vizinhanças inapropriadas, isto porque uma área fixa não permite à formiga distinguir grupos de diferentes tamanhos. Um pequeno valor para σ 2 implica, em nível geral, uma pequena percepção dos grupos. Deste modo, pequenos e grandes grupos são semelhantes para a percepção da formiga, pois ela somente percebe uma pequena área de seu ambiente. Em alguns problemas, a utilização de um campo de percepção pequeno pode ser limitativo, e a utilização de campo de percepção muito grande pode causar uma aglutinação dos grupos. Mesmo se um grupo for perfeitamente homogêneo (com elementos idênticos) e suficientemente grande, sempre existirá uma pequena probabilidade de uma formiga pegar um dado desse grupo e colocá-lo em outro local qualquer. Por outro lado, uma visão maior poderá ser ineficiente para as iterações iniciais, quando os dados estão espalhados randomicamente pela grade, isto porque, a análise de uma área grande implicará em se abranger alguns pequenos grupos simultaneamente. Para minimizar a dificuldade relatada, SHERAFAT et al. (24), propuseram um esquema de visão progressiva para o SACA, da seguinte forma: Quando uma formiga percebe um grupo grande, ela incrementa seu campo de percepção (σ 2 ) para o valor máximo. Desta forma, σ 2 será um parâmetro específico para cada formiga, e será alterado independentemente e dinamicamente enquanto roda o algoritmo. A questão que permaneceu foi: Como uma formiga poderá detectar o tamanho do cluster para o controle do tamanho de seu campo de visão? VIZINE et al. (25) propuseram resolver esse problema utilizando-se a função densidade, f(i), como um parâmetro de controle. Existe uma relação entre o tamanho do grupo e a função densidade, e, conseqüentemente, a média do valor de f(i), ao longo das iterações, aumenta com a formação e aumento dos grupos. Desta forma, quando f(i) alcança um valor maior que um limite pré-determinado, θ, o parâmetro σ 2 é incrementado por n s unidades, até alcançar um valor máximo. 36

46 O autor implementou, então, a seguinte rotina: Se f(i) > θ e σ 2 σ 2 max, então σ 2 σ 2 + n s onde σ 2 max = 7 x 7 e θ = HEURÍSTICA FEROMÔNIO Com o objetivo de se conseguir o agrupamento dos dados, o algoritmo SACA leva em consideração a distância relativa entre todos os objetos dentro de seu campo de visão. Um problema dessa abordagem, segundo VIZINE (25), é que não é levado em consideração para a tarefa o progresso do agrupamento em um nível global. Uma forma de superar esse problema foi proposta por SHERAFAT (24). O método consiste em se introduzir uma variável local φ(i) associada com cada posição i da grade bidimensional, de forma que a quantidade de feromônio em uma exata posição torna-se uma função da presença ou ausência de um objeto em i. Inspirado na forma como os cupins utiliza o feromônio para construir seus ninhos, os agentes artificiais no algoritmo modificado de agrupamento por colônia de formigas irão colocar um pouco de feromônio nos objetos que eles carregam, e esse feromônio será transferido para a grade quando o objeto é depositado. Durante cada iteração, o feromônio artificial, φ(i), em cada célula será evaporado a uma determinada razão. SHERAFAT (24) introduziu a função feromônio, Phe(φ max, φ min, P, φ(i)), dada pela equação (15), que influencia a probabilidade de pegar e deixar o objeto na grade. A função de feromônio proposta varia linearmente com o nível de feromônio de cada posição da grade, φ(i), e depende de alguns parâmetros pré-definidos, tais como φ max e φ min, valores de feromônio percebidos pelo agente, e a máxima influência de feromônio permitida, P. 2. P 2. Pφ Phe + φ φ φ φ max (.) = φ( i) P max min max min Para considerar a adição de feromônio na grade, algumas alterações nas funções das probabilidades de deixar e pegar um objeto, do SACA, foram propostas (SHERAFAT, 24), a saber: P pegar ( i) = ( 1 Phe(, φ, P φ( i) )) (15) k p φ min max, (16) ( ) k p + f i 2 37

47 P pegar ( i) = ( 1+ Phe(, φ, P φ( i) )) ( i) f ( i) f φ min max, (17) kd + Onde φ max representa a máxima quantidade de feromônio percebida pela formiga correntemente, φ min representa a menor quantidade de feromônio percebida pela formiga, P é a máxima influência do feromônio em alterar as probabilidades de pegar ou deixar o objeto, e φ(i) é a quantidade de feromônio na posição i corrente. Com o objetivo de se reduzir o número de parâmetros a serem definidos, e melhorar a performance do algoritmo, VIZINE (25) propôs a substituição das equações (16) e (17) pelas seguintes: P pegar ( i) = f 1 k ( i) φ( i) k + f ( i) p p ( i) f ( i) 2 2 (18) f P ( ) ( ) ( ) pegar i = f i φ i (19) kd + Pode-se observar que nessa proposta, o único parâmetro novo, introduzido, em relação ao SACA é o nível de feromônio, φ(i), em cada posição da grade. De acordo com a equação (18), a probabilidade de uma formiga pegar um objeto da grade é inversamente proporcional à quantidade de feromônio naquela posição e à densidade de objetos em torno de i. Essa equação também leva em consideração o reforço do nível de feromônio em áreas com objetos similares. Em regiões com objetos dissimilares, a incorporação de f(i) multiplicando φ(i) contrabalança o efeito de eventual alta concentração de feromônio. Seguindo o mesmo raciocínio, a equação (19) indica que regiões com alta concentração de feromônio são atrativas para o depósito de outros objetos similares. É importante observar que regiões com altas concentrações de feromônio tendem a ser tanto um grupo recentemente formado ou um grupo em formação. O feromônio é uma função discreta da grade. Isto é, cada posição da grade i possui uma função independente φ(i), para a qual um procedimento de evaporação e difusão é implementado. A razão que o feromônio é evaporado é pré-estabelecido, definida como: ( i) φ( i). 99 φ (2) Cada célula da grade i também possui uma conexão com as células vizinhas, responsável por uma percentagem de difusão de feromônio. Isto é feito de forma que a percentagem de feromônio difundido na célula que se distancia da célula contígua, em qualquer direção decai geometricamente na razão 1/2, de forma que à terceira célula em 2 38

48 relação à contígua, em qualquer direção, a quantidade de feromônio difundida será nula. Na implementação do autor, o valor máximo de quantidade de feromônio somado foi considerado.1. A abordagem proposta aumenta a probabilidade de se desfazer os relativamente pequenos grupos, e aumenta a probabilidade de se deixar objetos em grupos densos. Isto é diretamente influenciado pela similaridade entre o dado e o cluster SEGMENTAÇÃO DE DADOS EM UM NÚMERO DESCONHECIDO DE GRUPOS ESPENCHITTI, 28, implementou no software WEKA uma variação do algoritmo de colônia de formigas de forma a permitir o agrupamento de dados por um usuário não especialista. Para tal, os únicos parâmetros a serem selecionados são o número de formigas que serão usadas e o número de ciclos a serem executados pelo algoritmo. necessidade, nesse caso, do conhecimento prévio das características da base de dados. Não há O autor comenta que a maior desvantagem dos métodos clássicos de agrupamento é a exigência de se arbitrar um valor para a quantidade de grupos, k, como parâmetro inicial. Esta informação é normalmente desconhecida, podendo ser necessária uma prévia análise de um especialista para se chegar a um valor adequado de k. Normalmente este valor é determinado por meio da aplicação de índices tais como Calinski e Harabasz ou PBM, que permitem avaliar qual o melhor valor para k. Para a aplicação destes índices, no entanto, há a necessidade de se fazer o agrupamento para cada valor de k a ser avaliado. A implementação utilizada foi a proposta por MONMARCHÉ, 1999, descrito no item 4.1 desta dissertação. Tal implementação foi utilizada, no entanto, sem a aplicação do algoritmo K-means. implementação: ESPENCHITTI, 28, utilizou o seguinte núcleo do algoritmo para sua Início do Algoritmo: 1. Distribua aleatoriamente as formigas (ant) no tabuleiro, 2. Para cada ant i faça a. Mova ant i, b. Se ant i não carrega nenhum objeto, Então olhe as oito células em volta e veja a possibilidade de carregar um objeto. (veja algoritmo for picking up ), c. Senão (ant i está carregando um objeto O ) olhe as oito células em volta e a possibilidade de soltar O. (veja algorithm for dropping), 3. Até atingir o critério de parada. 39

49 Explore as células c ao redor de ant i de forma aleatória: ant i Algoritmo for Picking up: 1. Classifique as oito células ao redor de ant i como inexploradas, 2. Repita a. Se c está ocupada então realize uma das seguintes ações: i. Caso c contenha um objeto O, Então carregue O com a probabilidade, P load ii. Caso c contenha uma pilha de dois objetos, então remova um dos dois com a probabilidade P destroy, senão. iii. Caso c contenha uma pilha H com mais de dois objetos, então remova o objeto com maior dissimilaridade O dissim (H) b. Classifique c como explorada, 3. Até todas as oito células terem sido exploradas ou um objeto tenha sido carregado. Algoritmo for Dropping 1. Classifique as oito células ao redor de ant i como inexploradas, 2. Repita i. Caso c esteja vazia, então solte O com a probabilidade, P drop ii. Caso c contém um objeto O então solte O para criar uma pilha H, mas verifique a máxima dissimilaridade permitida para criar uma pilha de dois objetos (T create) iii. Caso c contenha uma pilha H então solte O em H se e somente se não ocorra alteração do centróide de H iv. Senão Classifique c como explorada 3. Até todas as oito células terem sido exploradas ou o objeto carregado tenha sido solto. A parada do algoritmo ocorrerá após n ciclos definidos pelo usuário. 4

50 5 - IMPLEMENTAÇÃO O algoritmo SACA original (HANDL, 25), cujo pseudocódigo está transcrito em 3.2.3, foi implementado em MATLAB para permitir a realização dos experimentos a serem apresentados. Segue o fluxograma e detalhes de como foi feita a implementação FLUXOGRAMA INICIO Espalha randomicamente objetos na grade Gera-se agentes, e cada um pega um objeto Seleciona randomicamente Agente Movimenta Agente Calcula probabilidade de Agente deixar o objeto Agente deixa objeto? NÃO NÃO Critério de parada SIM Agente SEL outro objeto disponível FIM SIM Calcula probabilidade do Agente pegar o objeto Agente pega objeto? NÃO SIM Figura 12 - Fluxograma do algoritmo implementado 41

51 5.2 - DESCRIÇÃO DA IMPLEMENTAÇÃO Na implementação, a grade onde os itens se movimentam é representada por uma matriz bidimensional esparsa, recurso disponível no MATLAB para representar matrizes que possuem a maioria de seus elementos zero. Os índices da matriz representam as posições das células na grade, e os objetos (itens, registros) são os elementos não nulos da matriz, que são representados pelo índice do dado em seu conjunto original, multidimensional. Os agentes são representados por uma matriz da mesma dimensão, que está superposta à matriz que representa a grade. Para representar se o agente está carregando um objeto ou não, existe uma terceira matriz de referência, cujos valores relativos aos índices dos agentes tornam-se zeros ou uns, de forma a indicar o estado do agente. O movimento randômico dos agentes foi implementado de forma a simular o formato toroidal da grade, sem delimitação de limites. Isto significa que uma extremidade da grade se conecta à extremidade oposta, permitindo o livre movimento dos agentes. Figura 13 - Imagem de um toróide Para efeito de visualização, apesar do formato toroidal, a grade é apresentada como um plano. Ao longo das iterações, observa-se, pelos movimentos das formigas, que quando um agente ultrapassa uma extremidade, ele aparece na extremidade oposta. 42

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Francisco A. Rodrigues Departamento de Matemática Aplicada e Estatística - SME Conceitos básicos Classificação não-supervisionada:

Leia mais

Clustering (k-means, SOM e hierárquicos)

Clustering (k-means, SOM e hierárquicos) Clustering (k-means, SOM e hierárquicos) André Tavares da Silva andre.silva@udesc.br (Capítulo 10 de Duda e Hart) Clustering Introdução e tipos Roteiro Agrupamentos hierárquicos AGNES, DIANA e Dendogram

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 18 Aprendizado Não-Supervisionado Formas de Aprendizado Aprendizado Supervisionado Árvores de Decisão. K-Nearest Neighbor

Leia mais

Redes Neurais (Inteligência Artificial)

Redes Neurais (Inteligência Artificial) Redes Neurais (Inteligência Artificial) Aula 16 Aprendizado Não-Supervisionado Edirlei Soares de Lima Formas de Aprendizado Aprendizado Supervisionado Árvores de Decisão. K-Nearest

Leia mais

Análise do Desempenho do Algoritmo de Agrupamento Baseado em Colônia de Formigas Modificado

Análise do Desempenho do Algoritmo de Agrupamento Baseado em Colônia de Formigas Modificado Anais do CNMAC v. ISSN 1984-80X Análise do Desempenho do Algoritmo de Agrupamento Baseado em Colônia de Formigas Modificado Rosangela Villwock UFPR - Programa de Pós-Graduação em Métodos Numéricos em Engenharia

Leia mais

Universidade Federal do Paraná Departamento de Informática. Reconhecimento de Padrões. Tipos de Aprendizagem. Luiz Eduardo S. Oliveira, Ph.D.

Universidade Federal do Paraná Departamento de Informática. Reconhecimento de Padrões. Tipos de Aprendizagem. Luiz Eduardo S. Oliveira, Ph.D. Universidade Federal do Paraná Departamento de Informática Reconhecimento de Padrões Tipos de Aprendizagem Luiz Eduardo S. Oliveira, Ph.D. http://lesoliveira.net Objetivos Introduzir diferentes tipos de

Leia mais

Clustering: k-means e Agglomerative

Clustering: k-means e Agglomerative Tópicos Avançados em Avaliação de Desempenho de Sistemas Jackson Nunes Marco Eugênio Araújo Outubro de 2014 1 Sumário Contextualização Classificação Agrupamento (Clustering) Cenários de Aplicação Clustering

Leia mais

ANÁLISE DE CLUSTERIZAÇÃO: ESTUDO COMPARATIVO DE MECANISMOS DE AGRUPAMENTO USANDO O ALGORITMO DE COLÔNIA DE FORMIGAS

ANÁLISE DE CLUSTERIZAÇÃO: ESTUDO COMPARATIVO DE MECANISMOS DE AGRUPAMENTO USANDO O ALGORITMO DE COLÔNIA DE FORMIGAS ANÁLISE DE CLUSTERIZAÇÃO: ESTUDO COMPARATIVO DE MECANISMOS DE AGRUPAMENTO USANDO O ALGORITMO DE COLÔNIA DE FORMIGAS Trabalho de Conclusão de Curso Engenharia da Computação Ruben Neri de Araújo Orientador:

Leia mais

Aprendizado de Máquinas. Introdução à Aprendizado Não- Supervisionado

Aprendizado de Máquinas. Introdução à Aprendizado Não- Supervisionado Universidade Federal do Paraná (UFPR) Departamento de Informática (DInf) Aprendizado de Máquinas Introdução à Aprendizado Não- Supervisionado David Menotti, Ph.D. http://web.inf.ufpr.br/menotti Objetivos

Leia mais

Aprendizado de Máquina

Aprendizado de Máquina Aprendizado de Máquina André C. P. L. F. de Carvalho Posdoutorando: Isvani Frias-Blanco ICMC-USP Agrupamento de dados Tópicos Agrupamento de dados Dificuldades em agrupamento Algoritmos de agrupamento

Leia mais

Clustering - c-means e Self Organizing Maps

Clustering - c-means e Self Organizing Maps - c-means e Self Organizing Maps Sarajane M. Peres e Clodoaldo A. M. Lima 13 de abril de 2015 Material baseado em: HAN, J. & KAMBER, M. Data Mining: Concepts and Techniques. 2nd. 2006 FAUSETT, L. Fundamentals

Leia mais

Mineração de Dados em Biologia Molecular

Mineração de Dados em Biologia Molecular Mineração de Dados em Biologia Molecular André C. P. L. F. de Carvalho Monitor: Valéria Carvalho Agrupamento de Dados Tópicos Agrupamento de dados Análise de cluster Dificuldades em agrupamento Algoritmos

Leia mais

Inteligência nos Negócios (Business Inteligente)

Inteligência nos Negócios (Business Inteligente) Inteligência nos Negócios (Business Inteligente) Sistemas de Informação Sistemas de Apoio a Decisão Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 7) Fundamentação da disciplina Analise de dados Decisões

Leia mais

2 Processo de Agrupamentos

2 Processo de Agrupamentos 20 2 Processo de Agrupamentos A análise de agrupamentos pode ser definida como o processo de determinação de k grupos em um conjunto de dados. Para entender o que isso significa, observe-se a Figura. Y

Leia mais

Organização. 1. Introdução 2. Medidas de Similaridade. hierárquicos, de partição) 4. Critérios numéricos para definir o número de clusters

Organização. 1. Introdução 2. Medidas de Similaridade. hierárquicos, de partição) 4. Critérios numéricos para definir o número de clusters Organização. Introdução 2. Medidas de Similaridade 3. Métodos de Agrupamento (métodos hierárquicos, de partição) 4. Critérios numéricos para definir o número de clusters Métodos de Partição Cada exemplo

Leia mais

Problemas de otimização

Problemas de otimização Problemas de otimização Problemas de decisão: Existe uma solução satisfazendo certa propriedade? Resultado: sim ou não Problemas de otimização: Entre todas as soluções satisfazendo determinada propriedade,

Leia mais

Introdução à Mineração de Dados com Aplicações em Ciências Espaciais

Introdução à Mineração de Dados com Aplicações em Ciências Espaciais Introdução à Mineração de Dados com Aplicações em Ciências Espaciais Escola de Verão do Laboratório Associado de Computação e Matemática Aplicada Rafael Santos Dia 3: 1 /54 Programa Dia 1: Apresentação

Leia mais

Mineração de Dados em Biologia Molecular

Mineração de Dados em Biologia Molecular Mineração de Dados em Biologia Molecular Principais tópicos André C. P. L. F. de Carvalho Monitor: Valéria Carvalho Métodos baseados em distância Aprendizado baseado em instâncias Conceitos básicos KNN

Leia mais

ALGORITMOS DE ORDENAÇÃO

ALGORITMOS DE ORDENAÇÃO ALGORITMOS DE ORDENAÇÃO Prof. André Backes Conceitos básicos 2 Ordenação Ato de colocar um conjunto de dados em uma determinada ordem predefinida Fora de ordem 5, 2, 1, 3, 4 Ordenado 1, 2, 3, 4, 5 OU 5,

Leia mais

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO Prof. Msc. Saulo Popov Zambiasi (saulopz@gmail.com) Informação - ICPG - Criciuma - SC 1 Características Gerais, operadores, algoritmo.

Leia mais

Projected Clustering Algorithm

Projected Clustering Algorithm Projected Clustering Algorithm Emanuel Matos 5560105 Disciplina : Análise de Agrupamentos Prof. Dr. Ricardo Campello Dez/2010 View Problema Objetivo Definições/Premissas Algoritmo Acurácia Escalabilidade

Leia mais

Roteiro. PCC142 / BCC444 - Mineração de Dados Agrupamento (Segmentação) Agrupamento (Segmentação) Introdução. Denição. Aplicações

Roteiro. PCC142 / BCC444 - Mineração de Dados Agrupamento (Segmentação) Agrupamento (Segmentação) Introdução. Denição. Aplicações Roteiro PCC142 / BCC444 - Mineração de Dados (Segmentação) Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto luizhenrique@icebufopbr wwwdecomufopbr/luiz Introdução

Leia mais

Aula 6 Mineração Streams Representação dos Dados. Profa. Elaine Faria UFU

Aula 6 Mineração Streams Representação dos Dados. Profa. Elaine Faria UFU Aula 6 Mineração Streams Representação dos Dados Profa. Elaine Faria UFU - 2017 Agradecimentos Este material é baseado No livro Tan et al, 2006 Nos slides do prof. Andre C. P. L. F. Carvalho Agradecimentos

Leia mais

Seleção de Atributos 1

Seleção de Atributos 1 Seleção de Atributos 1 Tópicos Por que atributos irrelevantes são um problema Quais tipos de algoritmos de aprendizado são afetados Seleção de atributos antes do aprendizado Benefícios Abordagens automáticas

Leia mais

Mapas Auto-Organizáveis de Kohonen (SOM) SOM é uma rede neural artificial (Kohonen (1995))

Mapas Auto-Organizáveis de Kohonen (SOM) SOM é uma rede neural artificial (Kohonen (1995)) Mapas Auto-Organizáveis de Kohonen (SOM) SOM é uma rede neural artificial (Kohonen (1995)) que realiza simultaneamente agrupamento e visualização SOM usa aprendizagem não supervisionada para mapear dados

Leia mais

Desempenho do Agrupamento Baseado em Formigas com relação ao Método Ward e aos Mapas de Kohonen Unidimensionais

Desempenho do Agrupamento Baseado em Formigas com relação ao Método Ward e aos Mapas de Kohonen Unidimensionais Desempenho do Agrupamento Baseado em Formigas com relação ao Método Ward e aos Mapas de Kohonen Unidimensionais Rosangela Villwock (UNIOESTE) rosangela@unioeste.br Maria Teresina Arns Steiner (UFPR) tere@ufpr.br

Leia mais

Aula 8 - Reconhecimento e Interpretação. Prof. Adilson Gonzaga

Aula 8 - Reconhecimento e Interpretação. Prof. Adilson Gonzaga Aula 8 - Reconhecimento e Interpretação Prof. Adilson Gonzaga Elementos de Visão Computacional: Visão Computacional Processamento de Baio Nível Processamento de Nível Intermediário Processamento de Alto

Leia mais

Redes Neurais não Supervisionadas: SOM

Redes Neurais não Supervisionadas: SOM Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Redes Neurais não Supervisionadas: SOM DCA0121 Inteligência Artificial Aplicada Heitor Medeiros 1 Tópicos

Leia mais

Sumário. Referências utilizadas. Introdução. MAFIA: Merging of Adaptive Finite Intervals. Introdução Visão Geral e Objetivos do MAFIA

Sumário. Referências utilizadas. Introdução. MAFIA: Merging of Adaptive Finite Intervals. Introdução Visão Geral e Objetivos do MAFIA Sumário : Merging of Adaptive Finite Intervals Elaine Ribeiro de Faria Análise de Agrupamento de Dados ICMC-USP Dezembro 2010 Introdução Visão Geral e Objetivos do Algoritmo Grid Adaptativo Algoritmo Algoritmo

Leia mais

Introdução às Redes Neurais Artificiais

Introdução às Redes Neurais Artificiais Introdução às Redes Neurais Artificiais Clusterização: Conceitos Básicos Prof. João Marcos Meirelles da Silva www.professores.uff.br/jmarcos Departamento de Engenharia de Telecomunicações Escola de Engenharia

Leia mais

Universidade Federal do Paraná Departamento de Informática. Reconhecimento de Padrões. Segmentação. Luiz Eduardo S. Oliveira, Ph.D.

Universidade Federal do Paraná Departamento de Informática. Reconhecimento de Padrões. Segmentação. Luiz Eduardo S. Oliveira, Ph.D. Universidade Federal do Paraná Departamento de Informática Reconhecimento de Padrões Segmentação Luiz Eduardo S. Oliveira, Ph.D. http://lesoliveira.net Objetivos Introduzir os conceitos básicos de segmentação

Leia mais

SEL-0339 Introdução à Visão Computacional. Aula 7 Reconhecimento de Objetos

SEL-0339 Introdução à Visão Computacional. Aula 7 Reconhecimento de Objetos Departamento de Engenharia Elétrica - EESC-USP SEL-0339 Introdução à Visão Computacional Aula 7 Reconhecimento de Objetos Prof. Dr. Marcelo Andrade da Costa Vieira Prof. Dr. Adilson Gonzaga mvieira@sc.usp.br

Leia mais

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação Inteligência Artificial Algoritmos Genéticos Aula I Introdução Roteiro Introdução Computação Evolutiva Algoritmos

Leia mais

Aprendizagem de Máquina

Aprendizagem de Máquina Problema do Agrupamento Aprendizagem de Máquina Alessandro L. Koerich Seja x = (x 1, x 2,, x d ) um vetor d dimensional de características Seja D um conjunto de x vetores, D = { x(1), x(2),, x(n) } Problema

Leia mais

3 Extração de Regras Simbólicas a partir de Máquinas de Vetores Suporte 3.1 Introdução

3 Extração de Regras Simbólicas a partir de Máquinas de Vetores Suporte 3.1 Introdução 3 Extração de Regras Simbólicas a partir de Máquinas de Vetores Suporte 3.1 Introdução Como já mencionado na seção 1.1, as SVMs geram, da mesma forma que redes neurais (RN), um "modelo caixa preta" de

Leia mais

Otimização por Enxame de Partículas (PSO) e Otimização por Colônias de Formigas (ASO) aplicadas ao Problema do Caixeiro Viajante (TSP)

Otimização por Enxame de Partículas (PSO) e Otimização por Colônias de Formigas (ASO) aplicadas ao Problema do Caixeiro Viajante (TSP) Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Otimização por Enxame de Partículas (PSO) e Otimização por Colônias de Formigas (ASO) aplicadas ao Problema do Caixeiro Viajante

Leia mais

Aprendizado de Máquina (Machine Learning)

Aprendizado de Máquina (Machine Learning) Ciência da Computação (Machine Learning) Aula 02 Representação dos dados Pré-processamento Max Pereira Tipo de Dados Os atributos usados para descrever objetos de dados podem ser de diferentes tipos: Quantitativos

Leia mais

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica REDES NEURAIS ARTIFICIAIS AULA 03 Prof. Dr. André A. P. Biscaro 1º Semestre de 2017 INTRODUÇÃO Aprendizagem é um processo pelo qual os parâmetros livres de uma rede neural são adaptados através de um processo

Leia mais

Realimentação de Relevância

Realimentação de Relevância Wendel Melo Faculdade de Computação Universidade Federal de Uberlândia Recuperação da Informação Ciclo de realimentação onde uma consulta q recebida do usuário é transformada em uma consulta modificada

Leia mais

Mineração de Dados. Modelos Descritivos. Descoberta de agrupamentos

Mineração de Dados. Modelos Descritivos. Descoberta de agrupamentos Mineração de Dados Descoberta de agrupamentos Modelos Descritivos tarefa de geração de um modelo descritivo consiste (em grande parte) em analisar os dados do domínio (entradas) e sugerir uma partição

Leia mais

Otimização Combinatória - Parte 4

Otimização Combinatória - Parte 4 Graduação em Matemática Industrial Otimização Combinatória - Parte 4 Prof. Thiago Alves de Queiroz Departamento de Matemática - CAC/UFG 2/2014 Thiago Queiroz (DM) Parte 4 2/2014 1 / 33 Complexidade Computacional

Leia mais

4 Métodos Existentes. 4.1 Algoritmo Genético

4 Métodos Existentes. 4.1 Algoritmo Genético 61 4 Métodos Existentes A hibridização de diferentes métodos é em geral utilizada para resolver problemas de escalonamento, por fornecer empiricamente maior eficiência na busca de soluções. Ela pode ser

Leia mais

Consultas por Similaridade em Domínios de Dados Complexos

Consultas por Similaridade em Domínios de Dados Complexos Consultas por Similaridade em Domínios de Dados Complexos Guilherme Felipe Zabot Orientador: Profº Dr Caetano Traina Jr Roteiro Objetivo Introdução Dados Complexos Representação de Dados Complexos Extração

Leia mais

Redes Neurais: RBF. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Redes Neurais: RBF. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Redes Neurais: RBF DCA0121 Inteligência Artificial Aplicada Heitor Medeiros 1 Tópicos Redes de Funções de

Leia mais

Autor(es) HARLEI MIGUEL DE ARRUDA LEITE. Orientador(es) MARINA TERESA PIRES VIEIRA. Apoio Financeiro PIBIC/CNPQ. 1. Introdução

Autor(es) HARLEI MIGUEL DE ARRUDA LEITE. Orientador(es) MARINA TERESA PIRES VIEIRA. Apoio Financeiro PIBIC/CNPQ. 1. Introdução 19 Congresso de Iniciação Científica IMPLEMENTAÇÃO DE GUIAS E ALGORITMOS PARA REGRAS DE ASSOCIAÇÃO MULTIRELACIONAL NA FERRAMENTA DE MINERAÇÃO DE DADOS KIRA Autor(es) HARLEI MIGUEL DE ARRUDA LEITE Orientador(es)

Leia mais

Inteligência nos Negócios (Business Inteligente)

Inteligência nos Negócios (Business Inteligente) Inteligência nos Negócios (Business Inteligente) Sistemas de Informação Sistemas de Apoio a Decisão Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 7) Fundamentação da disciplina Analise de dados Decisões

Leia mais

3 Sistemas Neuro-Fuzzy Hierárquicos

3 Sistemas Neuro-Fuzzy Hierárquicos 3 Sistemas Neuro-Fuzzy Hierárquicos 3. Introdução Sistemas neuro-fuzzy (SNF) são sistemas híbridos que combinam as vantagens das redes neurais, no que se refere ao aprendizado, com o poder de interpretação

Leia mais

CLARA. Resumo. Introdução. Artigo de Referência [1] Introdução PAM. Modelagem como grafo CLARANS. Comparação de eficiência Conclusão

CLARA. Resumo. Introdução. Artigo de Referência [1] Introdução PAM. Modelagem como grafo CLARANS. Comparação de eficiência Conclusão Resumo CLARANS Diego Raphael Amancio Introdução PAM CLARA CLARANS Comparação de eficiência Conclusão 2 Artigo de Referência [1] Introdução Imagem do artigo original entitulado Efficient and Effective Clustering

Leia mais

Tópicos Avançados em IA. Prof. Eduardo R. Hruschka

Tópicos Avançados em IA. Prof. Eduardo R. Hruschka Tópicos Avançados em IA Prof. Eduardo R. Hruschka Créditos Este material consiste de adaptações dos originais: Elaborados por Eduardo Hruschka e Ricardo Campello de (Tan et al., 2006) de E. Keogh (SBBD

Leia mais

3 Aprendizado por reforço

3 Aprendizado por reforço 3 Aprendizado por reforço Aprendizado por reforço é um ramo estudado em estatística, psicologia, neurociência e ciência da computação. Atraiu o interesse de pesquisadores ligados a aprendizado de máquina

Leia mais

Metodologia Aplicada a Computação.

Metodologia Aplicada a Computação. Metodologia Aplicada a Computação gaudenciothais@gmail.com Pré-processamento de dados Técnicas utilizadas para melhorar a qualidade dos dados; Eliminam ou minimizam os problemas como ruídos, valores incorretos,

Leia mais

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Desenvolvimento de Aplicações Paralelas

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Desenvolvimento de Aplicações Paralelas Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano Desenvolvimento de Aplicações Paralelas (gec.di.uminho.pt/lesi/ap10203/aula06aplicaçõespar.pdf) João Luís Ferreira Sobral Departamento

Leia mais

Algoritmos Evolutivos para Otimização

Algoritmos Evolutivos para Otimização Algoritmos Evolutivos para Otimização A área de aplicação que tem recebido mais atenção é a otimização. Uma das razões é que existem uma variedade de problemas de otimização e a maioria deles sem solução

Leia mais

Por que atributos irrelevantes são um problema Quais tipos de algoritmos de aprendizado são afetados Abordagens automáticas

Por que atributos irrelevantes são um problema Quais tipos de algoritmos de aprendizado são afetados Abordagens automáticas Por que atributos irrelevantes são um problema Quais tipos de algoritmos de aprendizado são afetados Abordagens automáticas Wrapper Filtros Muitos algoritmos de AM são projetados de modo a selecionar os

Leia mais

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO AULA 06 Algoritmos Genéticos Sumário Introdução Inteligência Artificial (IA) Algoritmos Genéticos Aplicações de

Leia mais

Algoritmos Genéticos

Algoritmos Genéticos Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Algoritmos Genéticos Aluno: Fabricio Aparecido Breve Prof.: Dr. André Ponce de Leon F. de Carvalho São Carlos São Paulo Maio

Leia mais

Endereçamento Aberto

Endereçamento Aberto Endereçamento Aberto ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo dbeder@usp.br 11/2008 Material baseado em slides

Leia mais

REDES AUTO-ORGANIZÁVEIS SELF-ORGANIING MAP (SOM)

REDES AUTO-ORGANIZÁVEIS SELF-ORGANIING MAP (SOM) REDES AUTO-ORGANIZÁVEIS SELF-ORGANIING MAP (SOM) APRENDIZADO COMPETITIVO Os algoritmos de aprendizado não-supervisionado são geralmente baseados em uma forma de competição entre os neurônios. O método

Leia mais

2COP229 Inteligência Computacional. Aula 3. Clusterização.

2COP229 Inteligência Computacional. Aula 3. Clusterização. Aula 3 Clusterização Sumário (Clusterização) - Introdução - Aprendizado Não Supervisionado - Aprendizado Supervisionado - Introdução: Clusterização - Etapas para o processo de Clusterização - Distância

Leia mais

6 Clustering: Definindo Grupos Estratégicos

6 Clustering: Definindo Grupos Estratégicos 6 Clustering: Definindo Grupos Estratégicos 6.1 Introdução Não é difícil deduzir que as 60 empresas distribuidoras de energia elétrica, operantes no SEB, apresentam características heterogêneas. Entretanto,

Leia mais

Algoritmo CLIQUE (Clustering In QUEst)

Algoritmo CLIQUE (Clustering In QUEst) Algoritmo CLIQUE (Clustering In QUEst) Marcelo Camacho de Souza Nº USP: 3199616 Roteiro Algoritmo CLIQUE Exemplo Prático Complexidade Computacional Vantagens e Desvantagens Autores (IBM Almaden Research

Leia mais

3 Algoritmos Genéticos

3 Algoritmos Genéticos Técnicas de Inteligência Computacional 33 3 Algoritmos Genéticos Este capítulo resume os principais conceitos sobre o algoritmo evolucionário empregado nesta dissertação. É apresentada uma breve explicação

Leia mais

Tópicos Especiais em Otimização

Tópicos Especiais em Otimização Tópicos Especiais em Otimização ivo.junior@ufjf.edu.br Juiz de Fora, 05 de Maio de 2016 Introdução Qual a diferença entre inteligência: ARTIFICIAL E COMPUTACIONAL? ARTIFICIAL: É a ciência que tenta compreender

Leia mais

Mapas Auto-Organizáveis de Kohonen SOM

Mapas Auto-Organizáveis de Kohonen SOM Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Mapas Auto-Organizáveis de Kohonen SOM Redes Neurais Artificiais Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com

Leia mais

Métodos de Ordenação Parte I

Métodos de Ordenação Parte I Estrutura de Dados II Métodos de Ordenação Parte I Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais da Prof a Ana Eliza e Prof. Robson Lins Rearranjar

Leia mais

Inteligência Artificial. Conceitos Gerais

Inteligência Artificial. Conceitos Gerais Inteligência Artificial Conceitos Gerais Inteligência Artificial - IA IA é um campo de estudo multidisciplinar e interdisciplinar, que se apóia no conhecimento e evolução de outras áreas do conhecimento.

Leia mais

Mapas Auto-Organizáveis de Kohonen SOM

Mapas Auto-Organizáveis de Kohonen SOM Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Mapas Auto-Organizáveis de Kohonen SOM Redes Neurais Artificiais Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com

Leia mais

Projeções Multi-dimensionais

Projeções Multi-dimensionais Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade de São Paulo (USP) 23 de setembro de 2010 Introdução

Leia mais

A Figura 28 mostra a representação gráfica dos dados presentes na base de dados fcmdata do Matlab de dimensão 140x2 dividida em 2 grupos.

A Figura 28 mostra a representação gráfica dos dados presentes na base de dados fcmdata do Matlab de dimensão 140x2 dividida em 2 grupos. 84 5 Estudos de Caso A seguir serão apresentados três estudos de caso. Os dois primeiros estudos de caso têm por objetivo demonstrar a facilidade de uso do aplicativo, e o último estudo de caso é focado

Leia mais

Sumário. RObust Clustering using links ROCK. Thiago F. Covões. Motivação. Motivação. Links. Market basket analys. Motivação

Sumário. RObust Clustering using links ROCK. Thiago F. Covões. Motivação. Motivação. Links. Market basket analys. Motivação Sumário RObust Clustering using links ROCK Thiago F. Covões Motivação Links Função de qualidade Algoritmo Vantagens/Desvantagens SCC5895Análise de Agrupamento de Dados 1 2 Motivação Atributos categóricos/nominais/discretos

Leia mais

Aprendizagem de Máquina. Prof. Júlio Cesar Nievola PPGIA - PUCPR

Aprendizagem de Máquina. Prof. Júlio Cesar Nievola PPGIA - PUCPR Aprendizagem de Máquina Prof. Júlio Cesar Nievola PPGIA - PUCPR Introdução Justificativa Recente progresso em algoritmos e teoria Disponibilidade crescente de dados online Poder computacional disponível

Leia mais

Introdução aos Algoritmos Genéticos

Introdução aos Algoritmos Genéticos Introdução aos Algoritmos Genéticos Prof. Matheus Giovanni Pires EXA 868 Inteligência Artificial Não-Simbólica B Universidade Estadual de Feira de Santana 2 Algoritmos Genéticos: Introdução Introduzidos

Leia mais

5 VNS com Filtro e Reconexão por Caminhos

5 VNS com Filtro e Reconexão por Caminhos 5 VNS com Filtro e Reconexão por Caminhos A metaheurística VNS (Variable Neighborhood Search) foi proposta por Mladenović e Hansen [40] e possui como idéia básica a mudança de vizinhanças realizada da

Leia mais

Otimização por Colônia de Formigas (ACO)

Otimização por Colônia de Formigas (ACO) Otimização por Colônia de Formigas (ACO) Inspiração Biológica Proposto por Dorigo e Gambardella em 1997 ACO (Ant Colony Optimization) Principal aplicação no PCV Programação do algoritmo Inspiração Biológica

Leia mais

Otimização em Colônias de Formigas. Prof. Eduardo R. Hruschka (Slides adaptados dos originais elaborados pelo Prof. André C. P. L. F.

Otimização em Colônias de Formigas. Prof. Eduardo R. Hruschka (Slides adaptados dos originais elaborados pelo Prof. André C. P. L. F. Otimização em Colônias de Formigas Prof. Eduardo R. Hruschka (Slides adaptados dos originais elaborados pelo Prof. André C. P. L. F. de Carvalho) Principais tópicos Introdução Colônias de Formigas Formação

Leia mais

Descritores de Imagem (exemplos)

Descritores de Imagem (exemplos) Descritores de Imagem (exemplos) André Tavares da Silva andre.silva@udesc.br Baseado em Penatti (2009) e Silva (2011) Alguns exemplos Descritores baseados em cor Na literatura existem quatro abordagens

Leia mais

Análise Multivariada Aplicada à Contabilidade

Análise Multivariada Aplicada à Contabilidade Mestrado e Doutorado em Controladoria e Contabilidade Análise Multivariada Aplicada à Contabilidade Prof. Dr. Marcelo Botelho da Costa Moraes www.marcelobotelho.com mbotelho@usp.br Turma: 2º / 2016 1 Agenda

Leia mais

UMA PROPOSTA DE DECOMPOSIÇÃO DE SISTEMAS LINEARES PARA DMPC

UMA PROPOSTA DE DECOMPOSIÇÃO DE SISTEMAS LINEARES PARA DMPC UMA PROPOSTA DE DECOMPOSIÇÃO DE SISTEMAS LINEARES PARA DMPC R. R. ROCHA 1 e L. C. OLIVEIRA-LOPES 1 1 Universidade Federal de Uberlândia, Faculdade de Engenharia Química E-mail para contato: rosi.rocha28@gmail.com;

Leia mais

Redes Neurais e Sistemas Fuzzy

Redes Neurais e Sistemas Fuzzy Redes Neurais e Sistemas Fuzzy Redes de uma única camada O Perceptron elementar Classificação de padrões por um perceptron A tarefa de classificação consiste em aprender a atribuir rótulos a dados que

Leia mais

ANÁLISE DO DESEMPENHO DE UM ALGORITMO DE AGRUPAMENTO MODIFICADO BASEADO EM COLÔNIA DE FORMIGAS

ANÁLISE DO DESEMPENHO DE UM ALGORITMO DE AGRUPAMENTO MODIFICADO BASEADO EM COLÔNIA DE FORMIGAS ANÁLISE DO DESEMPENHO DE UM ALGORITMO DE AGRUPAMENTO MODIFICADO BASEADO EM COLÔNIA DE FORMIGAS Rosangela Villwock UFPR - Programa de Pós-Graduação em Métodos Numéricos em Engenharia Universidade Estadual

Leia mais

Optimização de um Plano de Marketing Directo para o Sector da Banca Daniel Barata

Optimização de um Plano de Marketing Directo para o Sector da Banca Daniel Barata Optimização de um Plano de Marketing Directo para o Sector da Banca Daniel Barata, Fernando Bação, Victor Lobo Agenda Introdução Justificação do Tema Formulação usada Métodos de Resolução Exacto Guloso

Leia mais

Aula 7 Medidas de Distância. Profa. Elaine Faria UFU

Aula 7 Medidas de Distância. Profa. Elaine Faria UFU Aula 7 Medidas de Distância Profa. Elaine Faria UFU - 2017 Agradecimentos Este material é baseado No livro Tan et al, 2006 Nos slides do prof Andre C. P. L. F. Carvalho Agradecimentos Ao professor André

Leia mais

Profª Ana Lúcia Lima Marreiros Maia Profª Fabiana Cristina Bertoni

Profª Ana Lúcia Lima Marreiros Maia Profª Fabiana Cristina Bertoni Profª Ana Lúcia Lima Marreiros Maia Profª Fabiana Cristina Bertoni Motivação e Objetivos Etapas do Desenvolvimento de um Sistema de Recuperação de Informações (SRI): Pré-processamento; Representação; Extração

Leia mais

SBC - Sistemas Baseados em Conhecimento

SBC - Sistemas Baseados em Conhecimento Siglas, Símbolos, Abreviaturas DW - Data Warehouse KDD Knowledge Discovery in Database MD Mineração de Dados OLAP - On-line analytical processing SBC - Sistemas Baseados em Conhecimento 1. INTRODUÇÃO O

Leia mais

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C01 Simulated Annealing (20/11/07). C02 Busca Tabu (22/11/07). C03 Colônia

Leia mais

7 a Lista de Exercícios Assunto: Funções e passagem por referência com vetor e matriz (Tópico 7)

7 a Lista de Exercícios Assunto: Funções e passagem por referência com vetor e matriz (Tópico 7) 7 a Lista de Exercícios Assunto: Funções e passagem por referência com vetor e matriz (Tópico 7) Essa lista de exercícios tem como objetivo principal desenvolver algoritmos a partir dos conteúdos abordados

Leia mais

AUTOCORRELAÇÃO ESPACIAL. Flávia F. Feitosa

AUTOCORRELAÇÃO ESPACIAL. Flávia F. Feitosa AUTOCORRELAÇÃO ESPACIAL Flávia F. Feitosa BH1350 Métodos e Técnicas de Análise da Informação para o Planejamento Junho de 2015 AULAS ANTERIORES A importância analítica do espaço para o Planejamento Territorial

Leia mais

5 Projeto de Novos Polímeros Condutores

5 Projeto de Novos Polímeros Condutores 5 Projeto de Novos Polímeros Condutores Polímeros condutores constituem uma nova classe de materiais eletrônicos com propriedades incomuns, baseadas em novos fenômenos físicos, tendo aplicações com largo

Leia mais

3 Metaeurísticas e Resolvedores MIP

3 Metaeurísticas e Resolvedores MIP 3 Metaeurísticas e Resolvedores MIP A combinação entre metaeurísticas e resolvedores MIP é uma estratégia relativamente recente, tendo seus primeiros estudos realizados ao longo da última década. O survey

Leia mais

Stela Adami Vayego DEST/UFPR

Stela Adami Vayego DEST/UFPR Resumo 5 - Análise Bivariada (Bidimensional) 5.1. Introdução O principal objetivo das análises nessa situação é explorar relações (similaridades) entre duas variáveis. A distribuição conjunta das freqüências

Leia mais

Fundamentos de Inteligência Artificial [5COP099]

Fundamentos de Inteligência Artificial [5COP099] Fundamentos de Inteligência Artificial [5COP099] Dr. Sylvio Barbon Junior Departamento de Computação - UEL 1 o Semestre Assunto Aula 10 Modelos Preditivos - Árvore de Decisão 2 de 20 Aula 10 - Árvore de

Leia mais

Gerência da Memória. Adão de Melo Neto

Gerência da Memória. Adão de Melo Neto Gerência da Memória Adão de Melo Neto 1 Memória Principal Antigamente Recurso escasso Desenvolvimento de um sistema operacional (SO) que não ocupassem muito espaço de memória principal (MP) Atualmente

Leia mais

Escalonamento Multidimensional

Escalonamento Multidimensional Programa de Pós-Graduação em Administração de Organizações (PPGAO) Análise de dados multivariados I Escalonamento Multidimensional Escalonamento Multidimensional (EMD) CAPÍTULO 9 Escalonamento Multidimensional

Leia mais

Mineração de Dados. Arthur Emanuel de O. Carosia Cristina Dutra de Aguiar Ciferri

Mineração de Dados. Arthur Emanuel de O. Carosia Cristina Dutra de Aguiar Ciferri Mineração de Dados Arthur Emanuel de O. Carosia Cristina Dutra de Aguiar Ciferri 1 Motivação Aumento da capacidade de processamento e de armazenamento de dados; Baixo custo; Grande quantidade de dados

Leia mais

Tabela Hash: Índice remissivo

Tabela Hash: Índice remissivo Capítulo 3 Tabela Hash: Índice remissivo Um índice remissivo lista os termos e tópicos que são abordados em um documento juntamente com páginas em que aparecem. É bastante comum encontrar tais índices

Leia mais

6 Estudos de Casos Porta Lógica OU de 4 Entradas

6 Estudos de Casos Porta Lógica OU de 4 Entradas 6 Estudos de Casos Com o objetivo de avaliar a síntese automática de circuitos de QCA usando técnicas de Hardware Evolucionário (EHW), alguns circuitos foram sintetizados e serão apresentados a seguir.

Leia mais

Aprendizado de Máquina (Machine Learning)

Aprendizado de Máquina (Machine Learning) Ciência da Computação (Machine Learning) Aula 07 Classificação com o algoritmo knn Max Pereira Classificação com o algoritmo k-nearest Neighbors (knn) Como os filmes são categorizados em gêneros? O que

Leia mais

Em contraste aos métodos de aprendizado que constroem uma descrição explicita genérica da função alvo. Os métodos baseados em instâncias guardam os

Em contraste aos métodos de aprendizado que constroem uma descrição explicita genérica da função alvo. Os métodos baseados em instâncias guardam os Em contraste aos métodos de aprendizado que constroem uma descrição explicita genérica da função alvo. Os métodos baseados em instâncias guardam os exemplos de treinamento A generalização é posposta até

Leia mais

Introdução ao Data Mining (Mineração de Dados)

Introdução ao Data Mining (Mineração de Dados) Introdução ao Data Mining (Mineração de Dados) Quem é da área de TI, provavelmente já ouviu sobre Data Mining, mesmo que não saiba o que é. É uma das últimas modas relacionados à BD. Para se ter uma noção

Leia mais