ESTUDO E CONSTRUÇÃO DE UM SISTEMA DE GERENCIAMENTO DE ROTAS PARA SERVIÇOS DE TELE-ENTREGA. Igor Zorzi Orgo

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

Download "ESTUDO E CONSTRUÇÃO DE UM SISTEMA DE GERENCIAMENTO DE ROTAS PARA SERVIÇOS DE TELE-ENTREGA. Igor Zorzi Orgo"

Transcrição

1 ESTUDO E CONSTRUÇÃO DE UM SISTEMA DE GERENCIAMENTO DE ROTAS PARA SERVIÇOS DE TELE-ENTREGA Igor Zorzi Orgo Porto Alegre 2007

2 Igor Zorzi Orgo ESTUDO E CONSTRUÇÃO DE UM SISTEMA DE GERENCIAMENTO DE ROTAS PARA SERVIÇOS DE TELE-ENTREGA Trabalho de Conclusão de Curso II apresentado à Faculdade de Informática, como requisito parcial à obtenção do título de Bacharel em Sistemas de Informação. Orientador: Prof. Dr. Sidnei Renato Silveira Porto Alegre 2007

3 Dedico este trabalho a meu Pai (Seu Getulio) e minha Mãe (Dona Neiva). E a todos que fazem parte da minha vida.

4 Aos meus pais, orientador e amigos faço todos os meus agradecimentos pelo ensino e dedicação prestada nesses anos de luta.

5 Só quem tem um caos dentro de si pode dar luz a uma estrela (Nietzke).

6 5 RESUMO Este trabalho tem como objetivo o estudo e a construção de um sistema de rotas de tele-entrega, integrado a um sistema de gerenciamento de pedidos. De forma mais específica, aborda a construção de uma rota baseada no endereço de entrega de algum pedido realizado. Para isso, foram estudados Sistemas de Informação que permitem a geração de rotas e técnicas que poderiam ser utilizadas para o desenvolvimento do trabalho. O referencial teórico apresenta um estudo dirigido à Inteligência Artificial, incluindo os Algoritmos Genéticos, técnica escolhida para a implementação do sistema. A partir deste estudo, foram escolhidos os Algoritmos Genéticos como técnica de implementação da ferramenta proposta. Além disso, o trabalho apresenta uma análise de outras ferramentas voltadas à criação de rotas, para obter um quadro comparativo entre os sistemas existentes e o proposto. O trabalho foi modelado baseando-se nos padrões UML e, para sua implementação, foi utilizada a linguagem de programação Visual Basic.NET. A validação do sistema foi realizada através da implementação de um protótipo, utilizando-se as ruas de um bairro da cidade de Porto Alegre - RS, para fazerem parte da base de dados do sistema. Palavras-Chave: Inteligência Artificial, Algoritmos Genéticos, Tele-entrega, Roteamento.

7 6 ABSTRACT This paper aims to study and develop a delivery routing system integrated with an order management system. More specifically, it addresses the development of a route based on the address of an order that has been taken. To accomplish this work, information systems that allow route generation and techniques that could be used in the development of this work had been studied. The theoric reference presents an essay on Artificial Intelligence, including Genetic Algorithms, technique that has been chosen for the implementation of this system based on this study. Also, this paper presents an analysis of other tools that can be used for route generation, so that we can compare the existing systems with the proposed one. The work was modelled based on the UML standards and, for its implementation, Visual Basic.NET has been used. The system was validated through the development of a prototype using the streets of a Porto Alegre neighborhood as the database of the system. Keywords: Artificial Intelligence, Genetic Algorithms, Delivery, Routing

8 7 LISTA DE ABREVIATURAS E SIGLAS AG CLR CDU DC E-R IA IAD MOPS OLE ODBC DBMS PFC RBC SE SGBD SIG VB VB.NET UML Algoritmo Genético Common Language Runtime Casos De Uso Diagrama de Classe Entidade-Relacionamento Inteligência Artificial Inteligência Artificial Distribuída Memory Organization Packets Object Linking and Embedding Open Data Base Connectivity Database Management System Projeto Final de Curso Raciocínio Baseado em Casos Sistema Especialista Sistema gerenciador de Base de Dados Sistema de Informações Geográficas Visual Basic Visual Basic.NET Unified Modelling Language

9 8 LISTA DE FIGURAS Figura 01 Exemplo de Cruzamento entre Indivíduos 22 Figura 02 Fluxograma do AG Utilizado por Shirmohammadi e Hong 27 Figura 03 Rotas e Sistemas de Rotas 38 Figura 04 Tela Strip Chart 39 Figura 05 Tela de Sentido de Vias 40 Figura 06 Cadastro de Clientes 42 Figura 07 Cadastro de Frota 43 Figura 08 Cadastro de Barreiras Geográficas 44 Figura 09 Referências Geográficas 45 Figura 10 Tela Inicial do Site 46 Figura 11 Traçar Rota 47 Figura 12 Tipo de Rota 48 Figura 13 Resultado 49 Figura 14 Diagrama de Casos de Uso 53 Figura 15 Modelo de E-R de Banco de Dados 56 Figura 16 Diagrama de Classe 57 Figura 17 Vetor de Cromossomo Binário 58 Figura 18 Exemplo de Cromossomo 59 Figura 19 Tela Principal do Sistema - Tela de Login do Sistema 65 Figura 20 Formulário de Cadastro de Usuário 66 Figura 21 Formulário de Cadastro de Cliente 67 Figura 22 Formulário de Cadastro de Ruas 68 Figura 23 Formulário de Cadastro de Pedido 69 Figura 24 Tela Consulta Cliente 70 Figura 25 Relatório Gerado pelo AG 70 Figura 26 Matriz que Armazena a População do AG. 72 Figura 27 Exemplo de Crossover utilizado pelo AG 74

10 9 SUMÁRIO INTRODUÇÃO REFERENCIAL TEÓRICO Inteligência Artificial História da Inteligência Artificial Algoritmos Genéticos Cromossomos Genes Alelos Genótipo Cruzamento Mutação População Função de Fitness Fitness Total da População Geração Espaços de busca e cenários de Fitness Visão geral de um Algoritmo Genético Descrição do Problema Preparação dos Dados e Inicialização do Algoritmo Seleção Natural Seleção dos pares Cruzamento Mutação Próxima Geração Critério de Parada ESTADO DA ARTE TransCAD TruckStops Apontador Estudo Comparativo SOLUÇÃO IMPLEMENTADA UML Levantamento de Requisitos Casos de Uso... 52

11 Entidade-Relacionamento Diagrama de Classe Modelagem do Algoritmo Genético Número de Indivíduos da População Geração da População Inicial Função de Avaliação (Fitness) Operadores Genéticos Seleção de Indivíduos Critério de Parada Apresentação do Resultado SOLUÇÃO IMPLEMENTADA Tecnologias Utilizadas Tecnologia.NET Linguagem de Programação VB.NET Banco de Dados SQL Server Funcionalidades Gerais do Sistema Implementado Implementação do Algoritmo Genético Geração da População Inicial Função de Avaliação Taxa de Mutação Seleção dos Pais Crossover Validação CONSIDERAÇÕES FINAIS REFERÊNCIAS BIBLIOGRÁFICAS Anexo

12 11 INTRODUÇÃO Esse Trabalho de Conclusão de Curso tem seu objetivo baseado em aspectos comerciais, visando à otimização do gerenciamento de rotas em serviços de tele-entrega, permitindo um incremento na qualidade de serviço e crescimento das vendas, devido à melhora em seu atendimento. Neste contexto, este trabalho apresenta um sistema de roteamento de veículos, baseado no problema do caixeiro viajante. Inserindo um algoritmo baseado em teorias da computação evolutiva e Algoritmos Genéticos (AGs) para atuar sobre esse modelo de roteamento. O Sistema de Informação implementado pode ser empregado em diversos setores comerciais, tais como farmácias e pizzarias, entre outros. A motivação comercial é fundamentada no fato deste sistema tornar-se um diferencial na área de qualidade de prestação de serviços para o cliente, possibilitando que as empresas agilizem e otimizem suas entregas. Além disso, a utilização do sistema permite a redução de gastos e tempo de entrega dos produtos da empresa. Destacando como principal objetivo o estudo, modelagem e construção de um sistema de gerenciamento de rotas para serviços de tele-entrega. Como objetivos específicos para este trabalho, propõem-se: 1. Estudar aspectos que envolvam o desenvolvimento de Sistemas de Informação que utilizem técnicas de Inteligência Artificial; 2. Definir critérios de escalonamento para o gerenciamento de rotas de entrega; 3. Estudar técnicas de Inteligência Artificial que possam ser empregadas no gerenciamento de rotas; 4. Definir a técnica de Inteligência Artificial a ser empregada no sistema;

13 12 5. Estudar a plataforma para o desenvolvimento do sistema proposto; 6. Modelar o sistema proposto, incluindo a interface; 7. Implementar e validar o sistema. O sistema implementado tem como objetivo apresentar as funcionalidades de cadastros de cliente, ruas, endereços, pedidos, usuários. Além disso, permite o gerenciamento simplificado dos negócios de uma empresa que dispõe de serviço de tele-entrega, armazenando o histórico de todos os pedidos realizados. Enfatiza-se a criação automática da rota para entrega do produto, a partir da informação da rua de entrega do produto. Este trabalho está organizado da seguinte forma: o capítulo 1 apresenta o referencial teórico, onde são abordados os conceitos que envolvem a Inteligência Artificial. Após, apresenta-se a técnica de modelagem de um Algoritmo Genético, utilizando um exemplo para a melhor visualização do mesmo. O capitulo 2, Estado da Arte, apresenta o estudo comparativo das ferramentas TransCad, TruckStops e Apontador. No decorrer do capítulo são descritas as funcionalidades das ferramentas apresentadas. No final do capitulo, apresenta-se um quadro comparativo entre as ferramentas apresentadas e o sistema implementado neste Trabalho de Conclusão de Curso. No capítulo 3, Modelagem do Projeto, apresenta-se a modelagem do sistema utilizando a linguagem UML e a modelagem do Algoritmo Genético responsável pela geração de rotas. O capítulo 4 apresenta as tecnologias empregadas para o desenvolvimento do sistema e a descrição das características da implementação e validação realizadas. Encerrando o trabalho apresentam-se as considerações finais e as referências bibliográficas utilizadas.

14 13 1 REFERENCIAL TEÓRICO Este capítulo apresenta um breve referencial teórico sobre as áreas envolvidas no desenvolvimento deste trabalho, entre elas Inteligência Artificial, técnicas para roteamento de veículos e, mais especificamente, Algoritmos Genéticos, que foi a técnica escolhida para o desenvolvimento da aplicação proposta. 1.1 Inteligência Artificial Inteligência artificial (IA) pode ser definida como o ramo da Ciência da Computação que se ocupa da automação do comportamento inteligente. Esta definição é apropriada de forma que a IA é uma parte da Ciência da Computação e, como tal, deve ter seus fundamentos em sólidos princípios teóricos e práticos deste campo. Esses princípios incluem as estruturas de dados usadas na representação do conhecimento, os algoritmos necessários para aplicar tal conhecimento e as linguagens e técnicas de programação usadas na sua implementação (FERNANDES, 2005). Inteligência Artificial (IA) é a área da ciência da computação orientada ao entendimento, construção e validação de sistemas inteligentes, isto é, que exibem, de alguma forma, características associadas ao que chamamos inteligência (RICH; KNIGHT, 1994 apud FERNANDES, 2005). Segundo Durkin (1994 apud DELPIZZO, 1998), Inteligência Artificial (IA) é o campo da ciência que tenta explicar a origem da natureza do conhecimento. Weber (WEBER, 1996 apud DELPIZZO, 1998) conceitua IA

15 14 como um ramo da Ciência da Computação dedicado ao estudo das técnicas computacionais que representam algum aspecto da cognição humana. Ganascia (GANASCIA, 1993 apud FERNANDES, 2005) coloca que, ao longo da história, vários filósofos e cientistas se dedicaram a analisar diversos aspectos constitutivos da inteligência humana. Embora o estudo sobre a inteligência tenha se iniciado dentro do campo de estudo da filosofia, o mesmo extrapolou o âmbito filosófico, e a inteligência passou a ser estudada de forma cientifica por outros campos do saber humano, tais como, engenharia, psicologia, pedagogia, ciência cognitiva, neurologia, lingüística, computação, dentre outros, visando aspectos práticos e comerciais. A maioria dos especialistas concorda que a IA está baseada em duas idéias básicas: primeiro envolve o estudo do processo do pensamento humano (para entender o que é inteligência); segundo, trata da representação destes processos através das máquinas (computadores, robôs, etc.) (TURBAN, 1995 apud FERNANDES, 2005). Entretanto, as definições apresentadas não levam em conta o fato de que a inteligência em si não é muito bem definida ou entendida. Embora a maioria da população esteja certa de que reconhece o que é comportamento inteligente quando o vê, é muito improvável que alguém seja capaz de definir inteligência de uma maneira que seja específica o suficiente para auxiliar na avaliação de um programa de computador supostamente inteligente e, ao mesmo tempo, capturar a vitalidade e a complexidade da mente humana (FERNANDES, 2005). A Inteligência Artificial sempre esteve mais preocupada em expandir as capacidades da Ciência da Computação do que em definir seus limites. Um dos desafios enfrentados pelos pesquisadores da IA, de modo geral, é manter esta exploração fundamentada em princípios teóricos e sólidos. Há várias razões para que qualquer ciência, aí incluída a IA, preocupese com um certo conjunto de problemas e desenvolva um conjunto particular de técnicas para abordá-los. A história recente da Inteligência Artificial, bem como das pessoas e suposições que a moldaram, pode explicar por que um certo conjunto de questões acabou por dominar a área. A gradativa mudança de metas da IA, desde o sonho de construir uma Inteligência Artificial de caráter geral comparável à do ser humano até os bem mais modestos objetivos

