HEURÍSTICA DE AGRUPAMENTO EM GISDK Maxwell Scardini Kaiser, Priscila de Almeida Prata e Glaydston Mattos Ribeiro Departamento de Ciência da Computação e Informática Faculdade de Aracruz UNIARACRUZ 1 { mskaiser, prata, glaydston@fsjb.edu.br} RESUMO O uso de ferramentas computacionais visando à solução dos mais variados problemas tem crescido nas empresas privadas e públicas, principalmente para reduzir os custos e melhorar a qualidade dos serviços prestados aos clientes ou a população. Neste contexto, os Sistemas de Informações Geográficas (SIG) tem se destacado por apresentar, além de métodos eficientes de solução, saídas gráficas nas quais os resultados são mostrados através de mapas e gráficos, facilitando o entendimento. Dentre os diversos problemas existentes em uma empresa e que podem ser resolvidos por um SIG, está o problema de agrupamento de clientes que surge quando se deseja agrupar um conjunto de clientes em subconjuntos conforme uma dada característica. Sendo assim, este trabalho apresenta uma implementação em GISDK, de uma técnica de solução para o problema de agrupamento. A linguagem GISDK pertence ao SIG TransCAD que vem sendo utilizado em problemas ligados a transportes. Palavras-chave: TransCAD, GISDK, Agrupamentos. ABSTRACT < > Keywords: < >
INTRODUÇÃO As recentes conquistas de mercado internacional têm provocado grandes avanços nas empresas brasileiras, de tal forma que uma das principais preocupações das empresas tem sido com a Logística. Segundo Novaes (2001), a logística é o processo de planejar, programar e controlar, de maneira eficiente, o fluxo e a armazenagem de produtos, bem como os serviços e informações associadas, cobrindo desde o ponto de origem até o ponto de consumo, com o objetivo de atender aos requisitos do consumidor. Grandes empresas têm efetuado elevados investimentos em ferramentas computacionais voltadas para o setor de logística, principalmente naquelas que apresentam soluções gráficas. Neste contexto, estão os SIG (Sistemas de Informações geográficas) que possuem integrados métodos eficientes de otimização, além de saídas gráficas como mapas (CÂMARA, 1996). A Figura 1 apresenta o resultado de um problema de logística clássico, que é o problema de agrupamento de clientes. Figura 1: Exemplo de agrupamentos (Caliper, 2000). O problema de agrupamento (PA) consiste em agrupar clientes, conforme uma ou mais características, em subconjuntos distintos. Em um problema de distribuição física de produtos, clientes podem ser agrupados para definir bolsões de entrega de produtos, reduzindo assim os custos com transporte. Dentre os diversos SIG s existentes, tem se destacado o TransCAD (Caliper, 1996) que é conhecido na literatura como sendo um SIG especialmente voltado para
transportes. Alguns autores inclusive o chamam de SIG-T (Sistema de Informações Geográficas para Transportes) (SILVA; WAERDEN, 1997). O TransCAD também apresenta uma linguagem de programação conhecida como GISDK (Geographic Information System Development's Kit), não muito explorada na literatura. Com isso, este trabalho tem como objetivo apresentar uma implementação de uma heurística de agrupamentos, conhecida como k-médias, utilizando a linguagem GISDK. Resultados computacionais mostram que os agrupamentos obtidos são visualmente melhores que os gerados pelo método tradicional produzido pelo TransCAD. Com isso, este trabalho está assim dividido. A próxima seção apresenta o problema de agrupamentos, seguida da descrição do método k-médias, de uma descrição do TransCAD, da implementação do k-médias em GISDK, da interface e dos resultados computacionais. Por último, são apresentadas as conclusões do trabalho. AGRUPAMENTOS OU CLUSTERS Agrupamentos ou Clusters são agrupamentos de objetos com base nas similaridades e/ou diferenças entre os mesmos de tal maneira que os grupos obtidos sejam os mais homogêneos e bem separados possíveis, ou seja, procura-se coesão interna e isolamento externo (ANDEBERG, 1973). As técnicas de agrupamento são utilizadas nas mais variadas áreas de pesquisas para finalidades diversas como (VIANA; NEGREIROS, 2003): detecção de enfermidades, classificação de células sanguíneas, tratamento de imagens médicas (ultra-sonografia e tomografia, por exemplo), identificação de padrões de assinaturas, distinção de rostos, classificação de minerais, classificação de componentes químicos, reconhecimento de imagens de satélites, estudo de padrões de consumo, logística, estudo de tráfego, marketing e análises comportamentais. Os métodos de agrupamentos podem ser divididos em: Hierárquico e de Particionamento. Nos algoritmos clássicos de agrupamento hierárquico, os clusters são formados gradativamente através de aglomerações ou divisões de clusters, gerando uma hierarquia de clusters, normalmente representada através de uma estrutura em árvore. Nesta classe de algoritmos, os dados de uma forma geral são formados por um cluster que por sua vez é composto de vários clusters menores
(OLIVEIRA, 2005). Os métodos de particionamento procuram encontrar a melhor partição dos n objetos (clientes, neste trabalho) em k grupos. Conforme Neves (2001), normalmente os k clusters encontrados neste método são de melhor qualidade do que os gerados pelos métodos hierárquicos. ALGORITMO K-MEANS OU K-MÉDIAS Os estudos iniciais do algoritmo de k-médias foram feitos por MACQUEEN (1967). Para Huang (1998) é o algoritmo mais conhecido pela sua eficiência em realizar agrupamentos em bases de dados numerosas. É um algoritmo de aprendizado nãosupervisionado e vem sendo utilizado em reconhecimento de padrões e mineração de dados (Data Mining). O k-médias é, basicamente, composto pelos passos descritos a seguir podendo ter variações conforme o problema a ser solucionado: 1. Escolher, aleatoriamente, k centros iniciais dos k clusters. No caso do problema de agrupamento de clientes, o centro de um cluster pode ser o centro geométrico do cluster, dado que os clientes possuem coordenadas geográficas; 2. Calcular, a similaridade, entre cada objeto e o centro de cada cluster definido; 3. Associar, baseado na similaridade, cada objeto a um cluster. 4. Recalcular os centros dos clusters, redefinindo cada um, em função de um atributo de todos os componentes do cluster; 5. Repetir os passos de 2 a 4, até que os centros dos clusters se estabilizem. Outros algoritmos de agrupamentos são encontrados descritos amplamente nos trabalhos de Viana e Negreiros (2003) e Neves (2001).
O SISTEMA TRANSCAD Conforme a Caliper (2000), o TransCAD é um SIG-T projetado especificamente para planejar, gerenciar e realizar operação e análise das características dos sistemas de transportes e aplicações logísticas. Ainda segundo a Caliper (2000), o TransCAD está entre os SIG-T s mais utilizados, pois possui um grande número de recursos como um gerenciador de banco de dados espacial, que armazena os dados utilizando uma estrutura topológica, no qual definem a localização e as relações espaciais entre pontos, linhas, áreas e entidades geográficas definidas como camadas (layers), fornecendo para isso ferramentas de agregação de dados geográficos, tornando simples a integração dos dados de diversas escalas diferentes. Dentre as diversas técnicas de solução implementadas no TransCAD, estão algoritmos para resolver problemas de agrupamentos e localização de facilidades. Essas implementações são baseadas nos algoritmos propostos por Koskosidis e Powell (1992), Zoltners e Sinha (1983) e Horn (1995). O TransCAD possui uma linguagem de desenvolvimento conhecida como GISDK (Geographic Information System Development's Kit) que é um ambiente detalhado de desenvolvimento que pode ser utilizada de três maneiras diferentes: Criação de Add-ins, Criação de Custom Application e Criação de Server Application ; As Add-Ins possibilitam que o usuário estenda a capacidade do TransCAD, por exemplo, para criar atalhos para operações que são executadas freqüentemente sem que haja intervenção do usuário. A Criação de Custom Applications é bastante familiar, pois, se parece com qualquer outra linguagem de programação. Permite, por exemplo, que o usuário crie seu próprio ícone como em qualquer outro programa Windows. A criação de Server Applications faz com que o TransCAD funcione como um servidor de mapas, dados e funções de análises geográficas. Pode assim ser utilizado para visualizar mapas em outros programas (aplicações específicas - SIG, aplicações de Internet, etc) escritos em linguagens como C, C++, Visual Basic, Delphi, Microsoft Excel (macros), etc.
A IMPLEMENTAÇÃO DO K-MÉDIAS EM GISDK Em alguns problemas de agrupamentos, podem ser gerados grupos de objetos (clientes) sem e com restrição de capacidade. Entende-se por restrição de capacidade, uma condição associada a algum aspecto operacional. Por exemplo, em um problema de distribuição física de produtos, cada grupo de clientes deve ser atendido por um veículo específico, logo, toda a demanda a ser coletada ou distribuída para os clientes de um dada grupo, deve ser menor ou igual à capacidade do veículo. Com isso, neste trabalho é apresentada uma implementação utilizando a linguagem GISDK do algoritmo k-médias para geração de clusters como solução do problema de agrupamento capacitado e não capacitado. Algoritmos utilizados para gerar clusters geralmente utilizam a distância Euclidiana (distância em linha reta) como medida de similaridade entre os clientes. No entanto neste trabalho, é utilizada a distância real da rede do Sistema Viário fornecida pelo TransCAD. Para ilustrar a funcionalidade do aplicativo, optou-se por realizar experimentos em uma base de dados da cidade de Aracruz-ES. Para isso, a partir de um mapa fornecido pelo Departamento de Arquitetura e Urbanismo da Faculdade de Aracruz, foi criada uma base de dados no formato do TransCAD (*.map) com apenas os elementos necessários ao presente trabalho, ou seja, áreas que corresponde aos lotes, quadras, terrenos e sistema viário que corresponde às ruas, avenidas e rodovias que cortam a cidade. A seguir estão descritos os pseudocódigos desenvolvidos para o k-médias não capacitado e capacitado. Algoritmo k-médias não capacitado Esta implementação consiste dos passos básicos do k médias. A seguir está o pseudocódigo: Determine k Escolha aleatória da posição do centro dos k clusters. Enquanto Atualiza=1 faça Para i=1 até número de clientes faça Para k=1 até número de clusters faça Calcule a distância entre i e k; Fim para; Associe i ao centro k mais próximo; Fim Para; Enquanto t <= número de clusters faça
Recalcula Centro; Se (nova posição do centro - posição atual) > Estabiliza Então Atualiza=1; Fim Se; Senão Atualiza=0; Fim Senão; Fim Enquanto; Fim Enquanto; Resultado dos clusters formados. Algoritmo k-médias capacitado Os passos do k-médias adaptado ao problema do agrupamento capacitado, estão descritos a seguir: 1. Definição do número de clusters a serem gerados; 2. Definição da capacidade máxima de cada cluster; 3. Escolha aleatória dos centros dos clusters; 4. Calcular a distância dos clientes aos centros; 5. Alocação dos clientes ao centro mais próximo; 6. Verificação do total das demandas do cluster em relação à capacidade do cluster; 7. Se o total das demandas for maior que a capacidade, então enquanto as demandas forem maiores, os clientes que estão mais próximos de outros clusters são removidos do cluster e alocados no outro mais próximo. 8. Atualização do centro do cluster. Somar as latitudes e longitudes dos clientes de cada cluster e calcular as médias para definir onde será o novo centro de cada cluster. 9. Enquanto a mudança do centro de todos os clusters não estabilizar, repetir os passos de 4 a 8. A seguir está o pseudocódigo do k-médias capacitado baseado nos passos descritos acima. k é o número de clusters a serem gerados C é a capacidade máxima de cada cluster
Determine k Determine C Se (C*k) >= Soma das demandas dos clientes então Escolha aleatória da posição dos centros dos k clusters. Enquanto Atualiza=1 faça Para i=1 até número de clientes faça Para k=1 até número de clusters faça Calcule a distância entre i e K; Fim para; Associe i ao centro k mais próximo; Fim Para; Para k=1 até número de clusters faça Enquanto total demanda do cluster k > capacidade cluster k faça Para todo cliente (i) associado ao cluster k faça Para n=1 até n=número de cluster e n k faça Se (total demanda do cluster n + demanda do cliente i) <= capacidade do cluster n então Calcule a distância entre cliente i e o cluster n; Associe cliente (i) mais próximo do centro n; Remova o cliente (i) do cluster k; Fim Se. Fim Para. Fim Para. Fim Enquanto. Fim Para. Enquanto k <= número de clusters faça Recalcular Posição do Centro k Se (nova posição - posição atual) > Estabiliza Atualiza=1; Fim Se; Senão Atualiza=0; Fim Senão; Fim Enquanto; Fim Enquanto; Resultado dos clusters formados. A INTERFACE DA APLICAÇÃO NO TRANSCAD E TESTES COMPUTACIONAIS A interface com o usuário é feita através do componente de recurso de GISDK conhecido por Dbox e é responsável por obter as informações necessárias a execução da aplicação. Para executar a aplicação, o usuário deve escolher (Veja Figura 2): Camada Clientes: que é a camada dos dados com as características a serem agrupados; Camada de Interseções: que representa o Sistema Viário; A opção Escolher a Rede é habilitado para que o usuário escolha a rede que foi gerada para o mapa aberto;
Qual algoritmo será executado: k-médias capacitado ou não capacitado; Se escolher o caso capacitado, o usuário deverá inserir, além da quantidade de clusters, a capacidade a ser considerada e escolher por qual característica deseja limitar o cluster; No botão Salvar é escolhido um local para salvar o arquivo com as informações obtidas na geração dos clusters. Com os dados citados acima, o botão Executar K-médias permite aplicar os algoritmos descritos neste trabalho. O resultado é apresentado no mapa, ou seja, cada cluster definido recebe uma cor diferenciada, assim como um símbolo. Figura 2: Interface da Aplicação. Resultados do k-médias não capacitado No k-médias não capacitado observou-se que os clusters não possuem uma certa uniformidade. A falta de equilíbrio entre os clusters é proporcional ao número de clusters, ou seja, quanto maior o número de clusters, maior é este desequilíbrio. Por isso, têm-se clusters maiores e outros menores como pode ser observado na Figura 3 que mostra o resultado para o caso de cinco clusters para 223 clientes. Entretanto, percebe-se visualmente que os clusters estão bem definidos. A Figura 4 mostra o resultado apresentado pelo TransCAD, sendo que, execuções diferentes não geram soluções diferentes.
Figura 3: Exemplo de 5 clusters gerados pelo k-médias não capacitado. Figura 4: Exemplo de clusters gerados pelo TransCAD sem restrições de capacidade. Testes aleatórios foram realizados para comparar os resultados gerados pelo k- médias com os do TransCAD. A Tabela 1 apresenta os principais resultados. As colunas da tabela referem-se a: Clientes: o número de clientes inseridos no mapa; Clusters: o número de clusters definido pelo usuário; Custo TransCAD: representa o resultado obtido pelo TransCAD. Este custo é a soma da distância em quilômetros de cada cliente ao centro do cluster. k-médias NC: Apresenta um custo médio de 10 soluções geradas utilizando o método k-médias não capacitado. Isso porque o centro inicial dos k clusters são definidos aleatoriamente. Este custo é a soma da distância em quilômetros de cada cliente ao centro do cluster; Diferença (%): É a diferença percentual em módulo do resultado do k- médias em relação ao do TransCAD, ou seja: (Custo K-Médias Custo TransCAD)/ (Custo TransCAD). Tabela 1: Resultados sem restrição de capacidade. INSTÂNCIA * CLIENTES CLUSTERS CUSTO TRANSCAD CUSTO K- MÈDIAS NC DIFERENÇA (%) I-1 82 5 38,97 38,63 0,88% I-2 82 7 32,47 31,72 2,36% I-3 223 5 163,81 157,00 4,34% I-4 223 7 130,48 126,60 3,06% I-5 223 10 98,90 106,81 7,41% I-6 223 15 79,10 80,30 1,49% * Essas instâncias foram geradas aleatoriamente sobre a base de dados da Cidade de Aracruz-ES.
Percebe-se pela tabela acima, que os resultados são promissores. O k-médias apresenta resultados melhores para as instâncias I-1, I-2, I-3 e I-4. Para a instância I-5 o resultado foi 7,41% superior e para I-6 os resultados são bem similares. Resultados do k-médias capacitado No k-médias com restrição de capacidade observou-se que os clusters possuem uniformidade. Neste caso, foi observado que existe um certo equilíbrio entre os clusters, ou seja, na medida em que cresce o número de clusters, o equilíbrio também aumenta. Isto pode ser observado na Figura 5 que mostra o resultado para o caso de sete clusters e 223 clientes. A demanda desses clientes foi criada aleatoriamente entre 1 e 10. A Figura 6 mostra os clusters gerados pelo TransCAD. Nas Figuras 5 e 6 foram ressaltadas duas áreas (ver círculos). Note que o TransCAD apresenta alguns clusters misturados gerando agrupamento não bem delimitados. Figura 5: Exemplo de 7 clusters gerados pelo método k-médias capacitado. Figura 6: Exemplo de 7 clusters capacitados gerados TransCAD. A tabela a seguir mostra os resultados obtidos utilizando métodos com restrição de capacidade para as instâncias da Tabela 1. Foi considerado que, a capacidade somada de todos os clusters é igual à demanda total de todos os clientes acrescida de 10%. Por exemplo, se a soma das demandas de todos os clientes for igual a 700, a soma da capacidade de todos os clusters será de 770. Isso faz com o método busque clusters coesos, não muito folgados.
Tabela 2: Resultados com restrição de capacidade. INSTÂNCIA CLIENTES CLUSTERS CUSTO TRANSCAD CUSTO K- MÉDIAS C DIFERENÇA (%) I-1 82 5 40,84 39,11 4,42% I-2 82 7 36,84 36,36 1,32% I-3 223 5 148,94 141,56 5,21% I-4 223 7 140,47 127,83 9,89% I-5 223 10 136,76 120,35 13,64% I-6 223 15 107,97 94,90 13,77% Pela tabela acima, percebe-se novamente que o k-médias apresenta um bom desempenho. Nesse caso, em todas as instâncias o k-médias apresentou resultados melhores. CONCLUSÕES E RECOMENDAÇÕES O k-médias implementado para agrupamento capacitado e não capacitado apresentou resultados interessantes, podendo ser aplicado em problemas reais. Em alguns casos, apresentou resultados melhores que o TransCAD. Os resultados computacionais com o k-médias, mostraram que os algoritmos implementados no TransCAD apresentam resultados razoáveis, entretanto não são ótimos. Sendo assim, a linguagem GISDK pode ser uma alternativa quando se deseja implementar novos métodos de solução que exploram a parte gráfica. Como trabalhos futuros, pode-se testar o uso do TransCAD como um servidor de mapas. Com isso, acredita-se que este trabalho possa auxiliar os tomadores de decisões logísticas, dado que a ferramenta implementada apresenta bons resultados. REFERÊNCIAS ANTENUCCI J., BROWN K., CROSWELL P., KEVANY M., AND ARCHER H.: Geographic Information Systems - a Guide to the Technology. Van Nostrand Reinhold, 1991. ANDEBERG, M.R. Cluster analysis for applications. New York: Academic Press, 1973. CALIPER, GISDK User s Guide Version 4.0 for Windows, TransCAD Transportation GIS Software. Caliper Corporation, Newton, EUA, 2000. CÂMARA, G.; CASANOVA, M.A.; HEMERLY, A.; MEDEIROS, C.M.B.; Magalhães, G. Anatomia de Sistemas de Informação Geográfica. SBC, X Escola de Computação, Campinas, 1996. HUANG, Z. Extensions to the k-means algorithm for clustering large data sets with categorical values. Data Mining and Knowledge Discovery, Kluwer Academic Publishers, Hingham, MA, USA, Vol. 2, Issue 3. pp. 283-304,(1998)
MACQUEEN, J. Some methods for classification and analysis of multivariate observations. in 5th Berkeley Symposium on Mathematical Satistics, eds L. Le Cam and J. Neymann, p. 281-297, Berkeley, California. NOVAES, A.G.: Logística e gerenciamento da cadeia de distribuição: estratégia, operação e avaliação. Rio de Janeiro: Campus, 2001. VIANA, J. F. ROLDAN; NEGREIROS, M.J. GOMES: SCLUSTER: Um sistema para análise multivariada de agrupamentos de dados em larga escala. (2003) (UECE). SILVA, A.N. R.; WAERDEN, P. First Steps with a Geographic Information System for Transportation. Eindhoven University of Technology, Netherland, 1997. WISE, S.; HAINING, R.; MA, J. Regionalisation Tools for The Exploratory Spatial Analysis od Health Data. In: FISCHER, M.M.; GETIS, A., Eds., Recent Developments in Spatial Analysis: Spatial Statistics, Behavioural Modelling, and Computational Intelligence. Berlin: Springer, 1997, p. 83-100.