• Nenhum resultado encontrado

Sistema de roteirização utilizando o problema do caixeiro viajante: um estudo de caso aplicado a otimização de rotas em um escritório de contabilidade

N/A
N/A
Protected

Academic year: 2023

Share "Sistema de roteirização utilizando o problema do caixeiro viajante: um estudo de caso aplicado a otimização de rotas em um escritório de contabilidade"

Copied!
67
0
0

Texto

(1)

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO ESPÍRITO SANTO

BACHARELADO EM SISTEMA DE INFORMAÇÃO

LEIDIANE DOS SANTOS DE SOUZA

SISTEMA DE ROTEIRIZAÇÃO UTILIZANDO O PROBLEMA DO CAIXEIRO VIAJANTE: UM ESTUDO DE CASO APLICADO A OTIMIZAÇÃO DE ROTAS EM UM

ESCRITÓRIO DE CONTABILIDADE.

Cachoeiro de Itapemirim 2022

(2)

LEIDIANE DOS SANTOS DE SOUZA

SISTEMA DE ROTEIRIZAÇÃO UTILIZANDO O PROBLEMA DO CAIXEIRO VIAJANTE: UM ESTUDO DE CASO APLICADO A OTIMIZAÇÃO DE ROTAS EM UM

ESCRITÓRIO DE CONTABILIDADE.

Trabalho de Conclusão de Curso apresentado à Co- ordenadoria do Curso de Sistemas de Informação do Instituto Federal do Espírito Santo, Campus Ca- choeiro de Itapemirim, como requisito parcial para a obtenção do título de Bacharel em Sistemas de Informação.

Orientador: Prof. Dra. Susana Brunoro Costa de Oliveira

Cachoeiro de Itapemirim 2022

(3)

(Biblioteca do Campus Cachoeiro de Itapemirim)

CDD: 005.1 Bibliotecário/a: Jacqueline Machado Silva CRB-ES nº 640

S729s Souza, Leidiane dos Santos de.

Sistema de roteirização utilizando o problema do caixeiro viajante: um estudo de caso aplicado a otimização de rotas em um escritório de contabilidade / Leidiane dos Santos de Souza. - 2022.

67 f. : il. ; 30 cm.

Orientador: Susana Brunoro Costa de Oliveira

TCC (Graduação) Instituto Federal do Espírito Santo, Campus Cachoeiro de Itapemirim, Sistemas de Informação, 2022.

1. Algoritmos de computador. 2. Software (desenvolvimento). 3.

Contabilidade. 4. Método de estudo de caso. 5. Cachoeiro de Itapemirim (ES). I. Oliveira, Susana Brunoro Costa de. II.Título III. Instituto Federal do Espírito Santo.

(4)

13/02/2023 10:29 Documento - SIPAC

https://sipac.ifes.edu.br/sipac/protocolo/documento/documento_visualizacao.jsf?imprimir=true&idDoc=1483269 1/1

MINISTÉRIO DA EDUCAÇÃO

INSTITUTO FEDERAL DO ESPÍRITO SANTO

FOLHA DE APROVAÇÃO-TCC nº 1/2023-CAI-CCTI Protocolo nº 23151.000019/2023-22

Cachoeiro De Itapemirim-ES, 03 de janeiro de 2023

LEIDIANE DOS SANTOS DE SOUZA

SISTEMA DE ROTEIRIZAÇÃO UTILIZANDO O PROBLEMA DO CAIXEIRO VIAJANTE: UM ESTUDO DE CASO APLICADO A OTIMIZAÇÃO DE ROTAS EM UM

ESCRITÓRIO DE CONTABILIDADE

Trabalho de Conclusão de Curso apresentado à Coordenadoria do Curso de Bacharelado em Sistemas de Informação do Ins tuto Federal do Espírito Santo, como requisito parcial para obtenção de tulo de Bacharel em Sistemas de Informação

Aprovado em 19 de dezembro de 2022 COMISSÃO EXAMINADORA Susana Brunoro Costa de Oliveira, D.sc.

Ins tuto Federal Do Espírito Santo Orientador

Rafael Vargas Mesquita dos Santos, D.sc.

Ins tuto Federal Do Espírito Santo Ricardo de Magalhães Simões, M.Sc.

Ins tuto Federal Do Espírito Santo

(Assinado digitalmente em 04/01/2023 00:17 )

RAFAEL VARGAS MESQUITA DOS SANTOS

PROFESSOR DO ENSINO BASICO TECNICO E TECNOLOGICO CAI-CCSI (11.02.18.01.08.02.13)

Matrícula: 1544937

(Assinado digitalmente em 06/01/2023 06:56 )

RICARDO DE MAGALHAES SIMOES

PROFESSOR DO ENSINO BASICO TECNICO E TECNOLOGICO- SUBSTITUTO

CAI-CCSI (11.02.18.01.08.02.13) Matrícula: 2543335

(Assinado digitalmente em 03/01/2023 18:33 )

SUSANA BRUNORO COSTA DE OLIVEIRA

PROFESSOR DO ENSINO BASICO TECNICO E TECNOLOGICO CAI-CCTI (11.02.18.01.08.02.07)

Matrícula: 1505999

Para verificar a autenticidade deste documento entre em https://sipac.ifes.edu.br/public/documentos/index.jsp informando seu número: 1, ano: 2023, tipo: FOLHA DE APROVAÇÃO-TCC, data de emissão: 03/01/2023 e o código de verificação: 37d2088473

(5)

LEIDIANE DOS SANTOS DE SOUZA

SISTEMA DE ROTEIRIZAÇÃO UTILIZANDO O PROBLEMA DO CAIXEIRO VIAJANTE: UM ESTUDO DE CASO APLICADO A OTIMIZAÇÃO DE ROTAS EM UM

ESCRITÓRIO DE CONTABILIDADE.

Trabalho de Conclusão de Curso apresentado à Coordenadoria do Curso de Sistemas de Informação do Instituto Federal do Espírito Santo, Campus Cachoeiro de Itapemirim, como requisito parcial para a obtenção do título de Bacharel em Sistemas de Informação.

COMISSÃO EXAMINADORA

Prof. Dra. Susana Brunoro Costa de Oliveira

Instituto Federal do Espírito Santo - Cachoeiro de Itapemirim

Orientador

Prof. Dr. Rafael Vargas Mesquita Instituto Federal do Espírito Santo -

Cachoeiro de Itapemirim

Prof. Dr. Ricardo de Magalhaes Simoes Instituto Federal do Espírito Santo -

Cachoeiro de Itapemirim

(6)

Dedico esse trabalho a todos aqueles que estiveram comigo, direta ou indiretamente, nessa desafiadora e fascinante jornada chamada graduação.

(7)

AGRADECIMENTOS

Agradeço primeiramente a Deus, por tudo que permitiu a mim nessa longa jornada, e por ter cuidado de tudo com a sua perfeição, preparando pessoas e oportunidades durante toda a minha caminhada. Sem Ele não teria conseguido ser resiliente e forte o suficiente para chegar até aqui. E agradeço também a Deus todos os livramentos que me foi dado, durante todos esses anos no trajeto para a faculdade.

Esclareço que dividirei meus agradecimentos em parágrafos, sem ordem de importân- cia, pois acredito que somos todas protagonista. Cada paragrafo será dedicado a uma pessoa ou a um grupo de pessoas, que marcaram minha trajetória de alguma forma e contribuíram para que hoje eu pudesse estar aqui escrevendo os meus agradecimentos.

Agradeço ao meu esposo, amigo e companheiro Luciano, pela paciência, carinho, dedicação e suporte principalmente com as crianças. A nossa rotina diária com nossos filhos, casa, trabalho e faculdade não é nada fácil, mas sempre vencemos diariamente todos os desafios. MigueleIsabelatão pequeninos mas sempre me ensinam que o amor, o abraço e dedicação é o que importa e nos revigora para mais um recomeço.

Obrigada filhos mamãe ama muito vocês.

Continuo agradecendo ao meu pai Carlos, que já não está entre nós, mas foi o responsável por eu me tornar a mulher que sou hoje, pois o seu olhar sempre me dizia que eu era capaz e o seu orgulho por mim era o motivo de acreditar que tudo é possível conquistar.

Agradeço a minha mãe Lídia, que esteve comigo nos melhores e piores momentos da minha vida e sempre me apoia, principalmente com os meus filhos Miguel e Isabela.

Em todos os momentos esteve sempre me aconselhando, orando e cuidando de mim e fazendo todo possível por mim.

Aos meus sogros Áurea e Juarez agradeço por todo suporte que me foi prestado em relação aos meus filhos, nos momentos que precisei deixa-los para estudar.

(8)

