FAZ

Propaganda
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.
Download