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.

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

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

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

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior MRP II Introdução A lógica de cálculo das necessidades é conhecida há muito tempo Porém só pode ser utilizada na prática em situações mais complexas a partir dos anos 60 A partir de meados da década de

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

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

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

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

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

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

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas PIM PROGRAMA DE INTEGRAÇÃO COM O MERCADO GUIA DE CURSO Tecnologia em Sistemas de Informação Tecnologia em Desenvolvimento Web Tecnologia em Análise e Desenvolvimento de Sistemas Tecnologia em Sistemas

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

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

Leia mais

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA Muitas organizações terceirizam o transporte das chamadas em seus call-centers, dependendo inteiramente

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO 10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO UMA DAS GRANDES FUNÇÕES DA TECNOLOGIA É A DE FACILITAR A VIDA DO HOMEM, SEJA NA VIDA PESSOAL OU CORPORATIVA. ATRAVÉS DELA, ELE CONSEGUE

Leia mais

Implantação. Prof. Eduardo H. S. Oliveira

Implantação. Prof. Eduardo H. S. Oliveira Visão Geral A implantação de um sistema integrado de gestão envolve uma grande quantidade de tarefas que são realizadas em períodos que variam de alguns meses a alguns anos, e dependem de diversos fatores,

Leia mais

Gestão de Relacionamento com o Cliente CRM

Gestão de Relacionamento com o Cliente CRM Gestão de Relacionamento com o Cliente CRM Fábio Pires 1, Wyllian Fressatti 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil pires_fabin@hotmail.com wyllian@unipar.br RESUMO. O projeto destaca-se

Leia mais

Governança de TI. ITIL v.2&3. parte 1

Governança de TI. ITIL v.2&3. parte 1 Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços

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

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

Editor de Questões E24H