Agradeço ao meus irmãos Emanuel e Carlos Henrique que sempre me apoiaram quando precisava ir para o IFES e não tinha condução. Durante essa jornada, quando me acidentei de moto e precisei imobilizar meu pé, puder contar com a paciência e disponibilidade principalmente do meu irmão Carlos Henrique para me levar e buscar nas aulas.

Agradeço a Dr. Delma, minha psicóloga que com todo o seu profissionalismo, conhe- cimento e paciência me ajudou a enxergar e organizar as situações de sobrecarga física e emocional. No ano de 2017 momento de muita dor e incertezas, quando o meu esposo Luciano passou por um AVC, logo após o falecimento do meu pai. E na tentativa de me fazer entender os meu limites, Dr. Delma dizia com sotaque paulista

"Você não é super mulher!".

A minha amigaNatália, que posso chamar de minha irmã, agradeço por toda dedicação, carinho, atenção e paciência, nunca irei esquecer todos os momentos que pensei em desistir e você não tratou como "bobeira", voltou e me estendeu a mão. Você foi o anjo que Deus enviou para me guiar.

A minha amigaDanielle, quem também Deus nos permitiu se conhecer, que considero também a irmã que não tive, nossa amizade foi construída aos poucos e solidificada com base no companheirismo verdade e carinho, passamos por muitos momentos tensos durante toda essa jornada e a Dani sempre com um sorriso no rosto e nunca mostrando o desespero, depois de um tempo eu entendi que a luz que emana de você, é Deus que vê o coração que é cheio de bondade e solidariedade fazendo sempre sem esperar nada em troca.

O meu amigo Lucas, dedico os meus agradecimentos, pois você sempre com essa paciência me socorre nos momentos difíceis e com a sua gentileza sempre nos ensina que desesperar não resolve os problemas, obrigada por tudo meu amigo e é um prazer poder formar com você e compartilhar esse momento especial.

As minhas amigas, Gabrielle, Patrícia e Silvana. Que me ensinaram, cada uma do seu jeito, o verdadeiro sentido do que é Amizade, doando sempre atenção para as minhas solicitações. Sem vocês essa jornada seria muito mais difícil.

(9)

Aos meus Professores, gratidão por todos os ensinamentos. Com especial carinho e admiração agradeço ao ProfessorEverson, sempre paciente e disponível para as minhas lamurias nos finais de semestre. Mas grande parte dessa minha conquista foi graças a ele que sempre me aconselhou a continuar, obrigada Versonvocê é um exemplo de professor. Flávio Izo, quanta paciência e dedicação com todos, sempre passando as experiencias vividas e nos encorajando a seguir em frente. Agradeço ao ProfessorRafael Vargas, que com toda sua paciência, organização e didática, foi capaz de nos ensinar conceitos de forma prática, simples e clara. AgradeçoVargaspor toda dedicação. Agradeço ao ProfessorJoão Paulo, que sempre nos ensinou a acreditar em nós mesmo e dedicar-se em tudo, suas aulas sempre foram maravilhosas e desafiadora.

Eros sempre nos ensinando a ser resilientes, pois o mundo corporativo nunca são

"Flores"e sempre precisamos se dedicar para não comer Pizza fria. Agradeço a todos os professores que tive contato, nas diversas disciplinas que cursei ao longo do curso de Sistemas de Informação.

Agradeço aSilvani, a pedagoga do curso de SI, que com carinho e generosidade me auxilio no momento sensível da minha vida , quando Isabela nasceu e me trouxe muita tranquilidade e sabedoria para ministrar o final do meu semestre. Muito obrigada por todo apoio e atenção.

Por fim, dedico esse último paragrafo para agradecer a minha Professora orientadora Susana Brunoroque muito me ensinou com todo carinho e atenção durante o processo de desenvolvimento do projeto. A disciplina de Anteprojeto me mostrou o quanto fui agraciada com a escolha por você me orientar, pois mesmo tendo todas as evidências das minhas dificuldades você não desistiu de me orientar e sempre me encorajando a seguir, posso dizer que duvidava muito sobre "eu"conseguir escrever um TCC e você com toda dedicação me ensinou linha por linha. Os encontros inicia sempre com tensão de minha parte e você sempre com sua voz suave conseguia me acalmar e transparecer que tudo daria certo. Complemento dizendo que você foi enviada por Deus pra me ajudar a passar por mais esse desafio. Agradeço por acreditar em mim e por não me deixar desistir, você sempre será lembrada por mim, e sempre terei o compromisso de replicar toda dedicação que foi me dada.

(10)

"Porque sou eu que conheço os planos que tenho para vocês, diz o Senhor, planos de fazê-los prosperar e não de causar dano, planos de dar a vocês esperança e um futuro.

Então vocês clamarão a mim, virão orar a mim, e eu os ouvirei. Vocês me procurarão e me acharão quando me procurarem de todo o coração."

Jeremias 29:11-13

(11)

RESUMO

O crescimento do mercado tem contribuído para que as empresas tenham a necessi- dade de diferenciar os serviços prestados, portanto garantir a satisfação do cliente está sendo o objetivo principal das organizações. Além da prestação de um bom atendi- mento aos clientes, os escritórios necessitam controlar a produtividade das solicitações e o custo gerado pela demanda. As empresas do setor de contábil trabalham com uma grande movimentação de documentos por parte do cliente e do escritório, sendo de grande importância atender prontamente as solicitações garantindo a satisfação dos clientes. O trabalho tem o objetivo de utilizar da lógica do PCV, juntamente com a Heurística deSaving para desenvolver o aplicativo de entrega/coleta do escritório de contabilidade, onde o Problema do Caixeiro Viajante mostrou eficiência na implantação em vários projetos com demanda de roteirização, onde se fez necessário o estudo do tema em questão para aplicação no trabalho desenvolvido. Dado esse fato, o presente trabalho visa realizar o desenvolvimento de um sistema para o gerenciamento das solicitações de entrega ou recolhimento de documentos, bem como o roteamento do trajeto e o monitoramento das entregas. O trabalho conta como estudo de caso o Escritório de Contabilidade Janete Temporim, atuante no setor de serviços contábeis no município de cachoeiro de Itapemirim que atende um grande número de cliente.

Palavras-chave: Problema do Caixeiro Viajante, Roteamento, Contabilidade, Escritório, Documentos, Cliente

(12)

ABSTRACT

The growth of the market has contributed to the need for companies to differentiate the services provided, therefore ensuring customer satisfaction is the main objective of organizations. In addition to providing good customer service, offices need to control the productivity of requests and the cost generated by demand. Companies in the accounting sector work with a large movement of documents by the client and the office, and it is of great importance to respond promptly to requests, guaranteeing client satisfaction. The work aims to use the PCV logic, together with the Saving Heuristic to develop the accounting office delivery/collection application, where the Traveling Salesman Problem showed efficiency in the implementation in several projects with high demand of scripting, where it was necessary to study the theme in question for application in the work developed. Given this fact, the present work aims to carry out the development of a system for the management of requests for delivery or collection of documents, as well as route routing and monitoring of deliveries. The work counts as a case study the Janete Temporim Accounting Office, active in the accounting services sector in the municipality of cachoeiro de Itapemirim that serves a large number of customers.

Keywords: Traveling Salesman Problem, Routing, Accounting, Office, Documents, Customer

(13)

LISTA DE FIGURAS

Figura 1 – Exemplo do jogo Around the World. . . 22

Figura 2 – Representação do problema do caixeiro viajante . . . 23

Figura 3 – Grafo completo (a), Primeiro ciclo (b), Segundo ciclo (c). . . 24

Figura 4 – Exemplo de grafo com 4 vértices e 6 arestas . . . 25

Figura 5 – Caminhos para o grafo . . . 26

Figura 6 – Possibilidades de Rotas PCV . . . 27

Figura 7 – Grau de Complexidade do PCV . . . 27

Figura 8 – Exemplo do circuito hamiltoniano . . . 30

Figura 9 – Representação de Soluções Vizinhas 2-opt . . . 32

Figura 10 – Representação da Interação do Algoritmo de Lin e Kernighan . . . . 33

Figura 11 – Exemplo do Método Vizinho mais próximo . . . 33

Figura 12 – Grafo com quatro vértices e 6 arestas . . . 36

Figura 13 – As sete pontes de Königsburg . . . 36

Figura 14 – Grafo que representa as pontes de Königsburg. . . 37

Figura 15 – Rede de transporte. . . 38

Figura 16 – Um grafo hamiltoniano e um ciclo hamiltoniano. . . 38

Figura 17 – Estruturação da Codificação do Controller do Cliente . . . 47

Figura 18 – Estruturação da Codificação do Controller da Entrega . . . 47

Figura 19 – Estruturação da Codificação do Controller da Rota . . . 48

Figura 20 – Estruturação da Codificação do Controller da Cidade . . . 48