16 15 atuais de tornar os computadores mais úteis, através de ferramentas que auxiliam as atividades intelectuais de seres humanos, coloca a IA na perspectiva de uma atividade que praticamente caracteriza a espécie humana: a capacidade de utilizar representações externas, seja na forma de linguagem, seja através de outros meios (BARONE, 2003) Existem diversas linhas de pesquisa e técnicas diferentes dentro do campo da IA, tais como: Raciocínio Baseado em Casos (RBC); Sistemas Especialistas (SE); Redes Neuronais Artificiais; Sistemas Difusos; Algoritmos Genéticos, dentre outras. Estas técnicas têm mudado constantemente a cada aplicação, a cada novo problema, tornando-se cada vez mais elaboradas, mais complexas e naturalmente mais "inteligentes" História da Inteligência Artificial Apesar de ser recente o estudo da Inteligência Artificial, esta ciência é a realização de um sonho do homem que remonta à Antigüidade Clássica. No Renascimento, com a expansão de um espírito prático e quantitativo, surge a mecânica e, através do aperfeiçoamento do mecanismo do relógio, uma nova concepção do homem (REZENDE,2003). Imprescindíveis para o avanço da IA foram os trabalhos dos matemáticos dos séculos XVII a XIX. No séc. XIX, surge a figura de Alan Turing, mas só em 1956 é que a Inteligência Artificial começa a ser reconhecida como ciência (BARONE, 2003). No início dos anos setenta, a IA já oferecia técnicas robustas para o desenvolvimento de aplicações práticas, envolvendo sistemas inteligentes. Técnicas de representação de conhecimento, como frames e redes semânticas, aliadas à tecnologia dos sistemas de produção, formavam a base para a construção de ferramentas para desenvolvimento de sistemas especialistas. Estas ferramentas são baseadas na visão de um sistema inteligente composto por apenas um centro de controle, um foco de atenção e uma única base de conhecimento (BARONE, 2003).

17 16 Esta visão, herança do modelo computacional de von Neumann e das concepções da Psicologia, tem como características principais a concepção centralizada e a não-reusabilidade de seus componentes. No fim dos anos setenta, esta metáfora de comportamento individual é contrabalançada, por um lado, pelos trabalhos em redes neurais, que incluem distribuição e paralelismo, e, por outro lado, pelos sistemas simbólicos baseados no chamado modelo de quadro negro (do inglês, blackboard model ), que são caracterizados por um controle distribuído (BARONE, 2003). Os desenvolvimentos em IA avançam lado a lado com a evolução dos computadores que, ao longo do tempo, foram fazendo com que se começasse a encarar essas máquinas como inteligentes, alterando o conceito de inteligência, surgindo o conceito de máquina inteligente (TURBAN, 1995 apud FERNANDES, 2005). No entanto, o seu objeto de estudo continua com certos mistérios, no sentido de que o homem ainda não possui uma definição suficientemente satisfatória de inteligência e, para se compreenderem os processos da Inteligência Artificial e da representação do conhecimento, terão de se dominar os conceitos de inteligência humana e conhecimento (FERNANDES, 2005). Deve-se então fornecer à máquina uma avalanche de dados, teorias formais de bom senso (IA simbólica) ou, pelo contrário, basear o estudo da cognição no nível inferior da percepção (IA conexionista). A tendência geral dos pesquisadores foi no sentido de conciliar as duas teorias numa terceira teoria híbrida, segundo a qual a máquina seria capaz de raciocinar utilizando conceitos complexos, perceber o seu meio envolvente, ou seja, conseguir modificar o processo dependendo da atmosfera que cerca o processo (CAMPELLO & MACULAN, 1994). Nos últimos anos tem-se dado atenção a alguns dos setores de pesquisa abandonados no passado, como a representação de conhecimento utilizando-se Redes Neurais e a tradução automática, interesses renovados graças aos enormes progressos a que se tem assistido no domínio das ciências da computação (CAMPELLO & MACULAN, 1994). Assim, a história da IA está repleta de diferentes paradigmas que se contrapõem, de teorias que se defendem e abandonam, e que são consecutivamente retomadas.

18 17 Atualmente, as principais áreas de pesquisa são: sistemas especialistas, aprendizagem, representação de conhecimento, aquisição de conhecimento, tratamento de informação imperfeita, visão computacional, robótica, controle inteligente, modelagem cognitiva, arquiteturas para sistemas inteligentes, linguagem natural e interfaces inteligentes. Em relação a estas áreas de pesquisa, a Inteligência Artificial Distribuída (IAD) aparece como um novo ponto de vista, em que as técnicas tradicionais da IA, combinadas com as funcionalidades dos sistemas distribuídos, dão origem à noção de agente e, conseqüentemente, à de sociedade de agentes. Com o constante avanço da ciência, especialmente na área genética, a partir dos estudos da inteligência humana, vem crescendo a visão de desenvolvimento de sistemas computacionais com Inteligência Artificial para facilitar soluções de problemas no dia-a-dia das empresas. Entre estes sistemas estão os que buscam soluções para facilitar tarefas dos seres humanos, tais como, a criação de rotas de entrega para produtos de uma empresa, tema deste trabalho. Entre as técnicas de Inteligência Artificial que podem ser aplicadas no desenvolvimento de um Sistema de Informação Inteligente para o Roteamento de Veículos, destacam-se os Algoritmos Genéticos, Sistemas Especialistas e Raciocínio Baseado em Casos. Os Algoritmos Genéticos, técnica escolhida para a implementação do sistema apresentado neste trabalho, são apresentados em maiores detalhes na próxima seção. 1.2 Algoritmos Genéticos Os Algoritmos Genéticos fazem parte de um método de otimização baseado nas idéias de Darwin sobre a seleção natural dos seres vivos. Ilainn (ILAINN, 1999 apud FERNANDES, 2005) coloca que os Algoritmos Genéricos são métodos adaptativos que podem ser usados para resolver problemas de busca e otimização, inspirados no processo genético evolutivo dos organismos vivos. Alguns fatores que têm feito os Algoritmos Genéricos se tornarem uma técnica bem sucedida são:

19 18 Simplicidade de operação; Facilidade de implementação; Eficácia na busca da região onde, provavelmente, encontra-se o máximo ou mínimo global; Serem aplicáveis em situações em que não se conhece o modelo matemático. O Algoritmo Genético (AG) é um algoritmo de busca inspirado em teorias da evolução das espécies. John Holland foi quem começou a desenvolver as primeiras pesquisas sobre o tema, na década de 70. O Algoritmo Genético é um conjunto de procedimentos bem determinados, representado pelo fluxograma demonstrado na Figura 2. Entretanto, cada um dos procedimentos ilustrados na figura pode variar muito. Esta variação está relacionada à natureza do problema, ao modelo de solução e à representação adotada (BARONE,2003). O AG é amplamente usado como algoritmo de busca para encontrar um ponto ótimo de um espaço n-dimensional, e a convergência ou não deste depende da heurística, ou função de fitness, empregada para avaliar cada hipótese, ou ainda, o quanto esta função é capaz de avaliar corretamente cada hipótese gerada pelo próprio algoritmo (BARONE,2003). Na natureza, os indivíduos que são mais capacitados para sobreviver às hostilidades do meio terão melhores condições de se reproduzir. Dessa forma, terão seus genes imortalizados nas gerações subseqüentes que os herdarão. Entretanto, aqueles que não são capazes de sobreviver ao meio, ou de se reproduzir, não terão seus genes herdados, e estes genes acabarão se extinguindo (LUGER, 2004). Da mesma forma, os algoritmos genéticos tentam encontrar um indivíduo ótimo, ou um vetor pertencente ao conjunto de vetores ótimos, dando valores a cada vetor. Estes valores representam o quanto cada vetor é capaz de sobreviver ao meio, ou seja, o quanto este vetor é bom para a solução do problema. O valor em questão é resultado de operações executadas em uma função de fitness. Para que este valor, ou escore, atribuído a um determinado vetor seja realmente representativo de cromossomos mais adaptados ou menos adaptados ao meio, a função de fitness deve simular um meio hostil

20 19 condizente com o contexto em que se está empregando a solução por algoritmo genético (BARONE,2003) Cromossomos Os cromossomos são hipóteses de solução do problema em questão. Em muitos casos são vetores ou cadeias de bits. Em problemas voltados à busca de um mínimo de uma função, a cadeia de bits formada pelos números que são os parâmetros poderiam ser os cromossomos, e o cômputo do fitness se dá pela resposta da função aos parâmetros representados pelo cromossomo. Para este caso de minimização, pode-se inverter o sinal da função, para que seja um caso de maximização (FERNANDES, 2005). No caso de busca de rotas, uma combinação aleatória de ruas, sem necessariamente fazer algum sentido lógico de caminho, é considerada uma hipótese para a solução. Portanto, é um cromossomo Genes Os genes são os elementos dos indivíduos da população que compõem o universo que se está buscando. O gene é o elemento de base para os cálculos. A natureza dos genes depende diretamente do genótipo adotado. No caso de uma busca em uma cadeia binária, os genes são os bits de uma seqüência. Entretanto, em um problema de encontrar zeros de um polinômio, podem ser os próprios coeficientes numéricos (FERNANDES, 2005). No caso de busca de rota, os genes poderiam ser cada uma das ruas que compõem uma determinada rota. No caso da busca pela rota, cada rua que compõe a rota é um gene. O tipo e número de genes depende da natureza do problema abordado e da maneira como se modela a solução.

21 Alelos Assim como os genes, os alelos dependem da abordagem do problema. São na verdade os possíveis valores que cada gene, dentro de um cromossomo, pode assumir. Assim, um alelo em um gen, que na realidade é um bit, pode ser 0 ou 1 (REZENDE, 2003). Se o caso for de busca de ruas, os alelos poderão ser as quadras de uma rua, em cada gen. Em busca de rotas, os alelos podem ser as ruas que compõem a própria rota Genótipo O genótipo é a configuração dos genes. A maioria das aplicações de AGs aplica indivíduos haplóides, isto é, apenas um vetor, ou seqüência de genes. Entretanto, a complexidade do genótipo pode aumentar. A abordagem ao problema é sempre determinante. Para um mesmo problema, tal como encontrar as raízes de um polinômio, pelo menos dois genótipos são possíveis. Uma sugestão seria que o cromossomo fosse apenas o conjunto de coeficientes, com alelos sendo os possíveis números em um ponto flutuante. Outra sugestão seria usar toda a cadeia de bits que armazena tais coeficientes em ponto flutuante, considerando cada bit um gen. As duas abordagens são válidas e podem vir a surtir os mesmos resultados (REZENDE, 2003) Cruzamento Como no cruzamento de seres haplóides (de um único cromossomo), os vetores em um algoritmo genético também cruzam. Primeiramente, dois cromossomos da população são sorteados. Este sorteio, apesar de aleatório, leva em consideração o fitness de cada cromossomo, como a probabilidade

22 21 associada a este de ser o escolhido para cruzar. Quanto melhor o fitness, mais chance de ser sorteado, o que não significa que um cromossomo com fitness ruim não pode ser sorteado. Na natureza, este fenômeno ocorre a todo o momento. Tomando o leão selvagem como exemplo, este animal tende a enfrentar os demais machos para que apenas ele possa procriar, chegando ao ponto de matar os filhotes de outros machos. Muitas outras espécies de animais têm comportamentos similares (LUGER, 2004). Uma vez que dois indivíduos do conjunto foram escolhidos para o cruzamento, o algoritmo busca um ponto aleatório nos vetores onde eles serão quebrados. Após esta quebra dos dois cromossomos, a primeira parte de um junta-se com a segunda parte do outro, e vice-versa, formando dois novos cromossomos. Este processo é similar ao crossing-over nas células. Dá-se o nome dos filhos aos cromossomos formados, e o conjunto de todos os filhos é dito a prole. Normalmente, a prole possui o mesmo número de indivíduos que a população inicial. Isto depende do número de cruzamentos que se dá entre uma geração e outra (LUGER, 2004). Para ilustrar o modo como um cruzamento ocorre entre dois indivíduos, pode-se acompanhar o exemplo mostrado na figura 1, que simula o ponto de cruzamento entre os indivíduos e apresenta o novo indivíduo gerado a partir desse cruzamento. Figura 1: Exemplo de cruzamento entre indivíduos, gerando um novo.

23 Mutação Assim como na natureza, uma mutação é a troca de um alelo em um determinado gen por outro. No processo evolutivo das espécies, a mutação é a chave para esta evolução. A partir do momento em que uma determinada espécie sofre algum tipo de mutação, este novo indivíduo pode ter maior ou menor chance de sobreviver. Caso seja uma mutação evolutiva, este indivíduo terá boas chances de cruzar e transmitir seus genes mutados. Disto pode surgir uma nova espécie, mais evoluída que a espécie original. Entretanto, se a mutação for involutiva, possivelmente esse ser perecerá por alguma doença ou por predadores. Ainda, as fêmeas da espécie podem rejeitar tal indivíduo, resultando na não-procriação do código genético mutado (RUSSEL e NORVIG, 2004). Dentro da área de algoritmos genéticos, uma mutação é apenas substituir o alelo contido em um gen aleatoriamente escolhido, por um outro alelo também aleatoriamente escolhido dentre aqueles contidos no genótipo. Uma mutação pode tirar o algoritmo genético de mínimos locais, inserindo novas áreas da superfície de custo dentro do escopo de varredura do algoritmo. Em outras palavras, como uma mutação desloca o vetor, o algoritmo passa a vasculhar as novas áreas para onde este vetor foi deslocado. Tipicamente, as mutações são programadas para ocorrer com uma freqüência muito baixa, cerca de 0,01% a 0,5% de chance em cada cruzamento População A população de um AG é o conjunto de cromossomos que está sendo trabalhado. Quanto maior a população, mais chance de um cromossomo pertencente ao conjunto dos cromossomos ótimos estar presente nela. Isso significa que a população sobreviveu ao meio em que está inserida (BARONE, 2003).

24 23 É possível visualizar uma situação dessas na natureza com a relação entre leões e cervos. Supondo que determinada região tivesse uma população de leões, se a população de cervos for igual à dos leões, os leões acabariam por matar todos os cervos, e terminariam morrendo de fome pelo desequilíbrio conseqüente da extinção dos cervos. Se a população de cervos fosse muito maior que a dos leões, os predadores acabariam por se multiplicar em excesso, superando um limite tolerável e extinguindo novamente os cervos, dando origem ao desequilíbrio. Entretanto, se a população de cervos fosse apenas maior que a dos leões, os leões teriam alimento para sobreviver, mas não para se multiplicar em excesso. Neste ponto, ocorre uma demarcação natural de território. Existe o território dos leões e dos cervos. Os leões só invadem o território dos cervos para caçar, e matam apenas o necessário para sua sobrevivência. Dessa maneira, a natureza atinge seu equilíbrio natural (BARONE, 2003). No estudo de algoritmos genéticos, ocorre quase o mesmo quanto ao tamanho da população, porém sob outra ótica. Esta ótica diz respeito ao custo computacional. À medida que uma população deve ser grande o suficiente para dar chance de surgir o cromossomo ideal, ela não pode exceder um limite viável. Este limite está relacionado à capacidade computacional do sistema. Em outras palavras, uma população muito grande pode acarretar um custo computacional muito grande para o processamento de cada geração, pois serão muitos cromossomos para serem operados, além do que as operações de cruzamento e cálculo de fitness podem ser um tanto pesadas do ponto de vista computacional. Para tais casos, uma população menor já pode ter condições de convergir para uma solução em um número razoável de gerações, diminuindo a carga computacional e o tempo de processamento (FERNANDES, 2005) Função de Fitness O fitness é a função ou heurística que determina se um cromossomo é melhor do que outro e o quanto melhor ele é. Se a função de fitness for

