APLICAÇÃO DE ALGORITMOS GENÉTICOS PARA PREVISÃO EM VOLUME DE VENDAS Wilson Ricardo Cardoso Silva * RESUMO Este trabalho propõe-se criar uma arquitetura que torna possível o uso da Tecnologia da Informação, regras de Algoritmos Genéticos, com o propósito de gerenciar o conhecimento de uma organização, criando assim, condições para melhorar a produtividade, bem como proporcionar a rápida construção e utilização da coleção do conhecimento. Foram utilizadas técnicas de Inteligência Artificial para prever volume de vendas, conhecimento relevante oculto em banco de dados, além de componentes tecnológicos que auxiliam o gerenciamento na recuperação destes conhecimentos. Baseado nesta arquitetura, o trabalho resgata conceitos afetos a sistemas de informação, gerenciamento do conhecimento, gerenciamento de conteúdo, meios de comunicação e datamining. Palavras-chave: Datamining. Inteligência Artificial. Algoritmo Genético. Datawarehouse. Tecnologia da Informação. APPLICATION OF GENETIC ALGORITHMS FOR FORECASTING VOLUME IN SALES ABSTRACT This work aims at creating an architecture that makes the use of Information Technology possible, rules of Genetic Algorithms, with the intention to manage the knowledge of an organization, thus creating, conditions to improve the productivity, as well as providing the fast construction and use of the amount of knowledge. Artificial Intelligence techniques, to foresee the volume in sales, important hidden knowledge in data base, besides the use of technological components that assist the management in the recovery of these knowledge were used. Based on this architecture, the work brings back concepts related to information systems, management of knowledge, management of content, means of communication and datamining. Key-words: Datamining; artificial intelligence; genetic algorithm; datawarehouse; information technology. * Mestrando do Programa de Pós-Graduação em Engenharia Elétrica – UFPA, Coordenador do Curso de Administração da Faculdade Integrada Brasil Amazônia – FIBRA e Professor dos Cursos de Gestão de Recursos Humanos e Redes de Computadores da Faculdade de Tecnologia da Amazônia - FAZ. E-mail: [email protected] INTRODUÇÃO Detectar regularidades em fenômenos que ocorrem ao longo do tempo e poder prever tendências futuras são tarefas das mais importantes no mundo atual. A previsão de séries temporais, como preços futuros em mercados livres, tendências nas bolsas de valores e prognósticos de pacientes, não são atividades fáceis, pois os parâmetros envolvidos são muitos e a descoberta de ciclos ou padrões de repetição nem sempre se faz de forma clara, pois as técnicas matemáticas têm seus limites diante dos fenômenos da dinâmica não linear como o caos. Se, no mundo de hoje, o conhecimento significa dinheiro, imagine o que se pode dizer do conhecimento prévio. Vários fatores podem contribuir para a necessidade de previsão de vendas, tais como a manutenção do cliente que não se frustra ao encontrar, na loja, o que deseja, o menor custo com manutenção de estoques mais ajustados às vendas futuras, a melhor alocação de vendedores em função da previsão das vendas para o futuro período, entre outras. Os parâmetros importantes a serem considerados quando se analisa a disponibilidade de produtos em uma loja são as capacidades de produção e distribuição da industria produtora do item, a existência ou não da propaganda realizada pelo produtor do bem e o período do ano ou do mês, dependendo do produto tratado. Além da informação contida no banco de dados, é necessário contextualizar cada dado de venda com outras informações, como a existência de propaganda realizada pelo fabricante em jornal e rádio, se a venda foi realizada em certos períodos do ano mais propícios à compra e também ao fim de cada mês quando há um natural aquecimento das vendas. Como prever o futuro não é tarefa fácil, a maior quantidade de informação pertinente possível deve ser considerada em qualquer metodologia. Minerar os dados de uma empresa não se resume em analisar grandes massas de dados de informação e descobrir novas relações. É preciso atuar sobre essas relações de forma a transformar “bytes” em retorno empresarial. Para isto, o processo de datamining precisa ser incorporado à empresa a passar a ser uma etapa natural dos outros processos empresariais, como marketing, as vendas, o suporte ao cliente, o controle de estoque, o planejamento e o projeto do produto. As técnicas do datamining fornecem meios de descobrir relações interessantes, mas para que elas sejam realmente úteis, a empresa deve se dirigir como um todo para seu uso, sendo proativa em vez de reativa. 1- TÉCNICAS E ALGORITMOS DE MINERAÇÃO DE DADOS O banco de dados é um estoque de informações confiáveis em que a recuperação das informações é feita de maneira eficiente. A informação recuperada não é obrigatoriamente uma cópia exata das informações armazenadas no banco de dados, mas a informação que pode ser concluída a partir deles. As técnicas de mineração ou mecanismos de busca são usualmente programas ou agentes automatizados inteligentes, incorporando alguma forma de inteligência artificial em bancos de dados relacionais. Os agentes detectam padrões predefinidos e alertam o usuário sobre variações. Vários tipos de técnicas são utilizadas na mineração de dados: Algoritmos Genéticos, redes neurais, árvores de decisão, indução de regras e visualização de dados. Com isso em mente, três técnicas de inferência se destacam: Dedução – é a técnica de inferir informação a partir de uma seqüência lógica da informação da base de dados. A maior parte dos sistemas de gerenciamento de base de dados (SGDB), como os SGDBS relacionais, oferecem operadores simples para a dedução da informação. Por exemplo, o operador join aplicado em duas tabelas relacionais. Indução – é uma técnica para inferir informação que é generalizada a partir da informação na base de dados. Este é um conhecimento ou uma informação primordial, ou seja, uma declaração geral sobre as propriedades dos objetos. No processo de mineração de dados, essas regularidades (combinações de valores para certos atributos, partilhados por fatos dos bancos de dados) são procuradas. Assim, pode-se dizer que a regularidade é o conhecimento ou que são regras usadas para predizer o valor de um atributo em função de outros. Previsão – A técnica de previsão resume-se na avaliação do valor futuro de algum índice, baseando-se em dados do comportamento passado deste índice. A previsão pode incluir tarefas como determinar se o índice BOVESPA subirá ou descerá amanhã, quanto o valor de dada ação da bolsa variará no próximo pregão, qual será a população de uma certa cidade daqui a dez anos, entre outras. O único meio. O único meio de verificarmos se uma previsão foi bem feita é guardar o acontecimento e verificar o quanto foi acertada ou não a previsão realizada. Sem dúvida, a previsão é uma das tarefas mais difíceis não somente no datamining, mas também em nossa vida. Segundo ALFREDO (2001), todos os modelos assumem a viabilidade dos dados treinados e têm como objetivo encontrar um modelo para prognosticar um determinado valor a partir de uma determinada entrada de dados que seja executado e produza bons resultados a partir de novos dados. Esse problema possuía uma solução definida antes que avanços da computação tornassem possível o relaxamento das suposições existentes. Os estatísticos têm, desde então, tentado suprir a vontade de inventar novos métodos de estimativas (média estimada) e modelos (modelos aditivos) para explorar uma formulação menos restrita. 2- ALGORITMOS GENÉTICOS - AG Algoritmos genéticos, como o próprio nome diz, são algoritmos que simulam o processo de seleção natural proposto por Charles Darwin, em 1859. Segundo Darwin, a seleção natural é um processo que privilegia os organismos que melhor se adaptam ao meio ambiente, isto é, quanto mais adaptado o organismo está ao seu ambiente, maior a chance de sobrevivência e mais características ele irá transmitir para seus sucessores por meio de seus cromossomos. Com isso, a tendência de aprimoramento pode ser verificada nas diversas espécies existentes. A natureza mantém e alimenta muitas inconsistências e contradições para determinado problema. De fato, a manutenção da diversidade genética é um ingrediente importante na evolução, além de assegurar a habilidade de futuras adaptações às alterações no ambiente. Os algoritmos genéticos usam essa mesma propriedade para desenvolver seus modelos. Vários modelos são estudados, mas apenas aqueles que se mostram mais hábeis para o encontro da solução desejada são desenvolvidos. Pode se dizer, então, que os organismos da teoria de Darwin são equivalentes às estruturas de dados, enquanto os cromossomos são equivalentes às cadeias de bits. Daí o fato de existir mais de um conjunto de considerações inteiramente diferentes que podem ser usadas em uma mesma solução do problema. É difícil encontrar uma solução matematicamente perfeita para um problema, porém podem existir soluções muito próximas da perfeição. A evolução genética não tem memória Segundo HOLLAND (1980), antes de 1970, acreditava-se que incorporando o algoritmo no computador apropriadamente, seria possível obter uma técnica para resolver problemas difíceis, assim como a natureza faz por meio da evolução. Em geral, os algoritmos genéticos não são usados na área genética, como o nome nos leva a acreditar, mas na área de otimização. Assim, é possível obter a solução de problemas sem que eles sejam explicitamente programados. A solução de um problema pelos métodos tradicionais implica na existência de métodos de aprendizados das máquinas, tais como: inteligência artificial, sistemas auto-aperfeiçoáveis, redes neurais e indução, os quais usam programas de computadores convencionais. Esses métodos usam paradigmas que exigem estruturas especializadas para cada tipo de solução desejada. Se o que se deseja é chegar a um computador geral que possa ser usado para resolver problemas genéricos, uma preocupação básica deve ser com os programas. Esses certamente representam as estruturas que se deseja encontrar. As características gerais desse tipo de algoritmo são coincidentes com as características gerais da evolução das espécies, que são: • • A evolução é um processo que ocorre basicamente nos cromossomos; O processo de seleção natural codifica as estruturas mais aptas à reprodução com mais freqüência do que aquelas que não são aptas; O processo de reprodução se estabelece de três modos: • • • Seleção; Cruzamento; e Mutação. FIGURA 1: processo de reprodução 3- UMA PROPOSTA DE SOLUÇÃO BASEADA EM ALGORITMOS GENÉTICOS O algoritmo genético foi escolhido como base para a solução do problema de previsão no volume de vendas devido à sua versatilidade em se adaptar a situações diferentes e à possibilidade de se encontrar boas soluções, que incorporam as restrições identificadas, em tempo viável. Na natureza, numa população de uma determinada espécie, os indivíduos mais adaptados ao seu meio ambiente possuem uma chance maior de sobrevivência, transmitindo suas características para as próximas gerações. Essa transmissão de características dos progenitores para a sua prole se dá por meio da transmissão dos seus materiais genéticos. Com o passar das gerações, espera-se que as características mais adequadas ao ambiente sejam incorporadas à população como um todo e que surgirão indivíduos cada vez mais adaptados. A grosso modo, os algoritmos genéticos são uma analogia a estes processos naturais que envolvem a evolução dos seres vivos. Num algoritmo genético devemos encontrar uma forma de se codificar as soluções do problema como os genes de um cromossomo, codificando as características de cada indivíduo. Depois, criar uma população inicial destas soluções codificadas. Em cima desta população, é simulado seguidamente o processo de evolução, ou seja, as gerações seguintes sofrerão mutações e trocarão seus códigos (recombinação gênica), como aconteceria com os indivíduos de uma espécie na natureza. Na natureza os indivíduos passam pelo processo de seleção natural com base na sua capacidade de se adaptar aos seus ambientes. No caso dos algoritmos genéticos, os códigos são avaliados com relação à qualidade da solução que representam, ou seja, avalia o grau de representatividade em relação aos objetivos a que se propõem e as restrições a que estas devem se sujeitar. As melhores soluções encontradas na população têm obviamente uma maior chance de transmitir seus respectivos códigos para as gerações seguintes. Com este procedimento espera-se que surjam soluções cada vez melhores para o problema que se deseja resolver. 4- REPRESENTAÇÃO CROMOSSÔMICA PARA O PROBLEMA PROPOSTO Nos seres vivos, o código genético contido nos seus cromossomos determina as suas características físicas e orgânicas. Isto é, para toda característica física ou orgânica que um indivíduo apresenta, existe um pedaço do seu código genético que a determina. Da mesma maneira, a representação cromossômica num algoritmo genético deve ser capaz de representar todos os possíveis estados ou soluções que o problema pode assumir. No problema que queremos resolver, cada ordem confirmada no escalonamento da produção deverá ser atribuída a uma máquina que o execute dentro do prazo estipulado. Desta maneira, a representação cromossômica deverá ser capaz de representar todos os escalonamentos possíveis para as ordens liberadas para a execução. Para este conjunto de ordens é determinado pelo programador da produção. 5- REPRODUÇÃO, RECOMBINAÇÃO E MUTAÇÃO O método de reprodução utilizado no algoritmo de previsão foi o método que emula a reprodução elitista, que privilegia a manutenção do indivíduo (ou o conjunto de indivíduos) mais adaptado de cada geração para a geração seguinte. No algoritmo implementado foi utilizado do artifício da reprodução elitista, por representar os melhores desempenhos da população. A recombinação é considerada o principal operador genético. A recombinação permite encontrar configurações genéticas mais adequadas a partir dos genes encontrados nos indivíduos que compõem a população. O princípio de funcionamento baseia-se na esperança de que a troca de material genético entre os indivíduos da população propicie o aparecimento de indivíduos cada vez mais adaptados ao ambiente. A população é agrupada em pares de indivíduos de maneira aleatória e, então, o operador recombinação é aplicado a uma parcela deste conjunto de pares de indivíduos obtidos. O operador genético recombinação foi implementado de tal maneira a operar dentro dos limites recomendados na literatura, ou seja, a percentagem da população que sofre uma recombinação é de setenta e cinco a noventa e cinco por cento. O método de recombinação adotado foi o método de um ponto de corte gerado de maneira aleatória. Figura 2: Modelo Cromossômico de Recombinação O último operador genético é a mutação. Este operador tem por finalidade introduzir genes que originalmente não deveriam pertencer ao seu respectivo indivíduo. Com isso a mutação cria a possibilidade de se explorar um espaço maior de soluções e pode evitar a convergência equivocada para ótimos locais. Os limites dos indivíduos que sofrem mutação ao longo de uma geração implementados no algoritmo são aqueles prescritos na literatura, ou seja, entre meio e dois por cento. Figura 3: Modelo Cromossômico de Mutação 6- SELEÇÃO NATURAL Numa analogia com o que acontece na natureza, o algoritmo genético deve submeter os indivíduos a um processo de seleção natural no qual os indivíduos mais adaptados ao ambiente têm maior probabilidade de sobreviver e de transmitir suas características para a posteridade. No problema em questão, um cromossomo é mais adaptado que outro se ele representar um escalonamento que satisfaça melhor as restrições a que estão sujeitos. Isto é, a função que avalia a adequação de cada indivíduo da população ao ambiente deve ser capaz de mensurar a quanto uma configuração genética satisfaz as exigências impostas pelas restrições. O método utilizado para se simular o processo de seleção natural é o método da roleta. Neste método todo indivíduo possui uma probabilidade não nula de sobreviver e transmitir seus genes para as gerações seguintes, sendo que os indivíduos mais aptos possuem uma probabilidade maior. 7- OUTROS PARÂMETROS GENÉTICOS Segundo CORTES (1996), num algoritmo genético pelo menos mais três elementos ainda precisam ser determinados: tamanho da população, número de gerações e critério de parada. Os três elementos possuem uma inter-relação profunda no que diz respeito aos seus papéis dentro de um algoritmo genético comum e os valores que devem assumir são intimamente relacionados ao problema o qual estão sendo aplicados. O critério de parada implementado é o baseado em número de gerações avaliadas, ou seja, o algoritmo pára quando se alcança o número de gerações preestabelecido. O tamanho da população deve ser de uma magnitude tal que seja capaz de introduzir uma grande diversidade dos genes. A diversidade gênica é um dos pilares em que sustenta o sucesso dos algoritmos genéticos. Esta diversidade permite que os cromossomos representados na população se distribuam por uma área maior do espaço de busca. Do ponto de observação da convergência para uma boa solução, quanto maior a população, mais rápida obteremos a resposta, contudo, a eficiência é sacrificada. Por isso, o tamanho da população deve ser escolhido de forma criteriosa. Na implementação feita para a previsão do volume de vendas da empresa pesquisada, o tamanho da população deve ser de no mínimo cinqüenta e no máximo de mil indivíduos. O número de gerações diz por quantas iterações o processo de reprodução, recombinação, mutação e seleção natural serão aplicados na população original. Espera-se que quanto maior for o número de gerações maior serão as chances de se encontrar uma solução melhor. Mas como ocorre no caso do tamanho da população, aumentar demasiadamente o número de gerações irá comprometer a eficiência do algoritmo. No algoritmo implementado o número de gerações deve ficar entre cinqüenta e quinhentos. 8- O PROBLEMA Uma das principais deficiências encontradas em programas de Gestão tem sido a falta de mecanismos para auxiliar no processo decisório. Essas aplicações dão muita ênfase ao processo operacional e pouco, ou quase nada, apoio à decisão, BARROS (1998). Assim, os usuários eram obrigados a fazer cálculos complicados e demorados ao invés de se preocupar com a abrangência do processo decisório, e suas questões táticas e estratégicas. A metodologia emprega hoje pela empresa para aquisição do pedido é baseada no conhecimento especializado da empresa, que nem sempre acerta na quantidade desejável, envolvendo capital de giro da empresa para aquisição dos produtos. Neste sentido, um dos problemas mais importantes é a definição das quantidades de compras finais dos produtos, ou seja, o valor ideal para a comercialização, onde influenciam uma série de variáveis, constituindo a política de mercado da empresa, tais como (propaganda, sazonalidade, produtos em fase de descontinuidade, produtos novos, e outros). 9- A SOLUÇÃO Conforme o objetivo inicialmente proposto para este trabalho, um modelo de AG foi desenvolvido e aplicado à área de mercado do Sistema de Informação da empresa. A metodologia emprega foi à avaliação histórica de vendas registrado no SGBD, fazendo uma avaliação dos últimos três anos do movimento de vendas e comparado seu resultado com o mês anterior ao pedido de compra, levando em consideração a quantidade de produtos estocados em depósito. O Protótipo a ser desenvolvido tem como objetivo proporcionar ao usuário uma ferramenta que se adeqüe aos traços característicos de sua tomada de decisão. Uma aplicação modelada nesta arquitetura necessita de padrões, para a qual o AG converge e se estabiliza, constituindo o que se denomina evolução. Este protótipo foi desenvolvimento em linguagem de programação padronizada em ambiente visual Borland© Delphi 7™. A adoção desta metodologia e desta linguagem é devido à possibilidade de uma interface gráfica e de fácil interação com o usuário final, utilizando sistemas operacionais Windows® e interligação através de banco de dados relacionais SGDB (Firebird/Interbase Imprise Corporation©). A ferramenta de programação Orientação a Objeto outros mecanismos (CASE, Geradores de Códigos, técnica de Orientação a Objeto com a necessidade tarefas, tornando os resultados e prazos de entrega mercado. apresenta-se como uma proposta interessante, em parceria com Programação Visual, etc) na solução de problemas. Aliando-se a da industria e comércio, pode-se simplificar e automatizar muitas trabalhos extremamente curtos, uma exigência cada vez maior do 10- IMPLEMENTAÇÃO A população inicial de cromossomos, representado por números binários de 12 caracteres, neste caso uma população de 4 indivíduos, foram gerados de maneira aleatória que serão utilizados para o início do processo de seleção, onde, o domínio [x,y] (+100, -100) com precisão de 5 casas decimais, devendo-se encontrar o valor associado à performance de cada cromossomo. MÓDULO DA POPULAÇÃO Função de Avaliação: Técnica de Representação: Técnica Inicialização da População: Técnica Eliminação da População: Técnica de Reprodução: Técnica de Seleção de Genitores: Técnica de Aptidão: Técnica de Parametrização: Técnica de Elitismo: Função Objetiva Binária (bits) Aleatória Elimina todos Troca da geração Roleta Normalização Linear Nenhuma Copia o Melhor Population Size: Total de Indivíduos: 100 400 Módulo de Reprodução Técnica de Seleção de Operadores: Operadores: Use todos Crossover 1 ponto & mutação Taxa Mutação: Taxa Crossover: 0,008 0,65 Técnica de Parametrização: nenhuma FIGURA 4: modelagem do algoritmo genético 11- RESULTADOS Os resultados obtidos com o AG desenvolvido podem ser considerados satisfatórios, uma vez que o erro médio obtido com os testes ficaram em torno de 04,03%, o que representa uma taxa baixa em tratando-se de previsão no volume de vendas, levando em consideração o conhecimento subjetivo e fatores externos da economia. Contudo, pode-se atingir resultados melhores, submetendo o algoritmo a um número maior de gerações. Manual AG 3 4 200 100 0 -100 1 2 FIGURA 5: gráfico de desempenho 5 CONSIDERAÇÕES FINAIS As aplicações de Sistemas de Gestão proporcionaram diversas situações, onde, os usuários (Administradores) encontraram-se em situações complexas, necessitando de algum apoio inteligente à tomada de decisão. Partindo deste princípio, a incorporação de recursos de Inteligência Artificial, em especial os Algoritmos Genéticos, vieram de encontro às necessidades dos Sistemas de Informação, pois podem proporcionar aos gestores o tratamento e resolução de problemas mais complexos e menos estruturados, que são mais comuns no cotidiano empresarial. Para trabalhos posteriores, prevêem-se a utilização dos recursos desenvolvidos em outros segmentos da gestão empresarial, tais como produção, banco, investimentos e outros. Vários experimentos foram executados para diferentes períodos do ano, aplicado para cada produto do estoque. Os resultados indicam que a previsão é, naturalmente, afetada pela disponibilidade de saldo operacional, porém fortemente influenciada pela estratégia de planejamento. Nesse aspecto, por exemplo, o AG foi capaz de identificar estratégias, com operações de planejamento mais satisfatório. Foram analisados para este teste cinco produtos da curva A da empresa, processando 400 gerações por produto, levando aproximadamente 12 minutos (Pentium IV, 1.100 Mhz), para encontrar os resultados (sub) ótimos. REFERÊNCIAS HOLLAND J. Adaptation in natural and artificial systems. The Univ of Michigan Press, Michigan, USA. 1975 ALFREDO, Luís V. de Carvalho. Datamining – A Mineração de Dados. Editora Érica, 2001. DARWIN, C. R., On the origins of species by means of natural selection; Penguin Classics, 1985 apud TANOMARU, J. Motivação, fundamento e aplicações de algoritmos genéticos. In: CONGRESSO BRASILEIRO DE REDES NEURAIS, 2, 1995, Anais... 1995. CORTES, M. B. S. Algoritmos genéticos em problemas de programação não linear contínua. 1996. Tese (Doutorado) Universidade Federal de Santa Catarina, Florianópolis, 1996. BARROS FILHO, J. R., TUBINO, D. F. O planejamento e controle da produção nas pequenas empresas, Anais do ENEGEP, 1998.