Figura 21 – Estruturação da Codificação do Controller da Estado . . . 49

Figura 22 – Estruturação da Codificação do Controller da Endereço . . . 49

Figura 23 – Tela de Início . . . 51

Figura 24 – Tela de Entrega . . . 52

Figura 25 – Tela de Cliente . . . 53

Figura 26 – Tela de exemplo para geração de rotas . . . 54

Figura 27 – Modelo Lógico. . . 55

Figura 28 – Rota gerada antes da aplicação da lógica Caixeiro Viajante . . . 57

Figura 29 – Rota gerada depois da aplicação da lógica Caixeiro Viajante . . . . 58

Figura 30 – Teste de Possibilidades . . . 59

(14)

Figura 31 – Rota Google Maps . . . 60

(15)

LISTA DE ABREVIATURAS

API -Application Programming Interface PCV - Problema do Caixeiro Viajante

SIG - Sistema de Informações Geográficas APP - Aplicativo

PRV - Problema de Roteamento de Veículos TSP -Travelling Salesman Problem

HTML - HyperText Markup Language VMP - Vizinho Mais Próximo

JVM -Java Virtual Machine

HTTP -Hypertext Transfer Protocol XML -Extensible Markup Language JSON -JavaScript Object Notation PWA -Progressive Web App SaaS -Progressive Web App CSS -Progressive Web App

ECJT - Escritório de Contabilidade Janete Temporim P -Polynomial time

NP -Non-Deterministic Polynomial time

(16)

SUMÁRIO

1 INTRODUÇÃO . . . . 17

1.1 Justificativa . . . 19

1.2 Objetivos. . . 20

1.3 Objetivo geral . . . 20

1.4 Objetivos Específicos . . . 20

2 REFERENCIAL TEÓRICO . . . . 21

2.1 O Problema do Caixeiro Viajante . . . 21

2.1.1 Formulação do Problema do Caixeiro Viajante . . . 23

2.1.2 Complexidade do Problema . . . 25

2.1.3 Abordagens para o PCV . . . 28

2.1.4 Métodos Exatos . . . 28

2.1.5 Força Bruta . . . 28

2.1.6 Branch-and-Bound . . . 28

2.2 Grafos . . . 29

2.2.1 Circuito Hamiltoniano . . . 29

2.2.2 Programação dinâmica . . . 30

2.3 Métodos Heurísticos . . . 30

2.3.1 Os Algorítimos Gulosos . . . 31

2.3.2 Método do Vizinho Mais Próximo . . . 31

2.3.3 Busca local . . . 31

2.3.4 Busca Tabu . . . 34

2.3.5 Colônias de Formigas . . . 34

2.3.6 Algoritmos Genéticos . . . 35

2.3.7 Saving . . . 35

2.4 Grafos . . . 35

2.4.1 As Pontes de Königsburg . . . 36

2.4.2 O uso dos Gráfos Atualmente . . . 37

2.4.3 Grafos Hamiltonianos . . . 38

2.5 APLICAÇÕES MÓVEIS . . . 39

2.6 Geoprocessamento . . . 39

(17)

2.7 APIs para Mapas . . . 40

2.8 Google Maps . . . 42

2.9 Trabalhos Relacionados . . . 42

3 DESENVOLVIMENTO . . . . 44

3.1 Especificação do Sistema . . . 44

3.1.1 Requisitos Funcionais . . . 44

3.1.2 Requisitos Não Funcionais . . . 44

3.2 FERRAMENTAS E TECNOLOGIAS . . . 45

3.2.1 Directions API . . . 45

3.2.2 Distance Matrix API . . . 45

3.2.3 Maps JavaScript API . . . 46

3.3 Linguagem de Programação Utilizada . . . 46

3.3.1 Backend . . . 46

3.3.2 Frontend . . . 50

3.3.3 Banco de Dados . . . 54

4 RESULTADOS E DISCUSSÃO . . . . 56

4.1 Estudo de Caso . . . 56

4.1.1 Coleta de Dados . . . 56

4.2 Validação . . . 57

5 CONCLUSÃO . . . . 61

REFERÊNCIAS . . . . 63

(18)

17

1 INTRODUÇÃO

A contabilidade tem um papel importante junto as empresas, pois é através dela que ocorre o desenvolvimento seguro de uma empresa e comunicação entre empresa e os órgãos públicos, constantemente as empresas precisam gerar relatórios de movi- mentação interna, ou seja mostrar ao poder publico toda a sua movimentação. Quando a empresa é criada, é preciso uma serie de decisões por parte do empresário e, para desenvolver e manter de forma segura a empresa, a área contábil atua com a gestão de organização, facilitando a compreensão do setor tributário e financeiro de uma empresa. A empresa que contrata os serviços contábeis, precisa de eficiência no desenvolvimento da empresa, ou seja, o serviço prestado por uma contabilidade precisa ser de qualidade. Segundo Lovelock e Wirtz (2006) os clientes que necessitam de usar serviços, de um modo geral, enfrentam problemas como: não cumprimento de prazos, entregas atrasadas e complicação de procedimentos.

Segundo Roca e Szabo (2015) a fidelização do cliente é quando, mesmo diante de diferentes prestadores de serviço, o seu serviço é considerado o melhor e isso é atribuído à qualidade do serviço prestado. Para que isso ocorra é necessário um diferencial, o que pode ser como expor os valores da empresa, produtos inovadores, diferencial da concorrência entre outras estratégias. O mundo dos negócios cresce e inova todos os dias e torna cada vez mais difícil se diferenciar constantemente, porem temos que considerar a necessidade do cliente o que torna fácil o desenvolvimento da empresa, pois o cliente que tem suas necessidades atendidas, dificilmente vai preferir trocar de fornecedor, já que toda mudança gera algum custo.

A empresa prestadora de serviço contábil atualmente vem sofrendo grandes mudanças, antes era opcional se adequar ao sistema de inovação, porem hoje precisamos entender a tecnologia e a suas aplicações em qualquer situação, pois o mundo está cada vez mais interessado na praticidade que a tecnologia oferece. Segundo Lovelock e Wirtz (2006) os clientes atribuem a qualidade do serviço fazendo a comparação do serviço que foi prestado com as suas expectativas.Os tempos atuais a utilização de tecnologia de forma correta é vista como positivo para as empresas.

(19)

18

A entrega de documentos normalmente é feita de forma simples e manual, mesmo diante da simplicidade podemos dizer que o escritório que mantém o sistema de entrega e recolhimento de documentos propõe um diferencial ao seu cliente, pois em tempos de múltiplas atividades, as empresas precisam cada vez se preocupar menos com outras atividades mesmo que seja um simples recolhimento de documentos. Os tempos atuais e informatizados chegaram, porém ainda falta muito para aposentar o papel e o escritório de contabilidade deixar de entregar e receber documentos.

Os documentos de uma empresa são de grande responsabilidade para um escritório de contabilidade e na maioria das vezes, neles estão contidos prazos que as empresas precisam cumprir, por isso o sistema de entrega simples se torna complexo. Há muito tempo, o controle de entrega e recebimento de documentos é feito pelas empresas através de um livro de protocolo, atividade manual de listagem dos documentos a serem entregues e a assinatura que confirma a entrega do documento , sendo que o processo de entrega é executada por um motoboy.

O processo de entrega é também uma situação a ser avaliada, pois há um custo de envio com o tempo do funcionário fora da empresa, custo com combustível para atender a rota e o feedback para o cliente que aguarda o documento que muitas das vezes não e possível informar, pois o escritório não tem acesso a rota que o funcionário projetou.

O simples sistema de Protocolo de Entrega se torna complexo em determinado instante, pois uma grande empresa com diversos setores precisa de vários livros , mas diante de um problema de comprovação de entrega pode se tornar complexo, sendo que uma busca manual demandaria tempo de um ou mais funcionários.

Segundo Fitz (2008) geoprocessamento é uma tecnologia que através de um conjunto de tecnologias, torna possível a análise e manipulação dos dados georreferenciados.

Os georreferenciados são dados na forma códigos e registrados em um conhecido sistema de coordenadas, possibilitando o SGBD vincular dados alfanuméricos a dados espaciais, ou seja, demonstrar graficamente a localização.

O presente trabalho visa atender a necessidade de um escritório de contabilidade localizado na cidade de Cachoeiro de Itapemirim o qual atende um grande número de

(20)

19

clientes, o escritório ainda conta com o serviço manual de protocolo e precisa controlar a rota de entrega dos documentos.Serão usadas técnicas de geoprocessamento com o uso da tecnologia do Google Maps, umaAPI que manipula mapas, o que possibilita o rastreamento em tempo real, para informar a rota e o momento exato que a entrega foi efetuada. Com isso, objetiva-se auxiliar na tomada de decisão de melhor rota e como consequência ter uma economia de combustível e obter em tempo real o momento da entrega do documento solicitado, facilitando o controle do escritório em relação a pedidos de cliente. A aplicação da tecnologia em uma atividade manual trará grandes benefícios à empresa, pois o processo poderá ser melhor coordenado através dos dados obtidos.