25 24 eficiente, o algoritmo terá melhores chances de convergir; se for falha, o algoritmo pode divergir. Mesmo com uma função bem planejada, é normal que, em uma ou outra geração, a população (ou fitness total da população) involua, para depois evoluir novamente. A função de fitness atribui um escore, ou valor de custo ao cromossomo. Este valor representa o quão bom é aquele cromossomo para sobreviver ao meio, e vir a ser um cromossomo do conjunto de cromossomos ótimos (BARONE, 2003) Fitness Total da População O fitness total da população é a soma do fitness de todos os indivíduos de uma população. Este dado auxilia na escolha de indivíduos para cruzamento. Como cada cromossomo, individualmente, possui uma porcentagem do fitness total, aquele que tiver maior porcentagem terá mais chance de ser escolhido para cruzar. Isto simula comportamento de animais na natureza, como o caso dos leões e cervos. O cervo que for mais forte e rápido terá mais chance de sobreviver aos ataques dos leões, e também terá mais chance de vencer seu oponente em uma disputa por uma fêmea (CAMPELLO,1994) Geração Cada vez que um ciclo do algoritmo se completa, diz-se que completou uma geração, isto é, cada vez que o algoritmo genético cruza todos os elementos de uma população e dá origem a uma nova prole, passou-se uma geração. Após uma geração, a população pode evoluir ou involuir. Existem vários fatores que podem determinar se uma população evoluiu ou não. Entre eles, pode-se destacar a característica de uma população como sendo o valor de seu melhor cromossomo, ou ainda, uma soma ou média ponderada do fitness de toda a população. Uma geração também pode dar origem a uma

26 25 prole maior ou menor que a população original. O tamanho da prole depende do número de cruzamentos que são desempenhados (CAMPELLO, 1994) Espaços de busca e cenários de Fitness Os AGs desempenham uma busca dentro do espaço. Este espaço de busca compreende todo o universo em que o problema se enquadra, isto é, todo o universo n-dimensional, para vetores de ordem n, e com valores dentro do limite especificado pelo número de alelos possíveis em cada gene. O espaço de busca de um determinado problema pode ser infinito, dependendo do genótipo adotado e do número de alelos, como em problemas modelados por AGs que podem assumir um genótipo com um número variável de genes por cromossomo. Se não existir nenhum limite neste número de genes, o espaço de busca será infinito. Ainda, se os alelos estiverem contidos em um conjunto infinito, como o conjunto dos números reais, por exemplo, mesmo um genótipo bem definido e finito resulta em um espaço de busca infinito (FERNANDES, 2005). Entretanto, como os AGs assumem que hipóteses para a solução de alta qualidade, localizadas em diferentes regiões do espaço de busca, podem ser combinadas por meio de cruzamento para obter outras hipóteses também de alta qualidade, a busca otimiza-se. Em outras palavras, o algoritmo não vai buscar em todas as regiões do espaço, mas apenas naquelas de maior interesse (FERNANDES, 2005). As primeiras gerações, que são concebidas aleatoriamente, têm seus indivíduos fracos eliminados rapidamente. Assim, o algoritmo passa a percorrer o espaço de busca através das soluções remanescentes que possuem um fitness melhor.

27 Visão geral de um Algoritmo Genético Nesta seção é apresentada, em um plano geral, a preparação e a execução de um AG. Como exemplo ilustrativo, é apresentado um algoritmo de minimização de custo de uma função. É também comum empregar algoritmos genéticos em problemas de otimização de parâmetros. Os conceitos envolvidos no processamento dos operadores de escolha de cromossomos para cruzamento, cruzamento destes cromossomos e mutação, serão apresentados baseados neste exemplo. Inicialmente, um fluxograma que resume a topologia básica de um AG é apresentado na Figura 2. Este fluxograma sugere uma topologia básica, podendo mudar conforme a necessidade, e assume que os operadores envolvidos (escolha, cruzamento, mutação) são desenvolvidos especificamente para cada caso ou representação adotada (FERNANDES, 2005). Figura 2: Fluxograma do Algoritmo Genético utilizado por Shirmohammadi e Hong (FERNANDES, 2005).

28 Descrição do Problema Antes de determinar os parâmetros do algoritmo, tais como, modelo de indivíduos, população, etc., é preciso entender o problema com que vai se lidar. Neste caso, para fins de exemplo, o algoritmo estará buscando um ponto de mínimo global de uma superfície. Sendo assim, cada cromossomo será uma hipótese para os parâmetros da função. A expressão da função é conhecida e, para o exemplo, será como na equação ( ), na qual se pode encontrar este mesmo exemplo. O genótipo, neste caso, será uma cadeira de bits, que apresenta o número real y dado como parâmetro da equação (FERNANDES, 2005). F (y) = y + sen(32y) ( ) Preparação dos Dados e Inicialização do Algoritmo Inicialmente, é preciso que o algoritmo gere uma primeira população, com um número de indivíduos suficientemente grande. Este processo é feito aleatoriamente. Cada indivíduo é formado pela combinação aleatória dos alelos existentes, seguindo o genótipo determinado. O número de indivíduos varia muito em cada caso. Uma população com muitos indivíduos tende a convergir rapidamente, pois o AG estará explorando muitos pontos na curva de cenário de fitness em cada instante. Quanto mais pontos o AG estiver varrendo em um determinado momento, melhor será sua resolução, entretanto um número muito elevado de indivíduos pode conduzir a um custo computacional alto demais (FERNANDES, 2005). Para representar os indivíduos da população, é necessária uma representação dos dados envolvidos no problema. Em casos em que os dados envolvidos são contínuos, um processo de digitalização quantização e amostragem faz-se necessário. Para desempenhar o processo de

29 28 quantização, o intervalo contido deve ser dividido em níveis de quantização (RICH, 1988). Quando um determinado valor cai em um dos níveis de quantização, ele deverá ser arredondado. É possível fazer esse arredondamento para o valor máximo do intervalo de quantização, para o valor médio ou para o mínimo. Usualmente, faz-se o arredondamento para o valor médio, assim o erro máximo de quantização será igual à metade do nível de quantização. Abordagens com arredondamento para o valor máximo ou mínimo resultam em erros de quantização de até o valor do nível. Após a digitalização, cada símbolo gerado representa um dado, ou uma faixa de dados. Apesar de inserir-se aí um erro de quantização, com uma boa resolução torna-se possível obter representações satisfatórias (RICH, 1988). Em casos em que os dados já são de origem discreta, ou mesmo digital, pode-se fazer uma abordagem por cadeia de bits, onde cada seqüência binária representará um determinado símbolo relacionado ao problema. Esta técnica é adotada para representar o parâmetro y da equação ( ). Para o exemplo de minimização desta equação, a população gerada será composta por vários números reais em ponto flutuante, e cada um destes é uma hipótese para y em f(y). Os cromossomos serão representações binárias destes números reais (FERNANDES, 2005) Seleção Natural Em alguns casos, é interessante criar uma população inicial muito grande. Em seguida, faz-se uma seleção inicial, denominada seleção natural em que uma porção de cromossomos, de custo mais elevado, é descartada. Seria equivalente a descartar natimortos ou com doenças que imediatamente eliminam um indivíduo no meio selvagem. Apenas os N good indivíduos com melhores características são mantidos para cada interação, ou geração. Com isto, as operações de cruzamento serão apenas entre indivíduos com algumas qualidades. Cruzamentos com indivíduos muito ruins geralmente não dão origem a indivíduos melhores. A seleção natural pode ocorrer a cada nova

30 29 geração do AG, e desta participa a população inicial e prole. Os demais N bad indivíduos são descartados para dar espaço à nova prole (RICH, 1988). Para critério de seleção natural, pode-se utilizar também uma técnica de tresholding, na qual apenas os indivíduos com custo inferior a um determinado limite (ou treshold) sobreviverão. Para um mesmo treshold, a tendência é de que mais cromossomos sobrevivam à seleção natural a cada nova geração, o que significa uma evolução na população. Da mesma forma, caso a população involua, a tendência é de que um número menor de indivíduos sobreviva à seleção natural, ainda para o mesmo treshold (RICH, 1988) Seleção dos pares Para que ocorram os cruzamentos, primeiro é feita a seleção dos cromossomos pais. Estes são selecionados a partir do conjunto dos N good, que sobreviveram à seleção natural. Este processo continua até que os N bad, cromossomos descartados anteriormente, sejam substituídos pelos cromossomos gerados via cruzamentos. Como critério de seleção, existem várias abordagens (REZENDE, 2003): Seleção de Cima Para Baixo: Neste critério, os indivíduos são ordenados seguindo a ordem de melhor fitness. A partir da lista formada, os pais são selecionados de cima para baixo (from top to bottom). É a heurística mais simples de seleção de indivíduos e não modela a evolução tal qual se encontra na natureza; Seleção de Pares Aleatória: Nesta forma de seleção, dois números aleatórios são gerados para determinar quais serão os dois cromossomos que cruzarão. Também é uma heurística extremamente simples e não modela fenômenos biológicos (REZENDE, 2003); Seleção de Pares Aleatória Ponderada: Atribui a cada cromossomo uma probabilidade de ser o escolhido, em função do custo associado a ele mesmo. A soma da probabilidade de todos os cromossomos é 1. Os cromossomos são selecionados a partir de um número

31 30 aleatório gerado entre 0 e 1. Uma probabilidade cumulativa é gerada, na qual a probabilidade cumulativa de cada cromossomo é igual à soma das probabilidades deste cromossomo com a de todos os outros já processados. O cromossomo escolhido é aquele cuja probabilidade cumulativa é imediatamente maior que o número aleatório gerado (REZENDE, 2003); Ponderação por posição do Cromossomo: De acordo com esta técnica, os cromossomos são ordenados em função do custo. A probabilidade de um determinado cromossomo ser escolhido é dada por uma equação, a soma de todas as probabilidades é igual à unidade. As probabilidades cumulativas são utilizadas na seleção dos pares. Da mesma forma que na seleção de pares aleatória ponderada, um número aleatório i também é gerado, nesse caso entre 0 e 1, e o cromossomo escolhido é aquele cuja probabilidade cumulativa atribuída é imediatamente maior que i (FERNANDES, 2005); Ponderação por Custo: A probabilidade de se escolher o melhor cromossomo. Primeiramente, um custo é calculado em função do custo de tal cromossomo, isto é, um custo normalizado Cn é calculado para cada cromossomo, subtraindo o menor custo dentre todos os cromossomos descartados na seleção natural do custo de cada um dos candidatos à reprodução. Este método de seleção tende a ponderar mais os cromossomos de menor custo quando há uma distância maior entre o maior e o menor custo em N good. Tende a ponderar igualmente quando os custos dos cromossomos de N good são aproximadamente os mesmos (REZENDE, 2003); Tournament: Tenta simular os processos naturais de seleção de indivíduos. O primeiro passo é escolher um subconjunto pequeno dentro do conjunto de cromossomos selecionados N good. Isto, na natureza, aparece entre leões, por exemplo. Os leões vivem em grupos e, dentro de cada grupo, um macho impõe-se perante os demais machos para ter o privilégio de cruzar com a fêmea no cio. Da mesma forma, uma competição entre subconjuntos aleatórios é feita pelo algoritmo em função do custo de cada cromossomo. Em

32 31 outras palavras, o custo dos cromossomos determinará quem venceu a disputa. De cada subconjunto, apenas um indivíduo é escolhido para cruzamento. Os cruzamentos se dão entre indivíduos vencedores de cada subconjunto (FERNANDES, 2005) Cruzamento O cruzamento (ou crossover) é a operação que resulta em um ou mais cromossomos filhos, gerados a partir do código genético dos cromossomos. Existe ainda a probabilidade de cruzamento, vinculada ao cruzamento propriamente dito. Tomando a natureza como ilustração, dois cervos copulando podem ter seu ritual interrompido pela ação de predadores, como leões. Os animais, no meio selvagem, devem tomar muito cuidado ao estar em posição vulnerável. Assim como na natureza, o algoritmo genético, mesmo com um par de cromossomos devidamente escolhidos para cruzamento, pode vir a não cruzar. A probabilidade de ocorrer o cruzamento aplicado é em torno de 60% a 90%, tipicamente, esta probabilidade é de 70%. Isto é, em 30% dos casos, os cromossomos filhos serão os mesmos cromossomos pais (REZENDE, 2003). Uma taxa de cruzamento alta é importante para que a recombinação dos genes introduza novas estruturas à população. Mas, se for muito alta, pode retirar cromossomos promissores antes que possam se recombinar e formar cromossomos melhores ainda. Uma taxa de cruzamento muito baixa pode estagnar a busca (REZENDE, 2003). Quando ocorre o cruzamento, dois cromossomos reprodutores produzem dois filhos na recombinação de seus genes. Um único ponto de cruzamento é selecionado aleatoriamente, em função do genótipo. Este fenômeno é normal entre a troca de material entre os cromossomos humanos, que ocorre normalmente em uma, duas ou três regiões durante o crossover (REZENDE, 2003). A partir do ponto de cruzamento, ocorre uma ruptura de cada um dos cromossomos neste ponto, e as fibras do cromossomo pai são ligadas ao cromossomo mãe e vice-versa, gerando dois novos cromossomos com metade

33 32 das características do pai e metade das características da mãe, cada um. Para o caso da minimização da equação ( ), considerando que y está representando em uma cadeia de 16-bits, um possível cruzamento seria (REZENDE, 2003): Pai: Mãe: Ponto de cruzamento selecionado aleatoriamente: x Resulta em: E Este processo é repetido para cada par de cromossomos pais selecionados e termina quando o número desejado de novos indivíduos for alcançado. Tipicamente, opera-se até que uma nova população seja formada Mutação A mutação consiste em escolher um gen aleatoriamente e alterar o seu alelo. Pode ser vista como trocar um bit de 0 para 1 em uma cadeia de bits. Tipicamente, usa-se uma probabilidade de 0,001% a 0,1% para mutação em cada cruzamento. A operação de mutação é importante para que o algoritmo explore a função de custo fora da região atual, representada pela população vigente. É um mecanismo de se inserir características que não estavam presentes na população original e útil para sair de mínimos locais. Ainda,