Editor de Questões E24H Editor de Questões E24H Conteúdo: Apresentação O que é o Editor de Questões Objetivos Potencialidades Vantagens adicionais Visualização no site (Quem acessa o Editor de Questões) (não Para quem o Editor

Leia mais

Sistema de Controle de Solicitação de Desenvolvimento

Sistema de Controle de Solicitação de Desenvolvimento Sistema de Controle de Solicitação de Desenvolvimento Introdução O presente documento descreverá de forma objetiva as principais operações para abertura e consulta de uma solicitação ao Setor de Desenvolvimento

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

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

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Google Drive. Passos. Configurando o Google Drive

Google Drive. Passos. Configurando o Google Drive Google Drive um sistema de armazenagem de arquivos ligado à sua conta Google e acessível via Internet, desta forma você pode acessar seus arquivos a partir de qualquer dispositivo que tenha acesso à Internet.

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

PLANEJAMENTO DA MANUFATURA

PLANEJAMENTO DA MANUFATURA 58 FUNDIÇÃO e SERVIÇOS NOV. 2012 PLANEJAMENTO DA MANUFATURA Otimizando o planejamento de fundidos em uma linha de montagem de motores (II) O texto dá continuidade à análise do uso da simulação na otimização

Leia mais

Algoritmos e Estrutura de Dados III. Árvores

Algoritmos e Estrutura de Dados III. Árvores Algoritmos e Estrutura de Dados III Árvores Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

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

Planejando o aplicativo

Planejando o aplicativo Um aplicativo do Visual FoxPro geralmente inclui um ou mais bancos de dados, um programa principal que configura o ambiente de sistema do aplicativo, além de uma interface com os usuários composta por

Leia mais

Microsoft Access XP Módulo Um

Microsoft Access XP Módulo Um Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo

Leia mais

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas 4.1 Motivação Sistemas de Informação são usados em diversos níveis dentro de uma organização, apoiando a tomada de decisão; Precisam estar

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR 6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,

Leia mais

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

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

Controle do Arquivo Técnico

Controle do Arquivo Técnico Controle do Arquivo Técnico Os documentos existentes de forma física (papel) no escritório devem ser guardados em pastas (normalmente pastas suspensas) localizadas no Arquivo Técnico. Este Arquivo pode

Leia mais

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas Microsoft Power Point 2003 No Microsoft PowerPoint 2003, você cria sua apresentação usando apenas um arquivo, ele contém tudo o que você precisa uma estrutura para sua apresentação, os slides, o material

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

MODELAGEM E SIMULAÇÃO

MODELAGEM E SIMULAÇÃO MODELAGEM E SIMULAÇÃO Professor: Dr. Edwin B. Mitacc Meza edwin@engenharia-puro.com.br www.engenharia-puro.com.br/edwin Terminologia Básica Utilizada em de Sistemas Terminologia Básica Uma série de termos

Leia mais

Como conduzir com sucesso um projeto de melhoria da qualidade

Como conduzir com sucesso um projeto de melhoria da qualidade Como conduzir com sucesso um projeto de melhoria da qualidade Maria Luiza Guerra de Toledo Coordenar e conduzir um projeto de melhoria da qualidade, seja ele baseado no Seis Sigma, Lean, ou outra metodologia

Leia mais

Disciplina: Unidade III: Prof.: E-mail: Período:

Disciplina: Unidade III: Prof.: E-mail: Período: Encontro 08 Disciplina: Sistemas de Banco de Dados Unidade III: Modelagem Lógico de Dados Prof.: Mario Filho E-mail: pro@mariofilho.com.br Período: 5º. SIG - ADM Relembrando... Necessidade de Dados Projeto

Leia mais

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no 1.1 RATIONAL UNIFIED PROCESS (RUP) O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no processo que atende pelo nome de Processo Unificado (ou UP do inglês Unified

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

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

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

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

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart. Versão 1.6 15/08/2013 Visão Resumida Data Criação 15/08/2013 Versão Documento 1.6 Projeto Responsáveis

Leia mais

Itinerários de Ônibus Relatório Final

Itinerários de Ônibus Relatório Final CENTRO UNIVERSITÁRIO SENAC Itinerários de Ônibus Relatório Final Grupo 5 Caio Roque Daniel Nunes Elise Roese José Caneiro Marcos Grignani São Paulo Junho de 2007 1 ÍNDICE 1. Introdução... 3 2. Desenvolvimento...

Leia mais

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna O que é uma planilha eletrônica? É um aplicativo que oferece recursos para manipular dados organizados em tabelas. A partir deles pode-se gerar gráficos facilitando a análise e interpretação dos dados

Leia mais

5 Experiência de implantação do software de roteirização em diferentes mercados

5 Experiência de implantação do software de roteirização em diferentes mercados 5 Experiência de implantação do software de roteirização em diferentes mercados 5.1 Introdução Após apresentação feita sobre os processos para implantação de um software de roteirização de veículos da

Leia mais

Ajuda ao SciEn-Produção 1. 1. O Artigo Científico da Pesquisa Experimental

Ajuda ao SciEn-Produção 1. 1. O Artigo Científico da Pesquisa Experimental Ajuda ao SciEn-Produção 1 Este texto de ajuda contém três partes: a parte 1 indica em linhas gerais o que deve ser esclarecido em cada uma das seções da estrutura de um artigo cientifico relatando uma

Leia mais

Sistema de Acompanhamento ao Desempenho do Aluno

Sistema de Acompanhamento ao Desempenho do Aluno Sistema de Acompanhamento ao Desempenho do Aluno Manoel Cardoso da Silveira Neto 1, Luciana Vescia Lourega 1 1 Instituto Federal Farroupilha Campus Júlio de Castilhos RS - Brasil Caixa Postal 38 98.130-000

Leia mais

Introdução ao GED Simone de Abreu

Introdução ao GED Simone de Abreu Introdução ao GED Simone de Abreu GED O que é isso? O conhecimento teve, ao longo da história, diferentes significados e funções. No tempo das cavernas nossos antepassados transmitiam aos seus descendentes

Leia mais

15 Computador, projeto e manufatura

15 Computador, projeto e manufatura A U A UL LA Computador, projeto e manufatura Um problema Depois de pronto o desenho de uma peça ou objeto, de que maneira ele é utilizado na fabricação? Parte da resposta está na Aula 2, que aborda as

Leia mais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e

Leia mais

Manual do usuário. v1.0

Manual do usuário. v1.0 Manual do usuário v1.0 1 Iniciando com o Vivo Gestão 1. como fazer login a. 1º acesso b. como recuperar a senha c. escolher uma conta ou grupo (hierarquia de contas) 2. como consultar... de uma linha a.

Leia mais

Cadastramento de Computadores. Manual do Usuário

Cadastramento de Computadores. Manual do Usuário Cadastramento de Computadores Manual do Usuário Setembro 2008 ÍNDICE 1. APRESENTAÇÃO 1.1 Conhecendo a solução...03 Segurança pela identificação da máquina...03 2. ADERINDO À SOLUÇÃO e CADASTRANDO COMPUTADORES

Leia mais

Módulo 4. Construindo uma solução OLAP

Módulo 4. Construindo uma solução OLAP Módulo 4. Construindo uma solução OLAP Objetivos Diferenciar as diversas formas de armazenamento Compreender o que é e como definir a porcentagem de agregação Conhecer a possibilidade da utilização de

Leia mais

Abordagem de Processo: conceitos e diretrizes para sua implementação

Abordagem de Processo: conceitos e diretrizes para sua implementação QP Informe Reservado Nº 70 Maio/2007 Abordagem de Processo: conceitos e diretrizes para sua implementação Tradução para o português especialmente preparada para os Associados ao QP. Este guindance paper

Leia mais

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

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

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com Engenharia de Software: conceitos e aplicações Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com 1 Objetivos da aula Apresentar os conceitos de Engenharia de Software e explicar a sua importância.

Leia mais

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

2 Atualidade de uma base de dados

2 Atualidade de uma base de dados 2 Atualidade de uma base de dados Manter a atualidade de uma base de dados é um problema que pode ser abordado de diferentes maneiras. Cho e Garcia-Molina [CHO] definem esse problema da seguinte forma:

Leia mais

Tabela de roteamento

Tabela de roteamento Existem duas atividades que são básicas a um roteador. São elas: A determinação das melhores rotas Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar

Leia mais

Novidades no Q-flow 3.02

Novidades no Q-flow 3.02 Novidades no Q-flow 3.02 Introdução Um dos principais objetivos do Q-flow 3.02 é adequar-se às necessidades das grandes organizações. Por isso, o Q-flow 3.02 possui uma versão Enterprise que inclui funcionalidades

Leia mais

Plano de Carreira Sistema de Apoio à Gestão de Planos de Carreira

Plano de Carreira Sistema de Apoio à Gestão de Planos de Carreira Plano de Carreira Sistema de Apoio à Gestão de Planos de Carreira Manual do Usuário Página1 Sumário 1 Configurações Recomendadas... 4 2 Objetivos... 4 3 Acesso ao Sistema... 5 3.1. Acessar 6 3.2. Primeiro

Leia mais

Plano de Gerenciamento do Projeto

Plano de Gerenciamento do Projeto Projeto para Soluções Contábeis 2015 Plano de Gerenciamento do Projeto Baseado na 5ª edição do Guia PMBOK Brendon Genssinger o e Elcimar Silva Higor Muniz Juliermes Henrique 23/11/2015 1 Histórico de alterações

Leia mais

Capítulo 4 - Roteamento e Roteadores

Capítulo 4 - Roteamento e Roteadores Capítulo 4 - Roteamento e Roteadores 4.1 - Roteamento Roteamento é a escolha do módulo do nó de origem ao nó de destino por onde as mensagens devem transitar. Na comutação de circuito, nas mensagens ou

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

Associação Educacional Dom Bosco Curso de Engenharia 1º ano

Associação Educacional Dom Bosco Curso de Engenharia 1º ano Formatação condicional utilizando o valor da célula O que é? Algumas vezes é preciso destacar os valores, ou seja, como colocar em vermelho ou entre parênteses, os negativos, e de outra cor os positivos,

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

SISTEMAS DE GESTÃO São Paulo, Janeiro de 2005

SISTEMAS DE GESTÃO São Paulo, Janeiro de 2005 SISTEMAS DE GESTÃO São Paulo, Janeiro de 2005 ÍNDICE Introdução...3 A Necessidade do Gerenciamento e Controle das Informações...3 Benefícios de um Sistema de Gestão da Albi Informática...4 A Ferramenta...5

Leia mais

Automação de Locais Distantes

Automação de Locais Distantes Automação de Locais Distantes Adaptação do texto Improving Automation at Remote Sites da GE Fanuc/ Water por Peter Sowmy e Márcia Campos, Gerentes de Contas da. Nova tecnologia reduz custos no tratamento

Leia mais

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Cruzeiro SP 2008 FATEC Cruzeiro José da Silva Ferramenta CRM como estratégia de negócios Projeto de trabalho de formatura como requisito

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1132 Processo e qualidade de software II Prof. Me. Elias Ferreira Sala: 402 E Quarta-Feira:

Leia mais