1.1 JUSTIFICATIVA

Os dados obtidos através do desenvolvimento da ferramenta trarão grande impacto para a logística da empresa ECJT na área de entrega/coleta de documentos. Atualmente o sistema de entrega/coleta do escritório não possui um sistema de mapeamento e controle das entregas/coletas, todos os dias a partir das solicitações a empresa disponibiliza um funcionário para efetuar as entregas e coletas do dia, a ordem de quem vai ser o primeiro a ser atendido é definida pelo próprio funcionário e que por varias vezes por não conhecer todos os destinos escolhe primeiramente o que é de seu conhecimento, no entanto pode não ser a melhor escolha e isso pode gerar despesas maiores com: combustível, tempo, desgaste do veículo e a contribuição para a poluição que é gerada pelos veículos automotores.

Para Brasil e Pansonato (2018) o transporte na logística tem um custo considerável, portanto a melhor rota vai gerar uma redução de custos para empresa com veículos. A roteirização dos veículos tem a finalidade de encontrar a melhor rota para empresa e minimizar custo de tempo e quilometragem, o que consequentemente gera benefícios para empresa.

O aplicativo desenvolvido ajudará a empresa prestadora de serviços a mapear de forma mais eficiente às entregas/coletas dos documentos solicitados pelos clientes, onde o funcionário terá de forma automática a sua rota a partir do cadastramento da demanda do dia.

(21)

20

Segundo Cubas e Taveira (2020) a tecnologia geoprocessamento se utiliza de téc- nicas computacionais e matemáticas para o manuseio dos dados geográficos que referenciam informações obtidas de recursos naturais. Os dados georreferenciados são informações de latitude e longitude e através dessas coordenadas que é pos- sível o geoprocessamento manipular e transformar os dados georreferenciados em informações.

1.2 OBJETIVOS

1.3 OBJETIVO GERAL

O objetivo desse trabalho é o desenvolvimento de um aplicativo parasmartphone que seja capaz de facilitar o monitoramento das entregas e coletas de documentos de clientes do prestador de serviço ECJT.

1.4 OBJETIVOS ESPECÍFICOS

Esse trabalho tem como objetivos específicos:

• Gerar um aplicativo para controlar a entrega/coleta de documentos de clientes da prestadora de serviço ECJT.

• Atender as necessidades do escritório de contabilidade como: gerando a melhor rota com menos tempo e menos custo de combustível.

(22)

21

2 REFERENCIAL TEÓRICO

2.1 O PROBLEMA DO CAIXEIRO VIAJANTE

O trabalho presente visa se utilizar da lógica do caixeiro viajante para desenvolver o aplicativo de entrega/coleta do escritório, devido ao fato de que o PCV tem mostrado eficiência na implementação de diversos projetos com demanda de roteirização. Logo, faz necessário o estudo do tema em questão para aplicação neste trabalho de conclusão de curso.

Segundo Oliveira (2015), a história do problema do caixeiro viajante teve sua origem ligada a um caixeiro viajante que veio com a necessidade de passar por varias cidades uma única vez. O mesmo precisa retornar a cidade de origem, fazendo com que o percurso seja o menor caminho possível. Os estudo sobre PCV se intensificaram a partir dos anos 50, onde foram surgindo novos conceitos para o problema.

Bispo (2018), afirma que estudiosos de diversas áreas, encontraram na otimização combinatória, uma forma de resolver vários problemas do mundo real. O problema do Caixeiro Viajante nos anos de 1930, mesmo sem ser conhecido pelo nome citado, foi incorporado ao um jogo hamiltoniano chamadoIcosian game, pois tinha como objetivo detectar uma rota em um dodecaedro, onde todos os vértices será visitado apenas uma vez e o ponto inicial será o ponto final do caminho.

Para Goldbarg (2005), o PCV tem como mais comum aplicação os problemas de roteamento, que demonstra o trajeto dos diferentes pontos. O ciclo hamiltoniano é considerado a aplicação mais importante, o seu nome surgiu como homenagem a William Rowan Hamilton quem, deu origem ao jogoAround the word no ano de 1857.

A proposta do jogo é representar uma rota, onde todos os pontos do dodecaedro serão visitados apenas uma vez, e regressa ao ponto de partida.

(23)

22

Figura 1 – Exemplo do jogo Around the World.

Fonte: Gomes (2022)

Para Araújo (2019), problema do caixeiro viajante é um problema de roteirização, onde o objetivo é passar por um ponto uma única vez e assim retornar ao ponto inicial.

Segundo Valeri (2019), o problema do caixeiro viajante é aplicado a uma situação de uma considerável quantidade de clientes (pontos) e um ponto de partida e o objetivo é mostrar a melhor rota, ou seja, um bom caminho a ser usado é o que consequentemente vai trazer benefícios de economia para empresa.

De acordo com Silvino (2019), o PCV apresenta três importantes características, são elas: uso prático para uma grande demanda, fácil combinação com problemas matemáticos e a precisão na resolução de situações complexas, essas propriedades torna o problema um modelo de otimização combinatória.

(24)

23

Figura 2 – Representação do problema do caixeiro viajante

Fonte: Graeff (2020)

2.1.1 Formulação do Problema do Caixeiro Viajante

De acordo com Bueno (2009), a representação das informações por grafos tem sido constantemente praticada. Os diferentes casos, a execução por grafos é considerada mais eficiente, ou a única maneira de exibição da informação com clareza. Os mapas que apresentam os caminhos e distâncias entre pontos é um exemplo dessa repre- sentação. As cidades são os vértices e os caminhos constituídos por arestas de um grafo. A informação representada através de grafos, normalmente, tende a facilitar o entendimento do problema como também a manipulação do dado.

Segundo Bueno (2009), o problema do ciclo hamiltoniano também é empregado na declaração formal do PCV. A partir de um grafo completo e ponderado G, o PCV determina um ciclo hamiltoniano C em G,onde a soma dos pesos de todas as arestas em C seja menor ou igual a um valor k.

Fritscher (2011) e Gomes (2022) nos explicam, que para uma melhor compreensão sobre conceitos básicos de grafos são necessários a descrição a seguir.

1. Dois vértices são vizinhos ou adjacentes quando há uma aresta incidindo de ambos.

(25)

24

2. Um Grafo simples é aquele que não possui laço (aresta ligando um vértice a ele mesmo) nem arestas múltiplas (mais de uma aresta incidindo do mesmo par de vértices).

3. Quando todos os vértices são adjacentes temos um grafo completo.

4. Quando cada aresta possui um valor relacionado a ela dizemos que o grafo é ponderado.

5. Um grafo é dito simétrico quando para cada arestaaj i existe uma aresta antiparalela aj i.

Como aponta Prestes (2006), o objetivo de um PCV é encontrar o menor ciclo hamilto- niano de um grafo G. Sendo G = (N, A), onde N = 1, ..., n é o conjunto de vértices e A = 1, ..., m é o conjunto de arestas de G. O custo,Ci j, está relacionado a grandeza de cada aresta ligando os nós i e j. O custo total do caminho resulta no somatório dos custosCi j. A finalidade é encontrar o menor custo possível.

De acordo com Bueno (2009), a Figura 3 apresentada é um exemplo de um grafo ponderado e completo de quatro vértices. O primeiro ciclo (b), destacado em negrito, possui um custo total de 24, enquanto o segundo ciclo (c), possui um custo de 23.

Sendo assim, o segundo ciclo é uma solução melhor se comparado ao primeiro.

Figura 3 – Grafo completo (a), Primeiro ciclo (b), Segundo ciclo (c).

Fonte: Bueno (2009)

(26)

25

2.1.2 Complexidade do Problema

Segundo Bispo (2018), a classificação de um problema computacional pode ser de duas formas quanto a dificuldade de sua solução:

• P (Polynomial time)

• NP (Non-Deterministic Polynomial time)

O autor complementa que é classificado como da classe P o problema que algum algoritmo o solucione em tempo polinomial, ao passo que um problema é classificado como sendo da classe NP se ele não pode ser verificado em tempo polinomial. Pro- blemas classificados como sendo NP são identificados como intratáveis e, no entanto, demandam um alto custo computacional.

Como aponta Gomes (2022) Apesar de parecer simples, o PCV pertence à classe NP-Difícil ou do inglês NP-hard, mesmo tendo uma aparência de simplicidade.

De acordo com Bispo (2018), o custo computacional fundamental para a solução cresce de forma exponencial conforme o aumento do número de cidades. Para cada N cidades, existem (N-1)! possíveis ciclos hamiltonianos. A solução considera intratável em tempo hábil até mesmo para supercomputadores.