34 33 garante que a probabilidade de se chegar a qualquer ponto do espaço de busca é diferente de zero. Junto com o cruzamento, é a segunda forma de exploração da superfície de custo pelo algoritmo genético. Apesar de todas estas vantagens, uma taxa muito elevada de mutações pode dificultar a convergência do algoritmo, estragando cromossomos promissores e tornando a busca essencialmente aleatória (BARONE, 2003). Ainda, mesmo com uma taxa de mutação baixa, usa-se mecanismo de preservar as melhores soluções. Estes mecanismos são aplicados através de heurísticas, tais como, mutar os cromossomos da população, exceto o melhor, ou o conjunto de melhores (BARONE, 2003) Próxima Geração Após o processo de mutação, a prole gerada está pronta. Diz-se que o algoritmo genético agora completou uma geração. A nova população, formada agora também pela prole, possui um fitness diferente da população anterior. A tendência é sempre deste fitness total aumentar, mas ocorre deste fitness reduzir, isto é, a espécie involuiu, ao invés de evoluir. Porém, mesmo quando este fitness total diminui, não significa que o algoritmo não irá convergir ao final de diversas gerações, e também não significa que um cromossomo melhor não tenha sido encontrado no presente momento da involução. O processo é interativo, e muitas gerações devem ser processadas. Ao final de um conjunto de gerações, o algoritmo completa uma rodada. Tipicamente, uma rodada é composta de 100 a 500 gerações (BARONE, 2003) Critério de Parada Existem várias formas de se implementar critérios de parada para os AGs. Se for possível obter-se uma medida precisa do melhor cromossomo e detectá-lo no momento em que este for encontrado, então este deverá ser o

35 34 critério de parada. Limiares de custo para o qual, abaixo deste, o cromossomo poderá ser considerado ótimo também é uma heurística interessante em diversos casos de otimização. Em outros casos, mantém-se registro dos melhores cromossomos encontrados nas diversas gerações. Quando o custo para o melhor cromossomo parece estático, isto é, não melhora significativamente em um determinado número de gerações, pode-se considerar o melhor encontrado até então como uma resposta ao problema. Por fim, pode-se estabelecer um número máximo de gerações que o algoritmo deverá executar, após as quais ele termina (REZENDE, 2003). A vantagem do algoritmo genético frente aos métodos tradicionais de otimização é a rápida obtenção de boas soluções, dentro das quais não necessariamente está a solução ótima, quando o universo de alternativas é extremamente grande, como neste caso, em que há infinitas soluções possíveis (FERNANDES, 2005).

36 35 2 ESTADO DA ARTE O desenvolvimento de sistemas de roteamento de veículos para cidades ainda é recente. Desta forma, não foram encontradas muitas ferramentas que possuem esses recursos. Além disso, não foi possível descobrir maiores detalhes sobre a modelagem, especificações e/ou implementação das ferramentas apresentadas. A empresa Logit desenvolveu uma ferramenta muito completa na área de transportes, criando um sistema chamado TransCAD. O TransCAD é o primeiro e o único Sistema de Informações Geográficas (SIG) desenvolvido especificamente para utilização por profissionais de transporte, para armazenar, mostrar, manipular e analisar dados relativos a transporte (LOGIT, 2007). Também existe uma ferramenta de consulta disponível na Internet, cujo nome do projeto é Apontador, com o objetivo de criar rotas dentro de cidades e estradas. Existe também uma ferramenta chamada TruckStops, produzida pela empresa MicroAnalytics Inc. sediada em Virginia EUA. Esta ferramenta gera as rotas de entrega, permite o cadastro de clientes, frota e barreiras geográficas.

37 TransCAD O sistema TransCAD é utilizado por empresas de transporte. Seus modelos de roteamento e logística podem ser aplicados a qualquer modo de transporte e podem ser utilizados para diferentes aplicações, seja no setor privado ou no setor público, envolvendo (LOGIT, 2007): - Operações de entrega e coleta; - Planejamento de distribuição; - Manutenção de Instalações; - Operações porta-a-porta de entrega e coleta; - Varrição de ruas ou remoção de neve; - Recolhimento de resíduos sólidos ou materiais recicláveis; - Leitura de hidrômetros, consumo de energia, etc. Este sistema permite resolver problemas de coletas e entregas mistas com janelas de tempo. Em caso de múltiplos depósitos, as rotas podem ser alocadas a um depósito em especial ou podem ser atribuídas automaticamente pelo modelo (LOGIT, 2007). Os algoritmos de roteamento de veículos foram estendidos para manipular frotas heterogêneas. O sistema TransCAD escolhe a melhor composição de frota, dada a capacidade do veículo, seu custo e disponibilidade para cada tipo de veículo (LOGIT, 2007). Além disso, o sistema TransCAD permite especificar um limite máximo para o comprimento da rota, em adição às demais limitações. Esta opção é muito útil, pois se encontram, na prática, requerimentos diferentes para janelas de tempo e comprimento de rotas (LOGIT, 2007). O TransCAD tem, como características principais (LOGIT, 2007): - Mapwizard para geração de mapas instantâneos; - Mapas em qualquer escala; - Edição e personalização de mapas;

38 37 - Integração de mapas e gráficos; - Estatísticas; - Rotas Mínimas e de menor tempo; - Suporte para OLE 2.0; - Conexão ODBC para Sistemas Gerenciadores de Bases de Dados (DBMS); - Gerenciador interno de banco de dados; - Disposição de folhas de impressão e ferramentas de desenho. A figura 3 mostra os caminhos usados por veículos de coleta/entrega/ônibus ou indivíduos viajando de um local a outro. O sistema TransCAD possui ferramentas para criar, mostrar, editar e manipular rotas, e uma tecnologia única para mapear as rotas de uma maneira clara e intuitiva. Pode-se organizar um conjunto de rotas relacionadas em um único layer de sistema de rotas, que inclui seus atributos, localização de pontos de parada e horários de programação de veículos. Figura 3: Rotas e Sistemas de Rotas

39 38 A figura 4 mostra a funcionalidade Strip Charts, que ilustra as características da via ao longo de uma rota. Como a ferramenta não é somente de criação de rotas, mas também de gerenciamento e análise das mesmas (SIG), essa funcionalidade permite ao usuário verificar informações adicionais das rotas como pavimento, passageiro, número de faixas e velocidade (LOGIT, 2007). Figura 4: Tela Strip Chart. A figura 5 mostra foto obtida por satélite, onde a rota é criada com base no sentido das vias, mostrando ao usuário o caminho a seguir. Além disso, mostra ponto de latitude e longitude dentro da rota (LOGIT, 2007).

40 Figura 5: Tela de Sentido de Vias. 39

41 TruckStops A ferramenta TruckStops é oferecida no mercado pela empresa Converlog, uma empresa voltada à prestação de serviços, com objetivo de disponibilizar às empresas as tecnologias voltadas ao planejamento e criação de roteiros de venda e entrega. A TruckStops não trabalha com banco de dados residente, e a manutenção da base de dados fica restrita a uma única base de informações. Seu funcionamento se baseia no arquivo diário que a ferramenta recebe, em formato TXT, com os pedidos para serem realizadas as entregas (CONVERLOG,2007). A figura 6 mostra o formulário de cadastro do cliente, onde o usuário passa as informações necessárias para a ferramenta. Atrás do formulário, fica visível a maneira como é armazenada a informação do cliente. Algumas informações do cliente são listadas abaixo: - Dados cadastrais código do cliente; razão social; endereço. - Dados do pedido de venda quantidades vendidas (peso e volume). - Dados das regras comerciais horários de recebimento; prioridades. - Dados matemáticos localização geográfica (lat./long.); tempo médio de descarga; tempo médio de parada fixa.

42 41 Figura 6: Cadastro de Clientes A figura 7 mostra o formulário de cadastro da frota que irá realizar as entregas da empresa. As informações necessárias à identificação do veículo são (CONVERLOG, 2007): - Disponibilidade; - Capacidade; - Equipamentos especiais; - Regras operacionais; - Pontos de origem e destino final; - Custos.

43 42 Figura 7: Cadastro de Frota. A figura 8 mostra o formulário de cadastro de barreiras geográficas, que tem como finalidade informar ao programa pontos de uma rota que não podem ser percorridos pelos veículos. Essa informação geralmente é criada em áreas com rios, montanhas, estradas de ferro, etc (CONVERLOG, 2007).

44 43 Figura 8: Cadastro de Barreiras Geográficas. A figura 9 mostra a rota geograficamente. O sistema permite ao usuário inserir mapas e sobrepor a rota, ou ainda, se o usuário quiser, desenhar a região da rota.

45 44 Figura 9: Referências Geográficas. 2.3 Apontador A ferramenta disponibilizada pelo site Apontador, iniciou com a finalidade de mostrar endereços de ruas aos seus usuários. Posteriormente, o site liberou uma ferramenta de caráter livre, para que os usuários pudessem, além de ver endereços nos mapas, informar dois endereços à ferramenta e a mesma gerar a rota para o usuário se deslocar entre os pontos (APONTADOR, 2007). A figura 10 mostra a página inicial do site, assim que o usuário entra no mesmo. Nesta tela, é exposto o mapa da cidade de São Paulo como padrão. No lado direito, existe um menu para o usuário escolher a opção que deseja utilizar.

46 45 Figura 10: Tela Inicial do site Apontador. A figura 11 mostra a opção de traçar rota, selecionada no menu do site. O menu traçar rota é composto por dois campos: um de origem e outro de destino, onde o usuário deve informar a rua, número, cidade, estado e país onde o endereço de origem e de destino se encontram. Após informar os endereços, o usuário solicita que a ferramenta os busque. Neste momento, a ferramenta valida os endereços e, caso não os encontre, mostra algumas opções de endereço parecidas com a procura do usuário.

47 46 Figura 11: Traçar Rota. A figura 12 mostra a opção para o usuário escolher a maneira como ele pretende percorrer a rota. A ferramenta disponibiliza ao usuário quatro opções de como a rota pode ser criada: por vias principais, desviando do trânsito, caminho mais curto e a pé. Após realizar sua escolha, o usuário solicita que a ferramenta trace a rota, e o sistema apresenta um relatório e a rota no mapa, da origem ao destino.

48 47 Figura 12: Tipo de Rota. A figura 13 mostra, no lado esquerdo, um relatório com a rota a ser seguida, no qual estão descritos o nome das ruas e o ponto onde deve ser feito o deslocamento para outra via. Ao fundo, é apresentado o mapa da região por onde a rota passa, com a mesma sinalizada com uma linha azul.

49 48 Figura 13: Resultado da Rota criada pela Ferramenta Apontador 2.4 Estudo Comparativo O estudo comparativo foi feito com base nas ferramentas localizadas em buscas realizadas na Internet, pesquisando-se ferramentas desenvolvidas para a roteirização de veículos. Foram identificadas as ferramentas TruckStops, Apontador e TransCAD, devido ao fato de existirem poucas ferramentas com essa finalidade. Não foi possível apresentar detalhes de tecnologias usadas no desenvolvimento e funcionalidades das ferramentas, já que as mesmas não são apresentadas nos sites pesquisados. Sendo assim, o estudo limitou-se a apresentar as telas e a interpretar suas funcionalidades, com exceção da ferramenta disponível no site apontador. O quadro 1 apresenta uma breve comparação entre as funcionalidades das ferramentas apresentadas neste capítulo, incluindo-se o sistema apresentado neste trabalho.

50 49 Características Analisadas Quadro 1: Comparação entre as ferramentas Ferramentas Sistema Implementado TransCAD TruckStops Apontador Relatórios de rotas x X x X Mapas Geográficos x X x Cadastro de Clientes X X Cadastro de Frota X Cadastro de Barreiras Geográficas X X Este estudo comparativo permitiu definir alguns dos critérios empregados no desenvolvimento do sistema implementado. O próximo capítulo apresenta a modelagem do sistema, utilizando-se os diagramas da linguagem UML.

51 50 3 SOLUÇÃO IMPLEMENTADA Este capítulo apresenta as informações referentes à modelagem da ferramenta proposta neste trabalho. Este trabalho foi desenvolvido com base em um caso real do mercado, porém de forma genérica, abrangendo o desenvolvimento de um Sistema de Informação Inteligente para a criação de rotas de tele-entrega de produtos. Desenvolveu-se um sistema de criação de rotas de tele-entrega, ou seja, todas as entregas de produtos feitas pela empresa são realizadas com base em uma rota de entrega definida pelo sistema baseado nos endereços dos clientes, partindo do local da empresa. A partir dessa fase, o operador do sistema insere os locais (endereços de entrega). Com base nestas informações, o sistema, tendo todos os locais de entrega, gera um relatório com o roteiro de ruas que o entregador deve seguir para entregar os produtos de forma mais ágil. 3.1 UML A Linguagem de Modelagem Unificada (Unified Modelling Language - UML) é uma linguagem de notação com intuito de visualizar, especificar e documentar modelos de sistemas Orientados a Objeto. A UML é composta por vários elementos de modelo que tem no seu objetivo representar as diferentes etapas de um sistema. Os elementos do UML são usados para gerar diagramas que representam um ponto de vista do sistema (OMG, 2007).

52 51 Para o desenvolvimento do sistema proposto, serão apresentados os diagramas de caso de uso e o diagrama de classe. 3.2 Levantamento de Requisitos Essa etapa apresenta a modelagem de negócio do sistema proposto, permitindo a verificação de todas as definições de requisitos levantadas no decorrer do desenvolvimento do projeto, além de explicitar os objetivos de cada diagrama Diagrama de Casos de Uso O diagrama de casos de uso tem como objetivo descrever relacionamentos e dependências entre um grupo de Caso de Uso e os atores participantes do processo. Os diagramas são desenvolvidos para facilitar a comunicação entre os futuros usuários e clientes do sistema, mostrando o que o sistema deve fazer sem especificar como isso irá ocorrer (LARMAN, 2004). Como mostra a figura 14, estão definidas as funcionalidades para o sistema proposto, bem como seus respectivos autores.

