Clusterização

Page 1


RICARDO RAMOS LINCK FABIANA LORENZI

CLUSTERIZAÇÃO

Utilizando Inteligência Artificial para agrupar pessoas

1ª edição

Porto Alegre César Gonçalves Larcen 2013



http://www.cgled.blogspot.com.br/2013/03/livro-2013-clusterizacao.html Copyright © 2013 Todos os direitos reservados. Capa: Bianca Larcen. http://biankah.deviantart.com/ Editor: César Gonçalves Larcen. http://www.cgled.blogspot.com.br/ Coordenação de Edição e Arte Final: Rejane Bagnara Larcen. https://picasaweb.google.com/rejane.larcen/ Diagramação: Bianca Larcen. http://biankah.deviantart.com/ Dados Internacionais de Catalogação na Publicação (CIP) ____________________________________________________________ L736c

Linck, Ricardo Ramos Clusterização: utilizando inteligência artificial para agrupar pessoas. / Ricardo Ramos Linck e Fabiana Lorenzi – Porto Alegre: César Gonçalves Larcen, 2013. 120 p. : il. ISBN 978-85-912136-9-6 1. Computação. 2. Informática.

3. Clusterização. I. Lorenzi, Fabiana. II. Título. CDU 681.3.421

____________________________________________________________ Bibliotecária Responsável: Ana Lígia Trindade CRB/10-1235

Imagens no corpo do livro providenciadas pelos autores.


///

+ CGL(ed) + MMXIII +

\\\