Figura 4 – Exemplo de grafo com 4 vértices e 6 arestas

Fonte: Bueno (2009)

Como aponta Bueno (2009), a figura 4 demonstra a estrutura de um grafo que possui 4 vértices, ou seja, N = 4. Logo, o cálculo de resultados possíveis é dado por (4-1)! = 6, ou seja, existem seis ciclos hamiltoniano disponíveis.

(27)

26

Gomes (2022) diz que, na execução é possível reduzir esses resultados de possibili- dades para somente três, pois a direção não é relevante ao se determinar o custo da rota. Em outras palavras o caminho (1-2-3-4-1) é equivalente ao caminho (1-4-3-2-1).

Os três caminhos são apresentados na Figura 5 e consta nela os resultados após o processo de triagem.

Figura 5 – Caminhos para o grafo

Fonte: Gomes (2022)

De acordo com Gomes (2022), a Figura 5, apresenta que o menor custo obtido é igual a 23 e que foram gerados quatro opções de caminho a escolher: (1-2-4-3-1), (1-3-4-2-1), (1-4-2-3-1) e (1-3-2-4-1). Caso o número de vértices aumentarem, ou seja, se pelo menos mais um ponto for adicionada ao problema, o número de possíveis rotas vai para (5-1)! = 24. No cenário de duas cidades serem acrescentadas, o número de possibilidades aumenta para 720 ((7-1)!).

Segundo Pinheiro et al. (2017), para exemplificar o grau de dificuldade problema, foi consideremos por exemplo, que N=5 clientes irão ser visitados, onde o ponto de partida é o nó 1. Observa-se que a partir deste nó, existem outras quatro possibilidades de caminho. Após essa etapa, existem outras três possibilidades de rotas, depois outras duas, até atingir o último vértice e então retornar ao vértice inicial. Os passos executados, pode ser observado na figura 6.

(28)

27

Figura 6 – Possibilidades de Rotas PCV

Fonte: Pinheiro et al. (2017)

De acordo com a figura 7 como aponta Pinheiro et al. (2017), a demonstração gera um resultado em um grau de complexidade de R(n) = (n - 1)! . Logo, um grafo de apenas n = 5 vértices possui n(5) = 24 resultados possíveis de rota. Esse valor aumenta muito rapidamente, em uma grande explosão combinatorial.

Figura 7 – Grau de Complexidade do PCV

Fonte: Pinheiro et al. (2017)

Pinheiro et al. (2017), apresenta o caminho de menor custo para o PCV e também as soluções exaustivas. Como apresentado, essa tarefa se torna mais difícil conforme

(29)

28

o aumento do número de vértices do problema. Por esse motivo, são necessários modelos matemáticos e métodos mais eficientes para a resolução do PCV.

2.1.3 Abordagens para o PCV

Segundo Gomes (2022), o Problema do Caixeiro Viajante tido grande importância e aplicabilidade, onde várias técnicas têm sido desenvolvidas e discutidas ao longo dos anos na tentativa de resolver essa categoria de problema contemplando o maior número de cidades possível. As abordagens desenvolvidas para a solução do PCV, sendo elas divididas em três categorias: Métodos Exatos, Método Heurísticos e Meta-Heurísticas.

2.1.4 Métodos Exatos

De acordo com Dumitrescu e Stützle (2003), os métodos exatos são representados por aqueles que conseguem identificar o melhor resultado possível e comprovar sua superioridade em um tempo de execução determinado ou demonstram a não existência de uma solução viável. Segundo Chauhan, Gupta e Pathak (2012), os métodos são divididos em dois grupos. OBranch-and-Bound faz uso da relaxação na definição do PCV, como temos o outro grupo que usa programação dinâmica.

2.1.5 Força Bruta

Chauhan, Gupta e Pathak (2012), diz que o método força bruta, e também chamado de busca exaustiva, é a maneira mais original e natural de realizar uma busca em uma solução PCV. Ele abrange a linhagem de todas as possibilidades de caminhos, determinando suas distâncias.

Para Bispo (2018), a melhor solução é o caminho de menor custo encontrado, pois o método força bruta só acontece de ser utilizado quando o número de cidades é bem menor ou então o tempo da ação é viável.

2.1.6 Branch-and-Bound

Kawamura (2006), considera oBranch-and-Bound um método exato. O método Força Bruta em comparação com o Branch-and-Bound é um método que não testa de forma clara todas as soluções viáveis, no entanto, ele garante a qualidade da resposta

(30)

29

encontrada. Para Chauhan, Gupta e Pathak (2012) O método especifica todas as soluções possíveis de uma maneira oculta.

Segundo Gomes (2022), o método Branch-and-Bound pode ser separado em duas fases: OBranch (ramo) que resume-se na ramificação ou divisão do problema principal em problemas menores e mais simples, ou seja relaxado em uma estrutura de dados popularmente conhecida como árvore. E o Bound (limite) que é responsável pela eliminação de soluções não viáveis conforme os limites superior e inferior.

Prestes (2006) diz que, os limites superiores são adquiridos por métodos heurísticos eficientes, já os limites inferiores são concebidos pela relaxação das restrições do problema proposto. As soluções dos subproblemas das quais o valor é maior do que limite superior são eliminadas, pois são piores que a solução já conhecida. As soluções cujo limite inferior é menor que o limite superior também são descartas.

2.2 GRAFOS

Para Costa (2011), grafos é um ramo da matemática e que foi desenvolvido para resolver problemas envolvidos com jogos e quebra-cabeças, pois mesmo parecendo sem relevância chamava atenção dos matemáticos pelos seus resultados admiráveis.

O matemático Euler escreveu uma pesquisa sobre grafos de grande importância para a matemática. Grafo está aplicado a uma vasta comunidade de áreas de atuação como:

circuitos elétricos, diagramas moleculares, e recentemente na Economia e Biologia.

2.2.1 Circuito Hamiltoniano

Como aponta Carretero e Rangel (2007), o titulo Hamiltoniano deriva de um jogo chamado A Voyage Around the World, criado por Sir William Rowan Hamilton em 1859, o jogo era composto por um dodecaedro onde cada vértice representavam o nome de uma cidade e as arestas as possibilidades de transitar entre as cidades. O foco do jogo é encontrar uma rota de viagem passando por cada cidade apenas uma vez e era determinado no mínimo cinco pontos, ou seja cidades a ser visitadas, para tornar o problema mais interessante.

Segundo Silva (2009), a necessidade do PCV é encontrar através de um Grafo um

(31)

30

circuito hamiltoniano de menor custo. O grafo é definido como um conjunto de Arestas e Vértices, onde as Arestas são linha que conectam os Vértices e os Vértices são os nós. As Arestas simulam ruas e estradas e os Vértices representam cidades, postos de trabalho ou empresas. O circuito hamiltoniano tem o objetivo de circular por todos os Vértices de um grafo e retornar ao ponto de início.

De acordo comOliveira (2001), a definição de circuito hamiltoniano é que no trajeto se passa apenas uma vez em cada vértice por todo o circuito. O problema de melhora- mento de rotas do caixeiro viajante é associado ao circuito hamiltoniano aplicado a um grafo, pois o objetivo é encontrar o menor caminho e sem repetir a mesma rota.

Figura 8 – Exemplo do circuito hamiltoniano

Fonte: Silva e Sanches (2009)

2.2.2 Programação dinâmica

Segundo Darú e Lacerda (2005), a programação dinâmica é uma técnica de resolução recursiva de problemas embasado na teoria que se um problema puder ser dividido em etapas ou estágios, aonde a dependência seja apenas dos estágios anteriores, ou posteriores, pode-se então resolvê-lo por etapas, aonde a cada etapa, considera-se a melhor opção antecessora a qual consegue se atingir o ponto em questão.

2.3 MÉTODOS HEURÍSTICOS

De acordo com Chaves et al. (2003), Os métodos Heurísticos tem a finalidade de solucionar o Problema do Caixeiro Viajante de alta complexidade, uma vez que solu- ções exatas muitas vezes são quase impossíveis. Tais métodos produzem soluções aproximadas usando um tempo computacional realizável. Inviabilizando a garantia

(32)

31

que o resultado obtido pela heurística seja a solução ideal, nem a distancia que esse resultado está da solução ótima.

2.3.1 Os Algorítimos Gulosos

Rocha e Dorini (2004), nos explica que os algoritmos gulosos tomam decisões com base apenas na informação disponível, sem se preocupar com os efeitos futuros de tais decisões, isto e, eles nunca reconsideram as decisões tomadas, independentemente das consequências. O autor cita o problema do troco para exemplificar o funcionamento do algoritmo guloso. Suponha que tenhamos disponíveis moedas com valores de 100, 25, 10, 5 e 1, o problema é criar um algoritmo para conseguir obter um determinado valor com o menor número de moedas possível.