53 52 Figura 14: Diagrama de Casos de Uso Casos de Uso Os casos de uso são descrições de interações entre o usuário do sistema e o sistema a ser desenvolvido. Com o objetivo de mostrar, do ponto de vista dos atores (entidades fora do sistema que interagem com o sistema participando de um caso de uso), um conjunto de atividades no sistema que produz um resultado concreto. Assim, ele representa a interface externa do sistema com as exigências que o sistema deve fazer (LARMAN, 2004). A seguir, serão descritos os casos de uso real, utilizando o acrônimo: CDUx, sendo Caso de Uso número x.

54 53 CDU1: Logar Ação do Ator 1. O usuário acessa o sistema instalado no seu dispositivo. 3. O usuário preenche seus dados e confirma a entrada. Responsabilidade do Sistema 2. O sistema é carregado e exibe a tela de login, requisitando as informações do usuário. 4. O sistema valida os dados e libera o acesso. 5. O sistema mostra o menu. CDU2: Cadastrar Usuário Ação do Ator 1. O Administrador escolhe a opção "Cadastrar Usuário" no menu principal. 3. O administrador preenche os dados do usuário a ser cadastrado e confirma a entrada. Responsabilidade do Sistema 2.O sistema apresenta um formulário de cadastro de usuários. 4.O sistema valida os dados e insere na base os valores. 5.O sistema retorna uma mensagem com o resultado da operação. CDU3: Cadastrar Cliente Ação do Ator 1. O Usuário escolhe a opção "Cadastrar Cliente" no menu principal. 3. O Usuário preenche os dados do Cliente a ser cadastrado e confirma o cadastro. Responsabilidade do Sistema 2.O sistema apresenta um formulário de cadastro de cliente. 4.O sistema valida os dados e insere na base os valores. 5.O sistema retorna uma mensagem com o resultado da operação.

55 54 CDU4: Cadastrar Pedido Ação do Ator 1. O Usuário escolhe a opção "Cadastrar Pedido" no menu principal. 3. O Usuário preenche os dados do pedido a ser cadastrado e confirma entrada. Responsabilidade do Sistema 2.O sistema apresenta um formulário de cadastro de pedido. 4.O sistema valida os dados e insere na base os valores. 5.O sistema retorna uma mensagem com o resultado da operação. CDU5: Cadastrar Ruas Ação do Ator 1. O Administrador escolhe a opção "Cadastrar Ruas" no menu principal. 3. O Administrador preenche os dados da rua a ser cadastrada e confirma o cadastro. Responsabilidade do Sistema 2.O sistema apresenta um formulário de cadastro de ruas. 4.O sistema valida os dados e insere na base os valores. 5.O sistema retorna uma mensagem com o resultado da operação. CDU6: Deslogar Ação do Ator 1. O Usuário escolhe a opção "Sair" no menu 2.O sistema encerra o aplicativo Entidade-Relacionamento A modelagem Entidade-Relacionamento (E-R) é utilizada para o levantamento dos requisitos e a definição da arquitetura de sistemas de banco

56 55 de dados. O Resultado da modelagem E-R é uma lista de entidades e seus atributos, relações e restrições sobre as relações criadas (FURLAN, 1998). A figura 15 apresenta a definição do modelo ER da base de dados do sistema de rotas. Figura 15: Modelo E-R de Banco de Dados. O modelo E-R acima apresenta uma base de conhecimento, na qual as informações das ruas e suas ligações (se uma rua se liga à outra) são armazenadas para uso futuro do AG. As tabelas Clientes, Pedido, Usuário e Endereço serão populadas diretamente pelo usuário que preencherá as informações referentes a cada uma delas. Já a tabela HistoricoPedido vai ser populada de forma automática pelo sistema assim que a entrega for realizada.

57 Diagrama de Classe Os Diagramas de Classe (DC) apresentam as diferentes classes que constituem um sistema e como elas se relacionam. Os DC também são chamados de diagramas estáticos, pelo fato de mostrarem as classes com seus métodos e atributos bem como seus relacionamentos estáticos entre elas: quais classes enxergam, quais classes ou quais são partes entre si, mas não mostram as mensagens trocadas entre elas (FURLAN, 1998). A figura 16 mostra o diagrama de classe do sistema proposto, criado com base nas expectativas levantadas no decorrer da modelagem. Figura 16: Diagrama de Classe O diagrama de classe apresentado acima inclui as classes Usuários, Clientes, Pedidos e Rua, cujos métodos têm como objetivo validar as informações inseridas pelo usuário e armazenar as mesmas no banco de dados. A classe Clientes está diretamente relacionada a endereço, sendo uma

58 57 superclasse. A classe Pedido faz um vínculo direto com a HistoricoPedido de forma que, toda vez que uma entrega, é feita a mesma dispara um evento para processar a HistoricoPedido. 3.3 Modelagem do Algoritmo Genético Esta seção apresenta a modelagem do Algoritmo Genético responsável pela geração da rota mais adequada, de acordo com as informações de entrada do usuário Estrutura do Cromossomo A estrutura do cromossomo define a forma pela qual as informações são representadas no cromossomo e o tamanho do mesmo. A forma escolhida para a solução proposta foi um cromossomo binário. Cada posição do cromossomo (que foi criado de acordo com uma estrutura de dados do tipo matriz) corresponde a uma rua. O conteúdo de cada posição do cromossomo envolve uma parte binária: pode ser 1 ou 0: quando o valor for 1, a rota deve passar por aquela rua e um código que representa o número da rua no banco de dados. A figura 17 representa graficamente o cromossomo implementado. Figura 17: Matriz Bidimensional do Cromossomo O tamanho do cromossomo (número de genes) varia de acordo com o número de ruas de um bairro, ou seja, o tamanho do vetor é o número de ruas que pertencem ao bairro da rota a ser gerada.

59 58 Como modo de ilustração, a figura 18 mostra um vetor gerado para um bairro de 50 ruas. Figura 18: Exemplo de Cromossomo Número de Indivíduos da População O número de indivíduos define quantos cromossomos (vetores) o Algoritmo Genético vai utilizar para iniciar o processo de busca da solução ideal. No decorrer do desenvolvimento deste trabalho, estabeleceu-se que o tamanho da população seria definido somente na fase de testes. Através da verificação do desempenho do algoritmo, foi possível identificar qual o tamanho adequado Geração da População Inicial A geração da população inicial tem como objetivo buscar no BD o número de ruas cadastradas e preencher os genes do cromossomo de forma aleatória. Esta etapa ocorre de forma aleatória. Na implementação realizada, utilizou-se uma função da linguagem de programação VB.NET para os valores binários e uma função da linguagem SQL para preencher os genes responsáveis por armazenar os códigos das ruas Função de Avaliação (Fitness)

60 59 Após ser criada a população inicial, o AG avalia os indivíduos gerados. O sistema avalia as seguintes informações: - Se as ruas têm ligação entre si; - Menor percurso em km; - Tempo de deslocamento; - Número de lombadas eletrônicas; - Número de lombadas (quebra-molas); - Número de escolas; - Número de hospitais; - Número de sinaleiras. Após verificar as informações citadas, o sistema gera uma nota para cada indivíduo da população. Assim, somente os melhores indivíduos passarão para as próximas etapas já que, para participar da próxima geração, serão escolhidos os melhores cromossomos para gerarem os filhos Operadores Genéticos O AG implementado utiliza os operadores genéticos de crossover e mutação. O crossover estabelece o cruzamento entre os indivíduos. O número de pontos de corte para o cruzamento entre os indivíduos foi definido na etapa da implementação, apresentada no próximo capítulo. A mutação age sobre os indivíduos gerados pelo processo de crossover descrito acima. Ela foi definida em percentual, tendo como objetivo modificar os genes do novo cromossomo, permitindo criar uma diversidade na população. Após as operações de crossover e mutação, são gerados os novos indivíduos. O percentual de mutação também foi definido na fase de testes do sistema Seleção de Indivíduos

61 60 Na etapa de seleção de indivíduos, o sistema seleciona as soluções (indivíduos) e os coloca em ordem crescente pela nota (valor do fitness) para realizarem os novos cruzamentos. Assim eles sofrem uma ordenação de forma decrescente, onde 4% dos indivíduos são armazenados do topo da matriz tridimensional, chamados superindivíduos. Após são selecionados 48 % da população restante para serem reunidos com os outros 4% para formarem a nova população de indivíduos Critério de Parada O algoritmo implementado tem um critério de parada baseado na convergência. Este critério faz com que o AG repita os passos descritos nas seções anteriores até que se atinja uma população com uma solução ótima. O critério de convergência faz o algoritmo parar de executar quando as rotas válidas encontradas começam a se repetir, mostrando que a população evoluiu para a melhor resposta Apresentação do Resultado O AG resulta em um cromossomo de solução para o problema apresentado. É apresentado ao usuário o indivíduo (solução) com maior fitness, representando a rota gerada. O próximo capítulo apresenta as características do AG implementado.

62 61 4 SOLUÇÃO IMPLEMENTADA Este capítulo apresenta as informações referentes à implementação do sistema de gerenciamento de rotas de tele-entrega proposto neste trabalho. 4.1 Tecnologias Utilizadas Esta seção apresenta uma breve descrição das tecnologias aplicadas no desenvolvimento do sistema de roteamento. Foram utilizadas as seguintes ferramentas: Microsoft Visual Studio.NET, com linguagem de programação Visual Basic.NET. Para o armazenamento dos dados, utilizou-se o SGBD SQL Server 2005 Express Edition Tecnologia.NET A arquitetura Microsoft.NET foi uma iniciativa da empresa Microsoft com o objetivo de ser uma plataforma única de desenvolvimento e execução de sistemas e aplicações. Todos os códigos gerados pelo.net podem ser executados em qualquer plataforma que possua um framework: a Plataforma.NET (.NET Framework).

63 62 Segundo a Microsoft (MICROSOFT, 2007), o.net framework é: - um ambiente multilinguagem para construção, distribuição e execução de aplicações e serviços Web; - uma nova plataforma desenhada para simplificar o desenvolvimento de aplicações voltadas para a Internet; - composto por dois componentes principais: o Common Language Runtime (CLR) e a biblioteca de classes NET Framework. Essa tecnologia é executada sobre a CLR (Common Language Runtime Ambiente de execução independente de linguagem), interagindo com uma coleção de bibliotecas unificadas, que formam o próprio framework Linguagem de Programação VB.NET O Visual Basic.NET (VB.NET) é uma hierarquia de classes que estão incluídas no.net Framework sendo que, a partir de agora, o Visual Basic passou a ser uma linguagem Orientada a Objetos, incluindo as características de herança, polimorfismo, encapsulamento, entre outras. O VB.NET foi criado para desenvolvedores Visual Basic e possui recursos únicos que fazem com que ele seja a melhor escolha para construir aplicações.net. O VB.NET continua sendo a única linguagem no pacote VS.Net que inclui compilação em segundo plano, o que significa que os erros podem ser manipulados no momento em que você está digitando o código. O VB.NET também é único em oferecer valores padronizados para parâmetros opcionais e para fazer com que uma coleção esteja disponível ao desenvolvedor.

64 Banco de Dados SQL Server 2005 O Microsoft SQL Server Express é uma plataforma de banco de dados baseada nas tecnologias do SQL Server Ele é um SGBD gratuito e possui características de rede e segurança que o diferenciam das demais edições do SQL Server Com o aumento no uso de base de dados relacionais pelos desenvolvedores, a fim de fornecer uma experiência mais rica aos usuários, o SQL Server Express ajuda os desenvolvedores a construir aplicações robustas e confiáveis. Freqüentemente, os sistemas de banco de dados são muito complexos para a criação de aplicações simples. O Microsoft Visual Studio 2005 e o SQL Server Express reduzem a complexidade, fornecendo um ambiente simples, porém poderoso, para o desenvolvimento de aplicações orientadas a dados. Os desenvolvedores podem desenhar esquemas, adicionar dados, e consultar bases de dados locais, tudo dentro do ambiente do Visual Studio Se os desenvolvedores precisarem de recursos avançados de banco de dados, o SQL Server Express pode ser migrado facilmente para versões mais sofisticadas do SQL Server. O SQL Server Express foi desenvolvido tendo-se em mente duas utilizações básicas: a primeira, como um servidor de produtos, especialmente como um Web Server ou Database Server. A segunda, como um cliente standalone, onde a aplicação não precise depender de uma rede para obter acesso aos dados. O SQL Server Express usa a mesma engine que as demais edições do SQL Server Entretanto, por ser uma edição light, possui algumas limitações. A engine suporta 1 CPU, 1GB RAM e banco de dados com até 4GB. A engine do SQL Express não possui a limitação de usuários concorrentes, conhecida como Concurrent Workload Governor, não prejudicando as conexões concorrentes de usuários em grande escala. Observa-se que o SQL Server Express possui facilidades de uso e administração. Ele é seguro por default, totalmente free, compatível com outras edições do SQL Server 2005 e sua integração com o Visual Studio 2005 torna

65 64 mais simples o desenvolvimento de aplicações que utilizam o SQL Server como repositório de dados. 4.2 Funcionalidades Gerais do Sistema Implementado A tela principal do sistema, mostrada na figura 19, permite que o usuário realize seu login no sistema. FIGURA 19: Tela de login no sistema Após efetuar o login, o sistema apresenta ao usuário a tela principal (figura 19), onde estão disponíveis os seguintes recursos ao usuário: - Cadastro de Usuário; - Cadastro de Ruas; - Cadastro de Clientes; - Registro de Pedidos; - Gerar Rotas; - Visualizar Relatórios.

66 65 Como se apresentou no capítulo anterior, o sistema verifica, no momento do login, a que grupo do sistema o usuário pertence. Assim ele só poderá utilizar os recursos dos quais possui permissão. Conforme figura 19, a opção cadastro no menu, permite o acesso às telas de Cadastro de Usuários, Clientes e Ruas. A tela de cadastro de usuário (figura 20), solicita os dados das pessoas autorizadas a acessar o sistema. FIGURA 20: Formulário de Cadastro de Usuários. A tela de Cadastro de Clientes (figura 21), solicita os dados do cliente da empresa para armazenar na base de dados, permitindo que, quando o cliente realize uma nova compra, seu endereço já esteja cadastrado no sistema.

67 66 FIGURA 21: Formulário de Cadastro de Clientes. A tela de Cadastro de Ruas (figura 22) solicita ao usuário que cadastre as informações referentes às ruas dos bairros e/ou cidades que serão atendidas pelo sistema de tele-entrega. A versão implementada neste trabalho, como definido anteriormente, possui o cadastro de ruas de um bairro, para fins de validação da ferramenta. Com base nos dados cadastrados nessa tela o AG executa suas análises e gera a rota que deve ser percorrida pelo entregador. O bairro utilizado para a implementação do protótipo foi São Geraldo, da cidade de Porto Alegre RS. Este bairro possui 27 ruas.

