View
212
Download
0
Category
Preview:
Citation preview
UNIVERSIDADE REGIONAL DE BLUMENAU
CENTRO DE CIÊNCIAS EXATAS E NATURAIS
CURSO DE SISTEMAS DE INFORMAÇÃO – BACHARELADO
SISTEMA DE PLANEJAMENTO DE ROTAS DE ENTREGAS
DE MERCADORIAS
ANDRÉ LUIZ PEDRELLI
BLUMENAU 2013
2013/7-05
ANDRÉ LUIZ PEDRELLI
SISTEMA DE PLANEJAMENTO DE ROTAS DE ENTREGAS
DE MERCADORIAS
Trabalho de Conclusão de Curso submetido à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso II do curso de Sistemas de Informação— Bacharelado.
Prof. Cláudio Ratke, Mestre. - Orientador
BLUMENAU 2013
2013/7-05
SISTEMA DE PLANEJAMENTO DE ROTAS DE ENTREGAS
DE MERCADORIAS
Por
ANDRÉ LUIZ PEDRELLI
Trabalho aprovado para obtenção dos créditos na disciplina de Trabalho de Conclusão de Curso II, pela banca examinadora formada por:
______________________________________________________ Presidente: Prof. Cláudio Ratke, Mestre – Orientador, FURB
______________________________________________________ Membro: Prof. Wilson Pedro Carli, Mestre – FURB
______________________________________________________ Membro: Prof. Oscar Dalfovo, Doutor – FURB
Blumenau, 05 de julho de 2013.
Dedico este trabalho a todos os amigos, especialmente aqueles que me ajudaram diretamente na realização deste.
AGRADECIMENTOS
A Deus por ter posto em meu caminho pessoas sábias e maravilhosas, os familiares, os
professores, os colegas de turma, com o auxílio das quais pude realizar os meus ideais.
A minha mãe Zenaide e ao meu pai Amélio (in memoriam) e ao meu irmão Giani, que
sempre me apoiaram e incentivaram nas horas de decisão, a fim de poder continuar a galgar
os caminhos do saber.
Aos amigos e colegas de curso, que compartilharam dos bons e maus momentos, onde
juntos construímos nossa história acadêmica, com respeito, dignidade e humildade.
A todos os professores que influenciaram na minha formação acadêmica.
Ao meu professor orientador, Cláudio Ratke, pela dedicação na orientação deste
trabalho de conclusão de curso.
Falhamos muito mais por timidez do que por ousadia !
David Graysom
RESUMO
Este trabalho consiste em apresentar um sistemas de informação para o planejamento de rotas
de entregas de mercadorias. Uma empresa que possua diversos produtos a serem entregues em
diferentes locais, encontra dificuldade para definir a melhor combinação de cargas a serem
transportadas, qual melhor veículo e a disponibilidade, e a rota com menor custo para a
entrega dos pedidos e a ordem de carregamento no veículo. Com o sistema pretende-se
roteirizar a entrega de mercadoria com o menor custo e maior eficácia. O trabalho foi
desenvolvido em Java e SQL Server 2008.
Palavras-chave: Roteirização. Logística. Restrições.
ABSTRACT
This work consists in presenting an information system for planning routes for deliveries of
goods. A company that has many products to be delivered in different places, find it difficult
to define the best combination of loads to be carried, and what better vehicle availability, and
lower cost route for the delivery of goods in load order. With the system it is intended
itinerary delivery of the goods with the lowest cost and highest efficacy. The work was
developed in Java and SQL Server 2008.
Keywords: Routing. Logistics. Restrictions.
LISTA DE ILUSTRAÇÕES
Figura 1 – Roteiro simples (12 clientes) em um bolsão de distribuição................................. 19
Figura 2 – Vértices (grafo dirigido) ........................................................................................ 20
Figura 3 – Algoritmo (grafo dirigido) .................................................................................... 21
Figura 4 – Fluxograma de distribuição ..................................................................................... 22
Figura 5 – Janela de parametrização do software NR .............................................................. 25
Quadro 1 – Requisitos funcionais ............................................................................................. 28
Quadro 2 – Requisitos não funcionais ...................................................................................... 29
Figura 6 – Diagrama de casos de uso ....................................................................................... 29
Figura 7 – Diagrama de atividade............................................................................................. 30
Figura 8 – Modelo entidade relacionamento ............................................................................ 31
Quadro 3 – Código fonte para gravar um novo usuário no sistema ......................................... 32
Figura 9 – Tela de login ............................................................................................................ 33
Figura 10 – Tela principal ........................................................................................................ 34
Figura 11 – Menu cadastro ....................................................................................................... 34
Figura 12 – Tela de cadastro de funcionário ............................................................................ 35
Figura 13 – Tela de cadastro de veículos ................................................................................. 36
Figura 14 – Tela de cadastro de distância................................................................................. 37
Figura 15 – Tela de cadastro de produto .................................................................................. 38
Figura 16 – Tela para listar produtos do pedido ....................................................................... 39
Figura 17 – Tela para gerar rota de entrega .............................................................................. 40
Figura 18 – Demonstração do cálculo de menor custo ............................................................. 40
Figura 19 – Código do cálculo de menor custo da rota ............................................................ 40
Quadro 4 – Apresenta-se o caso de uso "Efetuar login" ........................................................... 47
Quadro 5 – Apresenta-se o caso de uso "Cadastro de Veículos" ............................................. 47
Quadro 6 – Apresenta-se o caso de uso "Cadastro de Produtos" ............................................. 49
Quadro 7 – Apresenta-se o caso de uso "Cadastro de Rotas" .................................................. 50
Quadro 8 – Apresenta-se o caso de uso "Buscar clientes" ....................................................... 51
Quadro 9 – Apresenta-se o caso de uso "Listar a rota de entrega" ........................................... 52
Quadro 10 – Apresenta-se o caso de uso "Verificar os produtos do pedidos" ......................... 52
Quadro 11 – Apresenta-se o caso de uso " Manter os acessos do sistema" ............................. 53
Quadro 12 – Apresenta-se o caso de uso "Buscar os pedido" .................................................. 56
Quadro 13 – Apresenta-se o dicionário de dados da tabela "distancias" .................................. 56
Quadro 14 – Apresenta-se o dicionário de dados da tabela "produtos" ................................... 56
Quadro 15 – Apresenta-se o dicionário de dados da tabela "usuario" ...................................... 56
Quadro 16 – Apresenta-se o dicionário de dados da tabela "veiculo" ...................................... 57
Quadro 17 – Apresenta-se o dicionário de dados da tabela "entregas" .................................... 57
Quadro 18 – Apresenta-se o dicionário de dados da tabela "roteiro" ....................................... 57
LISTA DE SIGLAS
CSP - Constraint Satisfaction Problem
DOS - Disk Operating System
JVM - Java Virtual Machine
KM/L – Quilômetro por litro
MER - Modelo Entidade Relacionamento
NR - Networking Routing
PVC - Problema do Caixeiro-Viajante
SQL - Structured Query Language
TR - Transportation Routing
TSP - Traveling Salesman Problem
SUMÁRIO
1 INTRODUÇÃO .................................................................................................................. 12
1.1 OBJETIVOS DO TRABALHO ......................................................................................... 13
1.2 ESTRUTURA DO TRABALHO ....................................................................................... 14
2 FUNDAMENTAÇÃO TEÓRICA .................................................................................... 15
2.1 IMPORTÂNCIA DA LOGÍSTICA NO PROCESSO........................................................15
2.2 ROTEIRIZAÇÃO...............................................................................................................17
2.3 SISTEMA ATUAL.............................................................................................................21
2.3.1 Políticas da Empresa ..... ...................................................................................................22
2.4 TRABALHOS CORRELATOS.........................................................................................23
2.4.1 Constraint Satisfaction Problem (CSP) ........................................................................... 23
2.4.2 Dissertação de Mestrado de Enomoto ............................................................................. 24
3 DESENVOLVIMENTO .................................................................................................... 26
3.1 LEVANTAMENTO DE INFORMAÇÕES ...................................................................... 26
3.2 ESPECIFICAÇÃO ............................................................................................................ 28
3.2.1 Especificações dos Requisitos ......................................................................................... 28
3.2.2 Diagramas de Casos de Uso ............................................................................................ 29
3.2.3 Diagrama de Atividades .................................................................................................. 29
3.2.4 Modelo Entidade Relacionamento................................................................................... 30
3.3 IMPLEMENTAÇÃO ......................................................................................................... 29
3.3.1 Técnicas e ferramentas utilizadas .................................................................................... 31
3.3.1.1 Java ............................................................................................................................... 31
3.3.1.2 SQL Server 2008 .......................................................................................................... 31
3.3.1.3 Swing ............................................................................................................................ 31
3.3.2 Operacionalidade da implementação ............................................................................... 33
3.3.2.1 Tela de Login ................................................................................................................ 31
3.3.2.2 Tela Principal ................................................................................................................ 31
3.3.2.3 Menu Cadastros ............................................................................................................ 31
3.3.2.4 Cadastro de Funcionário ............................................................................................... 31
3.3.2.5 Cadastro de Veículos .................................................................................................... 31
3.3.2.6 Cadastro de Distância ................................................................................................... 31
3.3.2.7 Cadastro de Produto ..................................................................................................... 31
3.3.2.8 Menu Listar Produtos do Pedido .................................................................................. 40
3.3.2.9 Menu Gerar Rota de Entrega ........................................................................................ 40
3.4 RESULTADOS E DISCUSSÕES................................. ..................................................... 42
4 CONCLUSÕES .................................................................................................................. 44
4.1 EXTENSÕES .................................................................................................................... 44
REFERÊNCIAS ..................................................................................................................... 46
APÊNDICE A – Descrição dos Casos de Uso ...................................................................... 49
APÊNDICE B – Dicionário de Dados ................................................................................... 49
12
1 INTRODUÇÃO
Com a crescente concorrência do mercado nacional, e anseios por conquistas a novos
mercados e ampliação de clientes, o termo logístico, até então pouco direcionado, e voltado
diretamente ao mercado interno, ganhou uma nova dimensão, por meios tecnológicos e
sistemas de última geração. Dessa forma vem conquistando novas dimensões e novas
variáveis logísticas, sobretudo, as tecnológicas (GOMES; RIBEIRO, 2004).
Na sua origem, o conceito de logística estava essencialmente ligado às operações
militares, advindo dos generais que precisavam ter, sob suas ordens, uma equipe que
providenciasse o deslocamento, na hora certa, de todo o aparato militar, ao decidir avançar
suas tropas, seguindo uma determinada estratégia. Foi o que aconteceu com as empresas
durante um bom período. Uma indústria precisa transportar seus produtos da fábrica para os
depósitos, ou para as lojas de seus clientes (NOVAES, 2004).
Falar em logística remete a um aparato tecnológico, que sempre constituiu a
plataforma básica e impulsionou o desenvolvimento das organizações e permitiu a
consolidação da globalização. Entretanto, foi com a invenção do computador na segunda
metade do século XX que permitiu que as organizações apresentassem características atuais
de automatização e automação de suas atividades. Sem o computador seria mais difícil de
administrar grandes organizações com uma variedade incrível de produtos, processos,
materiais, clientes, fornecedores e pessoas envolvidas. A informática trouxe a possibilidade de
lidar com grandes números e com grandes e diferentes negócios simultaneamente a um custo
mais baixo e com maior rapidez e absoluta confiabilidade (GOMES; RIBEIRO, 2004).
Uma empresa que possua diversos produtos a serem entregues em diferentes locais e
que disponha de alguns veículos para essas entregas, tem como problema definir a melhor
combinação de cargas a serem transportadas, qual o melhor veículo e disponibilidade, e o
melhor caminho a ser percorrido (ROGRIGUES, 2007). Desta forma, o trabalho em questão
abordará a roteirização como um meio de planejamento para a entrega eficaz de mercadoria.
A logística de distribuição é uma área de atividade dinâmica que trata do caminho do produto
desde sua criação, manufatura, ou bem comum, até sua chegada ao consumidor final.
A Empresa denominada Ferrovia, localizada no município de Gaspar, estado de Santa
Catarina, objeto deste estudo, comercializa produtos do ramo metalúrgico e serralheiro, porém
hoje não possui uma ferramenta de logística que faça o planejamento e a gestão das entregas
de mercadorias automatizada. A oportunidade de criar uma ferramenta para auxiliar na
13
distribuição das cargas e roteiro, possibilita que não gere erros na distribuição das
mercadorias, tais como produtos carregados erroneamente, enviados para consumidores
errados, carregado na sequência de visita inversa ou produtos não enviados.
Na empresa é utilizado um software que foi projetado a partir das necessidades dos
diversos tipos de comércio. É um sistema de automação comercial, com diversas funções para
fazer o gerenciamento da empresa, vendas, estoque e controle financeiro fornecido pela Ideal
Software. Esse software não faz o planejamento e a gestão das entregas de mercadorias, sendo
assim, desenvolveu-se um módulo para integrar o software já existente para gerenciar toda a
entrega, sendo que, os softwares existentes no mercado são caros, e de grande potencial, a
serem utilizados em empresas com grandes demandas de mercadorias e entregas.
A partir disso, surgiu a ideia de criar um módulo que complemente o sistema usado
hoje pela empresa, e que permita a gestão de entregas. O interesse e a demanda pela aplicação
de modelos de roteirização para problemas reais têm crescido consideravelmente,
principalmente após a estabilização da economia, o aumento competitivo do mercado e a
busca da eficiência justificada pela diminuição da inflação, entre as razões destaca-se a
exigência cada vez mais dos clientes, com relação aos prazos de entregas e suas decorrências.
Verificando-se este problema junto a empresa, percebeu-se que um sistema
informatizado poderia reduzir custos e ganhar mais agilidade nas entregas.
11..11 OOBBJJEETTIIVVOOSS DDOO TTRRAABBAALLHHOO
O objetivo do trabalho é desenvolver um sistema de planejamento para entrega de
mercadorias.
Os objetivos específicos do trabalho proposto são:
a) identificar o melhor veículo de carga a ser utilizado para o transporte da
mercadoria a partir dos dados do veículo e dos produtos, e quantidades fornecidas
pelos indicadores;
b) apresentar informações na ordem que as mercadorias serão carregadas através do
local de entrega, definindo a rota de menor custo.
14
11..22 EESSTTRRUUTTUURRAA DDOO TTRRAABBAALLHHOO
No primeiro capítulo tem-se a introdução deste trabalho com a apresentação da
justificativa e dos objetivos.
No segundo capítulo apresenta-se a fundamentação teórica pesquisada sobre a
importância da logística no processo, roteirização, sistema atual, trabalhos correlatos.
O terceiro capítulo apresenta o desenvolvimento do sistema de planejamento de rotas
de entregas de mercadorias iniciando-se com o levantamento de informações, especificação,
implementação e os resultados e discussões.
No quarto capítulo tem-se as conclusões deste trabalho bem como se apresentam
sugestões para trabalhos futuros.
15
2 FUNDAMENTAÇÃO TEÓRICA
Esse capítulo aborda a importância da logística no processo, problemas de roteirização,
sistema atual e trabalhos correlatos.
22..11 IIMMPPOORRTTÂÂNNCCIIAA DDAA LLOOGGÍÍSSTTIICCAA NNOO PPRROOCCEESSSSOO
A logística é responsável pelos recursos, equipamentos e informações para que todas
as atividades de uma empresa sejam executadas e correlacionadas ao êxito. Para isso, é
preciso planejar o transporte, armazenagem, processamento dos pedidos e o correto
gerenciamento das informações (NOVAES, 2004).
Uma logística bem planejada representa ganhos como entregas mais rápidas, redução
de estoques e custos operacionais, aumento da produtividade e no giro de mercadorias. A
logística adiciona um novo valor frente ao cliente e confere um diferencial competitivo para
sua empresa. Desta forma, como menciona Rodrigues (2007) acredita-se que a logística se
tornou um sinônimo de redução de custos e melhoria nos serviços, observando o
relacionamento entre clientes e fornecedores, proporcionando um laço mais confiante entre
todos, tendo assim, um sistema de coordenação sistematizada com objetivos comuns.
Embora as diversas combinações de rotas possam ser testadas manualmente, técnicas
programáveis podem ser atrativas. Para Razzolini Filho (2006, p. 22) “esta exigência de
rapidez e flexibilidade levam as empresa a buscarem a integração de seus canais de
suprimentos de forma que possam atender adequadamente aos seus mercados em que atuam”.
Uma organização deve oferecer produtos e serviços aos seus clientes, conforme suas
necessidades e exigências, da maneira mais eficiente possível, a redução dos custos logísticos
engloba um desses fatores.
A distribuição de produtos é uma das principais preocupações das empresas, pois
define o seu sucesso ou insucesso, no processo de atendimento aos seus clientes. Um bom
planejamento logístico pode criar condições para alcançar a eficiência e a confiabilidade no
serviço prestado pela empresa, garantindo a satisfação dos clientes e a redução dos seus custos
(BOTELHO, 2003).
Redução de custos é o grande diferencial, quando se busca alternativas viáveis de
16
manutenção deste serviço. Segundo Ballou (2001) este planejamento é bastante importante,
uma vez que os custos de transporte correspondem de um a dois terços do total dos custos
operacionais das empresas.
Para Novaes (2004), na prática, a distribuição de produtos é analisada sobre diferentes
perspectivas funcionais. Para a logística, a distribuição física está relacionada aos processos
operacionais e de controle. Já para o pessoal de marketing e de vendas, a cadeia de
suprimentos é encarada focalizando os aspectos ligados à comercialização dos produtos e aos
serviços a ela associados.
A missão da logística consiste em colocar os diversos tipos de produtos, e meios de
aquisição, no momento certo, e nas condições desejadas, para isso, um sistema que permita
diminuir o tempo de entrega, diminuir custos desnecessários com o serviço e demais maneiras
da própria entrega, facilita e propicia lucros, e, o mais desejado, que é a manutenção dos
clientes.
Com o acirramento competitivo dos mercados através da globalização, os clientes
estão cada vez mais intolerantes a falhas. A excelência na entrega está deixando de ser
diferencial, para se tornar imprescindível na manutenção destes clientes. A rentabilidade da
empresa é a diferença do valor e o custo do produto acrescido dos impostos. Portanto, a meta
principal das empresas é criar valor aos clientes que exceda o custo (BOWERSOX; CLOSS,
2001).
Para o acompanhamento e ajuda nestas premissas logísticas, existem alguns softwares,
ditos roteirizadores, e sistemas integrados de gestão, desenvolvidos para integrar, controlar e
gerenciar a cadeia de suprimentos com o objetivo de melhor atender ao cliente, e, que ajudam
na melhoria contínua deste serviço de caráter fundamental e na manutenção dos custos
logísticos e principalmente do nível de serviço. A roteirização de veículos é uma das histórias
de grande sucesso da pesquisa operacional nas últimas décadas (ASSAD; SANO, 2003).
Conforme salienta Cunha (2000), esse interesse é devido a dois fatores: a ênfase cada
vez maior dada aos problemas de roteirização e sua complexidade matemática. Pois é
impossível determinar soluções ótimas para os problemas de roteirização, desafiando a busca
de cálculos mais eficientes. Ainda no conceito de Cunha (2000), embora a quase totalidade
dos desenvolvedores de softwares de roteirização mantenham em sigilo os algoritmos de
soluções utilizados, a análise de resultados obtidos para algumas instâncias específicas de
problemas permite induzir que são heurísticas simples, que produzem soluções viáveis e, em
geral, de boa qualidade para problemas de grande porte, em reduzido tempo de
processamento. No entanto, vale destacar o que comenta Ferreira Filho e Melo (2001), ao
17
dizer que as heurísticas existentes para resolver os problemas das rotas e entregas, nos
softwares especializados no mercado, tendem a ser muito generalistas e não costumam gerar
resultados satisfatórios.
A troca de informações que acontece no processo logístico tem a finalidade de apoiar a
movimentação de materiais, no sentido de atender às necessidades em toda a cadeia de
abastecimento. A meta de uma boa logística é sincronizar distribuição física com demanda
pela redução de incertezas na análise das informações (SILVA, 2003).
Para assegurar um transporte de qualidade que atenda as demandas existentes e uma
série de rotinas operacionais adequadas e planejadas, destaca-se a roteirização e programação
de veículos, a qual não será difundida neste trabalho.
De acordo com Marques (2002), os softwares de roteirização possuem três
funcionalidades principais: monitoramento e controle, planejamento e execução, e, por fim, o
apoio à negociação e auditoria de frete, relacionado ao controle sobre serviços de transportes
oferecidos por terceiros.
Contudo, para Naruo (2003) e Pelizaro (2000) geralmente os sistemas de roteirização e
programação tem como saída básica o mesmo: para cada veículo ou tripulante, uma rota e
uma programação são providenciadas.
Essas informações permitem ao sistema gerar modelos muito próximos da realidade
atual, que trabalhados em conjunto com poderosos recursos gráficos, fornecem importantes
informações para o processo de tomada de decisão.
22..22 RROOTTEEIIRRIIZZAAÇÇÃÃOO
O processo de roteirização, nada mais é, do que um processo de criação de roteiros ou
sequências, onde pontos de paradas, geograficamente dispersos, em locais pré-determinados,
devem ser atendidos de acordo com suas necessidades, com o menor tempo, melhor rota e
custo na distribuição (NOVAES, 2004).
O termo roteirização de veículos, embora não encontrado nos dicionários de língua
portuguesa, tem sido utilizado como equivalente ao inglês routing (ou routeing) para designar
o processo de determinação de uma ou mais rotas ou sequências de paradas a serem
cumpridas por veículos de uma determinada frota.
Segundo Laporte et al (2000), a roteirização de veículos consiste em definir rotas de
18
veículos que minimizem o custo total de atendimento, assegurando que cada ponto seja
visitado exatamente uma vez. Na roteirização urbana, o problema é mais complexo, pois o
sistema viário é mais denso, o número de alternativas de itinerários é muito superior e as
restrições de circulação são mais rigorosas (mão de direção, movimentos permitidos e
proibidos). Como salienta Novaes (2004) na prática, problemas de roteirização ocorrem com
bastante frequência na distribuição de produtos e de serviços.
Segundo Carrara (2007), em um perímetro urbano, existem diversos fatores que podem
influenciar na escolha da melhor rota, tempo, fluxo de veículos, distância, entre outros. Com a
combinação desses fatores, seria possível obter com maior precisão a rota mais adequada para
determinado tipo de veículo. Resolver esse problema envolve determinar quantos veículos são
necessários para servir os destinos e desenvolver uma rota e programação para cada um.
Problemas de roteirização de veículos são muitas vezes definidos como questões de múltiplos
caixeiros-viajantes com restrições adicionais de capacidade, além de outras que dependem de
cada aplicação. Na literatura técnica, o problema de roteirização sem restrições é chamado de
Problema do Caixeiro-Viajante (PVC). Existe uma grande variedade deste tipo de problema
(do inglês Traveling Salesman Problem - TSP)1.
Este problema consiste em determinar uma rota de mínimo custo que passe por todos
os nós, uma única vez. Sua formulação original é a seguinte: existem N pontos (nós) numa
rede onde o caixeiro viajante deve partir de um ponto inicial (depósito ou base) e visitar pelo
menos uma vez os outros N - 1 pontos, voltando no final da viagem para o ponto inicial. O
problema a ser resolvido é o de encontrar a sequência de visitas aos clientes que torne mínimo
o percurso dentro do bolsão de distribuição.
Como evidenciado na Figura 1, onde um bolsão circular de clientes e rotas já traçadas
torna-se fácil a roteirização deste tipo de entrega, mostra que todos os tipos de problemas de
roteirização e programação são de natureza essencialmente operacional, ou seja, fazem parte
das tarefas rotineiras de programação da frota, realizadas com frequência regular, em geral
diária ou semanal. O problema a ser resolvido é encontrar a sequência de visitas aos clientes
que torne mínimo o percurso dentro do bolsão de distribuição.
1 Na literatura técnica, o problema de roteirização sem restrições recebe o nome de Problema do Caixeiro-Viajante (PVC). Isso porque o autor que primeiro analisou a questão exemplificou a metodologia através de aplicação a um caso em que um caixeiro-viajante tem de visitar um determinado número de cidades localizadas numa região, devendo achar a sequência que minimize o percurso total (NOVAES, 2004, p. 304).
19
Figura 1 - Roteiro simples (12 clientes) em um bolsão de distribuição
Fonte: Novaes (2004, p. 305).
A Figura 1 representada acima mostra um modelo simples de roteirização, em um
bolsão circular, mas de complexa absorção, se levar em consideração diferentes rotas e
destinos no mesmo circuito de entrega, isso devido às relevâncias que envolvem as decisões
para melhor utilização da frota. Os problemas de roteirização de veículos podem ser
classificados, segundo Christofides (1985) em diversas categorias e tipos. Os vários
problemas diferem, entre si, em aspectos relacionados ao tipo de operação, de carga, da frota
utilizada, à localização dos clientes, ao tipo de restrições, de função objetivo e vários outros
fatores.
Nos estudos relacionados de Christofides (1985), Brejon (1998) e Assad (1988)
destacam-se os problemas básicos da roteirização de veículos baseados nos parâmetros mais
relevantes e comuns, sendo classificados em quatro categorias, função objetivo (minimizar
custos e distância total percorrida), restrições (veículos, clientes e rotas), variáveis de decisão
e hipóteses e/ou recursos (roteiro a ser percorrido, quantidade da carga transportada, tempo de
início de atendimento do primeiro cliente da rota, tipo de operação, carga, demanda, tamanho
da frota, jornada de trabalho, estrutura da rede) e características dos problemas.
Assad (1988) coloca como uma das maiores dificuldades em encontrar um esquema de
classificação apropriado está em considerar ou não as restrições do problema e o método de
solução proposto. Para o autor, cada problema prático seja caracterizado particularmente, de
acordo com um conjunto de elementos. Nos problemas clássicos de roteirização, pressupõe-se
que a demanda é conhecida antecipadamente. Na roteirização dinâmica a demanda, os roteiros
ocorrem em tempo real.
Pelizzaro (2000) aborda que cada problema tende a ser diferente, necessitando de
atenção particular. Um importante atributo para a roteirização de veículos é a precisão das
informações geográficas sobre as localizações dos clientes e redes viárias.
Clientes
Roteiro de visitas
Bolsão de distribuição
Distribuição/recepção
20
O problema do caminho mínimo consiste basicamente: dado um grafo com pesos nas
arestas, obter o caminho de menor custo entre dois vértices x e y. Como muitas vezes o peso
representa a distância entre os vértices, este problema passou a ser conhecido como problema
do caminho mínimo. Quando todas as arestas de grafo G possuem peso 1, o problema de
encontrar o caminho de menor custo entre um vértice s e os outros vértices de G, se resume ao
caminho mais curto entre s e os outros vértices do grafo G, ou seja, o caminho com o menor
número de arestas. Considere o grafo dirigido da Figura 2.
Figura 2 - Vértices (grafo dirigido)
Fonte: Nonato (2000).
Suponha-se que s na figura acima seja o vértice v3. O caminho mais curto de s até o
próprio vértice v3 é 0. Agora se pode olhar para todos os vértices que estão a uma distância 1
de s, ou seja, os vértices v1 e v6 que são adjacentes a s. Os vértices que estão a uma distância
2 de s podem ser encontrados através dos vértices adjacentes aos vértices v1 e v6, cujo
caminho mais curto ainda não tenha sido encontrado. Na Figura 3, como cita Nonato (2000),
estes vértices são v2 e v4. Seguindo o procedimento acima, pode-se encontrar os vértices que
estão a uma distância 3,4. Note-se que o esquema acima é muito parecido com o método de
busca em largura. O algoritmo da Figura 3 assume que cada vértice possui a informação de
sua distância até o vértice fonte. Esta informação será armazenada no campo DIST ou ROTA.
21
Figura 3 - Algoritmo (grafo dirigido)
Fonte: Nonato (2000).
Cada vértice do grafo é colocado na fila no máximo uma vez, e cada aresta adjacente a
um vértice também é percorrida no máximo uma vez (pois o grafo é dirigido).
22..33 SSIISSTTEEMMAA AATTUUAALL
Localizada no município de Gaspar, estado de Santa Catarina, a empresa Ferrovia
Comércio de Ferro e Aço, foi iniciada com o objetivo de comercializar produtos no ramo
metalúrgico e serralheiro. Têm como meta possibilitar a satisfação aos clientes de forma a se
tornarem fortes parceiros comerciais (FERROVIA, 2009).
Atualmente a empresa não utiliza um módulo de roteirização para ajustar e planejar as
entregas. Na entrega do material, levam-se em consideração boas práticas de carregamento e
entrega, a fim de melhorar a rota específica e a redução do nível de trabalho. A roteirização na
void calc_dist(heads *G, int s) /* s eh o indice do vertice fonte */ { int i; no *aux; for(i=0; i<NUMVERT; i++) { G[i].FLAG = 0; G[i].DIST = MAXINT; /* MAXINT eh o maior inteir o representavel */ } G[s].FLAG = 1; G[s].DIST = 0; INSERE(Q,s); while (EMPTY(Q) != 1) { i = REMOVE(Q); for(aux = G[i].ADJ; aux; aux = aux->NEXT) { if (G[aux->VERTEX].FLAG == 0) { G[aux->VERTEX].FLAG = 1; G[aux->VERTEX].DIST = G[i].DIST + 1; INSERE(Q,aux->VERTEX); } } } }
22
empresa é feita de forma manual, sem o suporte de nenhum software. O gerente de logística,
junto com os motoristas dos caminhões determinam o roteiro das entregas somente com base
em seus conhecimentos do trânsito, horário de entrega dos clientes, e caminhos que eles
julgam mais apropriados para conseguir atender os prazos.
Desta forma, o gerente emite o romaneio de entregas para o motorista. São agrupados
os pedidos por locais específicos da cidade e região, e localizações de clientes mais próximos,
preparando assim o caminhão de entregas, conforme a ilustração da Figura 4.
Figura 4 - Fluxograma de distribuição
2.3.1 Política da empresa
Segundo Ferrovia (2009) com o desejo de possibilitar satisfação aos clientes de forma
a tornar-se fortes parceiros comerciais, com seus clientes e fornecedores, tem como metas:
a) atender as necessidades de nossos clientes, entregando com rapidez e perfeição os
produtos por eles adquiridos, dentro de uma facilidade financeira necessária;
b) manter o estoque de produtos cada vez mais diversificado, para que possamos
disponibilizar à pronta entrega todas as necessidades de nossos clientes;
c) investir em treinamento de funcionários para que possa-se oferecer um atendimento
cada vez melhor.
São pressupostos indispensáveis a atuação da empresa, melhorias do ambiente
operacional, onde a otimização de recursos envolvidos pode trazer ganhos para o sistema da
empresa como um todo, evidenciando-as ao processo, aumento da produtividade, redução do
lead time, entre outros valores que agregam qualidade ao contexto. Nas descrições acima, a
Início Envio da solicitação do departamento de
compras
Programação de transportes
Emissão da coleta
Despacho do veículo
Contato com o fornecedor
Carregamento do veículo
Retorno do veículo à empresa
Término Suporte de expedição
23
caracterização de um ambiente roteirizado fará a diferença na conquista dos pressupostos
evidenciados.
22..44 TTRRAABBAALLHHOOSS CCOORRRREELLAATTOOSS
O estudo referenciado teve acesso a artigos que apresentaram menor relação com o
tema pesquisado, mas de extrema importância para o desenvolvimento deste trabalho.
2.4.1 Constraint Satisfaction Problem (CSP)
O trabalho de Rosa (2005) que utilizou uma técnica para otimizar rotas para entregas
de coletas e mercadorias por vias rodoviárias através do Constraint Satisfaction Problem
(CSP) também chamada de programação por restrições obteve sucesso ao enquadrar qual a
melhor rota para os produtos chegarem a seus destinos. Conforme a autora, a qual citou
Sucupira (2003, p. 1) afirma que a programação de restrições (constraint programming) tem a
capacidade de reduzir o esforço e tornar mais natural o desenvolvimento da programação para
alguns tipos de problemas devido a fatores como a utilização de ferramentas que tornam as
soluções mais automatizadas.
Ainda, segundo Sucupira (2003), as qualidades da programação de restrições, apoiadas
em uma forte fundamentação teórica e aliadas à eficiência dos sistemas existentes para a
prática da programação de restrições, têm resultado num grande sucesso, tornando essa
tecnologia escolha frequente para o tratamento de diversas classes de problemas, como por
exemplo, o problema do caixeiro viajante, da coloração de mapas, entre outros.
De acordo com Rosa (2005) um CSP é formalmente definido como um conjunto de
variáveis, X1, X2,..., Xn, e um conjunto de restrições (constraints), C1, C2,..., Cm. Cada
variável Xi tem domínio Di, não vazio e de valores possíveis. Cada restrição Ci envolve
algum subconjunto de variáveis e especifica as combinações dos valores possíveis para esse
subconjunto. Um estado do problema é definido por atribuição dos valores a algumas ou a
todas as variáveis, {X1 = V1, X2 = V2,..., Xn = Vn}. Uma atribuição que não viole nenhuma
das restrições é chamada de atribuição consistente ou legal. Uma atribuição completa possui
24
todas as variáveis mencionadas, e uma solução para um CSP é uma atribuição completa que
satisfaz a todas as restrições.
A ferramenta utilizada para o desenvolvimento do trabalho foi o GNU Prolog pois
contém uma eficiente solução de restrições e de domínios finitos. Isso possibilita a
programação lógica de restrições que combina o poder da programação de restrições e a
declaratividade da programação lógica.
Na elucidação do trabalho acima, baseou-se nos termos utilizados e em alguns
conceitos de Sistemas para logística de Distribuição, e algumas metodologias aplicadas, no
contexto logístico atual, as quais constam no referencial teórico deste trabalho.
2.4.2 Dissertação de Mestrado de Enomoto
Outro trabalho de relevância para o assunto roteirização, remete aos estudos de
Enomoto (2005), o qual se refere aos estudos em um atacadista, utilizando um software
específico de roteirização, e estudos aplicados a este módulo de logística. A empresa, a qual
foi o tema do estudo de Enomoto (2005) começou em 1986 a trabalhar com o software de
roteirização chamado Trucks, que operava em ambiente DOS. Este software apresenta vários
registros de utilização no Brasil.
O software apresenta uma interface bastante amigável ao usuário, e trabalha com o
conceito de janelas típica do Windows, e, podem ser abertas por atalhos. As janelas principais
correspondem a informações sobre as Praças ou locais (Location), Pedidos (Order), Rede
(Network), Planejamento (Planning) e Rotas (Route), conforme Figura 5, que mostra uma
ampliação das janelas principais e alguns campos de parametrização da janela de Locations.
25
Figura 5 – Janela de parametrização do software NR
Fonte: Enomoto (2005, p. 92).
26
3 DESENVOLVIMENTO
Neste capitulo será descrito o desenvolvimento do sistema. As seções descrevem os
requisitos principais do sistema, especificação do sistema, e implementação do sistema.
33..11 LLEEVVAANNTTAAMMEENNTTOO DDEE IINNFFOORRMMAAÇÇÕÕEESS
Desta forma para se estabelecer um roteiro ideal de entregas ou visitas, é necessário
que seja considerado:
a) malha viária previamente definida (determinando a distância entre os locais de
entrega);
b) conjunto de nós (pontos de movimentação de cargas, ou clientes);
c) frota de veículos (caminhões, carros, motos, utilitários, etc);
d) demanda de entrega ou coleta, que deve ser entregue pelos veículos, aos clientes, na
malha predefinida, respeitando todas as restrições inseridas no sistema, limite de
peso e volume.
O resultado é a sequência de visita entre os clientes, realizada pelos veículos, seguindo
o critério de menor custo de entrega. Com os dados dos clientes no sistema, são capturadas as
informações de localização e suas respectivas necessidades, como tipo de
mercadoria/material.
Após a importação das informações de localização dos clientes, é necessária a
conexão desses clientes em uma malha viária pré-existente. Efetuada a conexão do cliente é
necessário cadastrar os veículos de todos os tipos e capacidades. Além das informações
anteriores, é possível cadastrar todos os produtos que serão transportados, com informações
sobre o peso, o volume, agrupamentos e fragmentações possíveis.
Nos itens anteriores tratou-se da preparação do cenário para a programação das
entregas, posteriormente, são necessárias as informações relacionadas ao que vai ser
efetivamente transportado. Assim, a roteirização, é a etapa final do processo de planejamento,
é nela que o sistema irá definir a melhor sequência, os veículos a serem utilizados, os trajetos
que deverão ser percorridos.
27
Segundo Fernandes (2002) existem três diferentes modalidades de operação com a
roteirização:
a) por proximidade geográfica, com vínculo a zona de venda: esta definida pela
delimitação da área de entrega e veículos a ela alocados, de forma que se formam
vínculos entre um ou mais veículos e um determinado número de clientes. O vínculo é
entre um vendedor (dentro do seu território, ou zona de vendas) e o veículo. Ou seja, o
vendedor sempre terá n veículos à sua disposição, independente da demanda. Esse
modelo garante a constância de um mesmo motorista/veículo, aos clientes, mas não
garante a qualidade da rota, nem o ganho potencial de redução de recursos físicos e
humanos;
b) linear: esse método apresenta a elaboração de um itinerário de entrega, como se todas
as entregas fossem feitas a todos os clientes da semana em um único dia, por um
veículo teórico, criando assim um grande roteiro, que depois se fragmentará em sub-
roteiros, de acordo com a capacidade dos veículos disponíveis;
c) dinâmica: este método utiliza o conceito de que os recursos físicos e humanos
existentes estão disponíveis para efetuar certo número de entregas diariamente, e
considera uma produtividade média por veículo, dentro de sua jornada de trabalho
normal, ou a prática de horas extras. Ou seja, na primeira, restringe-se à demanda em
função da capacidade, e na segunda, a capacidade em função da demanda.
A partir do processamento dos pedidos do dia, são definidos os itinerários de entrega,
a alocação de veículos, tipo de veículo, maximização do aproveitamento dos veículos, menor
quilometragem e/ou menor jornada de trabalho.
O método dinâmico cria rotas sempre variadas, inclusive para os mesmos dias da
semana, uma vez que não é possível garantir aos mesmos clientes, que sejam atendidos
sempre no mesmo dia da semana, com o mesmo volume de pedido.
Após a definição da rota, é emitido um romaneio que contém a ordem das entregas.
Em seguida os pedidos são enviados a expedição na ordem que vão ser entregues, ou seja, o
primeiro a ser carregado no veículo de entregas será o último a ser recebido pelo seu
respectivo cliente, e o último pedido a subir no caminhão será o primeiro a ser entregue, este
conceito também é chamado como, último a entrar, primeiro a sair.
O problema do caminho mínimo consiste basicamente em um grafo com pesos nas
arestas, obter o caminho de menor custo entre dois vértices x e y, conforme explicado na
Figura 2 do capítulo 2.
28
33..22 EESSPPEECCIIFFIICCAAÇÇÃÃOO
A especificação do sistema foi feito através de Diagramas de Caso de Uso, Atividades
e do Modelo Entidade Relacionamento (MER), utilizando a ferramenta de auxílio o Enterprise
Architect.
3.2.1 Especificações dos Requisitos
O Quadro 1 apresenta os requisitos funcionais previstos para o sistema e sua
rastreabilidade, ou seja, vinculação com o(s) caso(s) de uso associado(s).
Quadro 1 - Requisitos funcionais
Requisitos Funcionais Caso de Uso
RF01: O sistema deverá permitir o usuário efetuar login no sistema. UC01
RF02: O sistema deverá permitir o cadastro de veículos. UC02
RF03: O sistema deverá permitir o cadastro de produtos. UC03
RF04: O sistema deverá permitir o cadastro das distâncias entre os clientes. UC04
RF05: O sistema deverá permitir integrar informações dos clientes. UC05
RF06: O sistema deverá permitir ao usuário a listar a rota de entrega com
seus determinados pedidos. UC06
RF07: O sistema deverá permitir ao usuário a verificar os produtos. UC07
RF08: O sistema deverá permitir o administrador manter o acesso dos
usuários através de perfis. UC08
RF09: O sistema deverá permitir buscar os pedidos. UC09
O Quadro 2 lista os requisitos não funcionais previstos para o sistema.
Quadro 2 - Requisitos não funcionais
Requisitos Não Funcionais
RNF01: O sistema deverá interagir com o sistema Shop Control 8.
RNF02: O sistema será implementado utilizando linguagem Java.
29
RNF03: O sistema deverá utilizar banco de dados SQL Server 2008
3.2.2 Diagramas de Casos de Uso
Esta subseção apresenta os diagramas de casos de uso do sistema. Na Figura 6
apresenta-se o diagrama de casos de uso especificando as ações que o usuário pode realizar no
sistema. Nota-se que o diagrama de casos de uso possui os atores Usuário, Administrador e
Shop Control. As descrições dos casos de uso encontram-se no Apêndice A.
Figura 6 - Diagrama de casos de uso
3.2.3 Diagrama de Atividades
A Figura 7 representa o diagrama de atividades do processo da geração de rota de
entrega da mercadoria. Primeiramente o processo inicia quando o usuário efetua o login no
30
sistema, posteriormente o usuário informa a data que o sistema irá buscar os pedidos para
gerar as entregas do dia seguinte, chegando ao final do ciclo.
Figura 7 - Diagrama de atividade
3.2.4 Modelo Entidade Relacionamento
Na Figura 8 verifica-se o MER do aplicativo desenvolvido com as entidades criadas e
seus relacionamentos. O dicionário de dados se encontra no Apêndice B.
Na tabela entregas é gravado o código do veículo e os pedidos em que o mesmo irá
transportar, utilizando com restrição a capacidade de transporte, ao atingir o limite da
capacidade do veículo o próximo pedido irá para o próximo veículo e assim sucessivamente.
Ao término o sistema irá montar a tabela roteiro mais detalhada, percorrendo a tabela
31
entregas, para depois calcular qual o é a rota de menor custo.
Figura 8 – Modelo entidade relacionamento
33..33 IIMMPPLLEEMMEENNTTAAÇÇÃÃOO
A seguir são mostradas as técnicas e ferramentas utilizadas e a operacionalidade da
implementação.
3.3.1 Técnicas e ferramentas utilizadas
A seguir são apresentadas as ferramentas utilizadas para o desenvolvimento do sistema
32
proposto, tais como Java com Swing e SQL Server 2008. É mostrado também algumas
operacionalidades da implementação através de código fonte.
3.3.1.1 Java
O Java é uma linguagem de programação orientada a objeto desenvolvida por uma
equipe de programadores da empresa Sun Microsystems na década de 90. A linguagem Java é
compilada para um bytecode que é executada por uma máquina virtual, Java Virtual Machine
(JVM) (CAELUM, 2013).
O Quadro 3 ilustra o código fonte para a realizar a gravação de um novo usuário.
Quadro 3 – Código fonte para gravar um novo usuário no sistema.
private void botao_gravarActionPerformed(java.awt.event.ActionEvent evt) { if ( tf_codigo .getText().equals( "" ) || tf_nome .getText().equals( "" )|| tf_senha .getText().equals( "" )) JOptionPane.showMessageDialog( null ,"Os campos não podem ser vazios"); try { String sqlinsert = (String) ("insert into usuarios (codigo, nome, senha, fg_acesso, fg_cadastro, fg_gerar_rota, fg_li star_produtos) " + "values ('" + tf_codigo .getText()+ "','" +tf_nome .getText()+ "','" +tf_senha .getText()+ "'," + ( rd_acesso .getSelectedObjects() == null ? 0 : 1)+ "," + ( rd_gerar_rota .getSelectedObjects() == null ? 0 : 1)+ "," + ( rd_cadastro .getSelectedObjects() == null ? 0 : 1)+ "," + ( rd_listar_produtos .getSelectedObjects() == null ? 0 : 1)+ ")" ); con_usuario.statementIdeal .executeUpdate(sqlinsert); JOptionPane.showMessageDialog( null , "Gravação efetuada com sucesso!" ); con_usuario .executeSQLIdeal( "select * from usuarios order by codigo" ); preencher_jtable(); } catch (SQLException erro) { System. out .println(erro); JOptionPane.showMessageDialog( null , "Erro ao tentar gravar registro" ); } }
33
3.3.1.2 SQL Server 2008
Para o armazenamento dos dados do sistema é utilizado o SQL Server 2008 que é o
mesmo utilizado pelo sistema Shop Control. O Microsoft SQL Server 2008 Express é um
sistema de gerenciamento de dados avançado e confiável que fornece um conjunto sofisticado
de recursos, proteção de dados e desempenho para clientes de aplicativos incorporados,
aplicativos web leves e armazenamentos de dados locais (MICROSOFT, 2013).
3.3.1 Swing
No desenvolvimento do sistema foi utilizado o Swing para acelerar o desenvolvimento
do sistema. Criado para desenhar por conta própria todos os componentes, ao invés de delegar
essa tarefa ao sistema operacional (CAELUM, 2013).
3.3.2 Operacionalidade da implementação
Nesta subseção apresentam-se as telas do sistema com uma apresentação sobre suas
funcionalidades, bem como trechos de código relevantes para o entendimento de algumas
rotinas.
3.3.2.1 Tela de Login
Para o usuário acessar o sistema, primeiramente deverá efetuar o login, conforme
Figura 9, nesta tela o usuário deve informar o usuário e a senha para ter acesso ao sistema.
34
Figura 9 – Tela de login
Informando usuário e senha, o usuário deve clicar no botão entrar. Se algum campo
estiver em branco, o sistema exibirá a mensagem: “Os campos não podem ser vazios”. Após o
usuário informar todos os campos e clicar no botão entrar, o sistema fará a validação do
usuário. Caso o usuário não exista, ou a senha esteja incorreta, será apresentada a mensagem:
“Senha Incorreta”. Após validar o usuário, ele será redirecionado para a tela principal do
sistema.
3.3.2.2 Tela Principal
Após efetuar login no sistema, o usuário é direcionado para a tela principal do sistema,
conforme mostra a Figura 10, onde o usuário terá acesso a duas opções distintas: gerar rota de
entrega, listar produtos do pedido, além do acesso a opção de cadastros, pelo menu superior.
35
Figura 10 – Tela principal
3.3.2.3 Menu Cadastros
O menu Cadastro é composto pelos itens Usuários, Produtos, Veículos e Distância.
Todas as telas possuem permissão de acesso, que deve ser concedida ao cadastrar um novo
usuário.
A Figura 11 apresenta o menu Cadastro.
Figura 11 – Menu cadastro
36
3.3.2.4 Cadastro de Usuário
A Figura 12 apresenta onde é cadastrado um novo usuário e delegará as telas onde
cada usuário terá acesso.
Esta tela possui um cadastro simples, porém os únicos campos obrigatórios são o
código, nome a senha. O botão “GRAVAR” somente é liberado quando o usuário informar o
código do novo usuário que é gerado automaticamente ao clicar no botão próximo código
representado pelo “>”. Para gravar um novo usuário o mesmo deverá clicar no botão
“LIMPAR” e novamente clicar no botão próximo código representado pelo “>”. O
“ALTERAR” somente é liberado quando o usuário selecionar na tabela o funcionário que
deseja fazer a alteração.
Figura 12 – Tela de cadastro de usuários
37
3.3.2.5 Cadastro de Veículos
Na Figura 13 é apresentada a tela de cadastro de veículos, onde se pode efetuar o
cadastro de veículos que possuem como campos obrigatórios código, veiculo, Km/l, peso,
largura, altura e comprimento, dados utilizados para calcular a capacidade de carga e o custo
da entrega. O botão “GRAVAR” somente é liberado quando o usuário informar o código do
novo veículo que é gerado automaticamente ao clicar no botão próximo código representado
pelo “>”. Para gravar um novo veículo o mesmo deverá clicar no botão “LIMPAR” e
novamente clicar no botão próximo código representado pelo “>”. O “ALTERAR” somente é
liberado quando o usuário selecionar na tabela o veículo que deseja fazer a alteração.
Figura 13 – Tela de cadastro de veículos
38
3.3.2.6 Cadastro de Distância
Na Figura 14 é cadastrada a distância entre os clientes e caso tenha restrição (custo que
deverá ser somada na distância entre os clientes selecionados, tais como pedágio naquele
trecho), com estes dados o sistema irá verificar qual a menor distância entre os clientes na
geração da rota. Para efetuar o cadastro da distância, o usuário deverá selecionar o código do
cliente, assim o sistema irá buscar no Shop Control o cliente e listará todas as possibilidades
entre clientes já cadastrados no sistema. O botão “GRAVAR” somente é liberado quando o
usuário selecionar na tabela a linha em que deseja cadastrar a distância e que a mesma esteja
com a distância em branco, se a distância já esteja preenchida irá liberar somente o botão
“ALTERAR”.
Figura 14 – Tela de cadastro de distância
39
3.3.2.7 Cadastro de Produto
Na Figura 15 é apresentada a tela de cadastro de produtos. O sistema irá listar na tabela
todos os produtos já cadastrados no Shop Control, faltando somente o usuário cadastrar os
campos obrigatórios para o calculo da cubagem da carga como peso, comprimento, largura e
altura. O botão “GRAVAR” somente é liberado quando o usuário selecionar na tabela um
produto que não esteja cadastrado os campos peso, comprimento, largura e altura, caso o
produtos selecionado já esteja com estes campos selecionados o sistema irá liberar somente o
botão “ALTERAR”.
Figura 15 – Tela de cadastro de produto
40
3.3.2.8 Menu Listar produtos do pedido
A Figura 16 é utilizada para verificar os produtos que compõem o pedido, o
funcionário deverá preencher o campo com o número da sequencia do pedido e clicar em
“BUSCAR”, assim o sistema irá apresentar o código, nome e a quantidade vendida que
compõem o pedido.
Figura 16 – Tela para listar produtos do pedido
3.3.2.9 Menu Gerar Rota de Entrega
A Figura 17 apresenta a tela que é utilizada para gerar a rota de menor custo para a
entrega dos pedidos, ao informar a data das vendas e o valor do combustível, o funcionário
deverá clicar no botão “GERAR ROTA” o sistema irá apresentar o veículo com a sequência
de clientes em que ele irá percorrer no dia seguinte. Deste modo o estoquista irá pegar o
pedido desses clientes e carregar no veículo informando pelo sistema. O estoquista deverá
começar a carregar o veículo pelo último cliente informando pelo sistema, assim o último
pedido carregado será o primeiro a ser entregue.
41
Figura 17 – Tela para gerar rota de entrega
A Figura 18 ilustra o comportamento do sistema para gerar a rota com menor custo de
dois pedidos. Devido a restrição do peso do veículo a Figura 18 ilustra duas alternativas das
cinco possíveis.
Na 1ª alternativa, cada pedido irá em um veículo diferente, assim o custo total para a
entrega é de R$ 11,00 reais. Na 2ª alternativa, os dois pedidos irão no mesmo veículo, devido
o veículo gastar mais combustível por quilômetro rodado o custo total para a entrega sobe
para R$ 32,00 reais. Desta forma a 1ª alternativa é mais viável para efetuar a entrega das
mercadorias.
42
Figura 18 – Demonstração do cálculo de menor custo
Na Figura 19 tem-se o cálculo da rota de menor custo, ele atende o requisito “b” dos
objetos específicos do trabalho.
Figura 19 – Código do cálculo de menor custo da rota
33..44 RREESSUULLTTAADDOOSS EE DDIISSCCUUSSSSÕÕEESS
O principal objetivo deste trabalho era planejar a rota de entrega com o menor custo. O
trabalho desenvolvido por Rosa (2005) se relaciona em partes com este trabalho, pois tem
43
como objetivo enquadrar a melhor rota para os produtos chegaram ao seus destino, através da
utilização de Constraint Satisfaction Problem (CSP) também chamada de programação de
restrições.
Rosa (2005) utilizou a ferramenta GNU Prolog para executar a técnica de CSP, pois
contém uma eficiente solução de restrições e de domínios finitos.
A relação com o trabalho de Enomoto (2005) que utilizou um software específico de
roteirização aplicado em uma empresa atacadista, que utilizava os dados de latitude e
longitude para definição da rota.
O objetivo foi alcançado nos testes realizados no ambiente de testes na empresa,
utilizando uma cópia da base de dados oficial do Shop Control 8, e em seguida foi
apresentado para o gerente de logística da empresa. O mesmo realizou testes durante alguns
dias confirmando que o sistema estava apresentando o menor custo para a entrega das
mercadorias, gerando a rota e a sequência em que os pedidos deveriam ser carregados no
caminhão.
Através deste teste, conclui-se que o sistema desenvolvido apresentou bons resultados
na geração da rota com menor custo para entrega dos pedidos, que feita de forma
manualmente não se percebia que poderia ser melhor planejada.
44
4 CONCLUSÕES
Este trabalho propôs o desenvolvimento de um sistema para auxiliar na hora da entrega
das mercadorias. O mesmo visa planejar a rota com o menor custo, maior eficácia, e maior
agilidade, proporcionando uma melhora no atendimento aos seus clientes, através da
diminuição dos erros ao efetuar o carregamento dos pedidos.
Neste trabalho desenvolveu-se um sistema para determinar o melhor veículo de carga a
ser utilizado para o transporte da mercadoria a partir dos dados do veículo e dos produtos, e
quantidades fornecidas pelos indicadores. Buscou definir a ordem que os pedidos seriam
carregadas através do local de entrega definindo assim a rota e menor custo.
Com isso a empresa consegue ter uma visão do custo de entrega das mercadorias que
permite com que faça o planejamento do preço de venda com maior eficácia para gerar maior
lucro ao incluir o valor do frete, além de diminuir as despesas com combustível, ao conseguir
gerenciar a entrega.
O desenvolvimento deste trabalho contribui positivamente para o desenvolvimento
pessoal e profissional do autor, gerando maior conhecimento e experiência com programação,
manipulação de dados, bem como a busca por conhecimento na logística de entrega de
mercadoria.
Conclui-se com este trabalho a importância da existência de um sistema que permita a
gestão da logística de uma empresa. Com a realização do mesmo proporcionou-se ao autor um
entusiasmo em dar continuidade ao sistema, permitindo desenvolver um sistema cada vez
mais preciso para gerar a rota com menor custo.
44..11 EEXXTTEENNSSÕÕEESS
Como sugestão de extensão deste trabalho sugere-se:
a) definir a hora de entrega para cada cliente;
b) restrição por volume;
c) restrição por quantidade de quilômetros máximo por dia para cada veículo;
d) ter a possibilidade de cadastrar mais possibilidades de custos e não apenas a
distância;
45
e) integrar com o google maps, para obter a distância mais precisa, tendo assim um
custo mais preciso.
46
REFERÊNCIAS
ASSAD, Arjang. Modeling and implementation issues in vehicle routing. In: Vehicle Routing: Methods and Studies, B.L. Golden, 1988.
ASSAD, Eduardo Delgado, SANO, Edson Eyji. Sistemas de informações geográficas: aplicações na agricultura. 2. ed. Brasília: EMBRAPA-SPI / EMBRAPA-CPAC, 2003.
BALLOU, Ronald H. Gerenciamento da cadeia de suprimentos: planejamento, organização e logística empresarial. Porto Alegre: Bookman, 2001.
BOTELHO, Leonardo Gondinho. Um método para o planejamento operacional de distribuição: aplicação para casos com abastecimento de granéis líquidos. Dissertação de Mestrado. Programa de Pós Graduação em Logística empresarial da PUC – Rio de Janeiro, 2003.
BOWERSOX, Donald. J., CLOSS David J. Logística Empresarial: o processo de integração da Cadeia de Suprimento. São Paulo: Atlas, 2001
BREJON, Sergio Renato Carmo. Algoritmo para resolução do problema de programação do transporte de suprimentos para unidades marítimas de exploração de petróleo. São Paulo, 1998. 132 p. Dissertação (Mestrado em Engenharia Naval) – Escola Politécnica, Universidade de São Paulo, 1998.
CAELUM. Homepage. [S.l], 2013. Disponível em: <http://www.caelum.com.br/apostila-java-orientacao-objetos/o-que-e-java/>. Acesso em: 23 jun. 2013.
CAELUM. Homepage. [S.l], 2013. Disponível em: < http://www.caelum.com.br/apostila-java-testes-xml-design-patterns/interfaces-graficas-com-swing/>. Acesso em: 05 jul. 2013.
CARRARA, Camila Miguel. Uma aplicação do SIG para a localização e alocação de terminais logísticos em áreas urbanas congestionadas. Dissertação de Mestrado. Escola de Engenharia de São Carlos, São Paulo; SP, 2007.
CHRISTOFIDES, Nicos. Vehicle routing. In: The traveling salesman problem, edited by: Lawler, E.; Lenstra, J. K.; Rinnoy Kan, A. H. G.; Shmoys, D.B. John Wiley, 1985, p. 431-448.
CUNHA, Claudio. B. Aspectos práticos da aplicação de modelos de roteirização de veículos a problemas reais. Revista Transportes da ANPET – Associação Nacional de Pesquisa e Ensino em Transportes, v. 8, n. 2, p. 51-74, nov. 2000.
47
ENOMOTO, Leandro Minoru. Análise da distribuição física e roteirização em um atacadista do sul de Minas Gerais. 2005. 142f. Dissertação (Mestrado) – Universidade Federal de Itajubá, Itajubá, 2005.
FERNANDES, José Carlos. Administração de Material: um enfoque sistêmico. 2. ed. Rio de Janeiro: LTC, 2002.
FERREIRA FILHO, Virgilio José Martins; MELO, Andre Cristinao Silva. Sistemas de Roteirização e Programação de Veículos. Seção de Software. Pesquisa Operacional, v. 21, n. 2, p. 223-232. Universidade Federal do Rio de Janeiro, Rio de Janeiro, 2001.
FERROVIA. Homepage. Gaspar, 2009. Disponível em: <www.ferrovianet.com.br>. Acesso em: 19 jun. 2013.
GOMES, Carlos Francisco Simões; RIBEIRO, Priscilla Cristina Cabral. Gestão da cadeia de suprimentos integrada à tecnologia da informação. São Paulo: Pioneira Thomson, 2004.
HILLIER, Frederick S.; LIEBERMAN Gerald J. Introdução à pesquisa operacional. Rio de Janeiro: Campus, 1988.
HILLIER, Frederick S.; LIEBERMAN Gerald J. Introdução à pesquisa operacional. São Paulo: McGraw-Hill, 2006.
LAPORTE, Gilbert, et al. Classical and modern heuristics for the vehicle routing problem. International transactions in operational research, v. 7, n. 4/5, p. 285-300, USA, 2000.
MARQUES, Vitor. Utilizando o transportation management system para uma gestão eficaz de transportes. Instituto de Logística e Supply Chain. Rio de Janeiro, 2002.
MICROSOFT. Homepage. [S.l], 2013. Disponível em: <http://www.microsoft.com/pt-br/download/details.aspx?id=1695 />. Acesso em: 23 jun. 2013.
NARUO, Mauro Kenji. O estudo do consórcio entre municípios de pequeno porte para disposição final de Resíduos Sólidos Urbanos, utilizando Sistemas de Informação Geográfica. 2003. Dissertação (Mestrado) – Escola de Engenharia de São Carlos, USP, São Carlos. 283p.
NONATO, Luis Gustavo. Algorítmo sobre Caminho mais Curto.[S.I], 2012 Disponível em: http://www.lcad.icmc.usp.br/~nonato/ED/Grafos/node83.html. Acesso em: 20 jul. 2012.
NOVAES, Aantonio Galvão. Logística e gerenciamento da cadeia de distribuição. 2. ed. Rio de Janeiro: Campus, 2004.
PELIZARO, Claudia. Avaliação de desempenho do algoritmo de um programa comercial para roteirização de veículos. Dissertação (Mestrado) – Escola de Engenharia de São Carlos, USP, São Carlos, 2000, 153p.
48
RAZZOLINI FILHO, Edelvino. Logística - Evolução na Administração - Desempenho e Flexibilidade. São Paulo: Ed. Juruá, 2006.
RODRIGUES, Paulo Roberto Aambrosio. Introdução aos sistemas de transporte no Brasil e à logística internacional. 4. ed. São Paulo: Aduaneiras, 2007.
ROSA, Viviane Bittencourt. Sistema para logística de distribuição. 2005. 67 f, il. Trabalho de Conclusão de Curso - Universidade Regional de Blumenau, Curso de Ciência da Computação. Blumenau, 2005. Disponível em: <http://www.bc.furb.br/docs/MO/2005/306772_1_1.pdf>. Acesso em: 20 jun. 2012.
SILVA, Vinicius da. Logística e Transporte na Indústria Brasileira de Laticínios: Estudo de Casos. 2003. 109f. Monografia (Graduação) – Curso de Engenharia de Produção, Universidade Federal de Ouro Preto, Ouro Preto, 2003.
SUCUPIRA, Igor Ribeiro. Programação por propagação de restrições: teoria e aplicações. São Paulo, 2003. Disponível em: <http://www.ime.usp.br/~igorrs/ic/relatorio/relatorio.pdf>. Acesso em: 20 jul. 2012.
49
APÊNDICE A – Descrição dos Casos de Uso
Este Apêndice apresenta a descrição dos principais casos de uso descritos na seção de
especificação deste trabalho.
No Quadro 4 apresenta-se o caso de uso "Efetuar login".
Quadro 4 – Efetuar login
Caso de uso - UC01
Ator: Usuário
Objetivo: Permite ao usuário através da identificação por usuário e senha conectar-se ao
sistema.
Pré-condições: Usuário deve estar cadastrado no banco de dados.
Pós-condições: Usuário entra conectado ao sistema.
Cenário Principal:
1. usuário preenche seu login e sua senha
2. sistema valida os dados de login e senha do usuário
3. sistema direciona o usuário para a tela principal
Cenário Alternativo:
No passo 2 caso o nome de usuário e/ou senha forem inválido(s):
2.1. sistema exibe a mensagem “usuário ou senha inválida”.
2.2. sistema volta para o fluxo principal no passo 2.
No Quadro 5 apresenta-se o caso de uso "Cadastro de Veículos".
Quadro 5 – Cadastro de Veículos
Caso de uso - UC02
Ator: Usuário
Objetivo: Permite ao usuário a cadastrar o veiculo com os seguintes dados: código do
veiculo, peso, largura, tamanho, comprimento, km/l, descrição, renavam e placa.
Pré-condições: Usuário deve fazer login no sistema.
50
Pós-condições: Usuário editou, excluiu ou incluiu um veiculo.
Cenário Principal:
1. usuário preenche descrição do veiculo;
2. usuário clica na opção “Confirmar”;
3. sistema valida os campos obrigatórios;
4. sistema persiste os dados no banco de dados;
5. sistema lança a mensagem “Registro incluído com sucesso”.
Cenário Alternativo:
No passo 3 durante a inclusão ou edição caso os campos obrigatórios não forem
preenchidos:
3.1. sistema apresenta a mensagem “Favor preencher todos os campos obrigatórios”.
3.2. sistema volta ao fluxo principal no passo 2.
No passo 4 durante a inclusão, edição ou exclusão caso ocorra algum erro durante a
operação:
4.1. sistema exibe a mensagem “Erro durante a inclusão/edição/exclusão do registro”.
4.2. sistema retorna ao fluxo principal no passo 2.
Cenário Alternativo:
1. sistema mostra veículos cadastrados;
2. usuário seleciona um veiculo para edição;
3. sistema mostra a descrição;
4. usuário realiza as alterações necessárias;
5. usuário clica na opção confirmar;
6. sistema exibe a mensagem “Registro alterado com sucesso”;
7. sistema lista os veículos cadastrados.
Cenário Alternativo:
1. usuário seleciona a opção novo veículos;
2. sistema mostra registros cadastrados.
Cenário Alternativo:
51
1. sistema mostra veículos cadastrados;
2. usuário seleciona um veiculo para exclusão;
3. usuário clica na opção excluir;
4. sistema exclui o registro e exibe a mensagem “Registro excluído com sucesso”.
No Quadro 6 apresenta-se o caso de uso "Cadastro de Produtos".
Quadro 6 – Cadastro de Produtos
Caso de uso - UC03
Ator: Usuário
Objetivo: O usuário acessa a tela de cadastrar de produto. Serão cadastrados os seguinte
dados: código do produto, descrição, peso, altura, comprimento, largura.
Pré-condições: Usuário deve fazer login no sistema.
Pós-condições: Usuário entra conectado ao sistema.
Cenário Principal:
1. usuário preenche descrição do produto;
2. usuário clica na opção “Confirmar”;
3. sistema valida os campos obrigatórios;
4. sistema persiste os dados no banco de dados;
5. sistema lança a mensagem “Registro incluído com sucesso”.
Cenário Alternativo:
No passo 3 durante a inclusão ou edição caso os campos obrigatórios não forem
preenchidos:
3.1. sistema apresenta a mensagem “Favor preencher todos os campos obrigatórios”.
3.2. sistema volta ao fluxo principal no passo 2.
No passo 4 durante a inclusão, edição ou exclusão caso ocorra algum erro durante a
operação:
4.1. sistema exibe a mensagem “Erro durante a inclusão/edição/exclusão do registro”.
4.2. sistema retorna ao fluxo principal no passo 2.
Cenário Alternativo:
52
1. sistema mostra produtos cadastrados;
2. usuário seleciona um produto para edição;
3. sistema mostra a descrição;
4. usuário realiza as alterações necessárias;
5. usuário clica na opção confirmar;
6. sistema exibe a mensagem “Registro alterado com sucesso”;
7. sistema lista os produtos cadastrados.
Cenário Alternativo:
1. usuário seleciona a opção novo produto;
2. sistema mostra registros cadastrados.
Cenário Alternativo:
1. sistema mostra produtos cadastrados;
2. usuário seleciona um produto para exclusão;
3. usuário clica na opção excluir;
4. sistema exclui o registro e exibe a mensagem “Registro excluído com sucesso”.
No Quadro 7 apresenta-se o caso de uso "Cadastro de Distâncias".
Quadro 7 – Cadastro de Distâncias
Caso de uso - UC04
Ator: Usuário
Objetivo: O sistema deverá permitir o cadastro das distâncias e restrições.
Pré-condições: Usuário deve fazer login no sistema.
Pós-condições: Usuário editou ou incluiu uma distancia.
Cenário Principal:
1. usuário cadastra a distância entre os clientes;
2. usuário clica na opção “Confirmar”;
3. sistema valida os campos obrigatórios;
4. sistema persiste os dados no banco de dados;
5. sistema lança a mensagem “Registro incluído com sucesso”.
53
Cenário Alternativo:
No passo 3 durante a inclusão ou edição caso os campos obrigatórios não forem
preenchidos:
3.1. sistema apresenta a mensagem “Favor preencher todos os campos obrigatórios”.
3.2. sistema volta ao fluxo principal no passo 2.
No passo 4 durante a inclusão, edição ou exclusão caso ocorra algum erro durante a
operação:
4.1. sistema exibe a mensagem “Erro durante a inclusão/edição/exclusão do registro”.
4.2. sistema retorna ao fluxo principal no passo 2.
Cenário Alternativo:
1. sistema mostra as distâncias cadastradas;
2. usuário seleciona uma rota para edição;
3. sistema mostra a descrição;
4. usuário realiza as alterações necessárias;
5. usuário clica na opção confirmar;
6. sistema exibe a mensagem “Registro alterado com sucesso”;
7. sistema lista as rotas cadastrados.
Cenário Alternativo:
1. usuário seleciona a opção nova rota;
2. sistema mostra registros cadastrados.
No Quadro 8 apresenta-se o caso de uso "Integrar informações dos clientes".
Quadro 8 – Integrar informações dos clientes
Caso de uso - UC05
Ator: Shop Control
Objetivo: Buscar os clientes cadastrados no shop control para listar no cadastro de distancia.
Pré-condições: Clientes devem estar cadastrados no sistema shop control.
Pós-condições: Usuário listar os clientes no cadastro de distância.
54
No Quadro 9 apresenta-se o caso de uso "Listar a rota de entrega".
Quadro 9 – Listar a rota de entrega
Caso de uso - UC06
Ator: Usuário
Objetivo: O sistema deverá permitir ao usuário a listar a rota de entrega com seus
determinados pedidos.
Pré-condições: Usuário deve fazer login no sistema.
Pós-condições: Usuário listou as rotas de entrega.
Cenário Principal:
1. usuário preenche a data das vendas;
2. usuário clica na opção “Listar”;
3. sistema lista as rotas e seus determinados pedidos para o usuário.
Cenário Alternativo:
No passo 3 caso nenhum registro seja encontrado:
3.1. sistema alerta com mensagem “Nenhum registro encontrado”;
3.2. sistema retorna para o fluxo principal no passo
No Quadro 10 apresenta-se o caso de uso "Verificar os produtos do pedidos".
Quadro 10 – Verificar os produtos do pedidos
Caso de uso - UC07
Ator: Usuário
Objetivo: O usuário acessa a tela de pedido.
Pré-condições: Usuário deve fazer login no sistema.
Pós-condições: Usuário listou os produtos do pedido.
Cenário Principal:
1. usuário seleciona os dados do filtro do pedido;
2. usuário clica na opção “Confirmar”;
3. sistema valida os campos obrigatórios;
4. sistema verifica os dados no banco de dados;
55
5. sistema lista os pedidos;
6. usuário seleciona o pedido;
7. usuário clica na opção “Confirmar”;
8. sistema imprime na tela os produtos do pedido;
Cenário Alternativo:
No passo 3 durante caso os campos obrigatórios não forem preenchidos:
3.1. sistema apresenta a mensagem “Favor preencher todos os campos obrigatórios”.
3.2. sistema volta ao fluxo principal no passo 2.
No passo 4 durante a inclusão, edição ou exclusão caso ocorra algum erro durante a
operação:
4.1. sistema exibe a mensagem “Faltam dados no filtro”.
4.2. sistema retorna ao fluxo principal no passo 2.
No Quadro 11 apresenta-se o caso de uso "Manter os acessos do sistema".
Quadro 11 – Manter os acessos do sistema
Caso de uso - UC08
Ator: Administrador
Objetivo: O administrador acessa a tela de liberar acesso para associar um ou mais perfis de
acesso aos usuários.
Pré-condições: Administrador deve fazer login no sistema.
Pós-condições: Administrador editou, apagou ou cadastrou um perfil de acesso ao sistema.
Cenário Principal:
1. administrador seleciona usuário;
2. administrador configura o perfil;
3. administrador clica na opção “Confirmar”;
4. sistema persiste os dados no banco de dados;
5. sistema exibe a mensagem “Registro incluído com sucesso”.
Cenário Alternativo:
No passo 4 durante a inclusão, edição ou exclusão caso ocorra algum erro durante a
56
operação:
4.1. sistema exibe a mensagem “Erro durante a inclusão/edição/exclusão do registro”.
4.2. sistema retorna ao fluxo principal no passo 1.
No Quadro 12 apresenta-se o caso de uso "Buscar os pedido".
Quadro 12 – Buscar os pedido
Caso de uso - UC09
Ator: Shop Control
Objetivo: Buscar os produtos do pedido do cliente.
Pré-condições: usuário ter feito a venda pelo shop control.
Pós-condições: usuário listar os produtos do pedido
57
APÊNDICE B – Dicionário de dados
Este Apêndice apresenta o dicionário de dados das tabelas do sistema.
No Quadro 13 apresenta-se o dicionário de dados da tabela "distâncias".
Quadro 13 – Distância
Campo Descrição Tipo Tamanho Chave primária
codigo Código da distancia Int 4 Sim
cod_origem Código da cidade origem Bigint 8 Não
cod_destino Código da cidade destino Bigint 8 Não
distancia Distancia entre as duas cidades Bigint 8 Não
dt_rota Data criação da distancia Datetime Não
restricao Custo adicionais a ser considerado float 8 Não
No Quadro 14 apresenta-se o dicionário de dados da tabela "produtos".
Quadro 14 – Produtos
Campo Descrição Tipo Tamanho Chave primária
codigo Código do produto Bigint 8 Sim
nome Descrição do produto Varchar 150 Não
peso Peso do produto Float 8 Não
largura Largura do produto Float 8 Não
comprimento Comprimento do produto Float 8 Não
altura Altura do produto Float 8 Não
No Quadro 15 apresenta-se o dicionário de dados da tabela "usuários".
Quadro 15 – Usuários
Campo Descrição Tipo Tamanho Chave primária
codigo Código do usuário Bigint 8 Sim
nome Nome do usuário Varchar 250 Não
58
senha Senha do usuário Varchar 10 Não
fg_acesso Acesso ao sistema Bit 1 Não
fg_cadastro Acesso a tela de cadastro Bit 1 Não
fg_gerar_rota Acesso a tela de gerar rota Bit 1 Não
fg_listar_produtos Acesso a tela de listar
produtos do pedido
Bit 1
No Quadro 16 apresenta-se o dicionário de dados da tabela "veiculo".
Quadro 16 – Veículo
Campo Descrição Tipo Tamanho Chave primária
codigo Código do veiculo Bigint 8 Sim
veiculo Descrição do veiculo Varchar 150 Não
peso Peso máximo da carga float 8 Não
largura Largura do veiculo float 8 Não
comprimento Comprimento do veiculo float 8 Não
altura Altura máxima da carga float 8 Não
placa Placa do veiculo Varchar 50 Não
km Quilômetros faz por litro Bigint 8 Não
chassi Chassi do veiculo Bigint 8 Não
renavam Renavam do veiculo Bigint 8 Não
No Quadro 17 apresenta-se o dicionário de dados da tabela "entregas".
Quadro 17 – Entregas
Campo Descrição Tipo Tamanho Chave primária
codigo Código da entrega Bigint 8 Sim
id_caminhao Código do veiculo Bigint 8 Não
id_pedido Sequencia do pedido Bigint 8 Não
No Quadro 18 apresenta-se o dicionário de dados da tabela "roteiro".
59
Quadro 18 – Roteiro
Campo Descrição Tipo Tamanho Chave primária
id Código do roteiro Bigint 8 Sim
identrega Código da entrega Bigint 8 Não
idpedido Sequencia do pedido Bigint 8 Não
veiculo Código do veículo Bigint 8 Não
origem Código da origem Bigint 8 Não
destino Código do destino Bigint 8 Não
distancia Código da distancia Float 8 Não
Recommended