2.3.2 Método do Vizinho Mais Próximo

Dentre os métodos heurísticos, o VMP é o mais instintivo. Laporte (1992), diz que nesse método do vizinho mais próximo, o caixeiro inicia em uma cidade qualquer e então segue para a cidade mais próxima; a partir desta, busca-se a cidade mais próxima ainda não visitada e assim sucessivamente até que todas as cidades sejam visitadas, retornando então à cidade de origem.

2.3.3 Busca local

Prestes (2006) diz que, os algoritmos de Busca Local se definem por alterações simples no caminho. O processo é iniciado por eles com uma solução inicial e fazem mudanças identificas como movimento em todo seu espaço de busca. As mudanças possibilitam a alternância de uma solução para outra vizinha.

Segundo Gomes (2022), na atuação há uma alteração de arestas com o propósito de modificar um trajeto em outro de menor custo. O método 2-opt é um modelo de Busca Local, no qual é feito a mudança de duas arestas. A Figura 10 expõe um protótipo desse algoritmo.

(33)

32

Figura 9 – Representação de Soluções Vizinhas 2-opt

Fonte: Prestes (2006)

De acordo com Goldbarg (2005), a representação na Figura 10 mostra as duas modifi- cações possíveis nesse caminho. O ponto A troca as arestas 1-4 e 2-3 pelas arestas 1-3 e 2-4. O ponto B troca as arestas 1-2 e 3-4 pelas mesmas arestas, 1-3 e 2-4.

Segundo Bispo (2018), o algoritmo de Busca Local conta com outro modelo o k-opt, no qual o número de arestas a serem modificadas em k é definido pelo desenvolvedor.

Entretanto, com o crescimento do número de pontos fica mais difícil definir o número de k que assegura o melhor tempo de processamento e o melhor resultado. O valor de k crescente significa melhor solução, no entanto o tempo de processamento é maior.

Habitualmente valores acima de cinco são impossíveis, posto isto valores de k igual a três são mais comuns.

Como aponta Prestes (2006) nessa situação, em 1973 surgiu o algoritmo de Lin e Kernighan conhecido como um dos mais eficazes na solução de PCV simétrico.

Gomes (2022), afirma que esse algoritmo incluiu um sistema para encontrar o melhor valor de k, em cada interação. Para realizar essa modificação ele faz uso de um algoritmo de opção variável. A Figura 10 apresenta a interação do algoritmo de Lin e Kernighan.

(34)

33

Figura 10 – Representação da Interação do Algoritmo de Lin e Kernighan

Fonte: Goldbarg (2005)

Goldbarg (2005) diz que, a imagem 10 apresenta o funcionamento do algoritmo Lin e Kernighan a partir de uma resposta inicial (1 4 2 3 6 5). Analisando a figura a primeira estrutura de pontos e arestas exibe a remoção da aresta (4, 2) e em seguida a inclusão da aresta (4, 6). Logo depois temos a exclusão da aresta (6 ,5) e inclusão a aresta (4,5).

No último ocorre a remoção da aresta (1, 4) e inclusão da aresta (1, 6). Essa ação prossegue até ser encontrado o menor caminho. Os algoritmos de Busca Local são bastante utilizados, porém eles não garantem que a solução encontrada é a solução ótima global.

Figura 11 – Exemplo do Método Vizinho mais próximo

Fonte: Gomes (2022)

(35)

34

2.3.4 Busca Tabu

Gomes (2022) afirma que, método de Busca Tabu executa a partir de uma solução inicial e vai crescendo a mesma a cada iteração. Esse método faz uso do conceito de movimento e vizinhança presentes nos algoritmos de Busca Local. O movimento é o processo de circular entre uma solução e uma solução vizinha.

Segundo Aguiar et al. (2005), a Busca Tabu é composta de um grupo de ideias e práticas que são aplicadas para resolução de problemas de otimização combinatória e foi proposta por Glover e Hansen. Os conceitos deixam compreensível o uso de memória, principalmente para evitar ações cíclicas. As ações e procedimentos devem guardar a organização de memória com as referências sobre o histórico da busca. A estrutura mais disposta é uma lista tabu que inclui os deslocamentos realizados há mais tempo, para que estes não sejam rapidamente desfeitos no percurso da busca para soluções já percorridos, dando assim significado ao nome do procedimento.

Aguiar et al. (2005) diz também que, ao impedir ações para tentar desviar do retorno a uma solução já acessada, pode ocorrer também de esse mesmo movimento derivar numa solução nunca antes percorrida, precisando nestes casos, a inicialização de um módulo que controle o papel das listas tabu. Este conjunto de informações ações é conhecido como critério de aspiração.

De acordo com Aguiar et al. (2005), existe um outro tipo de estrutura de memória, onde é baseada na frequência dos movimentos, no qual também pode ser empregadas. A utilização deste tipo de memória pode ser, por exemplo, para impedir ações que tenham sido muito constantes no registro da busca, dando assim, uma personalidade variada.

2.3.5 Colônias de Formigas

Segundo Dorigo, Birattari e Stutzle (2006), as colonias de formigas naturais são dispos- tas e exibem uma conduta que aprova a prática de varias atividades que não seriam praticáveis por uma única formiga. A conexão, indireta que as coordena e orienta se dá por mudanças que elas fazem no ambiente, em uma operação chamada“stigmergy”.

Lintzmayer, Mulati e Silva (2011) diz que, essa comunicação é conhecida pela subs- tância química feromônio na superfície, originando as trilhas que guiam o trajeto de

(36)

35

cada formiga. Dorigo, Birattari e Stutzle (2006) afirma que, a maior quantidade na concentração de feromônio em um trajeto, maior a chance da formiga escolhe-lo. Este comportamento é chamado de autocatalitíco: uma conduta que reforça a si mesmo causando aproximação. De acordo com Rodrigues (2007), os algoritmos das formigas foram motivados pela análise de colônias reais, cujo conduta é mais conduzido à continuidade da colônia do que à conservação de um único agente da colônia.

2.3.6 Algoritmos Genéticos

Segundo Goldbarg (2005), algoritmos GenéticosGas-Genetic Algorithms estabelece um procedimento de busca e otimização, elevadamente simultâneo, motivados no princípio Darwiniano de seleção natural e reprodução genética.

2.3.7 Saving

A heurística das economias ouSaving segundo Vieira (2017), nos explica essa heurís- tica se inicia no cenário em que cada veículo sai do centro de distribuição para atender um único cliente e retorna. A partir daí, passa a buscar economias unindo rotas e diminuindo a distância e tempo percorridos. Para fazer esse processo existe dois tipos de procedimentos: O paralelo e o sequencial.

2.4 GRAFOS

A teoria dos grafos ou de grafos é um ramo da matemática que estuda as relações entre os objetos de um determinado conjunto. SIQUEIRA et al. (2021), aprofunda-se explicando que um grafo simples G(V,E) é uma estrutura composta por um conjunto V de vértices e um conjunto E de arestas, tais que V é finito não vazio e E é formado por subconjuntos de dois elementos de V . Representamos, respectivamente, por |V| ou n e por |E| ou m, os números de vértices e arestas de um grafo.

(37)

36

Figura 12 – Grafo com quatro vértices e 6 arestas

Fonte: A Autora

2.4.1 As Pontes de Königsburg

Burguetti (2022), conta a história que na cidade que atualmente é conhecida como Kaliningrad, na Rússia, existiam sete pontes que ligavam quatro pedaços de terra divididas pelo rio Pregel. Os moradores da cidade se perguntavam se era possível caminhar pela cidade de maneira contínua cruzando as sete pontes sem passar duas vezes por qualquer uma dessas pontes. Na figura 13 é mostrado as sete pontes de Königsburg.

Figura 13 – As sete pontes de Königsburg

Fonte: Rosenhouse e Taalman (2011)

Leonard Euler em 1735, sabendo do problema desenvolveu uma solução por meio de

(38)

37

um modelo abstrato. Ele tomou cada porção de terra como um ponto ou vértice, e cada ponte como uma linha ou aresta que conectava esses vértices (BURGUETTI, 2022).

Na figura 14 é mostrada a abstração proposto por Rosenhouse e Taalman (2011).

Figura 14 – Grafo que representa as pontes de Königsburg.

Fonte: Rosenhouse e Taalman (2011)

2.4.2 O uso dos Gráfos Atualmente

Atualmente os gráfos são usados em diversas situações e aplicações que fazemos uso no nosso cotidiano. A mais simples das aplicações que podemos perceber são as redes sociais, como por exemplo, no Facebook, pela análise das preferências de amigos e nas curtidas das páginas. Entrando, no contexto desse trabalho Burguetti (2022) recorda que, na rede de transporte ele também está presente, principalmente na tomada de decisão em pegar o caminho que tenha o menor custo para o transporte de carga entre duas cidades.