68 67 FIGURA 22: Formulário de Cadastro de Ruas. O levantamento das ruas do bairro para o protótipo foi feito através de consulta ao site da Prefeitura de Porto Alegre, site dos correios, site apontador e in loco, através da passagem pelas ruas propriamente ditas. Na opção Movimento, o usuário pode escolher entre realizar o cadastro de um pedido no sistema ou gerar a rota para a entrega do pedido. A tela de cadastro de pedido (figura 23), permite que, ao realizar o pedido, o usuário informe o CPF do cliente e o sistema realize uma consulta na base de dados, retornando os dados de cadastro do cliente para o formulário. Após esta operação, basta informar a data de entrega e o pedido do cliente.

69 68 FIGURA 23: Formulário Cadastro de Pedido. Caso ocorra a necessidade de consultar os clientes pelo nome para descobrir o CPF, o usuário deve clicar no botão Procurar da tela de cadastro de pedido. Após realizar a ação o sistema apresenta uma tela para consulta de cliente (figura 24). Através de uma pesquisa pelo nome o sistema retorna para a tela do pedido para apresentar os dados do cliente.

70 69 FIGURA 24: Tela Consulta de Cliente. Após realizar o pedido, o sistema irá apresentar ao usuário um relatório contendo as ruas que o entregador deve percorrer para se deslocar até o endereço fornecido pelo cliente, como mostra a figura 25. Figura 25: Relatório gerado pelo AG.

71 70 A próxima seção apresenta as características da implementação do Algoritmo Genético para a geração das rotas de tele-entrega. 4.3 Implementação do Algoritmo Genético Geração da População Inicial A população inicial do algoritmo genético implementado foi, num primeiro momento, gerada de forma que cada posição do cromossomo indicava a respectiva rua cadastrada no banco de dados (de acordo com a posição da rua no vetor que, inicialmente, representava o cromossomo) e o valor contido na posição dos vetores era gerado de forma aleatória com números binários. Após alguns testes foi possível notar que dessa maneira poderiam surgir rotas que não fossem validadas pelo AG. Assim, a forma de armazenamento dos cromossomos foi modificada para uma matriz bidimensional, onde na 1 a linha ficam armazenados os números binários e, na 2 a linha ficam armazenados os códigos das ruas, de maneira que essas ruas são atribuídas de forma aleatória através de uma função do SQL Server. A população possui 100 cromossomos, correspondendo a uma matriz tridimensional, ou seja, cada indivíduo da população é formado por uma matriz bidimensional com um valor binário e o código da rua, como mostra a Figura 26.

72 71 Cromossomos Código das Ruas Representação Binária 100 Ruas n FIGURA 26: Matriz que armazena a população do AG Função de Avaliação Durante a fase de testes do AG, a função de avaliação sofreu vários ajustes para que se chegasse à maneira mais adequada de avaliar as rotas (cromossomos) criadas pelo Algoritmo Genético. Inicialmente a função de avaliação só levava em conta as informações cadastradas de classificação da rua, como número de escolas, hospitais, sinaleiras, entre outras. Cada item desses recebeu um peso negativo, fazendo com que a rota gerada perdesse pontos conforme o número de critérios existentes. Após os testes, foram criados pesos para cada gene que tivesse ligação com o próximo utilizado para a rota (ou seja, cada rua da rota precisa ter ligação com a próxima), da mesma forma como são retirados pontos caso não exista ligação entre as mesmas, possibilitando assim que o AG conseguisse atingir um cromossomo satisfatório para criar a rota.

73 Taxa de Mutação Para definir a taxa de mutação mais adequada, foram realizados diversos testes de desempenho, avaliando o tempo de retorno da rota e o número de rotas possíveis geradas para o AG. Foram realizados testes com diversos valores para a taxa de mutação variando entre 3% e 75%. A taxa que gerou um melhor resultado após a bateria de testes foi a de 3%. Os testes realizados são demonstrados na seção Seleção dos Pais A seleção é realizada de maneira que, após ser gerada a primeira população de indivíduos, estes passam pela função de avaliação e por uma ordenação conforme a nota atribuída a eles. Após esta ordenação, de forma crescente, seleciona-se 4% dos melhores indivíduos da população para que os mesmo não passem pela mutação e crossover do AG. Estes indivíduos são mantidos na próxima geração, sendo considerados os superindivíduos. O percentual restante sofre mutação e crossover e, novamente será avaliado para serem selecionados somente os melhores na próxima geração Crossover Para o Crossover, após a realização dos testes do AG, implementou-se um critério de seleção utilizando a técnica de manter 4% dos pais sem sofrer alteração (superindivíduos). Após esse procedimento selecionam-se 46% dos indivíduos da população, descartando-se os demais, para passarem pelo processo de crossover. Cada 2 cromossomos pais geram 4 filhos. Essa

74 73 implementação foi feita com o intuito de manter os melhores indivíduos na próxima geração. O crossover é realizado com dois pontos de corte, cruzando somente as informações binárias, para evitar que uma mesma rua apareça duas vezes na mesma rota. Um esquema gráfico do crossover implementado é mostrado na figura 27. Figura 27: Exemplo de Crossover utilizado pelo AG Critério de Parada O AG é executado até atingir rotas válidas. Nesse momento estas rotas são armazenadas em um vetor auxiliar onde, a cada nova rota válida, verificase a ocorrência da mesma em outro momento. Caso a rota se repita o AG convergiu para uma solução ótima, sendo gerado o relatório, apresentando o melhor cromossomo encontrado. Esse critério foi escolhido após diversos

75 74 testes que comprovaram, que ao iniciar a repetição de rotas válidas, o AG já havia convergido para a melhor solução. 4.4 Validação Para a validação do sistema, foram realizados diversos testes de desempenho no AG. Esses testes avaliaram os diferentes valores atribuídos ao crossover, tamanho da população de cromossomos e taxa de mutação. Somente após a realização destes testes é que o sistema foi colocado à disposição dos usuários para validação. Para a realização dos testes utilizou-se um computador com a seguinte configuração: - Sistema Operacional Windows XP; - Processador Athlon X2 2.4; - Memória 1 Gb Ram; - HD 80 GB. A tabela 1 mostra os resultados dos testes realizados para analisar o desempenho do AG.

76 75 TABELA 1 - Testes do Algoritmo Genético O protótipo foi desenvolvido para ser aplicado em uma confeitaria, onde o responsável pelas tele-entregas dos produtos foi o usuário escolhido para realizar a validação do mesmo. Após o uso o mesmo emitiu seu parecer sobre o protótipo. O usuário relatou que o sistema está funcionando corretamente, considerando que todas as rotas geradas foram válidas. Porém, como ponto negativo, relatou que o sistema não tem um padrão de tempo para gerar a rota, ou seja, às vezes ele apresenta a resposta em 2 minutos e, às vezes demora 8 minutos para gerar a mesma rota. Com base no desempenho do AG após os testes, não é possível criar uma projeção para a aplicação do AG em rotas com um maior número de ruas. Acredita-se que o desempenho do mesmo deve melhorar proporcionalmente, de acordo com o número de rotas a serem criadas.

Complemento IV Introdução aos Algoritmos Genéticos

Complemento IV Introdução aos Algoritmos Genéticos Complemento IV Introdução aos Algoritmos Genéticos Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações e

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 04 Algoritmos Genéticos Introdução Algoritmos genéticos são bons para abordar espaços de buscas muito grandes e navegálos

Leia mais

SLAG - Resolvendo o Problema do Caixeiro Viajante Utilizando Algoritmos Genéticos

SLAG - Resolvendo o Problema do Caixeiro Viajante Utilizando Algoritmos Genéticos SLAG - Resolvendo o Problema do Caixeiro Viajante Utilizando Algoritmos Genéticos Fredson Vieira Costa 1, Fábio Silveira Vidal 1, Claudomiro Moura Gomes André 1 1 Curso de Bacharelado em Ciência da Computação

Leia mais

Algoritmos Genéticos

Algoritmos Genéticos UNIVERSIDADE PRESBITERIANA MACKENZIE Laboratório de Computação Natural LCoN I ESCOLA DE COMPUTAÇÃO NATURAL Algoritmos Genéticos Rafael Xavier e Willyan Abilhoa Outubro/2012 www.computacaonatural.com.br

Leia mais

3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS

3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS 3 ALGORITMOS GENÉTICOS : CONCEITOS BÁSICOS E EXTENSÕES VINCULADAS AO PROBLEMA DE MINIMIZAÇÃO DE PERDAS 3.1 - Conceitos Básicos Entendemos como algoritmo um conjunto predeterminado e bem definido de regras

Leia mais

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br Universidade Federal de Alfenas Departamento de Ciências

Leia mais

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA 136 ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA FILITTO, Danilo 1 Resumo: Os algoritmos Genéticos inspiram-se no processo de evolução natural e são utilizados para resolver problemas de busca e otimização

Leia mais

ALGORITMO HÍBRIDO PARA SISTEMAS DE RECOMENDAÇÃO UTILIZANDO FILTRAGEM COLABORATIVA E ALGORITMO GENÉTICO

ALGORITMO HÍBRIDO PARA SISTEMAS DE RECOMENDAÇÃO UTILIZANDO FILTRAGEM COLABORATIVA E ALGORITMO GENÉTICO ALGORITMO HÍBRIDO PARA SISTEMAS DE RECOMENDAÇÃO UTILIZANDO FILTRAGEM COLABORATIVA E ALGORITMO GENÉTICO Renan de Oliveira Yamaguti Faculdade de Engenharia de Computação / CEATEC renan.yamaguti@terra.com.br

Leia mais

Revisão Inteligência Artificial ENADE. Prof a Fabiana Lorenzi Outubro/2011

Revisão Inteligência Artificial ENADE. Prof a Fabiana Lorenzi Outubro/2011 Revisão Inteligência Artificial ENADE Prof a Fabiana Lorenzi Outubro/2011 Representação conhecimento É uma forma sistemática de estruturar e codificar o que se sabe sobre uma determinada aplicação (Rezende,

Leia mais

Introdução às Redes Neurais Artificiais

Introdução às Redes Neurais Artificiais Introdução às Redes Neurais Artificiais Treinamento via Algoritmos Genéticos Prof. João Marcos Meirelles da Silva http://www.professores.uff.br/jmarcos Departamento de Engenharia de Telecomunicações Escola

Leia mais

Computação BioInspirada

Computação BioInspirada Computação BioInspirada Os Engenheiros da Natureza Fabrício Olivetti de França The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore

Leia mais

Conceitos Básicos de Algoritmos Genéticos: Teoria e Prática

Conceitos Básicos de Algoritmos Genéticos: Teoria e Prática Conceitos Básicos de Algoritmos Genéticos: Teoria e Prática Thatiane de Oliveira Rosa 1, Hellen Souza Luz 2 1 Curso de Sistemas de Informação Centro Universitário Luterano de Palmas (CEULP/ULBRA) Caixa

Leia mais

SISTEMAS INTELIGENTES DE APOIO À DECISÃO

SISTEMAS INTELIGENTES DE APOIO À DECISÃO SISTEMAS INTELIGENTES DE APOIO À DECISÃO As organizações estão ampliando significativamente suas tentativas para auxiliar a inteligência e a produtividade de seus trabalhadores do conhecimento com ferramentas

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial As organizações estão ampliando significativamente suas tentativas para auxiliar a inteligência e a produtividade de seus trabalhadores do conhecimento com ferramentas e técnicas

Leia mais

- Computação Evolutiva -

- Computação Evolutiva - - Computação Evolutiva - Prof. Dr. Cícero Garrozi DEINFO - UFRPE PPGIA@UFRPE cicerog@gmail.com Site da disciplina: http://cicerog.blogspot.com Sumário Situando a Computação Evolucionária Metáfora principal

Leia mais

Módulo 6: Inteligência Artificial

Módulo 6: Inteligência Artificial Módulo 6: Inteligência Artificial Assuntos: 6.1. Aplicações da IA 6.2. Sistemas Especialistas 6.1. Aplicações da Inteligência Artificial As organizações estão ampliando significativamente suas tentativas

Leia mais

Pós-Graduação em Engenharia Elétrica Inteligência Artificial

Pós-Graduação em Engenharia Elétrica Inteligência Artificial Pós-Graduação em Engenharia Elétrica Inteligência Artificial João Marques Salomão Rodrigo Varejão Andreão Inteligência Artificial Definição (Fonte: AAAI ): "the scientific understanding of the mechanisms

Leia mais

Aprendizagem de Máquina

Aprendizagem de Máquina Aprendizagem de Máquina Professor: Rosalvo Ferreira de Oliveira Neto Disciplina: Inteligência Artificial Tópicos 1. Definições 2. Tipos de aprendizagem 3. Paradigmas de aprendizagem 4. Modos de aprendizagem

Leia mais

4 Arquitetura básica de um analisador de elementos de redes

4 Arquitetura básica de um analisador de elementos de redes 4 Arquitetura básica de um analisador de elementos de redes Neste capítulo é apresentado o desenvolvimento de um dispositivo analisador de redes e de elementos de redes, utilizando tecnologia FPGA. Conforme

Leia mais

Programa do Módulo 2. Processo Unificado: Visão Geral

Programa do Módulo 2. Processo Unificado: Visão Geral 9.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) O Processo Unificado (RUP) Processo Unificado: Visão Geral 9.2 Encaixa-se na definição geral de processo:

Leia mais

Microsoft Excel 2003

Microsoft Excel 2003 Associação Educacional Dom Bosco Faculdades de Engenharia de Resende Microsoft Excel 2003 Professores: Eduardo Arbex Mônica Mara Tathiana da Silva Resende 2010 INICIANDO O EXCEL Para abrir o programa Excel,

Leia mais

Evolução via Selecção Natural (Darwin) - sobrevivem os mais aptos (fittest )

Evolução via Selecção Natural (Darwin) - sobrevivem os mais aptos (fittest ) Generalidades A metáfora Biológica Evolução via Selecção Natural (Darwin) - sobrevivem os mais aptos (fittest ) Operadores Genéticos (Mendel) - recombinação (crossover ) - mutação (mutation ) Algoritmos

Leia mais