[c] [l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

Disponível em: < http://creativecommons.org/licenses/by-nc-nd/3.0/ >. Acessado em: 04.ago.2012.

= (cc) creative commons

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(5) / (120)

///


/// [c]

+ CGL(ed) + MMXIII + _____________________________________________

\\\

[l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

_____________________________________________ Autor:

RICARDO RAMOS LINCK.

linck.ricardo@gmail.com http://lattes.cnpq.br/2329148250084206 Ricardo Ramos Linck atualmente é Mestrando em Ciência da Computação pela UFRGS - Universidade Federal do Rio Grande do Sul e é Analista de Sistemas no Serpro - Serviço Federal de Processamento de Dados. Possui Especialização em Desenvolvimento de Software, Bacharelado em Sistemas de Informação e Bacharelado em Administração de Empresas. Possui larga experiência profissional na área de Ciência da Computação, trabalhando em ambientes de grande porte e de baixa plataforma.

= Autor: Ricardo Ramos Linck.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(6) / (120)

///


/// [c]

+ CGL(ed) + MMXIII + _____________________________________________

\\\

[l] [u] [s] [t] [e] [r]

_____________________________________________ Autora:

FABIANA LORENZI.

[i]

http://lattes.cnpq.br/3291500007075755

[z]

Fabiana Lorenzi possui Doutorado em Ciência da Computação pela Universidade Federal do Rio Grande do Sul (2010), Mestrado em Ciência da Computação pela Universidade Federal do Rio Grande do Sul (1998) e graduação em Informática pela Universidade Luterana do Brasil (1995). Atualmente é Professora adjunto da Universidade Luterana do Brasil (Canoas/RS) e colaboradora na Invenio Software Inteligente. Tem experiência na área de Ciência da Computação, atuando principalmente nas áreas de sistemas de recomendação, raciocínio baseado em casos e sistemas multiagente.

[a] [ç] [ã] [o] = (2) (0) (1) (3)

= Autora: Fabiana Lorenzi.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(7) / (120)

///


/// [c]

+ CGL(ed) + MMXIII + _____________________________________________

\\\

[l] [u] [s] [t] [e]

_____________________________________________ Diagramação e capa:

BIANCA LARCEN.

[r]

biancabrasilrs@gmail.com http://biankah.deviantart.com/

[i] [z] [a] [ç]

Bianca Larcen trabalha com diagramação e arte digital (ilustrações e colorização), natural de Porto Alegre - RS, Brasil.

[ã] [o] = (2) (0) (1) (3)

= Diagramação e capa: Bianca Larcen.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(8) / (120)

///


/// [c]

+ CGL(ed) + MMXIII + _____________________________________________

\\\

[l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã]

_____________________________________________ Coordenadora de edição e arte final:

REJANE BAGNARA LARCEN.

arqlarcen@gmail.com https://picasaweb.google.com/rejane.larcen/ Rejane Bagnara Larcen é Especialista em Docência Universitária (2007) e graduada bacharel em Arquitetura e Urbanismo pela ULBRA (Universidade Luterana do Brasil). Produz arte em técnicas de patchwork, natural de Muçum - RS Brasil.

[o] = (2) (0) (1) (3)

= Coordenadora de edição e arte final: Rejane Bagnara Larcen.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(9) / (120)

///


/// [c]

+ CGL(ed) + MMXIII + _____________________________________________

\\\

[l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o]

_____________________________________________ Editor:

CÉSAR GONÇALVES LARCEN. clarcen2009@gmail.com http://br.linkedin.com/in/larcen

César Gonçalves Larcen é Mestre em Educação (2010) e Especialista em Docência Universitária (2007) pela ULBRA (Universidade Luterana do Brasil). Analista de Sistemas(PROCERGS), graduado bacharel em Ciências Contábeis pela Faculdade São Judas Tadeu, natural de Porto Alegre – RS.

= (2) (0) (1) (3)

= Editor: César Gonçalves Larcen.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(10) / (120)

///


Índice Prefácio .................................................................................................................................13 Apresentação ................................................................................................................17 PARTE I..............................................................................................................................19 1. Clusterização ........................................................................................................20 1.1. Clusterização Exclusiva ..........................................................................................................23 1.2. Clusterização de Sobreposição................................................................................................26 1.3. Clusterização Hierárquica .......................................................................................................28 1.4. Clusterização Probabilística....................................................................................................31

2. Inteligência Artificial...............................................................................37 3. Sistemas de Carona Informatizados ..................................40 3.1. Car2gether...............................................................................................................................40 3.2. Carona Brasil...........................................................................................................................42 3.3. Caroneiros.com .......................................................................................................................43

PARTE II ...........................................................................................................................45 4. Projeto de Sistema de Clusterização.................................46 4.1. Necessidades e requisitos do sistema......................................................................................47 4.1.1. N1 - Agrupar pessoas para se deslocarem em grupo ...........................................................48 4.1.2. N2 - Cadastrar pessoas.........................................................................................................49 4.1.3. N3 - Consultar resultados dos agrupamentos.......................................................................49 4.1.4. Requisitos Não-Funcionais do Sistema................................................................................50 4.2. Casos de uso para a realização dos requisitos do sistema.......................................................51 4.2.1. RF1.1 - Agrupar pessoas......................................................................................................51 4.2.2. RF2.1 - Manter cadastro de pessoas.....................................................................................51 4.2.3. RF3.1 - Consultar agrupamentos .........................................................................................53 4.3. Modelagem UML (Unified Modeling Language) ..................................................................54 4.3.1. Diagrama de casos de uso do sistema ..................................................................................55 4.3.2. Diagramas de atividades do sistema ....................................................................................55 4.3.3. Diagramas de sequência do sistema.....................................................................................58 4.4. Banco de dados .......................................................................................................................64 4.4.1 Tabela Caroneiro:...........................................................................................................64 4.4.2 Tabela Agrupamento:.....................................................................................................65

5. Implementação do Sistema de Clusterização ......66 5.1. Desenvolvimento do módulo web...........................................................................................67 5.2. Desenvolvimento do módulo Java ..........................................................................................71 5.2.1. Passos realizados pelo algoritmo de clusterização hierárquica............................................73


5.2.2. Passos realizados pelo algoritmo de clusterização de colônia de formigas .........................75 5.2.3. Algoritmo do vizinho mais próximo....................................................................................79

6. Validações e experimentos .............................................................84 6.1. Experimento 1: clusterização hierárquica ...............................................................................87 6.2. Experimento 2: clusterização de colônia de formigas ............................................................88 6.3. Experimento 3: colônia de formigas - redução da constante de pegar....................................89 6.4. Experimento 4: colônia de formigas - aumento da constante de pegar ..................................91 6.5. Experimento 5: colônia de formigas - redução da constante de largar ...................................93 6.6. Experimento 6: colônia de formigas - aumento da constante de largar ..................................94 6.7. Experimento 7: clusterização hierárquica versus colônia de formigas ...................................96

PARTE III ........................................................................................................................98 7. Conclusões...............................................................................................................99 8. Referências bibliográficas ..............................................................102 PARTE IV ......................................................................................................................105 OUTRAS OBRAS DO EDITOR - 2011 .........................106 Mais uma lacônica viagem no tempo e no espaço .......................................................................107 Notação do movimento ................................................................................................................108

OUTRAS OBRAS DO EDITOR - 2012 .........................109 Um baralho da China ...................................................................................................................110 Por favor, não mande flores .........................................................................................................111 Truco amigo!................................................................................................................................112 Truco no escuro............................................................................................................................113 FREE DOWNLOAD: As regras do Truco Cego .........................................................................114

OUTRAS OBRAS DO EDITOR - 2013 .........................115 FREE DOWNLOAD: Clusterização ...........................................................................................116 Do Terra ao Gaia! ........................................................................................................................117 FREE DOWNLOAD: Pedagogias Culturais ...............................................................................118

Imagens no corpo do livro providenciadas pelos autores.


///

+ CGL(ed) + MMXIII +

\\\

[c] [l]

Prefácio

[u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

Ricardo Ramos Link trabalha no âmbito de TIC (Tecnologias da Informação e Comunicação) desde 1992, ano em que prestei concurso para trabalhar na MBI (Meridional do Brasil Informática), empresa de processamento de dados do Banco Meridional (atual Santander). Profissionalmente, entrei no mercado de TIC, um ano antes, atuando com microinformática no setor privado, enquanto que Ricardo inicia suas experiências em TIC com o processamento em ambiente de grande porte na PROCERGS (Companhia de Processamento de Dados do Estado do Rio Grande do Sul). Em 1994, após um ano de atuação em ambiente de grande porte e ainda na MBI, tive o privilégio de trabalhar com Roselena Linck, irmã de Ricardo, na programação de microcomputadores de retaguarda e de operação de caixa operados por bancários gerentes e atendentes de caixa bem como na programação de caixas eletrônicos de autoatendimento dispensadores de dinheiro e talonários. Mas só vim a saber que havia trabalhado com a irmã do Ricardo quando o conheci em 1998. Não tivemos muito contato nesta oportunidade, pois esse foi o ano em que entrei na PROCERGS e voltei a trabalhar com processamento de grande porte, depois de uma nova temporada na microinformática do setor privado no Rio Grande do Sul e em São Paulo. A essa altura Ricardo já estava com viagem marcada para trabalhar com

= Prefácio.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(13) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

TIC no cenário internacional em Los Angeles (E.U.A.) entre 1998 e 1999, e em Toronto (Canadá) entre 1999 e 2000.

\\\

[l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

Não trabalhamos juntos na PROCERGS (nesta ocasião). Nos conhecemos durante os poucos intervalos de almoço nos quais compartilhamos a mesma mesa do refeitório da empresa. Entretanto, Ricardo sempre se mostrou muito preocupado com a qualidade e adoção (ou a falta de adoção em alguns casos) adequada de boas práticas na produção de software. Ao mesmo tempo, nos questionávamos acerca do futuro das TICs e dos cenários que poderiam estar esperando por ele no exterior. No ano de 2001, Ricardo retorna para trabalhar na PROCERGS desenvolvendo e mantendo sistemas na Divisão Financeira e Tributária, atendendo comigo à Secretaria da Fazenda do Estado do Rio Grande do Sul. Até então, ambos não tínhamos formação formal em TIC, Ricardo é graduado em Administração de Empresas (1982-1992) e eu em Ciências Contábeis (1991-1995). Entretanto, nossas trajetórias no âmbito acadêmico convergem para as TICS: em 1998 Ricardo conclui especialização em Desenvolvimento de Software e em 2002 concluo o curso de Análise, Projeto e Programação Orientada a Objetos, cursados na UFRGS (Universidade Federal do Rio Grande do Sul). Trabalhamos juntos até o ano de 2004, quando Ricardo volta para o âmbito privado (Dell Computadores do Brasil), onde permaneceu até 2009. Continuo atuando na esfera estadual na Divisão Financeira e Tributária da Companhia de Processamento de Dados do Estado do Rio Grande do Sul e Ricardo está atuando na esfera federal,no SERPRO (Serviço Federal de

= Prefácio.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(14) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Processamento de Dados) desde 2009. Nesse mesmo ano, Ricardo foca sua atenção no âmbito tecnológico propriamente dito, entrando no curso de graduação em Desenvolvimento de Software, na ULBRA (2009-2011), enquanto eu voltava minha atenção à área de TIC em âmbito acadêmico pelo viés sóciocultural por intermédio do Mestrado em Educação (2008-2010), ambos na ULBRA (Universidade Luterana do Brasil).

[l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

\\\

Ricardo foi primeiro colocado no concurso da PROCERGS (2000) e destaque Universitário como melhor aluno do curso de Bacharelado em Sistemas de Informação da ULBRA (2012, SEPRORGS - Sindicato das Empresas de Informática do Rio Grande do Sul). Hoje ele estuda Teoria da Computação no curso de Mestrado do Programa de Pós Graduação em Computação na UFRGS e segue sua trajetória no âmbito acadêmico investigando na área de Inteligência Artificial, desde 2012. E é com imenso prazer que apresento a trajetória deste profissional e investigador neste breve texto que serve de prefácio para o livro que é um dos frutos provenientes de sua graduação na área de TIC e primeiros passos no âmbito da Inteligência Artificial sob orientação da Professora Fabiana Lorenzi. Tenho muito orgulho de ter trilhado parte de minha jornada ao lado e outra boa parto ao largo dos caminhos trilhados por Ricardo (muitos quilômetros literalmente sentado ao lado do futuro investigador nos bancos dos ônibus que nos conduziam de Porto Alegre à ULBRA, em Canoas, compartilhando experiências em TIC e do âmbito acadêmico). Toda essa trajetória e bagagem adquirida conferem à Ricardo grande experiência que convergem também para trazer à tona sua primeira publicação, que deve, acredito, iniciar uma série de publicações acadêmicas de grande importância para o meio científico. Mas não apenas para a comunidade

= Prefácio.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(15) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

científica. Já, a priori, o sistema de que trata esta obra já demonstra grande afinidade e preocupação do investigador com questões de ordem social e alinhamento com premissas muito atuais de natureza ecológica e de sustentabilidade.

[l]

\\\

[u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

Este livro trata do deslocamento de pessoas que se converte por muitas vezes em problema de primeira ordem para muitas pessoas que vivem em cidades grandes. Ricardo aqui propõe e implementa o desenvolvimento de um sistema de clusterização, utilizando técnicas de Inteligência Artificial, para agrupar pessoas que desejam se deslocar em grupo de um local comum, ou locais próximos, até um local de destino em comum. Ele utiliza duas abordagens diferentes para o desenvolvimento desse sistema de clusterização: uma abordagem utilizando um algoritmo de clusterização hierárquico e uma abordagem utilizando o algoritmo de clusterização de colônia de formigas. Junto com esse sistema de clusterização ele também desenvolveu uma aplicação web para permitir que os usuários, caroneiros participantes das caronas, interagissem com o referido sistema. Ricardo tem a objetividade e clareza inerentes à área do desenvolvimento de sistemas para apresentar seu trabalho, o que o torna palatável e acessível para os iniciantes da área da computação e, por que não, da área de Inteligência Artificial, como eu. Termino este breve prefácio assim: apresentando os predicados desta obra e convidando os leitores para que se deixem conduzir por Ricardo Linck para conhecer o estado da arte no que tange à clusterização e às aplicações tecnológicas que ele desenvolve e aqui apresenta. Desejo a todos uma boa leitura e um bom aprendizado. César Gonçalves Larcen.

= Prefácio.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(16) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l]

Apresentação

[u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

Um problema que afeta um grande número de pessoas que vivem em cidades grandes é o deslocamento, onde hoje existe uma carência cada vez maior de uma mobilidade que seja flexível, conveniente e econômica. Esse problema é agravado nos horários de pico, quando muitas pessoas precisam se deslocar praticamente no mesmo horário, ocasionando um grande número de veículos nas ruas ao mesmo tempo. O problema de deslocamento está presente em nosso dia a dia, afetando diretamente um número muito grande de pessoas, motivando assim a elaboração de um trabalho que apresente uma solução para pelo menos amenizar esse problema. Em reportagem veiculada pela (REVISTA VEJA, 01/04/2011), dar carona pode ser muito chato: é preciso sair da rota e prolongar a viagem por cinco minutos para buscar alguém ou conviver com a música ou a conversa menos agradável de um motorista pouco íntimo. De acordo com a Companhia de Engenharia de Tráfego (CET), 64% dos automóveis particulares da cidade de São Paulo andam com uma pessoa só. Se metade desses motoristas topasse pegar uma carona, um terço da frota sairia das ruas. Isto é, teríamos 2,3 milhões de veículos a menos.

= Apresentação.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(17) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Com o objetivo de tratar o problema acima apresentado, foi desenvolvido um sistema de clusterização inteligente capaz de agrupar pessoas previamente cadastradas que desejam se deslocar em grupo, ou compartilhar caronas. O sistema agrupa pessoas que estejam em locais próximos e precisam se deslocar para um local comum, em horários compatíveis, levando em consideração também o grau de afinidade entre as pessoas, resultando assim em maiores facilidades para deslocamentos mais convenientes e mais eficientes.

[l] [u] [s] [t] [e] [r] [i] [z] [a]

\\\

Este livro está apresentado da seguinte forma: os capítulos 1, 2 e 3 demonstram o estado da arte sobre clusterização, utilizado como ponto de partida para o desenvolvimento do trabalho, apresentando um levantamento das técnicas existentes para a resolução do problema em questão, e também mostrando alguns trabalhos correlatos; o capítulo 4 descreve a definição do desenvolvimento do projeto; o capítulo 5 descreve as metodologias utilizadas, visando à implementação deste trabalho; o capítulo 6 descreve os experimentos realizados e por fim, no capítulo 7 são apresentadas as conclusões.

[ç] Os autores. [ã] [o]

Agradecimentos

= (2) (0) (1) (3)

Os autores agradecem à Universidade Luterana do Brasil e seus professores pelo apoio e pela infraestrutura disponibilizada.

= Apresentação.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(18) / (120)

///


PARTE I


///

+ CGL(ed) + MMXIII +

\\\

[c] [l]

1. Clusterização

[u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

O termo clusterização, que vem do termo em inglês clusterization (ou clustering), tem o significado de agrupamento em classes. Nesse contexto, cluster tem o significado de grupo ou classe. Clusterização é um processo que particiona um dado conjunto de dados em grupos homogêneos baseando-se em algumas características de forma que objetos similares fiquem em um grupo e objetos dissimilares fiquem em grupos diferentes (NAIK). A análise de clusterização encontra grupos de objetos de dados que são similares de alguma forma entre eles. Os membros de um grupo são mais parecidos entre eles do que com membros de outros grupos. O objetivo da análise de clusterização é de encontrar grupos de alta-qualidade tal que a similaridade entre diferentes grupos seja baixa e a similaridade dentro dos grupos seja alta (ORACLE). Os grupos que são formados devem ter um alto grau de associação entre os membros do mesmo grupo e um baixo grau entre membros de grupos diferentes (Anderberg, 1973 apud RASMUSSEN). A figura da próxima página demonstra um simples exemplo do efeito resultante da técnica de clusterização sobre um grafo.

= Clusterização.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(20) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o]

= (2) (0) (1) (3)

Exemplo de clusterização (HAJIAGHAYI, 2001). Clusterização.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(21) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

A clusterização pode ser considerada o problema de aprendizagem não supervisionada mais importante e, como todo problema desse tipo, tem que conseguir encontrar uma estrutura em uma coleção de dados não rotulados (MATTEUCCI, 2006).

[l]

\\\

[u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

=

Algoritmos de clusterização podem ser aplicados em muitos campos, como por exemplo: mineração de dados, reconhecimento de padrões, máquina de aprendizagem, análise de imagem, bioinformática, etc. (SREENIVASA). Existem muitas maneiras para se classificar objetos em grupos, sendo um problema complexo pelo fato de que normalmente o número de grupos é desconhecido. A maioria das combinações possíveis não é de interesse; pois é o papel de um método de clusterização identificar um conjunto de grupos ou cluster que reflita alguma estrutura que esteja embutida nos dados. Além disso, existem muitos métodos de clusterização disponíveis, os quais possuem bases teóricas ou empíricas diferentes e, portanto produzem diferentes estruturas de cluster (RASMUSSEN). O desenvolvimento de um algoritmo pode apresentar um melhor resultado com um tipo de conjunto de dados, mas pode falhar ou apresentar um resultado pobre com conjuntos de dados de outros tipos. Muitos algoritmos de clusterização têm sido propostos até o momento, porém cada algoritmo tem seus próprios méritos e deméritos, não conseguindo funcionar para todas as situações reais (NAIK). Os resultados podem variar grandemente quando se usar diferentes tipos de critérios de clusterização e, infelizmente, soluções sem significado algum também são possíveis. Para alguns algoritmos a ordem em que as amostras originais são introduzidas também pode fazer uma grande diferença para o resultado (KAINULAINEN, 2002). Clusterização.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(22) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Um componente importante de um algoritmo de clusterização é a medida de distância entre os pontos de dados. Se os componentes dos vetores das instâncias de dados estão todos nas mesmas unidades físicas, então é possível que a simples medida de distância euclidiana seja suficiente para agrupar com sucesso instâncias de dados similares. Porém, mesmo nesse caso a distância euclidiana pode algumas vezes ser enganosa. Para dados de dimensões mais altas, uma métrica popular é a métrica de Minkowski. Todavia, não existe nenhum guia teórico geral para a seleção de uma medida para qualquer aplicação (MATTEUCCI, 2006).

[l] [u] [s] [t] [e] [r] [i] [z] [a] [ç]

\\\

Algoritmos de clusterização podem ser aplicados em muitos campos, como por exemplo: mineração de dados, reconhecimento de padrões, máquina de aprendizagem, análise de imagem, bioinformática, etc. Encontra-se na literatura uma grande variedade de algoritmos de clusterização, os quais podem ser classificados como: clusterização exclusiva (exclusive clustering), clusterização de sobreposição (overlapping clustering), clusterização hierárquica (hierarchical clustering) e clusterização probabilística (probabilistic clustering) (MATTEUCCI, 2006).

[ã] [o]

1.1. Clusterização Exclusiva

= (2) (0) (1) (3)

Na clusterização exclusiva os dados são agrupados de forma exclusiva, portanto se certo dado pertence a certo cluster, então ele não pode ser incluído em outro cluster. Um exemplo desse tipo de algoritmo é o k-means (MATTEUCCI, 2006).

= Clusterização. Clusterização Exclusiva.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(23) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

O algoritmo k-means, provavelmente o primeiro dos algoritmos de clusterização propostos, é baseado em uma ideia muito simples: dado um conjunto inicial de clusters, atribui-se um ponto para cada cluster, então cada centro de cluster é substituído pelo ponto médio no respectivo cluster. Esses dois passos simples são repetidos até se atingir a convergência. Um ponto é atribuído para o cluster que estiver mais próximo em distância euclidiana do respectivo ponto (FUNG, 2001). O popular algoritmo k-means é um algoritmo de minimização de erro onde a função objetivo é a soma dos erros ao quadrado, algumas vezes chamada de distorção (DING e HE, 2002).

[l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

\\\

Embora o k-means tenha a grande vantagem de ter uma implementação fácil, ele tem dois grandes inconvenientes. Primeiro, ele pode ser realmente lento, pois em cada passo a distância entre cada ponto para cada cluster tem que ser calculada, o que pode ser realmente caro na presença de um conjunto de dados grande. Segundo, esse método é realmente sensível aos clusters inicialmente fornecidos, todavia, nos últimos anos esse problema tem sido endereçado com algum grau de sucesso (REINA, FAYYAD e BRADLEY apud FUNG, 2001). Infelizmente, por enquanto não há nenhuma solução teórica geral para se encontrar o número ótimo de clusters para qualquer conjunto de dados. Uma abordagem simples é comparar os resultados de múltiplas rodadas com diferentes classes de k, e então escolher o melhor resultado de acordo com um dado critério (MATTEUCCI, 2006). O k-means apresenta vantagens e desvantagens, conforme segue:

= Clusterização. Clusterização Exclusiva.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(24) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l]

Vantagens do k-means:

[u]

· Rápido, robusto e fácil de entender; · Proporciona melhor resultado quando os conjuntos de dados são distintos ou estão bem separados uns dos outros.

[s] [t] [e]

Desvantagens do k-means: [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

· O algoritmo de aprendizagem requer, a priori, especificação do número de centros de clusters; · O uso de atribuição exclusiva - se houver dois dados altamente sobrepostos, então o k-means não conseguirá concluir que há dois clusters; · O algoritmo de aprendizagem não é invariante para transformação não linear, isto é, com diferentes representações de dados obtêm-se diferentes resultados (dados representados em forma de coordenadas cartesianas e coordenadas polares darão resultados diferentes); · Medidas de distância euclidiana podem pesar de forma diferente os fatores embutidos; · O algoritmo de aprendizagem fornece os ótimos locais da função de erro quadrático. · A escolha aleatória do centro do cluster pode guiar para um resultado infrutífero; · O algoritmo falha para conjuntos de dados não lineares.

= Clusterização. Clusterização Exclusiva.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(25) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c]

1.2. Clusterização de Sobreposição

[l]

A clusterização de sobreposição usa conjuntos imprecisos (fuzzy) para agrupar dados, tanto que cada ponto pode pertencer a dois ou mais clusters com diferentes graus de associação. Nesse caso, os dados serão associados a um apropriado valor de associação. Um exemplo desse tipo de algoritmo é o fuzzy cmeans (MATTEUCCI, 2006).

[u] [s] [t] [e]

A figura abaixo demonstra um exemplo gráfico sobre o efeito resultante da clusterização de sobreposição.

[r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

Gráfico exemplo de (MATTEUCCI, 2006)

clusterização

de

sobreposição

= Clusterização. Clusterização de Sobreposição.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(26) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

No algoritmo c-means, dado um conjunto inicial de clusters, escolhe-se o identificador central (centroid) primário para cada centro de cluster: os protótipos; então se calcula o grau de associação de todos os vetores das características em todos os clusters. Calculam-se os novos centroids e alteram-se os relacionamentos. Esse último passo é repetido até atingir a convergência (FUNG, 2001).

[l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

\\\

Esse algoritmo funciona estabelecendo associações para cada ponto de dado correspondente a cada centro de cluster, na base da distância entre o centro do cluster e o ponto do dado. Quanto mais próximo o ponto do dado estiver do centro do cluster, mais a sua associação estará em direção ao centro desse cluster específico. Claramente, o somatório das associações de cada ponto de dado deve ser igual a um. Após cada iteração, as associações e os centros dos clusters são alterados (NAIK). O objetivo da clusterização tradicional é atribuir cada ponto de dado a um, e apenas um cluster. Em contraste, a clusterização fuzzy atribui diferentes graus de associação para cada ponto. A associação de um ponto é assim compartilhada entre vários clusters. Isso cria o conceito de fronteiras imprecisas (fuzzy), o qual difere do conceito tradicional de fronteiras bem definidas (FUNG, 2001). O que é característico e único para esquemas fuzzy é que uma amostra pertence simultaneamente a muitas categorias (KAINULAINEN, 2002). O c-means apresenta vantagens e desvantagens, conforme segue.

= Clusterização. Clusterização de Sobreposição.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(27) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] Vantagens do c-means: [l] [u] [s] [t] [e]

· Proporciona melhor resultado para conjuntos de dados sobrepostos, e comparativamente melhor do que o algoritmo kmeans; · Diferentemente do algoritmo k-means, onde o ponto do dado tem que pertencer exclusivamente a um centro de cluster, no algoritmo c-means o ponto de dado tem uma associação atribuída para cada centro de cluster como um resultado de cada ponto de dado poder pertencer a mais de um centro de cluster.

[r] Desvantagens do c-means: [i] [z] [a] [ç]

· A priori, especificação do número de clusters; · Com um valor mais baixo do critério de parada obtém-se um melhor resultado, mas esse melhor resultado é obtido à custa de um maior número de iterações; · Medidas de distância euclidiana podem pesar de forma diferente os fatores embutidos.

[ã] [o] = (2) (0) (1) (3)

=

1.3. Clusterização Hierárquica A clusterização hierárquica é baseada na união entre os dois clusters mais próximos. A condição inicial é realizada definindose todo dado como um cluster. Após algumas iterações, o cluster final desejado é alcançado. Um exemplo desse tipo de clusterização é o algoritmo de clusterização hierárquica (MATTEUCCI, 2006). Clusterização. Clusterização de Sobreposição.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(28) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

A figura a seguir demonstra uma árvore exemplo sobre o efeito resultante da clusterização hierárquica.

\\\

[l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

=

Árvore exemplo de clusterização hierárquica (MATTEUCCI, 2006) Na clusterização hierárquica os clusters são mesclados em clusters maiores, ou são divididos em clusters menores (DING e HE, 2002). Algoritmos de clusterização hierárquica são de dois tipos: algoritmo de clusterização hierárquica aglomerativa ou algoritmo de clusterização hierárquica divisiva. Ambos os algoritmos são exatamente o inverso um do outro (NAIK). A clusterização divisiva inicia do topo, tratando todo o conjunto de dados como um cluster único. Repetidamente particiona um cluster corrente (um nodo folha numa árvore binária) até que o número de clusters atinja um valor pré-definido, ou algum outro critério de parada seja atingido. A questão mais importante dessa etapa é como será selecionado o próximo cluster candidato para ser dividido (DING e HE, 2002). Clusterização. Clusterização Hierárquica.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(29) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Uma organização de um conjunto de entidades em subconjuntos, tal que entidades no mesmo subconjunto sejam, de alguma forma, mais similares entre elas do que com entidades de subconjuntos diferentes é frequentemente conhecida como um cluster. Classificação de subsistemas é outro nome usado para clusterização na área de engenharia de software. Existem duas abordagens principais para classificação de subsistemas: de cima para baixo (top-down) ou de baixo para cima (bottom-up). Na abordagem top-down, primeiro o algoritmo hierárquico cria um subsistema que inclui todos os módulos e então, iterativamente, decompõe os subsistemas correntes para criar subsistemas em níveis mais baixos. Na abordagem bottom-up, primeiro cada módulo é considerado como um subsistema e então, iterativamente, mescla subsistemas para criar subsistemas em níveis mais altos (HAJIAGHAYI, 2001).

[l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

=

\\\

Na clusterização aglomerativa hierárquica, clusters são construídos de baixo para cima. Durante cada procedimento recursivo se mescla os dois clusters correntes que tenham o maior par de ligação dentre todos os pares de clusters. Esse algoritmo é um algoritmo aglomerativo que tem diversas variações, dependendo da métrica usada para medir a distância entre os clusters. A distância euclidiana é normalmente usada para pontos individuais. Não há nenhum critério conhecido sobre qual distância de clusterização deve ser usada; essa decisão depende fortemente do conjunto de dados (FUNG, 2001). Abordagens top-down sofrem de excessiva complexidade computacional, pois há um número exponencial de possíveis particionamentos em cada passo. Esse é o motivo principal para que a maioria dos métodos hierárquicos use a abordagem bottom-up (HAJIAGHAYI, 2001). Clusterização. Clusterização Hierárquica.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(30) / (120)

///


/// [c]

+ CGL(ed) + MMXIII + A clusterização hierárquica desvantagens, conforme segue.

apresenta

\\\ vantagens

e

[l] [u]

Vantagens da clusterização hierárquica:

[s]

· Fácil de implementar, dando melhores resultados em alguns casos.

[t] [e]

Desvantagens da clusterização hierárquica:

[r]

· O algoritmo nunca consegue desfazer o que tiver sido feito anteriormente; · É requerida uma complexidade de tempo de no mínimo O(n2 log n), onde ‘n’ é o número de pontos de dados; · Algumas vezes é difícil identificar o número correto de clusters através do dendograma.

[i] [z] [a] [ç]

1.4. Clusterização Probabilística

[ã]

Na clusterização probabilística cada cluster pode ser representado matematicamente por uma distribuição paramétrica. O método de clusterização mais usado desse tipo é o método baseado em aprendizagem da mistura gaussiana; pode se considerar clusters como distribuições gaussianas centradas em seus baricentros (MATTEUCCI, 2006).

[o] = (2) (0) (1) (3)

=

O modelo probabilístico não paramétrico para clusterização de dados oferece diversas vantagens em relação aos modelos não probabilísticos, pois: Clusterização. Clusterização Hierárquica.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(31) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

· Permite atribuições probabilísticas de pontos de dados para clusters diferentes, diferentemente de outros modelos não paramétricos;

[l] [u] [s] [t] [e] [r] [i] [z] [a] [ç]

\\\

· Pode efetivamente explorar ferramentas probabilísticas tais como processo dirichlet e processo gaussiano para priores não paramétricas; · O modelo naturalmente suporta atribuições de clusters fora das amostras, diferentemente de outros modelos não paramétricos. A modelagem de mistura finita probabilística é um dos mais populares métodos de clusterização paramétricos. Diversos modelos probabilísticos como o modelo de mistura gaussiana e a latente alocação de dirichlet, têm demonstrado obter sucesso numa grande variedade de aplicações sobre análise de dados contínuos e discretos, respectivamente. Modelos probabilísticos são vantajosos por fornecerem princípios para resolver questões como o número de clusters, falta de valores característicos, etc. (MALLAPRAGADA, JIN e JAIN).

[ã] Vantagens da clusterização probabilística: [o] = (2) (0) (1) (3)

· Oferece resultado extremamente útil para conjunto de dados do mundo real; · Detecção automática do nível hierárquico final para dados novos não usados para treinamento.

= Clusterização. Clusterização Probabilística.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(32) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] Desvantagem da clusterização probabilística: [l] ·

O algoritmo é altamente complexo por natureza.

[u] [s] [t]

Modelo de mistura gaussiana

[e]

O modelo de mistura gaussiana generalizável e o modelo de mistura gaussiana generalizável leve são modelos básicos para aprendizagem supervisionada e não supervisionada (LARSEN, SZYMKOWIAK e HANSEN, 2001). O método de clusterização gaussiana estima os parâmetros de uma distribuição de mistura gaussiana. O método usa um procedimento de inclinação do gradiente estocástico para encontrar as estimativas de probabilidades máximas de uma distribuição de mistura finita (YIU, MAK e LI, 1999).

[r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

Os modelos de mistura gaussiana são umas das técnicas semiparamétricas para estimar funções de densidade de probabilidade. A saída de um modelo de mistura gaussiana é a soma ponderada das densidades dos componentes. Em função da capacidade das misturas gaussianas de modelarem densidades arbitrárias, os modelos de mistura gaussiana têm sido usados em vários domínios de problemas, tais como classificação de padrão e análise de cluster (YIU, MAK e LI, 1999).

= Clusterização. Clusterização Probabilística.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(33) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Modelo de colônia de formigas

[l]

O algoritmo de colônia de formigas é uma técnica probabilística para resolver problemas computacionais (VUPPALAPATI e SRIVASTAVA, 2010). O algoritmo de agrupamento por colônia de formigas é uma ferramenta da linha de computação baseada em modelos encontrados na natureza, que busca solução para o problema de agrupamento de dados (LAURO, 2008). Os algoritmos de clusterização baseados nas formigas, como regra geral, podem ser considerados como métodos de clusterização não hierárquicos, exclusivos (cada unidade de dado é colocado em apenas um cluster) e aglomerativos (ARANHA, 2006).

[u] [s] [t] [e]

\\\

[r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

=

Organização do cemitério da colônia (HANDL, 2003 apud LAURO, 2008)

Clusterização. Clusterização Probabilística.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(34) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

A figura na página anterior demonstra um exemplo de agrupamentos realizados por uma colônia de formigas ao longo de trinta e seis horas de atividades coletivas.

[l] [u] [s] [t]

\\\

O primeiro passo em um sistema de clusterização baseado em formigas é distribuir os dados (objetos) aleatoriamente na área de trabalho. Cada objeto é projetado para uma grade da área de trabalho. É definido que apenas uma formiga e apenas um objeto podem ser colocados em uma grade da área de trabalho. Cada formiga é capaz de carregar um objeto (ARANHA, 2006).

[e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

Após um período inicial de atividades aleatórias estará formado um esboço de um cluster de objetos similares. Este pré-cluster age com efeito de atração, tendo a probabilidade de receber novos objetos similares nas suas proximidades maiores do que em qualquer outro local da área de trabalho. Isto conduz a um ciclo de retroalimentação positivo, aumentando o tamanho do cluster até que o processo de clusterização esteja completo (ARANHA, 2006). As operações de pegar e deixar são baseadas nas similaridades e nas densidades dos itens de dados localizados nas vizinhanças dos locais das formigas: as formigas têm a tendência de pegar os itens de dados que estão isolados ou cercados por itens dissimilares; elas tendem a deixá-los em uma vizinhança de itens similares (MARY e PHIL, 2010). A probabilidade de pegar um objeto aumenta em vizinhanças de baixa densidade, e diminui em áreas com objetos de alta similaridade. A probabilidade de deixar um objeto, ao contrário, aumenta em vizinhanças com alta densidade de objetos similares (VIZINE et. al., 2005).

= Clusterização. Clusterização Probabilística.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(35) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

A dinâmica do algoritmo é:

[l]

Fase Inicial:

[u]

· Todos os itens que representam os índices dos dados são espalhados aleatoriamente na grade bidimensional toroidal. Cada item ocupa uma célula. · Cada agente pega, aleatoriamente, um item; · Cada agente ocupa uma posição da grade, correspondente ao item que pegou.

[s] [t]

\\\

[e] [r]

Fase de agrupamento:

[i]

· Um agente é selecionado aleatoriamente; · O agente executa um passo, de acordo com um determinado padrão, carregando o item, e assumindo uma nova posição na grade; · 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 aleatoriamente 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. · Volta-se ao passo inicial, e repete-se o processo para outros agentes, por um número de iterações pré-estabelecido (LAURO, 2008).

[z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

= Clusterização. Clusterização Probabilística.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(36) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l]

2. Inteligência Artificial

[u] [s] [t] [e] [r] [i] [z] [a] [ç]

Conforme Lorenzi e Franceschi (2008), a Inteligência Artificial (IA) é apresentada como a área da Ciência da Computação que enfatiza o estudo de sistemas inteligentes, ou seja, sistemas que apresentam características associadas à inteligência no comportamento humano, tais como, compreensão de linguagem, aprendizagem, raciocínio e resolução de problemas. Existem várias abordagens na área da IA, nas quais variam a manipulação do conhecimento no sentido de como adquiri-lo, armazená-lo e empregá-lo. A figura da próxima página mostra uma classificação para as diferentes áreas de IA, quanto ao método de solução de problemas e quanto à localização espacial.

[ã] [o]

Quanto ao método de solução de problemas tem-se a IA Simbólica, a IA Conexionista, a IA Evolucionária e a IA Híbrida.

= (2) (0) (1) (3)

A IA Simbólica possui a lógica como ferramenta básica para manipular o conhecimento. A IA Conexionista, usando Redes Neurais Artificiais, aplica-se a problemas mal definidos, mas que são conhecidos através de exemplos.

= Inteligência Artificial.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(37) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o]

= (2) (0) (1) (3)

Áreas da Inteligência Artificial (LORENZI e FRANCESCHI, 2008). Inteligência Artificial.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(38) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Entre os campos de aplicações das técnicas conexionistas estão: reconhecimento de padrões, controle de processos industriais, robótica, entre outros.

[l] [u]

\\\

Na IA Evolucionária, os mecanismos utilizados são os mesmos encontrados na evolução biológica.

[s] [t] [e] [r] [i] [z] [a] [ç] [ã]

A IA Híbrida reúne vantagens presentes em mais de um tipo de abordagem para a resolução do problema. Quanto à localização espacial tem-se a IA Monolítica e a IA Distribuída. A IA Monolítica envolve sistemas simples sem modularidade, como por exemplo os sistemas especialistas (baseados em regras). Já o funcionamento da IA Distribuída depende de um determinado conjunto de partes (ou módulos) para resolver de modo cooperativo um determinado tipo de problema. O modelo de clusterização de colônia de formigas enquadra-se como uma técnica de Inteligência Artificial. Quanto ao método de solução enquadra-se na área da IA Evolucionária, e quanto à localização espacial, dependendo de como for desenvolvido, pode se enquadrar na área da IA Monolítica ou da IA Distribuída.

[o] = (2) (0) (1) (3)

= Inteligência Artificial.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(39) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l]

3. Sistemas de Carona Informatizados

[u] [s]

[e]

Hoje, já existem sistemas de caronas informatizados com o objetivo de organizar a atividade de se oferecer e de receber caronas de forma estruturada, tanto no Brasil como em outros países.

[r]

Apresentamos a segur alguns exemplos.

[t]

[i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

3.1. Car2gether A empresa multinacional alemã Daimler AG (site da empresa disponível em www.daimler.com), proprietária e produtora da marca Mercedes-Benz, lançou uma iniciativa de compartilhamento de carros em duas cidades alemãs, Ulm e Aachen, chamada car2gether (site em alemão disponível em www.car2gether.com). A Car2gether é na realidade uma comunidade de compartilhamento baseada na web para pessoas que basicamente precisem de uma carona (BENZINSIDER, 2010). Esse é um projeto de compartilhamento de carros que combina transporte compartilhado com meio social, trazendo as caronas para o século XXI (AUTOBLOGGREEN, 2010).

= Sistemas de Carona Informatizados.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(40) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

A car2gether é uma comunidade de compartilhamento de caronas baseada na web que organiza ofertas e requisições recebidas para caronas. O sistema tira proveito da crescente utilização, aceitação e das várias possibilidades de comunicação diferentes oferecidas pela internet móvel. As caronas podem ser providenciadas via smartphones quando se estiver em trânsito ou a partir de um PC (Personal Computer) quando se estiver em casa – quase que em tempo real (AUTOBLOGGREEN, 2010).

[l] [u] [s]

\\\

[t] [e] [r] [i] [z] [a] [ç]

Se os usuários pretendem oferecer ou tirar proveito de uma carona, primeiro eles têm que se registrarem no website da car2gether e criar seu perfil com foto, número do telefone celular e outras informações pessoais. Não há taxas para o registro ou para a requisição do software para o smartphone. Após efetuar o registro, o usuário pode incluir o horário de partida desejado e o destino usando seu smartphone ou PC (BENZINSIDER, 2010). Os motoristas e os passageiros serão então contatados por um site de microblog com informações de oferta de caronas. Os motoristas nada pagam, mas os passageiros devem pagar 9,5 centavos de Euros por minuto para reembolsar os motoristas por coisas como manutenção, gasolina e danos acidentais (AUTOBLOGGREEN, 2010).

[ã] [o] = (2) (0) (1) (3)

A car2gether reúne caronas ofertadas e procuradas, enviando detalhes de motoristas ou passageiros adequados para o usuário. Os usuários podem então confirmar a viagem via seu telefone celular ou PC. Uma vez que ambas as partes concordaram com a viagem, os detalhes da viagem serão mostrados para ambos participantes. Os usuários também podem receber mensagens de texto ou notificações por e-mail (BENZINSIDER, 2010).

= Sistemas de Carona Informatizados. Car2gether.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(41) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

A car2gether combina motoristas e passageiros que não apenas compartilham pontos de destino, mas também gostam do mesmo tipo de música e possivelmente até tenham a mesma afeição de comer dentro do carro (AUTOBLOGGREEN, 2010).

[l]

\\\

[u] [s] [t] [e] [r]

A ideia para esse conceito foi desenvolvida pela divisão de Inovação de Negócios da Daimler AG, a qual identifica áreas de negócios com potencial futuro. A Inovação de Negócios está apresentando uma solução complementar para as avançadas mudanças na mobilidade individual. Futurologistas esperam que, devido às condições de vida nas cidades, um número crescente de pessoas não serão proprietárias de carros no futuro (AUTOBLOGGREEN, 2010).

[i] [z]

3.2. Carona Brasil

[a]

Para quem considera muito radical ou pouco prática a ideia de abrir mão do carro próprio, existe a opção de sistemas de carona. No Brasil, a Carona Brasil (site disponível em www.caronabrasil.com.br) oferece um serviço gratuito que conta com mais de oito mil cadastrados.

[ç] [ã] [o] = (2) (0) (1) (3)

Depois de enviar seus dados, a pessoa recebe uma senha e pode informar os trajetos que costuma fazer no dia a dia, indicando ponto de origem, destino, horário e se quer dar ou receber carona (ou ambos). Feito isso, uma ferramenta que cruza mapas no computador localiza outras pessoas que tenham trajetos parecidos e as coloca em contato.

= Sistemas de Carona Informatizados. Car2gether.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(42) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

O site tem planos específicos para funcionários de uma empresa ou alunos de uma escola. E também pode ser usado por interessados em dividir despesas com táxis. (O ESTADO DE SÃO PAULO, 25/08/2009).

[l]

\\\

[u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

=

3.3. Caroneiros.com O projeto Caroneiros.com (site disponível em www.caroneiros.com), desenvolvido na Unicamp (Universidade de Campinas) no ano de 2007, foi inicialmente criado com o propósito de aproximar pessoas e reduzir custos com viagens. Seguindo sugestões provenientes dos próprios usuários e visando uma melhoria na experiência de uso dos caroneiros, o site foi atualizado para a versão 2.0 já no ano seguinte, em meados de 2008. O Caroneiros foca na redução do trânsito de nossas cidades e na melhoria de nosso meio ambiente. É fato que em grandes centros urbanos a maioria dos carros são utilizados somente por uma pessoa. No Caroneiros você consegue consultar caronas e caroneiros perto de você, isto é, que provavelmente possuam algo em comum, que trabalhem, estudem ou até mesmo morem perto de você. O Caroneiros.com também está preparado para aquelas caronas curtas, oferecidas várias vezes por semana: para o trabalho, para a escola, para a faculdade, etc. São esses os trajetos que diariamente mais contribuem para o trânsito das cidades. Sistemas de Carona Informatizados. Carona Brasil.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(43) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

É claro que o site também permite combinar caronas de média e longa distância, como “mochilões” ou viagens intermunicipais. Para cada carona oferecida, o motorista pode definir quantas vagas estarão disponíveis e quanto será a ajuda de custo. Dessa forma, os caroneiros saberão com quem irão viajar e quanto custará para cada um.

[l] [u]

\\\

[s] [t] [e] [r]

O Caroneiros se encontra na versão 3.0. Uma versão totalmente de cara nova que veio para aproximar os usuários com a possibilidade de criar comunidades e unir ainda mais as pessoas Criando comunidades, pessoas e empresas podem ter um “cantinho” do Caroneiros especialmente para elas. Assim, reunindo colegas, funcionários e conhecidos no mesmo espaço todos podem compartilhar caronas.

[i] [z] [a]

O Caroneiros atualmente possui mais de três mil (e subindo) usuários registrados. Desde o início ele vem sendo conduzido sem patrocínios, apenas com alguns anúncios veiculados (CARONEIROS.COM).

[ç] [ã] [o] = (2) (0) (1) (3)

= Sistemas de Carona Informatizados. Caroneiros.com.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(44) / (120)

///


PARTE II


///

+ CGL(ed) + MMXIII +

\\\

[c] [l]

4. Projeto de Sistema de Clusterização

[u] [s] [t] [e] [r] [i] [z]

Este projeto foi além de um simples sistema sobre caronas; ele teve como objetivo o desenvolvimento de um sistema de clusterização inteligente capaz de agrupar pessoas previamente cadastradas que desejam se deslocar em grupo, ou compartilhar caronas. O sistema agrupa pessoas que estejam em locais próximos e precisam se deslocar para um local comum, em horários compatíveis, levando em consideração também o grau de afinidade entre as pessoas, resultando assim em maiores facilidades para deslocamentos mais convenientes e mais eficientes.

[a] [ç]

Para o desenvolvimento deste projeto optou-se pela implementação de dois algoritmos de clusterização diferentes:

[ã]

- um algoritmo hierárquico (clusterização hierárquica); e

[o]

- um algoritmo probabilístico (colônia de formigas).

= (2) (0) (1) (3)

O modelo de clusterização de colônia de formigas enquadra-se como uma técnica de Inteligência Artificial.

= Projeto de Sistema de Clusterização.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(46) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

4.1. Necessidades e requisitos do sistema

[l]

Apresentamos a seguir as necessidades requeridas pelo sistema; cada necessidade possuindo seus requisitos para que possa ser atendida, objetivando o desenvolvimento do sistema de clusterização proposto por este projeto.

[u] [s] [t] [e]

\\\

Os requisitos de um sistema são descrições dos serviços fornecidos pelo sistema e as suas restrições operacionais. Esses requisitos refletem as necessidades dos clientes de um sistema que ajuda a resolver a algum problema (SOMMERVILLE, 2007).

[r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

=

As necessidades básicas do sistema são: - N1: agrupar pessoas para se deslocarem em grupo; - N2: cadastrar pessoas; - N3: consultar os resultados dos agrupamentos. Para atender a necessidade de agrupar pessoas o sistema disponibiliza uma funcionalidade para agrupar pessoas previamente cadastradas que estejam em locais próximos e precisam se deslocar para o mesmo local de destino, ou para locais próximos, em horários compatíveis, levando em consideração também o grau de afinidade entre as pessoas. Após realizar os agrupamentos o sistema armazena no banco de dados os resultados dos agrupamentos para que cada pessoa possa consultar seus respectivos grupos. Projeto de Sistema de Clusterização. Necessidades e requisitos...

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(47) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Para atender a necessidade de cadastrar pessoas o sistema disponibiliza uma interface para que os usuários possam se cadastrar no sistema, podendo incluir, consultar, alterar e remover seus dados pessoais.

[l]

\\\

[u] [s] [t]

Para atender a necessidade de consultar os resultados dos agrupamentos o sistema disponibiliza uma interface para que os usuários possam consultar os resultados dos agrupamentos realizados pelo sistema.

[i]

Além dos requisitos, funcionais e não-funcionais, voltados para satisfazer cada necessidade do sistema (N1, N2 e N3), o sistema também possui requisitos não-funcionais voltados para atingir as necessidades do sistema como um todo, conforme especificado a seguir.

[z]

4.1.1. N1 - Agrupar pessoas para se deslocarem em grupo

[a]

Requisitos Funcionais:

[ç]

RF1.1 - O sistema deve agrupar pessoas previamente cadastradas que estejam em locais próximos e precisam se deslocar para o mesmo local de destino, ou para locais próximos, em horários compatíveis, levando em consideração também o grau de afinidade entre as pessoais.

[e] [r]

[ã] [o] = (2) (0) (1) (3)

=

Requisitos Não-Funcionais: NF1.1 - O processo de agrupamento deve ser realizado através da utilização de técnicas de clusterização e cálculos de proximidade. Projeto de Sistema de Clusterização. Necessidades e requisitos...

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(48) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

4.1.2. N2 - Cadastrar pessoas

[l]

Requisitos Funcionais:

[u] [s]

RF2.1 - O sistema deve disponibilizar uma interface para que os usuários possam se cadastrar no sistema, podendo incluir, consultar, alterar e remover seus dados pessoais.

[t]

Requisitos Não-Funcionais:

[e]

NF2.1 - A senha cadastrada deve ter no máximo dezesseis caracteres, aceitando letras, números e caracteres especiais.

[r] [i] [z] [a]

\\\

NF2.2 - Os endereços cadastrados pelos usuários devem ser no Brasil. NF2.3 - Os usuários somente podem consultar e atualizar seus próprios dados, mediante a informação de seu código de usuário e senha.

[ç] [ã]

4.1.3. N3 - Consultar resultados dos agrupamentos

[o]

Requisitos Funcionais:

= (2) (0) (1) (3)

RF3.1 - O sistema deve disponibilizar uma interface para que os usuários possam consultar os resultados dos agrupamentos realizados pelo sistema.

= Projeto de Sistema de Clusterização. Necessidades e requisitos...

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(49) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Requisitos Não-Funcionais:

[l]

NF3.1 - Os usuários somente podem consultar seus próprios resultados, mediante a informação de seu código de usuário e senha.

[u]

\\\

[s] [t]

4.1.4. Requisitos Não-Funcionais do Sistema

[e]

NFS1 - As interfaces do sistema com os usuários devem ser implementadas como páginas web, disponibilizando acesso via internet.

[r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

NFS2 - As telas do sistema devem ser padronizadas quanto à disposição das informações nas telas e quanto à navegabilidade entre as páginas web. NFS3 - O sistema não deve permitir alterações em dados nas telas de consulta. NFS4 - O sistema deve ter um banco de dados SQL (Structured Query Language) para a persistência das informações. NFS5 - O sistema deve converter endereços e locais para suas respectivas coordenadas.

= Projeto de Sistema de Clusterização. Necessidades e requisitos...

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(50) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

4.2. Casos de uso para a realização dos requisitos do sistema

[l]

O modelo de casos de uso é um modelo de análise que representa um refinamento dos requisitos funcionais do sistema em desenvolvimento (BEZERRA, 2007).

[u] [s] [t]

A seguir são especificados os casos de uso necessários para a realização dos requisitos do sistema.

[e]

4.2.1. RF1.1 - Agrupar pessoas

[r]

O sistema deve agrupar pessoas previamente cadastradas que estejam em locais próximos e precisam se deslocar para o mesmo local de destino, ou para locais próximos, em horários compatíveis, levando em consideração também o grau de afinidade entre as pessoais.

[i] [z] [a] [ç] [ã]

\\\

CDU1.1 - Agrupar pessoas. 1- O operador dispara o sistema para que seja realizado o processamento de clusterização. 2- O sistema agrupa as pessoas em seus respectivos grupos.

[o] = (2) (0) (1) (3)

4.2.2. RF2.1 - Manter cadastro de pessoas O sistema deve disponibilizar uma interface para que os usuários possam se cadastrar no sistema, podendo incluir, consultar, alterar e remover seus dados pessoais.

= Projeto de Sistema de Clusterização. Casos de uso para a...

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(51) / (120)

///


/// [c] [l] [u] [s] [t]

+ CGL(ed) + MMXIII +

\\\

CDU2.1 - Manter cadastro de pessoas. 1- O caroneiro acessa a página do sistema via internet. 2- O sistema apresenta a tela da página inicial. 3- Caso não seja cadastrado no sistema: 3.1- O caroneiro solicita o seu cadastramento no sistema. 3.2- O sistema dispara o CDU2.1.1 para cadastramento. 4- Caso seja cadastrado no sistema: 4.1- O caroneiro solicita a consulta de seus dados. 4.2- O sistema dispara o CDU2.1.2 para consulta.

[e] [r] [i]

CDU2.1.1 - Incluir pessoa. 1- O sistema apresenta a tela para cadastramento. 2- O caroneiro informa seus dados para cadastramento. 3- O sistema valida os dados. 4- O sistema realiza o cadastramento do caroneiro.

[z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

CDU2.1.2 - Consultar pessoa. 1- O sistema solicita código de usuário e senha. 2- O caroneiro informa seu código de usuário e senha. 3- O sistema valida o código de usuário e senha. 4- O sistema apresenta os dados do caroneiro na tela. 5- Caso queira alterar seus dados: 5.1- O caroneiro solicita a alteração de seus dados. 5.2- O sistema dispara o CDU2.1.3 para alteração. 6- Caso queira se descadastrar do sistema: 6.1- O caroneiro solicita o seu descadastramento do sistema. 6.2- O sistema dispara o CDU2.1.4 para descadastramento.

= Projeto de Sistema de Clusterização. Casos de uso para a...

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(52) / (120)

///


/// [c] [l] [u]

+ CGL(ed) + MMXIII +

\\\

CDU2.1.3 - Alterar pessoa. 1- O sistema disponibiliza os campos da tela para alteração. 2- O caroneiro altera seus dados. 3- O sistema valida os dados. 4- O sistema realiza a alteração do cadastramento.

[s] [t] [e]

CDU2.1.4 - Remover pessoa. 1- O sistema solicita confirmação de descadastramento. 2- O caroneiro confirma o seu descadastramento. 3- O sistema realiza o descadastramento do caroneiro.

[r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

4.2.3. RF3.1 - Consultar agrupamentos O sistema deve disponibilizar uma interface para que os usuários possam consultar os resultados dos agrupamentos realizados pelo sistema. CDU3.1 - Consultar agrupamentos. 1- O caroneiro acessa a página do sistema via internet. 2- O sistema apresenta a tela da página inicial. 3- O caroneiro solicita consulta do resultado do seu agrupamento. 4- O sistema solicita código de usuário e senha. 5- O caroneiro informa seu código de usuário e senha. 6- O sistema valida o código de usuário e senha. 7- O sistema apresenta o resultado do agrupamento do caroneiro na tela.

= Projeto de Sistema de Clusterização. Casos de uso para a...

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(53) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l] [u] [s]

4.3. Modelagem UML (Unified Modeling Language) A UML é uma linguagem de modelagem visual, ou seja, é um conjunto de notações e semântica correspondente para representar visualmente uma ou mais perspectivas de um sistema (BEZERRA, 2007).

[t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

Diagrama de casos de uso do sistema

= Projeto de Sistema de Clusterização. Modelagem UML.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(54) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

A implementação do projeto foi realizada seguindo os requisitos já relacionados. Para possibilitar uma visão sistêmica do projeto, apresentamos a seguir os principais diagramas da modelagem UML do sistema.

[l]

\\\

[u] [s]

4.3.1. Diagrama de casos de uso do sistema

[t]

A figura da página anterior apresenta o diagrama de casos de uso do sistema, demonstrando uma visão global das suas funcionalidades.

[e]

4.3.2. Diagramas de atividades do sistema

[r]

A figura abaixo apresenta o diagrama de atividades "agrupar pessoas", referente ao caso de uso agrupar pessoas.

[i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

= Projeto de Sistema de Clusterização. Modelagem UML.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(55) / (120)

///


Diagrama de atividades manter cadastro de pessoas


/// [c] [l]

+ CGL(ed) + MMXIII +

\\\

A figura da página anterior apresenta o diagrama de atividades referente ao caso de uso manter cadastro de pessoas e a figura abaixo apresenta o diagrama de atividades "consultar agrupamentos" referente ao caso de uso consultar agrupamentos.

[u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

= Projeto de Sistema de Clusterização. Modelagem UML.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(57) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

4.3.3. Diagramas de sequência do sistema

[l]

A figura abaixo apresenta o diagrama de sequência referente ao caso de uso agrupar pessoas.

[u]

\\\

[s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o]

Diagrama de sequência agrupar pessoas

= (2) (0) (1) (3)

As figuras a seguir representam os demais diagramas de sequência do sistema, referentes ao caso de uso incluir pessoa, consultar pessoa, alterar pessoa, remover pessoa e consultar agrupamentos.

=

Projeto de Sistema de Clusterização. Modelagem UML.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(58) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o]

= (2) (0) (1) (3)

Diagrama de sequência incluir pessoa Projeto de Sistema de Clusterização. Modelagem UML.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(59) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o]

= (2) (0) (1) (3)

Diagrama de sequência consultar pessoa Projeto de Sistema de Clusterização. Modelagem UML.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(60) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o]

= (2) (0) (1) (3)

Diagrama de sequência alterar pessoa Projeto de Sistema de Clusterização. Modelagem UML.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(61) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o]

= (2) (0) (1) (3)

Diagrama de sequência remover pessoa Projeto de Sistema de Clusterização. Modelagem UML.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(62) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o]

= (2) (0) (1) (3)

Diagrama de sequência consultar agrupamentos Projeto de Sistema de Clusterização. Modelagem UML.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(63) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

4.4. Banco de dados

[l]

O sistema conterá um banco de dados SQL para possibilitar a persistência das informações.

[u] [s] [t] [e] [r] [i]

\\\

O banco de dados, por sua vez, conterá duas tabelas: Caroneiro e Agrupamento. A tabela Caroneiro armazenará os dados cadastrais das pessoas usuárias do sistema, e a tabela Agrupamento armazenará os resultados dos agrupamentos realizados pelo sistema.

4.4.1

Tabela Caroneiro:

- nome; - e-mail (representa o código do usuário para acesso ao sistema);

[z]

- senha do usuário para acesso ao sistema;

[a]

- nacionalidade;

[ç]

- documento pessoal (se brasileiro: CPF; se estrangeiro: passaporte);

[ã]

- telefone para contato;

[o] = (2) (0) (1) (3)

=

- endereço do local de origem; - coordenadas do local de origem: latitude e longitude (calculadas pelo sistema); - endereço do local de destino; - coordenadas do local de destino: latitude e longitude (calculadas pelo sistema); Projeto de Sistema de Clusterização. Banco de dados.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(64) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

- dia e horário da carona;

[l]

- oferece ou pede carona;

[u] [s] [t]

\\\

- se oferece carona: número máximo de passageiros; - características pessoais, gostos, preferências (faixa etária, sexo, fumante ou não fumante, idiomas falados); - pesos dinâmicos dos parâmetros (grau de importância dada pelo usuário às características pessoais para a formação dos agrupamentos).

[e] [r] [i]

4.4.2

Tabela Agrupamento:

- nome do motorista;

[z]

- e-mail do motorista;

[a]

- telefone do motorista;

[ç]

- nomes dos caroneiros;

[ã]

- e-mails dos caroneiros; - telefones dos caroneiros;

[o] = (2) (0) (1) (3)

- local de origem; - local de destino; - dia e horário da carona.

= Projeto de Sistema de Clusterização. Banco de dados.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(65) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l] [u]

5. Implementação do Sistema de Clusterização

[s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

O sistema foi estruturado em camadas: uma camada de negócios, uma camada de interface gráfica e uma camada de persistência. A camada de negócios foi desenvolvida utilizando o paradigma de orientação a objetos, sendo implementada com a linguagem de programação Java. A camada de interface gráfica foi desenvolvida utilizando o paradigma web, sendo implementada com a linguagem de programação C# / ASP.NET. A camada de persistência foi implementada com a criação do banco de dados SQL Access, utilizando a ferramenta Microsoft Access 2007, e a criação das tabelas Caroneiro e Agrupamento. A tabela Caroneiro tem a função de armazenar os dados dos usuários cadastrados no sistema. A tabela Agrupamento tem a função de armazenar os resultados das clusterizações realizadas pelo módulo Java do sistema. O módulo web acessa esta tabela para manter os dados pessoais e apresentar os resultados dos respectivos agrupamentos para os usuários.

= Implementação do Sistema de Clusterização.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(66) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

5.1. Desenvolvimento do módulo web

[l]

A camada de interface gráfica foi implementada com o uso da linguagem C# / ASP.NET para a programação de páginas dinâmicas, além do HTML para a marcação de conteúdo. Este módulo do sistema tem a responsabilidade de permitir que os usuários possam interagir com o sistema através da internet; a partir da página inicial do web site (próxima figura), os usuários podem realizar seus próprios cadastramentos (segunda figura da sequência a seguir) e podem consultar os resultados dos agrupamentos realizados pelo sistema (terceira e última figura da sequência que segue a partir da próxima página).

[u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

\\\

No momento do cadastramento o usuário, além de seus dados pessoais e de suas preferências, informa os endereços de origem e de destino referentes ao seu deslocamento desejado. No preenchimento destes endereços no formulário da tela de cadastramento o usuário informa os endereços em formato de texto livre. Para a obtenção das coordenadas dos locais de origem e de destino o módulo web utiliza a API (Application Programming Interface) do Google Maps para a obtenção das respectivas latitudes e longitudes a partir dos endereços informados em forma de texto. As respectivas latitudes e longitudes são utilizadas para o armazenamento das coordenadas dos endereços de origem e de destino no cadastramento do usuário. Estas coordenadas são utilizadas pelo módulo Java do sistema para determinar as localizações geográficas dos locais de origem e de destino dos deslocamentos no momento da realização dos agrupamentos dos caroneiros.

= Implementação do Sistema de Clusterização. Módulo web.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(67) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o]

= (2) (0) (1) (3)

Página inicial do módulo web Implementação do Sistema de Clusterização. Módulo web.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(68) / (120)

///


///

+ CGL(ed) + MMXIII + [c] [l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o]

\\\ Implementação do Sistema de Clusterização. Módulo web.

Clusterização:

utilizando Inteligência Artificial para agrupar pessoas.

Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/bync-nd/3.0/

i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo.

= (2) (0) (1) (3)

ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

Página dos dados cadastrais do usuário

\\\

(69) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o]

= (2) (0) (1) (3) Página dos resultados dos agrupamentos Implementação do Sistema de Clusterização. Módulo web.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(70) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

5.2. Desenvolvimento do módulo Java

[l]

A camada de negócios foi implementada com a linguagem de programação Java. Este módulo do sistema tem a responsabilidade de realizar o agrupamento das pessoas através da aplicação de técnicas de clusterização, utilizando cálculos de proximidade (localização geográfica, horários, afinidades pessoais).

[u] [s] [t] [e] [r] [i] [z] [a] [ç]

\\\

No desenvolvimento deste módulo foram programados dois algoritmos de clusterização em paralelo: um algoritmo hierárquico (clusterização hierárquica) e um algoritmo probabilístico (colônia de formigas), conforme apresentados anteriormente. O objetivo de se utilizar dois algoritmos de tipos distintos é a possibilidade de escolha do algoritmo que apresente os melhores resultados, durante a etapa de execução e análise dos experimentos, para ser utilizado na implantação do sistema. A partir da tela inicial do sistema (figura da próxima página) poderá ser selecionado o algoritmo a ser executado.

[ã] [o] = (2) (0) (1) (3)

Os passos realizados pelo algoritmo hierárquico são descritos a seguir, no item 5.2.1, e os passos realizados pelo algoritmo de colônia de formigas são descritos no item imediatamente posterior, 5.2.2.

= Implementação do Sistema de Clusterização. Módulo Java.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(71) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o]

= (2) (0) (1) (3)

Tela de seleção do algoritmo de clusterização Implementação do Sistema de Clusterização. Módulo Java.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(72) / (120)

///


/// [c] [l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

+ CGL(ed) + MMXIII +

\\\

5.2.1. Passos realizados pelo algoritmo de clusterização hierárquica Neste projeto utilizou-se a clusterização hierárquica aglomerativa, onde durante cada procedimento iterativo recursivo se agrupa os dois caroneiros (motorista e passageiro) que tenham o maior par de similaridade entre todos os pares de caroneiros, conforme os passos abaixo relacionados. 1- A primeira ação realizada pelo algoritmo é acessar todos os caroneiros cadastrados na tabela do banco de dados e armazená-los em memória. Os caroneiros com a data da carona passada ou antes que vinte e quatro horas a partir do horário corrente, ou com a data da carona além de trinta dias a partir da data corrente, não são considerados para o processamento do agrupamento atual; em outras palavras, são considerados apenas os caroneiros com a data da carona a partir do dia seguinte, mas antes de um mês a partir da data do processamento dos agrupamentos. 2- Inicialmente cada caroneiro é colocado num agrupamento em separado, ou seja, existirão tantos agrupamentos quantos caroneiros existirem, e cada agrupamento conterá um único caroneiro. 3- Os agrupamentos cujo caroneiro oferece carona são denominados agrupamentos motoristas, enquanto os agrupamentos cujo caroneiro pede carona são denominados agrupamentos passageiros.

= Implementação do Sistema de Clusterização. Módulo Java.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(73) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

4- Na sequência são calculadas as similaridades entre cada agrupamento motorista com cada agrupamento passageiro (dois a dois). O cálculo da similaridade é realizado através da utilização do algoritmo do vizinho mais próximo, conforme descrito mais adiante, no item 5.2.3.

[l] [u]

\\\

[s] [t]

5- Os agrupamentos motoristas cujo número máximo de passageiros já tenha sido atingido não participam dos cálculos de similaridade, pois estes motoristas já estão “lotados”.

[e] [r] [i] [z]

6- Os pares de agrupamentos motoristas e passageiros com diferença de horário acima de quinze minutos entre eles, ou com diferença de local de origem acima de quinhentos metros ou com diferença de local de destino acima de quinhentos metros também não participam dos cálculos de similaridade, pois estas diferenças de tempo e distâncias máximas são compulsórias.

[a] [ç] [ã] [o] = (2) (0) (1) (3)

7- A similaridade entre cada agrupamento passageiro e cada agrupamento motorista é a média resultante das similaridades do passageiro (do agrupamento passageiro) com o motorista e seus passageiros (do agrupamento motorista). Na primeira iteração os motoristas não conterão passageiros, mas nas iterações subsequentes poderão ter. 8- Obtêm-se os dois agrupamentos de maior similaridade (motorista e passageiro).

= Implementação do Sistema de Clusterização. Módulo Java.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(74) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

9- O par (motorista e passageiro) de maior similaridade entre todos os pares é então agrupado, formando um único agrupamento, adicionando-se o caroneiro do agrupamento passageiro no agrupamento do motorista. O agrupamento passageiro que foi adicionado no agrupamento motorista deixa de existir sendo removido.

[l] [u]

\\\

[s] [t]

10- O critério de parada para determinar o encerramento da clusterização ocorre quando nenhum agrupamento for alterado na iteração.

[e] [r] [i]

11- Por fim, após a realização dos agrupamentos, os caroneiros participantes dos agrupamentos são atualizados com a identificação do motorista do respectivo agrupamento na tabela do banco de dados. São considerados apenas os agrupamentos motoristas que contêm pelo menos um passageiro adicionado.

[z] [a]

12- Os caroneiros podem então consultar os resultados dos agrupamentos realizados pelo sistema através da internet, utilizando o módulo web do sistema.

[ç] [ã] [o] = (2) (0) (1) (3)

=

5.2.2. Passos realizados pelo algoritmo de clusterização de colônia de formigas A clusterização de colônia de formigas é composta por uma grade bidimensional onde os caroneiros são distribuídos aleatoriamente e, na sequência, as formigas andam, também aleatoriamente, pegando os caroneiros de vizinhanças onde eles sejam menos similares e largando os caroneiros em vizinhanças onde eles sejam mais similares, conforme os passos relacionados a seguir. Implementação do Sistema de Clusterização. Módulo Java.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(75) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

1- A primeira ação realizada pelo algoritmo é acessar todos os caroneiros cadastrados na tabela do banco de dados e armazená-los em memória. Os caroneiros com a data da carona passada ou antes que vinte e quatro horas a partir do horário corrente, ou com a data da carona além de trinta dias a partir da data corrente, não são considerados para o processamento do agrupamento atual; em outras palavras, são considerados apenas os caroneiros com a data da carona a partir do dia seguinte, mas antes de um mês a partir da data do processamento dos agrupamentos.

[l] [u] [s] [t]

\\\

[e] [r]

2- Os caroneiros que oferecem carona são denominados motoristas, enquanto os caroneiros que pedem carona são denominados passageiros.

[i]

[o]

3- Inicialmente cada caroneiro é colocado aleatoriamente numa célula livre da grade bidimensional (a grade bidimensional é composta por 50 x 50 células). Cada célula terá no máximo um caroneiro. Os motoristas não podem ser colocados em células vizinhas a outros motoristas (a vizinhança é composta por 5 x 5 células). Cada vizinhança terá no máximo um motorista. Na distribuição dos caroneiros deve ser verificado que nenhum motorista fique com mais passageiros em sua vizinhança do que o seu número máximo de passageiros permitido, pois estes motoristas já estariam “lotados”.

= (2) (0) (1) (3)

4- Na sequência as formigas são distribuídas aleatoriamente pelas células livres da grade bidimensional (este algoritmo é composto por uma colônia com dez formigas) as quais começam a andar aleatoriamente pelas células da grade bidimensional, pegando e largando os passageiros.

[z] [a] [ç] [ã]

= Implementação do Sistema de Clusterização. Módulo Java.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(76) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

5- Cada formiga desloca-se aleatoriamente pelas células da grade bidimensional até encontrar uma célula ocupada por um passageiro. As formigas não pegam motoristas.

[l] [u] [s] [t] [e] [r] [i] [z] [a] [ç]

\\\

6- Se não existir motorista na vizinhança do passageiro, a formiga automaticamente pega o passageiro (a probabilidade de a formiga pegar o passageiro é de cem por cento). Caso o passageiro esteja em alguma célula onde exista algum motorista na vizinhança, então se calcula a probabilidade de a formiga pegar o passageiro (quanto mais dissimilar for o passageiro em relação a seus vizinhos, maior será a probabilidade). 7- A probabilidade de a formiga pegar o passageiro é calculada pela seguinte fórmula de probabilidade: ( k1 / ( k1 + similaridade ) ) 2. 8- k1 representa um limiar (threshold) constante com valor 0,65; a similaridade é calculada através da média resultante das similaridades do passageiro (que está sendo pego pela formiga) com o motorista e seus passageiros (da respectiva vizinhança) através da utilização do algoritmo do vizinho mais próximo, conforme descrito mais adiante, no item 5.2.3.

[ã] [o] = (2) (0) (1) (3)

=

9- Após pegar um passageiro, a formiga desloca-se aleatoriamente pelas células da grade bidimensional até encontrar uma célula livre onde exista algum motorista na vizinhança. 10- Caso o número máximo de passageiros do motorista já tenha sido atingido na vizinhança, a formiga não larga o passageiro nesta célula (a probabilidade de a formiga largar o passageiro é de zero por cento), pois este motorista já está “lotado”. Implementação do Sistema de Clusterização. Módulo Java.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(77) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

11- Calcula-se a probabilidade de a formiga largar o passageiro (quanto mais similar for o passageiro em relação aos seus vizinhos da nova célula, maior será a probabilidade).

[l] [u] [s] [t] [e] [r]

\\\

12- A probabilidade de a formiga largar o passageiro é calculada pela seguinte fórmula de probabilidade: ( similaridade / ( k2 + similaridade ) ) 2. 13- k2 representa um limiar (threshold) constante com valor 0,15; a similaridade é calculada através da média resultante das similaridades do passageiro (que está sendo carregado pela formiga) com o motorista e seus passageiros (da nova vizinhança) através da utilização do algoritmo do vizinho mais próximo, conforme descrito mais adiante no item 5.2.3.

[i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

14- Os pares de caroneiros com diferença de horário acima de quinze minutos entre eles, ou com diferença de local de origem acima de quinhentos metros ou com diferença de local de destino acima de quinhentos metros não participam dos cálculos de similaridade, pois estas diferenças de tempo e distâncias máximas são compulsórias. 15- O critério de parada para determinar o encerramento da clusterização pode ocorrer de duas formas, como descritas a seguir. As formigas andam aleatoriamente pelas células da grade bidimensional, pegando e largando os passageiros durante 1.000 iterações; após estas 1.000 iterações a clusterização é encerrada. Em cada iteração as formigas têm até 2.500 tentativas para conseguirem pegar um passageiro (250 tentativas para cada uma das dez formigas); caso nenhum passageiro seja pego em até 2.500 tentativas a clusterização é encerrada.

= Implementação do Sistema de Clusterização. Módulo Java.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(78) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

16- Após pegar um passageiro, as formigas têm até 2.500 tentativas para conseguirem largar o passageiro; caso o passageiro não seja solto pela formiga em até 2.500 tentativas, o passageiro volta para a sua célula original de onde foi pego e a formiga tentará pegar outro passageiro.

[l] [u]

\\\

[s] [t] [e] [r]

17- Por fim, após a realização dos agrupamentos (os agrupamentos são formados pelos motoristas e seus passageiros vizinhos), os caroneiros participantes dos agrupamentos são atualizados com a identificação do motorista do respectivo agrupamento na tabela do banco de dados. São considerados apenas os agrupamentos de motoristas que contêm pelo menos um passageiro como vizinho.

[i] [z] [a]

18- Os caroneiros podem então consultar os resultados dos agrupamentos realizados pelo sistema através da internet, utilizando o módulo web do sistema.

[ç] [ã] [o] = (2) (0) (1) (3)

=

5.2.3. Algoritmo do vizinho mais próximo O cálculo do grau de similaridade entre os caroneiros cadastrados no sistema para a realização da clusterização e formação dos agrupamentos para compartilhamento de caronas, levando em conta as características pessoais, as preferências e as afinidades entre os caroneiros, é realizada através do algoritmo do vizinho mais próximo. Implementação do Sistema de Clusterização. Módulo Java.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(79) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Os fatores que são considerados para o cálculo do grau de similaridade entre os caroneiros são a faixa etária, o grau de instrução, o hábito de fumar ou não fumar, os idiomas falados (português, inglês, espanhol, francês, italiano e alemão) e as localizações geográficas dos locais de origem e destino dos deslocamentos.

[l] [u]

\\\

[s] [t] [e] [r] [i]

Para tornar possível a comparação entre parâmetros de naturezas distintas se optou por convertê-los todos para uma unidade única; as igualdades e desigualdades entre os parâmetros dos caroneiros foram então convertidos para valores entre zero e um. Zero significa igualdade absoluta, um significa desigualdade absoluta, e os demais valores intermediários representam proporcionalmente o grau de igualdade e desigualdade.

[z] [a] [ç] [ã]

Quanto ao hábito de fumar ou não fumar, se ambos caroneiros são fumantes ou ambos não são fumantes, a distância entre os caroneiros neste parâmetro é zero (igualdade absoluta); mas se um deles for fumante e o outro não for, a distância é um (desigualdade absoluta).

[o] = (2) (0) (1) (3)

Quanto à faixa etária, inicialmente é feita a seguinte conversão: idade abaixo de 26 anos, a faixa etária é 1; idade entre 26 e 35 anos, a faixa etária é 2; idade entre 36 e 45 anos, a faixa etária é 3; idade entre 46 e 55 anos, a faixa etária é 4; e a partir de 56 anos de idade a faixa etária é 5.

= Implementação do Sistema de Clusterização. Módulo Java.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(80) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Se ambos caroneiros forem da mesma faixa etária, a distância entre os caroneiros neste parâmetro é zero (igualdade absoluta); se a diferença entre as faixas etárias dos caroneiros for um, a distância é 0,25; se a diferença entre as faixas etárias dos caroneiros for dois, a distância é 0,5; se a diferença entre as faixas etárias dos caroneiros for três, a distância é 0,75; e se a diferença entre as faixas etárias dos caroneiros for quatro, a distância é um (desigualdade absoluta).

[l] [u] [s]

\\\

[t] [e] [r] [i] [z] [a] [ç] [ã]

Quanto ao grau de instrução, inicialmente é feita a seguinte conversão: ensino fundamental incompleto, o nível é 1; ensino fundamental completo, o nível é 2; ensino médio incompleto, o nível é 3; ensino médio completo, o nível é 4; ensino superior incompleto, o nível é 5; e ensino superior completo, o nível é 6. Se ambos caroneiros forem do mesmo nível de escolaridade, a distância entre os caroneiros neste parâmetro é zero (igualdade absoluta); se a diferença entre os níveis de escolaridade dos caroneiros for um, a distância é 0,2; se a diferença entre os níveis de escolaridade dos caroneiros for dois, a distância é 0,4; se a diferença entre os níveis de escolaridade dos caroneiros for três, a distância é 0,6; se a diferença entre os níveis de escolaridade dos caroneiros for quatro, a distância é 0,8; e se a diferença entre os níveis de escolaridade dos caroneiros for cinco, a distância é um (desigualdade absoluta).

[o] = (2) (0) (1) (3)

=

Quanto aos idiomas falados, se ambos caroneiros falam um idioma em comum com fluência, a distância entre os caroneiros neste parâmetro é zero (igualdade absoluta); se ambos caroneiros falam um idioma em comum, mas pelo menos um dos caroneiros fala este idioma sem fluência, a distância neste parâmetro é 0,5; e se os caroneiros não falam nenhum idioma em comum, a distância é um (desigualdade absoluta). Implementação do Sistema de Clusterização. Módulo Java.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(81) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Quanto às distâncias das localizações geográficas entre os locais de origem dos deslocamentos, se ambos caroneiros estiverem no mesmo local geográfico de origem, a distância neste parâmetro será zero (igualdade absoluta); se ambos caroneiros estiverem numa distância de quinhentos metros um do outro, a distância neste parâmetro será um (desigualdade absoluta), pois distâncias acima de quinhentos metros não participam dos cálculos de similaridade; e as demais distâncias intermediárias são representadas de forma proporcional. Esta mesma sistemática é utilizada para os locais de destino.

[l] [u] [s] [t]

\\\

[e] [r] [i] [z] [a] [ç]

Os pesos dos parâmetros utilizados no cálculo de similaridade são determinados de forma dinâmica pelo próprio caroneiro no momento do seu cadastramento na página web do sistema, tais como a faixa etária, o grau de instrução, o hábito de fumar ou não fumar, e os idiomas falados. A importância dada às afinidades com os colegas de carona resulta nos seguintes pesos: indiferente, peso zero; baixa importância, peso 1; média importância, peso 2; alta importância, peso 4; e compulsória, peso 8. As localizações geográficas dos locais de origem e destino dos deslocamentos possuem peso 4, fixados pelo sistema.

[ã] [o] = (2) (0) (1) (3)

A similaridade é obtida como sendo o complemento da dissimilaridade, portanto primeiro calcula-se a dissimilaridade entre os caroneiros. A dissimilaridade é calculada pela seguinte fórmula:

= Implementação do Sistema de Clusterização. Módulo Java.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(82) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

onde i e j são dois caroneiros quaisquer, p representa cada parâmetro, n é a quantidade de parâmetros, wp é o peso de cada parâmetro, ip é cada parâmetro do caroneiro i e jp é cada parâmetro do caroneiro j.

[l]

\\\

[u] [s] [t] [e]

Ou seja, a dissimilaridade é a raiz quadrada do somatório da média ponderada das distâncias de cada um dos seis parâmetros relacionados acima (faixa etária, grau de instrução, hábito de fumar ou não fumar, idiomas falados e localizações geográficas dos locais de origem e destino dos deslocamentos) entre dois caroneiros elevadas ao quadrado, resultando num valor entre zero e um.

[r] [i]

A similaridade, por consequência, é calculada simplesmente pelo complemento da dissimilaridade (similaridade = 1 dissimilaridade), resultando também num valor entre zero e um.

[z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

= Implementação do Sistema de Clusterização. Módulo Java.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(83) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l]

6. Validações e experimentos

[u] [s] [t] [e]

Para a elaboração das validações e dos experimentos do sistema de clusterização foi realizado o cadastramento de usuários na base de dados do sistema.

[r] [i] [z] [a]

O cadastramento dos usuários foi gerado através da execução de um programa utilitário com a finalidade específica de gerar caroneiros de forma aleatória, fornecendo assim uma ampla diversidade nas informações armazenadas nas bases de dados para que fossem utilizadas de forma consistente pelos módulos de clusterização do sistema.

[ç] [ã] [o] = (2) (0) (1) (3)

=

Para a geração aleatória dos dados, parâmetros e preferências dos caroneiros que seriam classificados pelo sistema, se determinou que: 90% dos caroneiros são passageiros e 10% são motoristas; cada motorista oferece de 1 a 9 vagas para passageiros; a data de nascimento dos caroneiros é entre os anos de 1920 e 2000; Validações e experimentos.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(84) / (120)

///


///

+ CGL(ed) + MMXIII +

[c] [l]

o grau de instrução é definido de 1 a 6 (Fundamental incompleto = 1, Fundamental completo = 2, Médio incompleto = 3, Médio completo = 4, Superior incompleto = 5 ou Superior completo = 6);

[u]

50% dos caroneiros são fumantes e 50% não são;

[s]

cada idioma falado (português, inglês, espanhol, francês, italiano e alemão) por cada caroneiro é definido de zero a 2 (fluente = 2, não fluente = 1 ou não fala = 0);

[t] [e] [r]

\\\

a importância dada às afinidades (faixa etária, grau de instrução, idiomas falados e hábito de fumar) com os colegas de carona por cada caroneiro é definida de zero a 8 (indiferente = 0, baixa = 1, média = 2, alta = 4 ou compulsória = 8).

[i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

Tomando-se como um modelo prático para os experimentos em estudo por este trabalho, se definiu que os caroneiros teriam a necessidade de se deslocarem de regiões localizadas ao redor do Centro de Porto Alegre até a Ulbra Canoas com o objetivo de frequentarem aulas no turno da noite. Para isto foi determinado que: as coordenadas dos locais de origem dos caroneiros são entre as latitudes -30.0300000 e -30.0350000 e entre as longitudes -51.2240000 e -51.2295000 (regiões em torno do Centro de Porto Alegre, RS); as coordenadas do local de destino dos caroneiros são latitude -29.8867833 e longitude -51.1663020 (Ulbra Canoas localizada na Avenida Farroupilha, 8001, Canoas, RS); o horário desejado por cada caroneiro para o deslocamento é das 17 horas às 18 horas e 59 minutos.

= Validações e experimentos.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(85) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Inicialmente gerou-se aleatoriamente uma base de dados com 100 caroneiros; e por fim, esta base foi incrementada para 500 caroneiros. O algoritmo de clusterização hierárquica foi executado 50 vezes para a base de dados com 100 caroneiros e 50 vezes para a base de dados com 500 caroneiros.

[l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o]

\\\

O algoritmo de clusterização de colônia de formigas foi executado de cinco formas distintas. A primeira forma, estabelecida como básica neste trabalho, conforme especificado no item 5.2.2, utilizou as constantes de pegar passageiros e de largar passageiros com os valores 0,65 e 0,15 respectivamente. A segunda e a terceira forma variaram a constante de pegar passageiros para 0,35 (redução) e para 0,95 (aumento) respectivamente, mantendo a constante de largar passageiros fixa em 0,15. A quarta e a quinta forma variaram a constante de largar passageiros para 0,05 (redução) e para 0,25 (aumento) respectivamente, mantendo a constante de pegar passageiros fixa em 0,65. Cada uma destas cinco formas do algoritmo de colônia de formigas foi executada 50 vezes para a base de dados com 100 caroneiros e 50 vezes para a base de dados com 500 caroneiros. Os resultados levantados após cada uma das execuções, utilizando os algoritmos de clusterização hierárquica e de colônia de formigas, foram tabulados e analisados conforme demonstrado a seguir neste mesmo capítulo.

= (2) (0) (1) (3)

= Validações e experimentos.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(86) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

6.1. Experimento 1: clusterização hierárquica

[l]

Realizou-se uma análise comparativa entre o algoritmo de clusterização hierárquica utilizando uma base de dados com 100 caroneiros e uma base de dados com 500 caroneiros cadastrados.

[u] [s] [t] [e] [r] [i] [z] [a]

O algoritmo de clusterização hierárquica foi executado 50 vezes para a base de dados com 100 caroneiros, constatando-se que: · Em 100% das execuções os três pares (motorista e passageiro) de maior similaridade ficaram no mesmo grupo; · O tempo de execução médio foi de 168 milissegundos. O algoritmo de clusterização hierárquica foi executado 50 vezes para a base de dados com 500 caroneiros, constatando-se que: · Em 100% das execuções os três pares (motorista e passageiro) de maior similaridade ficaram no mesmo grupo; · O tempo de execução médio foi de 12.736 milissegundos. Tabela 1 - Clusterização hierárquica

[ç] [ã] [o] = (2) (0) (1) (3)

\\\

Caroneiros 100 500

Agrupou os três pares mais similares 100% 100%

Tempo de execução médio (ms) 168 12.736

Conforme demonstrado na Tabela 1, observou-se que o algoritmo de clusterização hierárquica conseguiu sempre agrupar os motoristas e passageiros que apresentam as maiores afinidades entre si, independente da quantidade de caroneiros cadastrados no sistema.

= Validações e experimentos. Experimeto 1: clusterização hierárquica.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(87) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

O tempo de execução do algoritmo cresceu de forma muito acentuada com o aumento da quantidade de caroneiros cadastrados no sistema.

[l]

\\\

[u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

=

6.2. Experimento 2: clusterização de colônia de formigas Realizou-se uma análise comparativa entre o algoritmo de clusterização de colônia de formigas utilizando uma base de dados com 100 caroneiros e uma base de dados com 500 caroneiros cadastrados. O algoritmo de clusterização de colônia de formigas básico foi executado 50 vezes para a base de dados com 100 caroneiros, constatando-se que: · Em 22% das execuções o par (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · Em 68% das execuções pelo menos um dos três pares (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · O tempo de execução médio foi de 1.641 milissegundos. O algoritmo de clusterização de colônia de formigas básico foi executado 50 vezes para a base de dados com 500 caroneiros, constatando-se que: · Em 20% das execuções o par (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · Em 64% das execuções pelo menos um dos três pares (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · O tempo de execução médio foi de 1.679 milissegundos. Validações e experimentos. Experimeto 1: clusterização hierárquica.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(88) / (120)

///


///

+ CGL(ed) + MMXIII +

[c] [l] [u] [s] [t] [e] [r] [i] [z]

Caroneiros 100 500

\\\

Tabela 2 - Clusterização de colônia de formigas Agrupou o par Agrupou um dos três Tempo de execução mais similar pares mais similares médio (ms) 22% 68% 1.641 20% 64% 1.679

Conforme demonstrado na Tabela 2, observou-se que o algoritmo de clusterização de colônia de formigas não conseguiu agrupar os motoristas e passageiros que apresentam as maiores afinidades entre si em todas as execuções. Verificou-se ainda que com o aumento da quantidade de caroneiros cadastrados no sistema o percentual de vezes em que os caroneiros com as maiores afinidades ficaram no mesmo grupo apresentou uma pequena redução. O tempo de execução do algoritmo apresentou um pequeno acréscimo com o aumento da quantidade de caroneiros cadastrados no sistema.

[a] [ç] [ã] [o] = (2) (0) (1) (3)

=

6.3. Experimento 3: colônia de formigas - redução da constante de pegar Realizou-se uma análise comparativa dos efeitos da redução da constante de pegar passageiros no algoritmo de clusterização de colônia de formigas. Reduzindo-se a constante de pegar passageiros de 0,65 para 0,35 e mantendo-se a constante de largar passageiros fixa em 0,15 o algoritmo de clusterização de colônia de formigas foi executado 50 vezes para a base de dados com 100 caroneiros, constatando-se que: Validações e experimentos. Exp.2: clusterização de colônia de formigas.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(89) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c]

· Em 26% das execuções o par (motorista e passageiro) de maior similaridade ficou no mesmo grupo;

[l] [u] [s] [t] [e] [r] [i] [z] [a]

· Em 70% das execuções pelo menos um dos três pares (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · O tempo de execução médio foi de 1.731 milissegundos. Reduzindo-se a constante de pegar passageiros de 0,65 para 0,35 e mantendo-se a constante de largar passageiros fixa em 0,15 o algoritmo de clusterização de colônia de formigas foi executado 50 vezes para a base de dados com 500 caroneiros, constatando-se que: · Em 22% das execuções o par (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · Em 66% das execuções pelo menos um dos três pares (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · O tempo de execução médio foi de 1.756 milissegundos.

[ç] [ã] [o] = (2) (0) (1) (3)

Tabela 3 - Redução da constante de pegar (k1) Constante de Constante de Caroneiros pegar (k1) largar (k2)

Agrupou o par mais similar

Agrupou um dos três pares mais similares

Tempo de execução médio (ms)

100 100

0,65 0,35

0,15 0,15

22% 26%

68% 70%

1.641 1.731

500 500

0,65 0,35

0,15 0,15

20% 22%

64% 66%

1.679 1.756

= Validações e experimentos. Exp.3: colônia de formigas - redução da...

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(90) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Conforme demonstrado na Tabela 3, observou-se que com a redução da constante de pegar passageiros, o percentual de vezes em que os caroneiros com as maiores afinidades ficaram no mesmo grupo apresentou um pequeno aumento, independente da quantidade de caroneiros cadastrados no sistema. O tempo de execução do algoritmo apresentou um pequeno acréscimo com a redução da constante de pegar passageiros.

[l] [u] [s]

\\\

[t] [e] [r]

6.4. Experimento 4: colônia de formigas - aumento da constante de pegar

[i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

=

Realizou-se uma análise comparativa dos efeitos do aumento da constante de pegar passageiros no algoritmo de clusterização de colônia de formigas. Aumentando-se a constante de pegar passageiros de 0,65 para 0,95 e mantendo-se a constante de largar passageiros fixa em 0,15 o algoritmo de clusterização de colônia de formigas foi executado 50 vezes para a base de dados com 100 caroneiros, constatando-se que: · Em 18% das execuções o par (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · Em 62% das execuções pelo menos um dos três pares (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · O tempo de execução médio foi de 1.633 milissegundos. Validações e experimentos. Exp.3: colônia de formigas - redução da...

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(91) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Aumentando-se a constante de pegar passageiros de 0,65 para 0,95 e mantendo-se a constante de largar passageiros fixa em 0,15 o algoritmo de clusterização de colônia de formigas foi executado 50 vezes para a base de dados com 500 caroneiros, constatando-se que: · Em 16% das execuções o par (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · Em 62% das execuções pelo menos um dos três pares (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · O tempo de execução médio foi de 1.672 milissegundos.

[l] [u] [s] [t] [e] [r] [i] [z] [a]

\\\

Conforme demonstrado na Tabela 4, observou-se que com o aumento da constante de pegar passageiros, o percentual de vezes em que os caroneiros com as maiores afinidades ficaram no mesmo grupo apresentou uma pequena redução, independente da quantidade de caroneiros cadastrados no sistema. O tempo de execução do algoritmo apresentou um pequeno decréscimo com o aumento da constante de pegar passageiros.

[ç] Tabela 4 - Aumento da constante de pegar (k1)

[ã] [o] = (2) (0) (1) (3)

Constante de Caroneiros pegar (k1)

Constante de largar (k2)

Agrupou o par mais similar

Agrupou um dos três pares mais similares

Tempo de execução médio (ms)

100 100

0,65 0,95

0,15 0,15

22% 18%

68% 62%

1.641 1.633

500 500

0,65 0,95

0,15 0,15

20% 16%

64% 62%

1.679 1.672

= Validações e experimentos. Exp.4: colônia de formigas - redução da...

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(92) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

6.5. Experimento 5: colônia de formigas - redução da constante de largar

[l] [u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

\\\

Realizou-se uma análise comparativa dos efeitos da redução da constante de largar passageiros no algoritmo de clusterização de colônia de formigas. Reduzindo-se a constante de largar passageiros de 0,15 para 0,05 e mantendo-se a constante de pegar passageiros fixa em 0,65 o algoritmo de clusterização de colônia de formigas foi executado 50 vezes para a base de dados com 100 caroneiros, constatando-se que: · Em 20% das execuções o par (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · Em 64% das execuções pelo menos um dos três pares (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · O tempo de execução médio foi de 1.637 milissegundos. Reduzindo-se a constante de largar passageiros de 0,15 para 0,05 e mantendo-se a constante de pegar passageiros fixa em 0,65 o algoritmo de clusterização de colônia de formigas foi executado 50 vezes para a base de dados com 500 caroneiros, constatando-se que: · Em 16% das execuções o par (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · Em 60% das execuções pelo menos um dos três pares (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · O tempo de execução médio foi de 1.678 milissegundos.

= Validações e experimentos. Exp.5: colônia de formigas - redução da...

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(93) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Conforme demonstrado na Tabela 5, observou-se que com a redução da constante de largar passageiros, o percentual de vezes em que os caroneiros com as maiores afinidades ficaram no mesmo grupo apresentou uma pequena redução, independente da quantidade de caroneiros cadastrados no sistema. O tempo de execução do algoritmo apresentou um pequeno decréscimo com a redução da constante de largar passageiros.

[l] [u] [s]

\\\

[t] Tabela 5 - Redução da constante de largar (k2)

[e] [r] [i] [z]

Constante de Caroneiros pegar (k1)

Constante de largar (k2)

Agrupou o par mais similar

Agrupou um dos três pares mais similares

Tempo de execução médio (ms)

100 100

0,65 0,65

0,15 0,05

22% 20%

68% 64%

1.641 1.637

500 500

0,65 0,65

0,15 0,05

20% 16%

64% 60%

1.679 1.678

[a] [ç] [ã] [o] = (2) (0) (1) (3)

=

6.6. Experimento 6: colônia de formigas - aumento da constante de largar Realizou-se uma análise comparativa dos efeitos do aumento da constante de largar passageiros no algoritmo de clusterização de colônia de formigas. Aumentando-se a constante de largar passageiros de 0,15 para 0,25 e mantendo-se a constante de pegar passageiros fixa em 0,65 o algoritmo de clusterização de colônia de formigas foi executado 50 vezes para a base de dados com 100 caroneiros, constatando-se que: Validações e experimentos. Exp.5: colônia de formigas - redução da...

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(94) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

· Em 26% das execuções o par (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · Em 68% das execuções pelo menos um dos três pares (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · O tempo de execução médio foi de 1.654 milissegundos.

[l] [u]

\\\

[s] [t] [e] [r] [i] [z] [a]

Aumentando-se a constante de largar passageiros de 0,15 para 0,25 e mantendo-se a constante de pegar passageiros fixa em 0,65 o algoritmo de clusterização de colônia de formigas foi executado 50 vezes para a base de dados com 500 caroneiros, constatando-se que: · Em 24% das execuções o par (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · Em 66% das execuções pelo menos um dos três pares (motorista e passageiro) de maior similaridade ficou no mesmo grupo; · O tempo de execução médio foi de 1.696 milissegundos.

[ç] Tabela 6 - Aumento da constante de largar (k2)

[ã] [o] = (2) (0) (1) (3)

Constante de Caroneiros pegar (k1)

Constante de largar (k2)

Agrupou o par mais similar

Agrupou um dos três pares mais similares

Tempo de execução médio (ms)

100 100

0,65 0,65

0,15 0,25

22% 26%

68% 68%

1.641 1.654

500 500

0,65 0,65

0,15 0,25

20% 24%

64% 66%

1.679 1.696

= Validações e experimentos. Exp.6: colônia de formigas - aumento da...

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(95) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Conforme demonstrado na Tabela 6, observou-se que com o aumento da constante de largar passageiros, o percentual de vezes em que os caroneiros com as maiores afinidades ficaram no mesmo grupo apresentou um pequeno aumento, independente da quantidade de caroneiros cadastrados no sistema. O tempo de execução do algoritmo apresentou um pequeno acréscimo com o aumento da constante de largar passageiros.

[l] [u] [s]

\\\

[t] [e] [r] [i] [z] [a] [ç]

6.7. Experimento 7: clusterização hierárquica versus colônia de formigas O algoritmo de clusterização hierárquica e o algoritmo de clusterização de colônia de formigas básico foram executados 50 vezes cada um para a base de dados com 100 caroneiros e 50 vezes cada um para a base de dados com 500 caroneiros. A partir destas execuções se verificou os percentuais resultantes e os tempos médios de execução de cada um dos algoritmos, os quais foram analisados separadamente nos itens 6.1 e 6.2 deste livro, respectivamente. Agora, estas informações são analisadas e comparadas em conjunto.

[ã] [o] = (2) (0) (1) (3)

=

Tabela 7 - Clusterização hierárquica versus colônia de formigas Agrupou o Agrupou um dos Tempo de par mais três pares mais execução médio Caroneiros Clusterização similar similares (ms) 100 Hierárquica 100% 100% 168 Colônia de 100 formigas 22% 68% 1.641 500 Hierárquica 100% 100% 12.736 Colônia de 500 formigas 20% 64% 1.679 Validações e experimentos. Exp.6: colônia de formigas - aumento da...

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(96) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

Conforme demonstrado na Tabela 7, observou-se que o algoritmo de clusterização hierárquica obteve os melhores resultados ao agrupar sempre os motoristas e passageiros que apresentam as maiores afinidades entre si, independente da quantidade de caroneiros cadastrados no sistema. O algoritmo de clusterização hierárquica apresentou o tempo médio de execução em torno de 10 vezes menor que o algoritmo de clusterização de colônia de formigas para a base de dados com 100 caroneiros, mas em contrapartida, apresentou o tempo médio de execução quase 10 vezes maior que o algoritmo de clusterização de colônia de formigas para a base de dados com 500 caroneiros. Observa-se aqui que o algoritmo de clusterização hierárquica (método exato) é muito mais sensível do que o algoritmo de clusterização de colônia de formigas (meta heurística) aos efeitos da explosão combinatória causados pelo crescimento da base de dados.

[l] [u] [s] [t] [e] [r] [i]

\\\

[z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

= Validações e experimentos. Exp.7: clusterização hierárquica versus...

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(97) / (120)

///


PARTE III


///

+ CGL(ed) + MMXIII +

\\\

[c] [l]

7. Conclusões

[u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

Este trabalho apresentou o desenvolvimento de um sistema de clusterização informatizado que disponibiliza para seus usuários uma inteligência adicional, não oferecida pelos sistemas já existentes sobre caronas. O sistema é capaz de agrupar pessoas para se deslocarem em grupo, ou compartilharem caronas, que estejam em locais próximos e precisam se deslocar para um local comum, em horários compatíveis, levando em consideração também o grau de afinidade entre as pessoas, resultando assim em maiores facilidades para deslocamentos mais convenientes e mais eficientes. Para o desenvolvimento deste projeto optou-se pela implementação de dois algoritmos de clusterização diferentes: um algoritmo hierárquico (clusterização hierárquica) e um algoritmo probabilístico (colônia de formigas). A partir das análises realizadas sobre os resultados das validações e dos experimentos do sistema é possível observar diferenças significativas entre as abordagens de clusterização utilizadas.

= Conclusões.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(99) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

O algoritmo de clusterização hierárquica demonstrou ser o melhor algoritmo para ser utilizado com bases de dados pequenas, pois mostrou ser capaz de agrupar sempre os pares de caroneiros (motoristas e passageiros) com os maiores graus de afinidades entre si em um tempo relativamente rápido. Com a mesma base de dados, o algoritmo de clusterização de colônia de formigas demonstrou não conseguir agrupar sempre os pares de caroneiros mais similares entre si, além de apresentar um tempo de processamento mais elevado do que a clusterização hierárquica.

[l] [u] [s] [t]

\\\

[e] [r] [i] [z] [a] [ç] [ã]

Mas em contrapartida, com o aumento da quantidade de caroneiros cadastrados na base de dados, apesar de continuar agrupando os caroneiros mais similares entre si, o algoritmo de clusterização hierárquica demonstrou se tornar extremamente lento para conseguir agrupar os caroneiros. O algoritmo de clusterização de colônia de formigas, apesar de não conseguir agrupar sempre os pares de caroneiros mais similares entre si, conseguiu apresentar um tempo de processamento muito mais rápido do que a clusterização hierárquica. Ou seja, com bases de dados maiores, quando a precisão absoluta dos resultados dos agrupamentos não for essencial, e o tempo para se obter os resultados for relevante, o algoritmo de colônia de formigas demonstrou ser a melhor alternativa.

[o] = (2) (0) (1) (3)

Os experimentos do sistema foram realizados usando-se um modelo prático, onde os caroneiros teriam a necessidade de se deslocarem de regiões localizadas ao redor do Centro de Porto Alegre até a Ulbra Canoas com o objetivo de frequentarem aulas no turno da noite. Mas a abrangência de uso deste sistema é muito mais ampla; por disponibilizar uma interface web:

= Conclusões.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(100) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

o sistema não está limitado apenas à região metropolitana de Porto Alegre, ou seja, os usuários podem se deslocar de qualquer local para qualquer local dentro do território brasileiro.

[l] [u] [s] [t] [e] [r] [i] [z] [a]

\\\

Este trabalho pode ser considerado como um passo para trabalhos futuros visando complementá-lo, como por exemplo: o sistema poderia utilizar outras abordagens de clusterização, como os algoritmos k-means (exclusiva) e c-means (sobreposição) apresentados no referencial teórico deste trabalho; o sistema poderia enviar e-mail para os caroneiros após realizar a clusterização, desta forma, além de ser possível consultar os resultados dos agrupamentos pela página web do sistema, os caroneiros seriam também comunicados diretamente pelo sistema; o sistema poderia disponibilizar uma interface web em inglês, permitindo inclusive endereços fora do território brasileiro; o sistema poderia, para efeito de clusterização, além de considerar os caroneiros localizados em locais próximos da origem, considerar também os caroneiros localizados em locais intermediários, no caminho entre a origem e o destino.

[ç] [ã] [o] = (2) (0) (1) (3)

= Conclusões.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(101) / (120)

///


///

+ CGL(ed) + MMXIII +

\\\

[c] [l]

8. Referências bibliográficas

[u] [s] [t] [e] [r] [i] [z] [a] [ç] [ã] [o] = (2) (0) (1) (3)

=

ARANHA, Claus de Castro. A Survey on using Ant-Based techniques for clustering. 20 jan 2006. Disponível em: < http://www.im.cjcu.edu.tw/~kdirlab/paper/1.%20A%20Survey%20on%20using%20AntBased%20techniques%20for%20clustering.pdf> Acesso em: 21 mai 2011. AUTOBLOGGREEN. Daimler launches car2gether rideshare program in Ulm, Germany. 13 set 2010. Disponível em: <http://green.autoblog.com/2010/09/13/carpool-for-9-5-minutedaimler-launches-car2gether-rideshare/>. Acesso em: 10 abr 2011. BENZINSIDER. Daimler AG starts second “ride sharing 2.0″ project, this time in Aachen. 08 out 2010. Disponível em: <http://www.benzinsider.com/2010/10/daimler-ag-starts-secondride-sharing-2-0-pilot-this-time-in-aachen/>. Acesso em: 10 abr 2011. BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com UML. Segunda edição. Rio de Janeiro, Brasil. Elsevier Editora, 2007. CARONEIROS.COM. Um pouco sobre o Caroneiros.com. Disponível <http://www.caroneiros.com/web/SobreCaroneiros.aspx>. Acesso em: 14 abr 2011.

em:

DING, Chris; HE, Xiaofeng. Cluster merging and splitting in hierarchical clustering algorithms. Proceedings of the 2002 IEEE International Conference on Data Mining (ICDM’02). 2002. Disponível em: <http://faculty.ksu.edu.sa/ghazy/CBD_MSc/Ref-9.pdf>. Acesso em: 10 abr 2011. FUNG, Glenn. A Comprehensive Overview of Basic Clustering Algorithms. 22 jun 2001. Disponível em: < http://www.google.com.br/url?sa=t&source=web&cd=6&ved=0CFUQFjAF &url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi %3D10.1.1.81.5037%26rep%3Drep1%26type%3Dpdf&ei=V5yXTdrxO8vdgQf--JiuCA &usg=AFQjCNHRMAwGjt1UITIp1C7du-sCioMP6Q >. Acesso em: 10 abr 2011. HAJIAGHAYI, MohammadTaghi. Clustering algorithms in PBS. abr 2001. Disponível em: <http://www-math.mit.edu/~hajiagha/cluster1.pdf>. Acesso em: 10 abr 2011. KAINULAINEN, Jukka. Clustering Algorithms: Basics and Visualization. 2002. Disponível em: < http://www.google.com.br/url?sa=t&source=web&cd=77&ved=0CFAQFjAGOEY &url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi

Referências bibliográficas.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(102) / (120)

///


///

+ CGL(ed) + MMXIII +

[c]

%3D10.1.1.120.1490%26rep%3Drep1%26type%3Dpdf&ei=K6uXTfeSOZOug QeYh42zCA&usg=AFQjCNHzcrTTx2sP_8AMX8DscfrGSLMvfA>. Acesso em: 10 abr 2011.

[l]

LARSEN, J.; SZYMKOWIAK, A; HANSEN, L.K. Probabilistic Hierarchical Clustering with Labeled and Unlabeled Data. 2001. Disponível em: <http://cogsys.imm.dtu.dk/publications/2001/larsen.kes.pdf>. Acesso em: 10 abr 2011.

[u]

LAURO, André Luís. Agrupamento de dados utilizando algoritmo de colônia de formigas. set 2008. Disponível em: <http://www.coc.ufrj.br/index.php?option=com_docman

[s]

&task=doc_download&gid=1899&Itemid=84>. Acesso em: 21 mai 2011.

[t] [e] [r]

\\\

LORENZI, Fabiana; FRANCESCHI, Analucia Schiaffino Morales de. Inteligência Artificial. Ulbra Canoas. 2008. MALLAPRAGADA, Pavan Kumar; JIN, Rong; JAIN, Anil. Non-parametric Mixture Models for Clustering. Disponível em: <http://biometrics.cse.msu.edu/Publications/Clustering/ MallapragadaJinJain_NonparametricMixtureModels_SSSPR10.pdf>. Acesso em: 10 abr 2011.

[z]

MARY, C. Immaculate; PHIL, M. A Modified Ant-based Clustering for Medical Data. International Journal on Computer Science and Engineering Vol. 02, No. 07, 2010, 22532257. 2010. Disponível em: <http://www.google.com.br/url?sa=t&source=web&cd=13 &ved=0CDAQFjACOAo &url=http%3A%2F%2Fwww.enggjournals.com%2Fijcse%2Fdoc %2FIJCSE10-02-07-38.pdf&rct=j&q=Standard%20Ant%20Clustering %20Algorithm &ei=zFvVTbDvNoLh0QGYl7mYDA&usg=AFQjCNGWs4eLmjxPcYPGxlzin9cVa5ECA&cad=rja>. Acesso em: 21 mai 2011.

[a]

MATTEUCCI, Matteo. A Tutorial on Clustering Algorithm. 18 out 2006. Disponível em: <http://home.dei.polimi.it/matteucc/Clustering/tutorial_html>. Acesso em: 10 abr 2011.

[ç]

NAIK, Azad. Data Clustering Algorithms. Disponível <http://sites.google.com/site/dataclusteringalgorithms/>. Acesso em: 10 abr 2011.

[i]

em:

[ã]

O ESTADO DE SÃO PAULO. Serviço gratuito de caronas tem 8 mil cadastrados. São Paulo: 25 ago 2009. Disponível em: <http://www.estadao.com.br/noticias/vidae,servicogratuito-de-caronas-tem-8-mil-cadastrados,600188,0.htm>. Acesso em: 10 abr 2011.

[o]

ORACLE. Clustering. Oracle Data Mining Concepts 11g Release 1 (11.1). Disponível em: <http://download.oracle.com/docs/cd/B28359_01/datamine.111/b28129/clustering.htm>. Acesso em: 10 abr 2011.

= (2) (0) (1) (3)

RASMUSSEN, Edie. Clustering Algorithms. Disponível <http://orion.lcg.ufrj.br/Dr.Dobbs/books/book5/chap16.htm>. Acesso em: 10 abr 2011.

em:

REVISTA VEJA. Dar carona pode aliviar o congestionamento de São Paulo. Ed. Abril, 01 abr 2011. Disponível em: <http://vejasp.abril.com.br/revista/edicao-2211/carona-saopaulo>. Acesso em: 10 abr 2011.

= Referências bibliográficas.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(103) / (120)

///


/// [c] [l] [u] [s] [t] [e] [r] [i] [z] [a] [ç]

+ CGL(ed) + MMXIII +

\\\

SOMMERVILLE, Ian. Engenharia de software. Oitava edição. São Paulo, Brasil. Pearson Addison Wesley, 2007. SREENIVASA, Vuda. Comparative investigations and performance analysis of FCM and MFPCM algorithms on iris data. Indian Journal of Computer Science and Engineering Vol 1 No 2, 145-151. Disponível em: <http://www.ijcse.com/docs/IJCSE10-01-02-12.pdf>. Acesso em: 10 abr 2011. VIZINE, André L.; CASTRO, Leandro N.; HRUSCHKA, Eduardo R.; GUDWIN, Ricardo R. Towards Improving Clustering Ants: An Adaptive Ant Clustering Algorithm. 2005. Disponível em: <http://www.google.com.br/url?sa=t&source=web&cd=1&ved=0CCEQFjAA&url= http%3A%2F%2Fwww.informatica.si%2Fpdf%2F29-2%2F02_vizinetowards%2520improving%2520clustering%2520ants....pdf &rct=j&q=Standard%20Ant%20Clustering%20Algorithm&ei=eVjVTaTNeLL0QHV88WNDA&usg=AFQjCNHXnQ8VE_CGbJzgx-DHpCnAqTjw0A&cad=rja>. Acesso em: 21 mai 2011. VUPPALAPATI, Sri Hari Krishna; SRIVASTAVA, Anurag K.. Application of ant colony optimization for reconfiguration of shipboard power system. International Journal of Engineering, Science and Technology Vol. 2, No. 3, 2010, pp. 119-131. mar 2010. Disponível em: <http://www.google.com.br/url?sa=t&source=web&cd=2&ved=0CCMQFjAB &url=http%3A%2F%2Fwww.ijest-ng.com%2Fijest-ng-vol2-no3-pp119131.pdf&rct=j&q=%22the%20ant %20colony%20algorithm%20is%20a%20probabilistic%22 &ei=UcrWTZWtKMu70QGK96GxBw&usg=AFQjCNGCZiAa960sTUNQq4egeHtc9LTQw&cad=rja>. Acesso em: 21 mai 2011. YIU, K.K; MAK, M.W.; LI, C.K. Gaussian Mixture Models and Probabilistic Decision-Based Neural Networks for Pattern Classification: A Comparative Study. Neural Comput & Applic Springer-Verlag London Limited. 1999. Disponível em: <http://read.pudn.com/downloads159/doc/709826/Gaussian%20Mixture%20Models %20and%20Probabilistic%20Decision-Based%20Neural%20Networks%20for%20Pattern %20Classification%20-%20A%20Comparative%20Study.pdf>. Acesso em: 10 abr 2011.

[ã] [o] = (2) (0) (1) (3)

= Referências bibliográficas.

Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Linck, Ricardo Ramos. Lorenzi, Fabiana. http://creativecommons.org/licenses/by-nc-nd/3.0/ i. O conteúdo original em meio digital pode ser livremente distribuído em formato “pdf” desde que não seja modificado e se apresente por completo. ii. Esta página só pode ser reproduzida em suporte físico desde que se apresente tal qual se encontra no original. iii. O conteúdo da OBRA que exceder duas páginas não pode ser exposto na Internet nem digitalmente reproduzido (utilizar a primeira opção).

\\\

(104) / (120)

///


PARTE IV


OUTRAS OBRAS DO EDITOR - 2011


Mais uma lacônica viagem no tempo e no espaço

LARCEN, César Gonçalves. Mais uma lacônica viagem no tempo e no espaço: explorando o ciberespaço e liquefazendo fronteiras entre o moderno e o pós-moderno atravessando o campo dos Estudos Culturais. Porto Alegre: César Gonçalves Larcen Editor, 2011. 144 p. il. ISBN: 978-85-912136-0-3 http://pt.scribd.com/doc/57879477/livro-01-pg001-ate-pg13-mais-pg139-ate-pg144


Notação do movimento

TRINDADE, Ana Ligia. Notação do movimento: investigando sua utilização na arte da dança. Porto Alegre: César Gonçalves Larcen Editor, 2011. ISBN: 978-85-912136-1-0 http://www.cgled.blogspot.com.br/2013/03/livro-2011-notacao-do-movimento.html


OUTRAS OBRAS DO EDITOR - 2012


Um baralho da China Estórias de jogadores de truco Um baralho da China. Volume 1

Venha cá parceiro

Truco!

Vitor Hugo B. de Aguiar com a apresentação de

Nei Duclós

Aprenda se divertindo

AGUIAR, Vitor Hugo Berenhauser de. Um baralho da China. Coleção Truco! Venha cá, parceiro. Vol. 1. Porto Alegre: César Gonçalves Larcen Editor, 2012. 20 p. il. ISBN 978-85-912136-4-1 ISBN da coleção: 978978-8585-912136912136-3-4

http://www.cgled.blogspot.com.br/2013/03/livro-2012-um-baralho-da-china.html


Por favor, não mande flores Estórias de jogadores de truco Por favor, não mande flores Volume 2.

Venha cá parceiro

Truco!

Vitor Hugo B. de Aguiar

com a apresentação de

Nei Duclós

Aprenda se divertindo

AGUIAR, Vitor Hugo Berenhauser de. Por favor, não mande flores. Coleção Truco! Venha cá, parceiro. Vol. 2. Porto Alegre: César Gonçalves Larcen Editor, 2012. 20 p. il. ISBN 978-85-912136-5-8 ISBN da coleção: 978978-8585-912136912136-3-4

http://www.cgled.blogspot.com.br/2013/03/livro-2012-por-favor-nao-mande-flores.html


Truco amigo! Estórias de jogadores de truco Truco Amigo!. Volume 3

Venha cá parceiro

Truco!

Vitor Hugo B de Aguiar

com a apresentação de

Nei Duclós

Aprenda se divertindo

AGUIAR, Vitor Hugo Berenhauser de. Truco amigo! Coleção Truco! Venha cá, parceiro. Vol. 3. Porto Alegre: César Gonçalves Larcen Editor, 2012. 20 p. il. ISBN 978-85-912136-6-5 ISBN da coleção: 978978-8585-912136912136-3-4

http://www.cgled.blogspot.com.br/2013/03/livro-2012-truco-amigo.html


Truco no escuro Estórias de jogadores de truco Truco no escuro. Volume 4

Venha cá parceiro

Truco!

Vitor Hugo B de Aguiar

com a apresentação de

Nei Duclós

Aprenda se divertindo

AGUIAR, Vitor Hugo Berenhauser de. Truco no escuro. Coleção Truco! Venha cá, parceiro. Vol. 4. Porto Alegre: César Gonçalves Larcen Editor, 2012. 20 p. il. ISBN 978-85-912136-7-2 ISBN da coleção: 978978-8585-912136912136-3-4

http://www.cgled.blogspot.com.br/2013/03/livro-2012-truco-no-escuro.html


FREE DOWNLOAD: As regras do Truco Cego

DOWNLOAD GRATUÍTO. FREE DOWNLOAD. AGUIAR, Vitor Hugo Berenhauser de. As regras do Truco Cego. Porto Alegre: César Gonçalves Larcen Editor, 2012. 58 p. il. ISBN 978-85-912136-7-2 DOWNLOAD GRATUÍTO. FREE DOWNLOAD. http://www.cgled.blogspot.com.br/2013/03/livro-2012-as-regras-do-truco-cego.html


OUTRAS OBRAS DO EDITOR - 2013


FREE DOWNLOAD: Clusterização

DOWNLOAD GRATUÍTO. FREE DOWNLOAD. LINCK, Ricardo Ramos. LORENZI, Fabiana. Clusterização: utilizando Inteligência Artificial para agrupar pessoas. Porto Alegre: César Gonçalves Larcen Editor, 2013. 120p. il. ISBN: 978-85-912136-9-6 DOWNLOAD GRATUÍTO. FREE DOWNLOAD. http://www.cgled.blogspot.com.br/2013/03/livro-2013-clusterizacao.html


Do Terra ao Gaia!

TRINDADE, Ana Lígia. Do Terra ao Gaia! Da Esquina Democrática ao Flash Mob Dance na Memória Artístico-cultural da Dança em Porto Alegre / RS. Porto Alegre: César Gonçalves Larcen Editor, 2013. 200 p. il. ISBN: 978-85-912136-8-9 http://www.cgled.blogspot.com.br/2013/03/livro-2013-do-terra-ao-gaia.html


FREE DOWNLOAD: Pedagogias Culturais

DOWNLOAD GRATUÍTO. FREE DOWNLOAD. LARCEN, César Gonçalves. Pedagogias Culturais: dos estudos de mídia tradicionais ao estudo do ciberespaço em investigações no âmbito dos Estudos Culturais e da Educação. Porto Alegre: César Gonçalves Larcen Editor, 2013. 120 p. ISBN: 978-85-915192-0-0 DOWNLOAD GRATUÍTO. FREE DOWNLOAD. http://www.cgled.blogspot.com.br/2013/03/livro-2013-pedagogias-culturais.html


RICARDO RAMOS LINCK FABIANA LORENZI

CLUSTERIZAÇÃO

Utilizando Inteligência Artificial para agrupar pessoas

1ª edição

Porto Alegre César Gonçalves Larcen 2013


Produção gaúcha.

RICARDO RAMOS LINCK FABIANA LORENZI

CLUSTERIZAÇÃO

Utilizando Inteligência Artificial para agrupar pessoas

1ª edição 2013 http://www.cgled.blogspot.com.br/2013/03/livro-2013-clusterizacao.html


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.