(39)

38

Figura 15 – Rede de transporte.

Fonte: Burguetti (2022)

2.4.3 Grafos Hamiltonianos

É considerado um caminho Hamiltoniano um caminho que contém todos os vértices de G, chamado um caminho hamiltoniano de G. Burguetti (2022) completa dizendo que, de maneira semelhante um ciclo que contém todos os vértices de G é chamado um ciclo hamiltoniano. Um grafo é hamiltoniano se ele contém um ciclo hamiltoniano.

Resumindo desta forma, um grafo é hamiltoniano se é possível percorrer seus vértices sem passar por uma mesma aresta ou vértice duas vezes (exceto o vértice final e inicial), terminando o trajeto no local de partida. Na figura ??tem-se um grafo e um ciclo hamiltoniano.

Figura 16 – Um grafo hamiltoniano e um ciclo hamiltoniano.

Fonte: Burguetti (2022)

(40)

39

2.5 APLICAÇÕES MÓVEIS

O uso dos aplicativos tem sido ainda mais comum por pessoas que procuram facilidades e praticidades no dia-a-dia e a ideologia do aplicativo é trazer funcionalidades para quem o usa e é o que vem cada vez mais dominando a população que necessita de executar uma tarefa independente de onde da sua localização. Segundo Conte (2015), o uso de aplicações móveis pela pessoas tem aumentado significativamente, e isso pode estar relacionado a facilidade que essas aplicações proporcionam ao dia-a-dia do usuário. As empresas desenvolvedoras de aplicações móveis tem procurado apurar melhor o software antes de fazer lançamentos para o mercado, o intuito é de melhorar a usabilidade das aplicações. Para SBROGLIA (2016), com a evolução da tecnologia móvel e de computadores foi possível desenvolver equipamentos menores e portáteis, o avanço também oportunizou ao mundo empresarial uma nova forma de comunicação com o seu cliente e uma fonte de parâmetros para atender o seu público alvo.

De acordo com Neto (2016), a internet móvel junto com os dispositivos portáteis possibilitou um avanço muito importante para conexão móvel, o que trouxe também novas oportunidades para a empresas. A evolução das redes, dispositivos móveis e tecnologia sem fio provoca um grande impacto na comunicação e tem incentivado as aplicações móveis que tem se mostrado em crescimento constante. OsAPPscomo são conhecidos os aplicativos móveis foram desenvolvidos para atender as necessidades dos usuários de dispositivos móveis, que necessitam cada vez mais da comunicação em tempo real dos dispositivos.

2.6 GEOPROCESSAMENTO

Segundo Leonardi (2020), o surgimento de geoprocessamento foi por volta de 1960 após o término da segunda guerra mundial nos Estados Unidos, a sua criação foi para atender a produção de mapas reduzindo custos, porem a sua evolução veio através do governo que também incentivou o desenvolvimento do Sistema de informação geográ- fica. O geoprocessamento se utiliza de várias técnicas para manipular e armazenar informações espaciais que serão tratadas para uso de forma integrada.

Para Moura (2014), a função principal do geoprocessamento é armazenar e analisar

(41)

40

os dados. A tecnologia tem grande importância para pesquisa ambiental, pois algumas funções podem ser melhoradas com o seu uso como: coleta e manipulação das informações, análise das informações, elaboração de previsões, criação de propostas para gerenciamento do sistema e reconhecimento de soluções para os problemas identificados.

Os profissionais que manipulam as informações geográficas e referenciadas, cada vez mais necessitam do uso de SIG, pois a tecnologia vem sofrendo uma grande evolução e melhoramento das técnicas usadas para processamento dos dados espaciais. A tecnologia atribuída à análise dos dados espacial vem agregando valor para diversos profissionais como: engenheiros, administradores de terras e idealizadores.

A sigla SIG é discutida por vários autores e teve grande repercussão em relação a sua tradução. De acordo com Moura (2014), a sigla SIG é tradução de GIS que em inglês significa Geographic Information System, existe uma discussão no meio cientifico que o termo Sistema de Informação Geográfico como foi traduzido SIG, pode distorcer a sua verdadeira tradução, pois leva a entender que todas as informações são geográficas, sendo que na verdade não são todas as informações que são geográficas e sim o sistema, onde os dados são especializáveis.

Para Cubas e Taveira (2020), a exploração espaço geográfico teve um grande avanço com a ciência da geo-informação. A geo-informação trabalha as informações de localização de objetos em um espaço, como por exemplo um mapa no celular que apresenta a localização do aparelho, é um sistema que faz uso da geo-informação.

2.7 APIS PARA MAPAS

De acordo com Junior (2018), uma API é um conjunto de vários padrões e rotinas pré-definidos através de umsoftware, onde programas e aplicativos que não querem desenvolver uma aplicação muito detalhada faz uso desses serviços e funcionalidades.

As várias funções daAPI são somente acessadas por programação. AAPI de geolo- calização faz uso descripts ou blocos códigos para obter a localização do dispositivo em um espaço geográfico. A localização é obtida através de coordenada de latitude e longitude, com uma medida de precisão é possível dizer a localização do dispositivo.

(42)

41

Segundo Souza (2016), a Google Maps possui váriasAPIs que tem características diferentes o que viabiliza o desenvolvimento das aplicações tornando maior as chance de uma ferramenta mais completa. A lista das APIse suas características.

1. Directions API: Faz uso de requisições HTTP para obter localização. AAPIpossibi- lita consulta do transito, direção, caminhada e ciclismo. NaDirections API:é possível especificar pontos médios de origem e destino através de texto ou coordenadas e obter como retorno a rota em forma de pontos.

2. Distance Matrix API: é umaAPI que calcula entre dois pontos de origem e destino o tempo a ser percorrido e a distancia. O retorno é uma lista de rotas possíveis e que contém o tempo e a distância em pares.

3. Elevation API: Armazena dados de elevação da terra, o que possibilita o calculo dessa elevação durante todo o traje.

4. Geocoding API:Converte um endereço de coordenadas geográficas.

5. Geolocation API:Retorna a localização baseada em um raio , obtém informações através de torres de telefonia de celular ou sinais dewifi detectados pelo aparelho.

6. Roads API:Mostra informações extras de ruas, estradas e veículos na localização.

7. Static Maps API: Adiciona mapas do Googleem uma página Web por meio de solicitaçõesjavascript ou páginas dinâmica.

8. Street Viw Image API: Possibilita a visão panorâmica de ruas e avenidas por requisições HTTP. O retorno é uma imagem estática do endereço fornecido.

9. Time Zone API:Fornece o horário de acordo com a localização no planeta.

(43)

42

2.8 GOOGLE MAPS

Segundo Junior (2018), O Google Maps é um serviço prestado pela empresa Google onde é possível ter acesso a uma importante ferramenta de mapas amigável e informa- ções de localização de empresas e como também endereços, contatos e formas de acesso ao local. AAPI Google Maps possibilita ser adicionada a aplicações e também ser customizada e personalizada por desenvolvedores que faz uso daAPI. Oframework foi criado faz uso de vetores o que possibilita visualizar em 2D e 3D, o que melhora significativamente o desempenho e melhora as interações. A Google disponibiliza de forma gratuita a ferramentaMapse fez uma importante contribuição quando possibilitou a inclusão dos mapas nos projetos que faz uso de informações geográficas.

De acordo com Shmitt (2013), a principal funcionalidade do Google Maps é a apre- sentação de um mapa na web a partir de uma coordenada informada e isso já é uma grande ajuda para atender a necessidade de localização a partir de um endereço. A ferramenta Google Maps pode ser ainda mais do que apenas exibir mapas, portanto ela atende também a necessidade de aplicações que necessitam fazer marcações de pontos fixos que são de interesse do usuário e carregar no banco de dados o mapa para ser mostrado de forma estática. AAPI facilitando a navegação do usuário mostra os mapas no modo cartográfico – com ilustrações de ruas e quadras - e no modo satélite onde é exibido imagens áreas da localização. A vantagem do Google Maps é a quantidade de visitantes e que para empresas geograficamente especificas é de grande importância, mapas com conteúdo interativo e grande responsividade na representação visual da localização, fácil de usar e possibilita ao usuário atingir vários locais com os seus modos de viagem e permite novos destinos para suas rotas. O principal benefício é a simplicidade do Google Maps, pois apresenta informações úteis sem complicação para o usuário.

2.9 TRABALHOS RELACIONADOS

Realizamos uma pesquisa por trabalhos semelhantes, onde foi feito um levantamento de vários trabalhos com a mesma abordagem de tema. As pesquisas selecionadas tem por objetivo otimizar rotas com a solução do Problema do Caixeiro Viajante.