DESENVOLVIMENTO DE SISTEMA DE VIDA ARTIFICIAL BASEADO EM AGENTES DE COMPORTAMENTOS COMPLEXOS

DESENVOLVIMENTO DE SISTEMA DE VIDA ARTIFICIAL BASEADO EM AGENTES DE COMPORTAMENTOS COMPLEXOS DESENVOLVIMENTO DE SISTEMA DE VIDA ARTIFICIAL BASEADO EM AGENTES DE COMPORTAMENTOS COMPLEXOS RELATÓRIO FINAL DE PROJETO DE INICIAÇÃO CIENTÍFICA (PIBIC/CNPq/INPE) Juliana Martins Maia Pereira (UNIVAP, Bolsista

Leia mais

Evolução Biológica e Algoritmos Genéticos. Fábio Lima Custódio flc@lncc.br

Evolução Biológica e Algoritmos Genéticos. Fábio Lima Custódio flc@lncc.br Evolução Biológica e Algoritmos Genéticos Fábio Lima Custódio flc@lncc.br Sumário Conceitos gerais O que é evolução? Forças Evolutivas Mutação Deriva Gênica Fluxo gênico Seleção Natural A teoria evolutiva

Leia mais

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia e não têm a intenção de substituir o livro-texto, nem qualquer outra bibliografia. Introdução O Cálculo Numérico

Leia mais

Unified Modeling Language UML - Notações

Unified Modeling Language UML - Notações Unified Modeling Language UML - Notações Prof. Ms. Elvio Gilberto da Silva elvio@fmr.edu.br UML Ponto de Vista É gerada com propósito geral de uma linguagem de modelagem visual usada para especificar,

Leia mais

NOTA À 2ª EDIÇÃO... VII PREFÁCIO... IX. No Renascimento de uma Nova Era... IX PREÂMBULO... XIII. Organização do livro... xiii. Destinatários...

NOTA À 2ª EDIÇÃO... VII PREFÁCIO... IX. No Renascimento de uma Nova Era... IX PREÂMBULO... XIII. Organização do livro... xiii. Destinatários... NOTA À 2ª EDIÇÃO... VII PREFÁCIO... IX No Renascimento de uma Nova Era... IX Índice PREÂMBULO... XIII Organização do livro... xiii Destinatários... xiv Utilização do livro... xiv Agradecimentos... xiv

Leia mais

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14 1 Introdução O termo "roteamento de veículos" está relacionado a um grande conjunto de problemas de fundamental importância para a área de logística de transportes, em especial no que diz respeito ao uso

Leia mais

CURSO DE SISTEMAS DE INFORMAÇÃO

CURSO DE SISTEMAS DE INFORMAÇÃO 1 CURSO DE SISTEMAS DE INFORMAÇÃO EMENTÁRIO DAS DISCIPLINAS 2011.1 BRUSQUE (SC) 2015 2 SUMÁRIO 1ª FASE... 4 01 ARQUITETURA DE COMPUTADORES... 4 02 FILOSOFIA... 4 03 FUNDAMENTOS MATEMÁTICOS PARA COMPUTAÇÃO...

Leia mais

Palavras-Chaves: engenharia de requisitos, modelagem, UML.

Palavras-Chaves: engenharia de requisitos, modelagem, UML. APLICAÇÃO DA ENGENHARIA DE REQUISITOS PARA COMPREENSÃO DE DOMÍNIO DO PROBLEMA PARA SISTEMA DE CONTROLE COMERCIAL LEONARDO DE PAULA SANCHES Discente da AEMS Faculdades Integradas de Três Lagoas RENAN HENRIQUE

Leia mais

EMENTAS DAS DISCIPLINAS

EMENTAS DAS DISCIPLINAS EMENTAS DAS DISCIPLINAS CURSO CST ANÁLISE E DESENVOLVIMENTO DE SISTEMAS INTRODUÇÃO À COMPUTAÇÃO 68 A disciplina estuda a área da informática como um todo e os conceitos fundamentais, abrangendo desde a

Leia mais

EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS INTRODUÇÃO À COMPUTAÇÃO 60 h 1º Evolução histórica dos computadores. Aspectos de hardware: conceitos básicos de CPU, memórias,

Leia mais

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 UNIVERSIDADE FEDERAL DE VIÇOSA Departamento de Matemática - CCE Cálculo Numérico - MAT 271 Prof.: Valéria Mattos da Rosa As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

Análise e Projeto de. Aula 01. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

Análise e Projeto de. Aula 01. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Análise e Projeto de Sistemas I Aula 01 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Análise e Projeto de Sistemas I Horário das Aulas: 2as feiras das 10h10 às 11h40 e 5as feiras das 08h25

Leia mais

Curso Técnico Superior Profissional em Desenvolvimento Web

Curso Técnico Superior Profissional em Desenvolvimento Web Curso Técnico Superior Profissional em Desenvolvimento Web PROVA DE AVALIAÇÃO DE CAPACIDADE REFERENCIAL DE CONHECIMENTOS E APTIDÕES Áreas relevantes para o curso de acordo com o n.º 4 do art.º 11.º do

Leia mais

Documentação do Sistema de Reserva de Salas da Intranet do ICMC-USP

Documentação do Sistema de Reserva de Salas da Intranet do ICMC-USP UNIVERSIDADE DE SÃO PAULO Instituto de Ciências Matemáticas e de Computação Departamento de Ciências da Computação e Estatística Documentação do Sistema de Reserva de Salas da Intranet do ICMC-USP André

Leia mais

Algoritmos Genéticos (GA s)

Algoritmos Genéticos (GA s) Algoritmos Genéticos (GA s) 1 Algoritmos Genéticos (GA s) Dado um processo ou método de codificar soluções de um problema na forma de cromossomas e dada uma função de desempenho que nos dá um valor de

Leia mais

Nathalie Portugal Vargas

Nathalie Portugal Vargas Nathalie Portugal Vargas 1 Introdução Trabalhos Relacionados Recuperação da Informação com redes ART1 Mineração de Dados com Redes SOM RNA na extração da Informação Filtragem de Informação com Redes Hopfield

Leia mais

Complemento II Noções Introdutória em Redes Neurais

Complemento II Noções Introdutória em Redes Neurais Complemento II Noções Introdutória em Redes Neurais Esse documento é parte integrante do material fornecido pela WEB para a 2ª edição do livro Data Mining: Conceitos, técnicas, algoritmos, orientações

Leia mais

Automação do Processo de Instalação de Softwares

Automação do Processo de Instalação de Softwares Automação do Processo de Instalação de Softwares Aislan Nogueira Diogo Avelino João Rafael Azevedo Milene Moreira Companhia Siderúrgica Nacional - CSN RESUMO Este artigo tem como finalidade apresentar

Leia mais

FUNDAÇÃO DE APOIO AO ENSINO TÉCNICO DO ESTADO DO RIO DE JANEIRO FAETERJ Petrópolis Área de Extensão PLANO DE CURSO

FUNDAÇÃO DE APOIO AO ENSINO TÉCNICO DO ESTADO DO RIO DE JANEIRO FAETERJ Petrópolis Área de Extensão PLANO DE CURSO FUNDAÇÃO DE APOIO AO ENINO TÉCNICO DO ETADO DO RIO DE JANEIRO PLANO DE CURO 1. Identificação Curso de Extensão: INTRODUÇÃO AO ITEMA INTELIGENTE Professor Regente: José Carlos Tavares da ilva Carga Horária:

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Fases para um Projeto de Data Warehouse. Fases para um Projeto de Data Warehouse. Fases para um Projeto de Data Warehouse

Fases para um Projeto de Data Warehouse. Fases para um Projeto de Data Warehouse. Fases para um Projeto de Data Warehouse Definição escopo do projeto (departamental, empresarial) Grau de redundância dos dados(ods, data staging) Tipo de usuário alvo (executivos, unidades) Definição do ambiente (relatórios e consultas préestruturadas

Leia mais

PLATAFORMA URBANMOB Aplicativo para captura de trajetórias urbanas de objetos móveis

PLATAFORMA URBANMOB Aplicativo para captura de trajetórias urbanas de objetos móveis PLATAFORMA URBANMOB Aplicativo para captura de trajetórias urbanas de objetos móveis Gabriel Galvão da Gama 1 ; Reginaldo Rubens da Silva 2 ; Angelo Augusto Frozza 3 RESUMO Este artigo descreve um projeto

Leia mais

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO ESCOLA DE ENGENHARIA DEPARTAMENTO DE ELETRÔNICA. Sistema de Gerenciamento Eletrônico de Documentos

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO ESCOLA DE ENGENHARIA DEPARTAMENTO DE ELETRÔNICA. Sistema de Gerenciamento Eletrônico de Documentos UNIVERSIDADE FEDERAL DO RIO DE JANEIRO ESCOLA DE ENGENHARIA DEPARTAMENTO DE ELETRÔNICA Sistema de Gerenciamento Eletrônico de Documentos Autor: Evandro Bastos Tavares Orientador: Antônio Claudio Gomez

Leia mais

CONTROLE DE QUALIDADE e VALIDAÇÃO DE PRODUTO CARTOGRÁFICO

CONTROLE DE QUALIDADE e VALIDAÇÃO DE PRODUTO CARTOGRÁFICO CONTROLE DE QUALIDADE e VALIDAÇÃO DE PRODUTO CARTOGRÁFICO Editar dados em vários formatos e armazenar estas informações em diferentes sistemas é provavelmente uma das atividades mais comuns para os profissionais

Leia mais

Trabalho de conclusão de curso apresentado à Faculdade de Informática do Centro Universitário Ritter dos Reis, como requisito parcial à obtenção do

Trabalho de conclusão de curso apresentado à Faculdade de Informática do Centro Universitário Ritter dos Reis, como requisito parcial à obtenção do 1 Trabalho de conclusão de curso apresentado à Faculdade de Informática do Centro Universitário Ritter dos Reis, como requisito parcial à obtenção do título de Bacharel em Sistemas de Informação. Orientador:

Leia mais

Universidade Católica de Pelotas. Centro Politécnico. Analise e Desenvolvimento de Sistema LET S RUNNING. Por. Guilherme Carvalho Gehling

Universidade Católica de Pelotas. Centro Politécnico. Analise e Desenvolvimento de Sistema LET S RUNNING. Por. Guilherme Carvalho Gehling Universidade Católica de Pelotas Centro Politécnico Analise e Desenvolvimento de Sistema LET S RUNNING Por Guilherme Carvalho Gehling Documento de conclusão da disciplina de Trabalho de Curso II Orientador.

Leia mais

EMENTÁRIO DO CURSO DE SISTEMAS DE INFORMAÇÃO

EMENTÁRIO DO CURSO DE SISTEMAS DE INFORMAÇÃO 1/5 ANEXO II RESOLUÇÃO CONSEPE Nº 31/2005 EMENTÁRIO DO CURSO DE SISTEMAS DE INFORMAÇÃO I SEMESTRE Algoritmos e Estruturas de Dados I Fundamentos da Computação Fundamentos Matemáticos para a Computação

Leia mais

TRBOnet Standard. Manual de Operação

TRBOnet Standard. Manual de Operação TRBOnet Standard Manual de Operação Versão 1.8 NEOCOM Ltd ÍNDICE 1. TELA DE RÁDIO 3 1.1 COMANDOS AVANÇADOS 4 1.2 BARRA DE FERRAMENTAS 5 2. TELA DE LOCALIZAÇÃO GPS 6 2.1 MAPLIB 6 2.2 GOOGLE EARTH 7 2.3

Leia mais

Introdução ao SIG. Objetivos Específicos 18/11/2010. Competência: Apresentar: Utilidade de um SIG

Introdução ao SIG. Objetivos Específicos 18/11/2010. Competência: Apresentar: Utilidade de um SIG MINISTÉRIO DO MEIO AMBIENTE - MMA INSTITUTO CHICO MENDES DE CONSERVAÇÃO DA BIODIVERSIDADE - ICMBio DIRETORIA DE PLANEJAMENTO, ADMINISTRAÇÃO E LOGÍSTICA - DIPLAN COORDENAÇÃO GERAL DE GESTÃO DE PESSOAS -

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números

Leia mais

Otimização de Recuperação de Informação usando Algoritmos Genéticos

Otimização de Recuperação de Informação usando Algoritmos Genéticos Otimização de Recuperação de Informação usando Algoritmos Genéticos Neide de Oliveira Gomes, M. Sc., nog@inpi.gov.br Prof. Marco Aurélio C. Pacheco, PhD Programa de Doutorado na área de Métodos de Apoio

Leia mais

2 Auto-sintonia de Bancos de Dados e Agentes de Software

2 Auto-sintonia de Bancos de Dados e Agentes de Software 2 Auto-sintonia de Bancos de Dados e Agentes de Software A uso da abordagem de agentes de software 1 pode trazer benefícios a áreas de aplicação em que é necessário construir sistemas autônomos, ou seja,

Leia mais

EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE

EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE por Miguel Aguiar Barbosa Trabalho de curso II submetido como

Leia mais

3 OOHDM e SHDM 3.1. OOHDM

3 OOHDM e SHDM 3.1. OOHDM 32 3 OOHDM e SHDM Com a disseminação em massa, desde a década de 80, de ambientes hipertexto e hipermídia, principalmente a Web, foi identificada a necessidade de elaborar métodos que estruturassem de

Leia mais

PROF. DR. PAULO ROBERTO SCHROEDER DE SOUZA

PROF. DR. PAULO ROBERTO SCHROEDER DE SOUZA Inteligência Artificial CONCEITOS PROF. DR. PAULO ROBERTO SCHROEDER DE SOUZA O que é Inteligência Artificial O que é Inteligência Artificial? É a ciência e engenharia de projetar/construir máquinas inteligentes,

Leia mais

EMENTAS DAS DISCIPLINAS

EMENTAS DAS DISCIPLINAS EMENTAS DAS DISCIPLINAS CST SISTEMAS DE INFORMAÇÃO DISCIPLINA: Algoritmo e Programação I A disciplina aborda o estudo de algoritmos, envolvendo os conceitos fundamentais: variáveis, tipos de dados, constantes,

Leia mais

CAPÍTULO 1 INTRODUÇÃO 1.1 INTRODUÇÃO

CAPÍTULO 1 INTRODUÇÃO 1.1 INTRODUÇÃO CAPÍTULO 1 INTRODUÇÃO 1.1 INTRODUÇÃO Em quase todas as nossas atividades diárias precisamos enfrentar filas para atender as nossas necessidades. Aguardamos em fila na padaria, nos bancos, quando trafegamos

Leia mais

Introdução à Simulação

Introdução à Simulação Introdução à Simulação O que é simulação? Wikipedia: Simulação é a imitação de alguma coisa real ou processo. O ato de simular algo geralmente consiste em representar certas características e/ou comportamentos

Leia mais

Computação Evolutiva: desvendando os algoritmos genéticos Evolutionary Computing: unleashing genetic algorithms

Computação Evolutiva: desvendando os algoritmos genéticos Evolutionary Computing: unleashing genetic algorithms Computação Evolutiva: desvendando os algoritmos genéticos Evolutionary Computing: unleashing genetic algorithms Sílvio Petroli Neto 1, FAJ, USF Resumo Este trabalho apresenta os Algoritmos Genéticos, uma

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Tipos de SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução 2 n As organizações modernas competem entre si para satisfazer as necessidades dos seus clientes de um modo

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

Sistema de Recomendação de Profissionais de Tecnologia da Informação

Sistema de Recomendação de Profissionais de Tecnologia da Informação 196 - Encontro Anual de Tecnologia da Informação Sistema de Recomendação de Profissionais de Tecnologia da Informação Filipe da Trindade Lima¹, Sidnei Renato Silveira2 ¹Centro Universitário Ritter dos

Leia mais

3 Metodologia de Previsão de Padrões de Falha

3 Metodologia de Previsão de Padrões de Falha 3 Metodologia de Previsão de Padrões de Falha Antes da ocorrência de uma falha em um equipamento, ele entra em um regime de operação diferente do regime nominal, como descrito em [8-11]. Para detectar

Leia mais

Unioeste Universidade Estadual do Oeste do Paraná

Unioeste Universidade Estadual do Oeste do Paraná Unioeste Universidade Estadual do Oeste do Paraná CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Colegiado de Informática Curso de Bacharelado em Informática Especificação de Requisitos e Modelagem Orientada

Leia mais

ESTUDO PRELIMINAR SOBRE A ESCALABILIDADE DE UM ALGORITMO GENÉTICO PARALELIZADO COM OPENMP. Mateus Fontoura Gomes da Rosa Márcia C.

ESTUDO PRELIMINAR SOBRE A ESCALABILIDADE DE UM ALGORITMO GENÉTICO PARALELIZADO COM OPENMP. Mateus Fontoura Gomes da Rosa Márcia C. ESTUDO PRELIMINAR SOBRE A ESCALABILIDADE DE UM ALGORITMO GENÉTICO PARALELIZADO COM OPENMP Mateus Fontoura Gomes da Rosa Márcia C. Cera Roteiro Introdução Problema de Roteamento de Veículos Objetivos da

Leia mais

Módulo 4: Gerenciamento de Dados

Módulo 4: Gerenciamento de Dados Módulo 4: Gerenciamento de Dados 1 1. CONCEITOS Os dados são um recurso organizacional decisivo que precisa ser administrado como outros importantes ativos das empresas. A maioria das organizações não

Leia mais

Problemas Multi-modais e Distribuições Espaciais em Algoritmos Genéticos.

Problemas Multi-modais e Distribuições Espaciais em Algoritmos Genéticos. Problemas Multi-modais e Distribuições Espaciais em Algoritmos Genéticos. Thiago da Mota Souza Coordenação de Pós-Graduação e Pesquisa de Engenharia Centro de Tecnologia Universidade Federal do Rio de

Leia mais

2.1.2 Definição Matemática de Imagem

2.1.2 Definição Matemática de Imagem Capítulo 2 Fundamentação Teórica Este capítulo descreve os fundamentos e as etapas do processamento digital de imagens. 2.1 Fundamentos para Processamento Digital de Imagens Esta seção apresenta as propriedades

Leia mais

Administração de Sistemas de Informação Gerenciais

Administração de Sistemas de Informação Gerenciais Administração de Sistemas de Informação Gerenciais UNIDADE VI: Como desenvolver Sistemas de Informação e Gerenciar Projetos. Novos sistemas de informação são construídos como soluções para os problemas

Leia mais

Engenharia de Software

Engenharia de Software CENTRO UNIVERSITÁRIO NOVE DE JULHO Profº. Edson T. França edson.franca@uninove.br Software Sistemas Conjunto de elementos, entre os quais haja alguma relação Disposição das partes ou dos elementos de um

Leia mais

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

ADMINISTRAÇÃO DOS RECURSOS DE DADOS Capítulo 7 ADMINISTRAÇÃO DOS RECURSOS DE DADOS 7.1 2003 by Prentice Hall OBJETIVOS Por que as empresas sentem dificuldades para descobrir que tipo de informação precisam ter em seus sistemas de informação?

Leia mais

ALGORITMOS GENÉTICOS

ALGORITMOS GENÉTICOS ALGORITMOS GENÉTICOS INTRODUÇÃO São métodos adaptativos que podem ser usados para resolver problemas de busca e otimização. Na natureza a combinação de boas características provenientes de diferentes indivíduos

Leia mais

A linguagem UML. UML e Diagramas de Casos de Uso e Classes. Por que usar UML? O que é modelagem?

A linguagem UML. UML e Diagramas de Casos de Uso e Classes. Por que usar UML? O que é modelagem? UML e Diagramas de Casos de Uso e Classes Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com A linguagem UML UML (Unified Modeling Language) Linguagem de Modelagem Unificada É uma linguagem de modelagem

Leia mais

Pesquisa Operacional

Pesquisa Operacional GOVERNO DO ESTADO DO PARÁ UNIVERSIDADE DO ESTADO DO PARÁ CENTRO DE CIÊNCIAS NATURAIS E TECNOLOGIA DEPARTAMENTO DE ENGENHARIA Pesquisa Operacional Tópico 4 Simulação Rosana Cavalcante de Oliveira, Msc rosanacavalcante@gmail.com

Leia mais

ORIENTAÇÕES SOBRE A PROVA DISCURSIVA

ORIENTAÇÕES SOBRE A PROVA DISCURSIVA IF SUDESTE MG REITORIA Av. Francisco Bernardino, 165 4º andar Centro 36.013-100 Juiz de Fora MG Telefax: (32) 3257-4100 CONCURSO PÚBLICO PARA PROVIMENTO DE CARGO EFETIVO ORIENTAÇÕES SOBRE A PROVA DISCURSIVA

Leia mais

1. Método Simplex. Faculdade de Engenharia Eng. Celso Daniel Engenharia de Produção. Pesquisa Operacional II Profa. Dra. Lílian Kátia de Oliveira

1. Método Simplex. Faculdade de Engenharia Eng. Celso Daniel Engenharia de Produção. Pesquisa Operacional II Profa. Dra. Lílian Kátia de Oliveira Faculdade de Engenharia Eng. Celso Daniel Engenharia de Produção. Método Simple.. Solução eata para os modelos de Programação Linear O modelo de Programação Linear (PL) reduz um sistema real a um conjunto

Leia mais

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS PDS - DATASUS Processo de Desenvolvimento de Software do DATASUS Coordenação Geral de Arquitetura e Engenharia Tecnológica Coordenação de Padronização e Qualidade de Software Gerência de Padrões e Software

Leia mais

Concepção e Elaboração

Concepção e Elaboração UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientado a Objetos Concepção e Elaboração Estudo

Leia mais

MANUAL RASTREAMENTO 2013

MANUAL RASTREAMENTO 2013 MANUAL RASTREAMENTO 2013 Visão Geral O menu geral é o principal módulo do sistema. Através do visão geral é possível acessar as seguintes rotinas do sistema: Sumário, localização, trajetos, últimos registros.

Leia mais

Este artigo tem o objetivo de

Este artigo tem o objetivo de ARTIGO Muito além do roteirizador: distribuição de produtos de baixa densidade Divulgação Danilo Campos O roteamento de veículos tradicional contempla somente uma dimensão de capacidade, normalmente peso

Leia mais

Paradigmas da IA. Eixos centrais (das diferenças)

Paradigmas da IA. Eixos centrais (das diferenças) Paradigmas da IA Paradigmas da IA Simbólico: metáfora lingüística/lógica Sistemas de produção Conexionista: metáfora cérebro Redes neurais Evolucionista: metáfora teoria da evolução natural Algoritmos

Leia mais

UM PROTÓTIPO DO SISTEMA PARA CONTROLE DE BIBLIOTECAS POR MEIO DE PÁGINAS WEB DINÂMICAS 1

UM PROTÓTIPO DO SISTEMA PARA CONTROLE DE BIBLIOTECAS POR MEIO DE PÁGINAS WEB DINÂMICAS 1 UM PROTÓTIPO DO SISTEMA PARA CONTROLE DE BIBLIOTECAS POR MEIO DE PÁGINAS WEB DINÂMICAS 1 Daniel de Faveri HONORATO 2, Renato Bobsin MACHADO 3, Huei Diana LEE 4, Feng Chung WU 5 Escrito para apresentação

Leia mais

15 Conceitos de Bancos de Dados com o LibreOffice Base

15 Conceitos de Bancos de Dados com o LibreOffice Base Introdução a Informática - 1º semestre AULA 14 Prof. André Moraes Objetivos desta aula: Explorar as propriedades na criação de bancos de dados no LibreOffice Base; Criar e explorar tabelas; Criar e explorar

Leia mais

Codificação/Compressão de Vídeo. Tópico: Vídeo (Codificação + Compressão)

Codificação/Compressão de Vídeo. Tópico: Vídeo (Codificação + Compressão) Tópico: Vídeo (Codificação + Compressão) Um vídeo pode ser considerado como uma seqüência de imagens estáticas (quadros). Cada um desses quadros pode ser codificado usando as mesmas técnicas empregadas

Leia mais

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Cálculo Numérico Aula : Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Computação Numérica - O que é Cálculo Numérico? Cálculo numérico é uma metodologia para resolver problemas matemáticos

Leia mais

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI Dr. George SILVA; Dr. Gilbert SILVA; Gabriel GUIMARÃES; Rodrigo MEDEIROS; Tiago ROSSINI; Centro Federal de Educação Tecnológica do Rio Grande do

Leia mais

ESCOLA ESTADUAL DE EDUCAÇÃO PROFISSIONAL ESTRELA TÉCNICO EM INFORMÁTICA SISTEMA DE LOCADORA. Rodrigo Luiz da Rosa

ESCOLA ESTADUAL DE EDUCAÇÃO PROFISSIONAL ESTRELA TÉCNICO EM INFORMÁTICA SISTEMA DE LOCADORA. Rodrigo Luiz da Rosa ESCOLA ESTADUAL DE EDUCAÇÃO PROFISSIONAL ESTRELA TÉCNICO EM INFORMÁTICA SISTEMA DE LOCADORA Rodrigo Luiz da Rosa Estrela 2012 EIXO TECNOLÓGICO: Informação e Comunicação TÍTULO: SISTEMA DE LOCADORA AUTOR:

Leia mais

Bacharelado em Ciência e Tecnologia Bacharelado em Ciências e Humanidades. Representação Gráfica de Funções

Bacharelado em Ciência e Tecnologia Bacharelado em Ciências e Humanidades. Representação Gráfica de Funções Bacharelado em Ciência e Tecnologia Bacharelado em Ciências e Humanidades BC 0005 Bases Computacionais da Ciência Representação Gráfica de Funções Prof a Maria das Graças Bruno Marietto graca.marietto@ufabc.edu.br

Leia mais

Aumentando a segurança do MD6 em relação aos ataques diferenciais

Aumentando a segurança do MD6 em relação aos ataques diferenciais Aumentando a segurança do MD6 em relação aos ataques diferenciais Valdson S. Cleto 1, Routo Terada 1 1 Instituto de Matemática e Estatística Universidade de São Paulo (USP) São Paulo SP Brazil vcleto@gmail.com,

Leia mais

Atividade extra. Questão 1. Questão 2. Ciências da Natureza e suas Tecnologias Biologia. A diversidade biológica é o fruto da variação genética.

Atividade extra. Questão 1. Questão 2. Ciências da Natureza e suas Tecnologias Biologia. A diversidade biológica é o fruto da variação genética. Atividade extra Questão 1 A diversidade biológica é o fruto da variação genética. Falar em biodiversidade e em tempo significa, necessariamente, falar de: a. Degeneração. b. Conservação. c. Evolução. d.

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

Algumas propriedades dos objetos:

Algumas propriedades dos objetos: Orientação a Objetos Vivemos num mundo de objetos. Esses objetos existem na natureza, nas entidades feitas pelo homem, nos negócios e nos produtos que usamos. Eles podem ser categorizados, descritos, organizados,

Leia mais

Inteligência Computacional [2COP229]

Inteligência Computacional [2COP229] Inteligência Computacional [2COP229] Mestrado em Ciência da Computação Sylvio Barbon Jr barbon@uel.br (2/24) Tema Aula 1 Introdução ao Reconhecimento de Padrões 1 Introdução 2 Componentes clássicos da

Leia mais

EMENTAS DAS DISCIPLINAS

EMENTAS DAS DISCIPLINAS EMENTAS DAS DISCIPLINAS CTS DE REDES DE COMPUTADORES INTRODUÇÃO À COMPUTAÇÃO 68 A disciplina estuda a área da informática como um todo e os conceitos fundamentais, abrangendo desde a história e a evolução

Leia mais

ALOCAÇÃO DE DEMANDA ESCOLAR USANDO TECNOLOGIA SIG

ALOCAÇÃO DE DEMANDA ESCOLAR USANDO TECNOLOGIA SIG ALOCAÇÃO DE DEMANDA ESCOLAR USANDO TECNOLOGIA SIG Daniel da Silva Marques (UFAM) daniel.ufam2009@hotmail.com Caio Ronan Lisboa Pereira (UFAM) caioronan@hotmail.com Almir Lima Caggy (UFAM) almir_kggy@hotmail.com

Leia mais

UNIVERSIDADE FEDERAL DE PERNAMBUCO - PRÓ-REITORIA PARA ASSUNTOS ACADÊMICOS CURRÍCULO DO CURSO DE GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO PERFIL

UNIVERSIDADE FEDERAL DE PERNAMBUCO - PRÓ-REITORIA PARA ASSUNTOS ACADÊMICOS CURRÍCULO DO CURSO DE GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO PERFIL PERFIL 3001 - Válido para os alunos ingressos a partir de 2002.1 Disciplinas Obrigatórias Ciclo Geral Prát IF668 Introdução à Computação 1 2 2 45 MA530 Cálculo para Computação 5 0 5 75 MA531 Álgebra Vetorial

Leia mais