Página 1 de 1

Roteirizaçao Automatico

Enviado: 01 Dez 2016 às 11:28
por filipemec
bom dia,

Estou necessitando de uma formula (ou programa em VBA) para realizar a roteirização de entregas em varios clientes.

Tenho uma planilha com uma matriz contendo em torno de 204 linhas e colunas, segue exemplo abaixo:

a primeira coluna a representa os clientes em relação a saída, e a primeira linha representa os mesmos clientes, mas em relação a chegada. e a combinação em colunas e linhas é o tempo entre os clientes.

Imagem

estou precisando de procedimento que eu digitando os clientes numa coluna, na coluna ao lado ele (de acordo alguns critérios e com a matriz de dados) organize a ordem dos clientes.

se tiverem alguma duvida quanto ao que estou precisando é só falar.

Desde ja agradeço a atenção.

Re: Roteirizaçao Automatico

Enviado: 01 Dez 2016 às 15:37
por DJunqueira
Veja se a planilha anexa te ajuda de alguma forma.

Re: Roteirizaçao Automatico

Enviado: 03 Dez 2016 às 08:04
por filipemec
DJunqueira escreveu:Veja se a planilha anexa te ajuda de alguma forma.
Ola, baixei a planilha mas não consegui faze-la funcionar. E tambem não conseguir entender o funcionamento dela.

No entanto agradeço a ajuda.

Roteirizaçao Automatico

Enviado: 04 Dez 2016 às 01:32
por DJunqueira
Olá filipemec, talvez eu tenha deixado vc muito no escuro s/ o funcionamento da planilha, assim sendo vou tentar explicar melhor.

Na aba [Planilha1] vc tem dois endereços s/ o assunto, o primeiro descreve a solução q utilizei nas matrizes.
Na aba [Melhor rota] vc deve usar o novo botão 'Prepara aba para cálculo' depois q usar o botão 'Calcular melhor rota' p/ realizar o cálculo novamente.

O q a planilha faz na aba [Melhor rota]?
Ela calcula o ponto inicial, q é o mais distante, e a partir dele vai selecionando e marcando os novos pontos de visitação até completar o circuito em todos os pontos. Cada ponto marcado com cor representa a distância da melhor rota a ser percorrida.

Ao final as colunas J e K apresentam respectivamente a ordem a ser seguida e a respectiva distância com a somatória no final. No exemplo da planilha a ordem é 5;3;4;2;7;6;1 e a somatória das distâncias 159.

Ressalto mais uma vez (além do aviso na planilha) q o intervalo A1:H8 deve estar selecionado antes de clicar no botão 'Calcular melhor rota'.

Segue anexo a planilha com o novo botão 'Prepara aba para cálculo'.

Roteirizaçao Automatico

Enviado: 04 Dez 2016 às 21:01
por jpomaga
DJunqueira, fantástica sua solução. Não sei quanto ao filipemec, mas eu fiquei satisfeito dado o problema proposto. :D
Vejo várias aplicações no meu dia a dia. Saberia dizer se neste caso poderíamos usar o SOLVER? Não vi se ele informou restrições..

Roteirizaçao Automatico

Enviado: 05 Dez 2016 às 01:40
por DJunqueira
Sim, pode usar o SOLVER, mas minha solução é mais rápida e completa, pois mostra a ordem q deve ser seguida.

Re: Roteirizaçao Automatico

Enviado: 05 Dez 2016 às 15:32
por filipemec
Boa tarde DJunqueira,

Obrigado pelo detalhamento, agora entendi o principio de funcionamento.

No entanto tenho alguns questionamentos.

1. Tenho um banco de dados com mais de 200 clientes, e a quantidade de clientes por rota varia, esta sua solução atende a esta variação?

2. como eu faria a adição de restrições? exemplo: cliente 3 tem sempre que ser a primeira entrega, cliente 5 sempre a ultima entrega.

OBS.: Perdão pela quantidade de questionamentos, meu conhecimento em VBA é quase nulo rsrs...

desde já agradeço a ajuda.



DJunqueira escreveu:Olá filipemec, talvez eu tenha deixado vc muito no escuro s/ o funcionamento da planilha, assim sendo vou tentar explicar melhor.

Na aba [Planilha1] vc tem dois endereços s/ o assunto, o primeiro descreve a solução q utilizei nas matrizes.
Na aba [Melhor rota] vc deve usar o novo botão 'Prepara aba para cálculo' depois q usar o botão 'Calcular melhor rota' p/ realizar o cálculo novamente.

O q a planilha faz na aba [Melhor rota]?
Ela calcula o ponto inicial, q é o mais distante, e a partir dele vai selecionando e marcando os novos pontos de visitação até completar o circuito em todos os pontos. Cada ponto marcado com cor representa a distância da melhor rota a ser percorrida.

Ao final as colunas J e K apresentam respectivamente a ordem a ser seguida e a respectiva distância com a somatória no final. No exemplo da planilha a ordem é 5;3;4;2;7;6;1 e a somatória das distâncias 159.

Ressalto mais uma vez (além do aviso na planilha) q o intervalo A1:H8 deve estar selecionado antes de clicar no botão 'Calcular melhor rota'.

Segue anexo a planilha com o novo botão 'Prepara aba para cálculo'.

Roteirizaçao Automatico

Enviado: 06 Dez 2016 às 03:18
por DJunqueira
Olá filipemec, q bom q desta vez vc entendeu o funcionamento. Adicionei essa explicação na planilha p/ caso mais alguém precise dela.

Quanto as suas perguntas; a planilha fornece um roteiro, penso q vc poderia tranquilamente percorrer partes dele começando e acabando onde vc quiser desde q siga a ordem.

Caso vc queira calcular uma rota ótima p/ apenas 10 clientes, monte uma matriz com as distâncias destes clientes e depois rode a macro, comece por onde vc quiser q o resultado será basicamente o mesmo. No final das contas o melhor trajeto acaba sendo sempre um percurso sem cruzamentos, quase como um círculo, veja no endereço abaixo um teste com vários algorítimos.
https://www.youtube.com/watch?v=q6fPk0--eHY

Uma solução alternativa p/ poucos endereços é usar uma função do Excel WEBSERVICE() q solicita ao Google maps a melhor rota diretamente da planilha, como vc pode ver na planilha anexa na aba [hoteis info].