(44)

43

O autor Miranda, Soliani e Freitas (2021), utiliza a solução do Problema do Caixeiro Viajante para atender a necessidade de uma empresa alimentícia que precisava me- lhorar e otimizar suas rotas e como consequência teria uma economia para o uso de combustível.

O autor Valeri (2019), fez uso da técnica do Problema do Caixeiro Viajante para reduzir gastos principalmente com combustível para uma empresa que tem como atividade fazer visitas a clientes. O representante apresenta produtos médicos ao clientes e precisa melhorar a logística das visitas aos seus clientes.

O autor Araújo (2019), aplicou o Problema do Caixeiro Viajante a uma empresa de laticínios que necessitava de uma nova logística para a distribuição dos seus produtos.

A empresa teve a necessidade de criar essa roteirização mais estruturada, pois acredita no diferencial que será mostrado ao cliente.

(45)

44

3 DESENVOLVIMENTO

O presente trabalho tem como foco o desenvolvimento de uma ferramenta que possa auxiliar na disponibilização de informações sobre um percurso de entregas mais oti- mizado. O objetivo é auxiliar o setor de Contabilidade na automatização e otimização desse processo. Para tanto, será utilizado um sistema com capacidade de exibir ro- tas com o melhoramento do trajeto através de coordenadas previamente informadas pelo usuário. O sistema utilizará o problema do caixeiro viajante para determinar a menor rota entre dois pontos, juntamente com aAPI do google Mapse um conjunto de bibliotecas e APIsque serão abordadas posteriormente.

3.1 ESPECIFICAÇÃO DO SISTEMA

Para que os objetivos desse trabalho seja alcançado, foram definidas alguns requisitos que o sistema deve atender.

3.1.1 Requisitos Funcionais

1. O sistema deve permitir que o usuário cadastre um novo cliente;

2. O cliente deve ter obrigatoriamente um endereço;

3. O cliente já deve estar previamente cadastrado para que seja gerado a rota;

4. O sistema deve permitir que o usuário informe o cliente para o qual será gerado a rota;

3.1.2 Requisitos Não Funcionais

1. O sistema construído deve ser escalável;

2. O sistema deve possuir uma interface amigável ao usuário;

(46)

45

3. O sistema deve ser capaz de funcionar em dispositivos móveis;

4. O sistema deve mostrar de forma clara e simplificada erros que aconteçam.

3.2 FERRAMENTAS E TECNOLOGIAS

Nessa seção serão abordadas de forma detalhada as principais ferramentas e conceitos usados para a construção da ferramenta resultante deste trabalho de conclusão de curso.

3.2.1 Directions API

AAPI Directions é um serviço da Web que usa uma solicitação HTTP para retornar rotas formatadas em JSON ou XML entre os locais. As rotas estão disponíveis de várias maneiras: como umaAPI independente, como parte da Maps JavaScript do lado do cliente e para uso do servidor como parte das bibliotecas de cliente para serviços da Web do Google Maps. O Directions API fornece os recursos de rotas, permitindo que seja calculado trajeto entre locais.1

3.2.2 Distance Matrix API

AAPI Distance Matrix informa a distância e o tempo de viagem para uma matriz de origens e destinos e consiste em linhas que contêm os valores de durationedistance para cada par. A matriz de distância está disponível de várias formas: como umaAPI independente, como parte daAPI Maps JavaScript do lado do cliente e para uso do servidor como parte das bibliotecas de cliente para serviços da Web do Google Maps.

AAPIretorna informações com base na rota recomendada entre os pontos de início e fim. É possível solicitar dados de distância para diferentes tempomeios de transporte, solicitar dados de distância em unidades diferentes, como quilômetros ou milhas, e estimar o de viagem no trânsito. O uso destaAPI geralmente é feito quando existe a necessidade for de exigir a distância e o tempo de viagem entre uma grande lista de pontos de origem e destino.2

1 Documentação completa em Developer (2022a)

2 Documentação completa em Developer (2022b)

(47)

46

3.2.3 Maps JavaScript API

A API Maps JavaScript, possibilita personalizar mapas com seu próprio conteúdo e imagens para exibir em páginas da Web e dispositivos móveis. EstaAPI tem quatro tipos básicos de mapa (roteiro, satélite, híbrido e terreno) que você pode modificar usando camadas e estilos, controles e eventos, além de vários serviços e bibliotecas.3

3.3 LINGUAGEM DE PROGRAMAÇÃO UTILIZADA 3.3.1 Backend

Para o desenvolvimento do presente trabalho utilizou-se a tecnologia Java no desenvol- vimento doBackend. A linguagem de programação Java é orientada a objetos. Por ser uma linguagem de código aberto e contar com uma grande variedade de bibliotecas, frameworks e ferramentas de desenvolvimento gratuitas, o Java se tornou rapidamente uma linguagem muito popular e é utilizada nas mais diversas áreas. O editor de código utilizado para trabalhar com a linguagem de programação Java foi a Spring Tool Suite, uma IDE baseada em Eclipse que dá algumas facilidades para trabalhos com o Spring no geral.

As figuras no intervalo de 17 à 22 demonstram uma estruturação do código dos principais Controller do sistema.

3 Documentação completa em Developer (2022c)

(48)

47

Figura 17 – Estruturação da Codificação do Controller do Cliente

Fonte: A Autora

Figura 18 – Estruturação da Codificação do Controller da Entrega

Fonte: A Autora

(49)

48

Figura 19 – Estruturação da Codificação do Controller da Rota

Fonte: A Autora

Figura 20 – Estruturação da Codificação do Controller da Cidade

Fonte: A Autora

(50)

49

Figura 21 – Estruturação da Codificação do Controller da Estado

Fonte: A Autora

Figura 22 – Estruturação da Codificação do Controller da Endereço

Fonte: A Autora

(51)

50

3.3.2 Frontend

Para o desenvolvimento doFrontend foi usada a linguagem TypeScript4. De acordo com a documentação da linguagem, TypeScript é definido como uma linguagem de programação de código aberto desenvolvida pela empresa Microsoft e é tida como um superconjunto sintático estrito de JavaScript que adiciona tipagem estática opcional à linguagem. Além do TypeScript utilizou-se o IONIC. De acordo com o site de tecnologia Parmeggiani (2021) O Ionic5fornece ferramentas e serviços para o desenvolvimento de aplicativos híbridos móveis, de desktop eweb apps– também conhecidos como PWA (Progressive Web App), usando tecnologias da web comoCSS, HTML5, Sass. Como editor de código para trabalhar com o IONIC e suas extensões utilizou-se o Visual Studio Code, editor de código-fonte desenvolvido pela Microsoft para Windows, Linux e macOS.

A figura 23 demonstra a tela de inicio do aplicativo, onde é possível listar os clientes, o botão entregas exibe as entregas, a opção rota seleciona e mostra as rotas criadas e configurações é uma opção para o usuário configurar o sistema.

4 Documentação completa em https://www.typescriptlang.org/

5 Documentação completa em https://ionic.io/

(52)

51

Figura 23 – Tela de Início

Fonte: A Autora.

A figura 24 exibe as entregas cadastradas, onde é identificado a empresa para entrega e o endereço, a tela também apresenta um botão para alterar e um outro botão para excluir.

(53)

52

Figura 24 – Tela de Entrega

Fonte: A Autora.

A figura 25 apresenta a tela de exibição dos clientes cadastrados no sistema, na mesma linha do nome do cliente tem um botão para alterar e um botão para excluir o cadastro do cliente. No final da tela, representado por um sinal de "+"em um circulo verde temos uma opção de incluir mais clientes.

(54)

53

Figura 25 – Tela de Cliente

Fonte: A Autora.

A figura 26 representa a listagem de rotas e a exibição do trajeto no mapa. Através da seleção da rota é mostrado o mapa referente a escolha.

Referências

Documentos relacionados

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for

O Fórum de Integração Estadual: Repensando o Ensino Médio se efetiva como ação inovadora para o debate entre os atores internos e externos da escola quanto às

Além desta verificação, via SIAPE, o servidor assina Termo de Responsabilidade e Compromisso (anexo do formulário de requerimento) constando que não é custeado

De acordo com o Consed (2011), o cursista deve ter em mente os pressupostos básicos que sustentam a formulação do Progestão, tanto do ponto de vista do gerenciamento

Outras possíveis causas de paralisia flácida, ataxia e desordens neuromusculares, (como a ação de hemoparasitas, toxoplasmose, neosporose e botulismo) foram descartadas,

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

insights into the effects of small obstacles on riverine habitat and fish community structure of two Iberian streams with different levels of impact from the

Taking into account the theoretical framework we have presented as relevant for understanding the organization, expression and social impact of these civic movements, grounded on