5.2.3.1.
Introdução
O processo de gestão de rotas tem como objetivo dar suporte ao processo de criação e atualização das rotas de recolha de recolha de resíduos pelos diversos clientes.
Este módulo divide-se essencialmente em três principais funcionalidades: Planeamento e agendamento e finalização de rotas. Este módulo tem como finalidade dar resposta aos requisitos do funcionário de planeamento. Na Figura 25 é possível observar que existe interação deste módulo com ambas as categorias de funcionários de recolha, locais e remotos.
FIGURA 26-ESTRUTURA DO MÓDULO DE GESTÃO DE ROTAS
Na parte de planeamento serão realizadas todas as tarefas necessárias para a seleção e otimização das rotas de recolha. No módulo de agendamento são realizadas as tarefas de agendamento e atribuição da rota a um determinado funcionário, sendo as rotas enviadas para o dispositivo respetivo de cada funcionário. Por fim existe o módulo de finalização de rotas que permite validar a informação da recolha e adicionar as guias em formato digital a cada cliente.
O processo de planeamento de rotas passa por várias fases tal como apresentado no diagrama de sequência da Figura 26.
FIGURA 27-DIAGRAMA DO PROCESSO DE PLANEAMENTO DE ROTAS
Este processo é iniciado automaticamente durante o fim-de-semana com vista à elaboração das rotas de recolha com uma semana de antecedência. Desta forma existe a flexibilidade para inspeção manual das rotas, para adicionar casos urgentes provocados por alguma falha no sistema de deteção. Este processo também pode ser iniciado manualmente e após a sua conclusão o funcionário de gestão de rotas é notificado. Tal como referido anteriormente o processo de planeamento de rotas é iniciado com uma semana de
antecedência, dessa forma sempre de que futuro nos refiramos aos clientes a serem recolhidos estamos a referir-nos aos clientes da semana a seguir.
De forma a dar suporte ao armazenamento da informação das rotas e pontos de recolhas, e principalmente manter o histórico das recolhas existem as seguintes estruturas de dados no sistema. A estrutura apresentada na tabela seguinte permite armazenar toda a informação das rotas de recolha realizadas.
TABELA 17-ESTRUTURA DA TABELA DE PLANO DE ROTAS
Nome Descrição
ID Id interno da rota
DATACRIACAO Data de criação da rota de recolha
DATEPREVISTA Data prevista para recolha da rota
DATERECLOLHIDO Data de recolha da rota
FUNCID Funcionário realizou a rota
VEICULO Veiculo usado na recolha
ESTADOROTA Categoria Estado de Rota
DISPOSITIVO Dispositivo utilizado na recolha
NOTAS Notas sobre a recolha
NOME Nome da rota
TM_PROCESS Tempo de processamento da rota (processo de criação)
A tabela seguinte é utilizada para registar os clientes de cada rota de recolha,
TABELA 18-ESTRUTURA DA TABELA PONTO DE RECOLHA DA ROTA
Nome Descrição
ID Id interno do ponto de recolha da rota
CLIENTE Cliente associado com a o ponto de recolha
POSICAOREC Numero na ordem de recolha
PLANOROTA Plano de rota a que pertence o ponto de recolha
QTD_DEC Quantidade declarada na guia entregue ao cliente
QTD_REAL Quantidade pesada na empresa
RECOLHIDO Se o cliente foi recolhido ou não
NOTAS Notas sobre a recolha do cliente
URGENTE Se o cliente foi recolhido urgente
NRECMOT Motivo de não recolha
Por fim de forma a permitir adicionar informação extra sobre a recolha realizada exista a tabela seguinte.
Nome Descrição
ID_ROTA Id da rota a qual a informação pertence
KMPREVISTO Total de Quilómetros previstos realizar
KMREAL Total de Quilómetros realizados
RESIDDECLA Total de Resíduos Declarados
REDIDREAL Total de Resíduos pesados
INPACCO2 Impacto ecológico de CO2 que a rota teve
Por fim existem as categorias de estados de rota e tipos de rotas, apresentadas anteriormente que permite categorizar o tipo de rotas de recolhas, e os seus diferentes estados. Com base nestas estruturas é possível apresentar uma solução para o requisito P1 – Armazenar informação relativo a realização das rotas.
5.2.3.2.
Planeamento de rotas
O planeamento de rotas divide-se em 4 fases de processamento, seleção de clientes, distribuição por rotas, em casos de rotas com poucos números de clientes, selecionar
novos na proximidade dessa rota e por fim, a otimização da sequência de recolha da rota. Esta funcionalidade tem como objetivo dar resposta ao requisito P2 - Criar e otimizar rotas de recolha selecionando clientes com elevado potencial de possuir resíduos para recolha
Seleção de clientes
O processo de seleção de clientes realiza-se com base na previsão de necessidade de recolha no período de tempo a planear. Essa necessidade pode ser obtida de duas formas diferentes, na qual varia a exatidão da mesma:
Pode ser obtida através de estatísticas de recolha que irão afinando o valor de periodicidade do cliente ao longo do tempo. Quando o sistema funciona desta forma o cliente é agendado para recolha no momento da última recolha. Isto é, quando é realizada uma visita ao cliente o resultado dessa visita irá afetar a sua variável de periodicidade, e com base nessa nesse momento é registado uma necessidade de recolha no sistema para esse número de semanas a seguir. Mais detalhes de como a periodicidade é atualizada serão apresentados na secção Validação e Finalização de Rotas deste capítulo. Utilizando este processo, a exatidão deste valor poderá sofrer com a influência de fatores externos já referidos no capítulo anterior.
O outro processo de funcionamento baseia-se então através do uso de alertas recebidos pelos sistemas de deteção colocados no cliente. Dado que os alertas são pré- definidos, quando se recebe o alerta de um determinado nível é possível estimar com uma precisão bastante elevada quando o contentor irá possuir a capacidade máxima. Assim é registada uma necessidade de recolha para a semana estimada para atingir a totalidade.
Desta forma o sistema pode funcionar modo manual, automático, ou mesmo misto, uma vez que ambos os processos de funcionamento têm como resultado uma previsão de necessidade de recolha, e é com base nisto que é realizado a seleção do conjunto de clientes para recolha.
Distribuição por Rotas
Após a conclusão desta seleção a lista de clientes a recolher passa para um processo de distribuição por rotas. Este processo permite separar os clientes em pequenas rotas que permitam maximizar o total recolhido e minimizar a distância realizada em cada uma delas. Esta distribuição é realizada de duas formas: manualmente ou dinamicamente. Este processo encontra-se representado na Figura 27.
No modo manual a distribuição dos clientes por rotas é estática e definida no momento de criação da ficha cliente. Neste modo o cliente é adicionado a uma rota de recolha com base na morada do cliente.
No modo automático é aplicado um algoritmo de agrupamento com técnicas de K- Means, em que a distância entre pontos é calculada pela forma euclidiana, o que vai
permitir obter a distância em linha reta entre as coordenadas dos pontos de recolha, e como ponto de partida são criados k grupos com nos centros das zonas manuais pré definidas.
FIGURA 28-PROCESSO DE DISTRIBUIÇÃO POR ROTAS DOS CLIENTES
O processo descrito em seguida encontra-se representado na figura acima. Após a convergência deste algoritmo, são aplicadas técnicas de eliminação dos grupos vazios e de menores dimensões desde que a distância em linha reta entre o centro desse grupo ao mais próximo seja inferior a uma distância pré programada. Assim é possível evitar que a otimização em vez de favorecer o processo de recolha acabe por a prejudicar devido ao agrupamento de clientes muito afastados.
Nos grupos de maiores dimensões, seja em número de clientes ou em quilómetros necessários para realizar a recolha, são divididos ao meio para que seja possível a visita completa a todos os clientes da rota. Após cada modificação o algoritmo de agrupamento é executado novamente e os resultados são comparados com os obtidos anteriormente. Se esta comparação der resultados positivos em relação à rota anterior, isto é, não foram criado grupos de pequenas dimensões, e não foram criados novos grupos de grandes dimensões, o novo agrupamento é aceite, caso contrário, é aplicada uma nova repartição nos grupos de grandes dimensões e se mesmo assim ainda não for positivo, são descartadas ambos os agrupamentos anteriores.
Seleção por proximidade
Este processo é opcional, uma vez que ele só acontece em casos de existirem grupos de pequenas dimensões, por exemplo inferiores a 10 clientes Após a conclusão da distribuição dos clientes pelas rotas, é verificado para os grupos de clientes com menor numero se para cada um desses clientes existe nas suas proximidades algum cliente agendado para a semana a seguir em relação à que se está a realizar o planeamento.
Desta forma pretende-se aumentar o rendimento da visita a essa zona. Neste processo a proximidade é considerada numa área circular de raio de parâmetro configurável, por exemplo 5 km, com centro na coordenada de cada cliente, no caso de
existir algum, esse cliente é removido do planeamento existente e adicionado ao planeamento atual.
Otimização de Rotas
Após a conclusão dos processos anteriores é iniciado o processo de otimização de rotas, que tem como objetivo a obtenção da sequência que permite realizar a rota na menor distância possível, respeitando determinadas parâmetros como, evitar estradas pagas e visitar o mais próximo possível do horário definido pelo cliente se ele existir.
O processo de otimização de recolha apresentado na Figura 28 inicia-se por fornecer ao processo um conjunto de pontos de recolha, ou seja uma das rotas selecionadas no passo anterior.
FIGURA 29-PROCESSO DE OTIMIZAÇÃO DE SEQUÊNCIA DE RECOLHA DA ROTA
Antes de se dar inicio ao conjunto de interações de cálculo é criada uma sequência de forma aleatória para servir de referência ao processo de seleção no início. Será com base nessa sequência que a matriz de feromonas irá ser inicializada. Após o início do este processo é iniciado um conjunto de interações em que cada uma dela possui um conjunto de agentes, neste sistema designados por formigas, que irão percorrer os pontos selecionados até regressar ao ponto inicial. Cada uma dela irá prosseguir de forma independente dentro da interação, com o seguinte processo:
Seleção do próximo ponto – este processo é calculado aleatoriamente com os pesos da matriz de feromonas, desta forma quanto mais forte for num determinado percurso significa que mais curto ele é em relação as alternativas e maior é a possibilidade dele ser selecionado novamente. Esta seleção é limitada aos pontos válidos, isto é, com exclusão do ponto inicial não é possível visitar um ponto mais do que uma vez.
Após a seleção do ponto é obtida a informação de distância e tempo percorrido até ao cliente através de um pedido Web a um serviço de informação geográfica com as
coordenadas de início e fim e os parâmetros de filtragem, de forma a otimizar o processo esta informação é registada em base de dados para futuras consultas. Após obter esta informação é verificado se a visita está dentro dos parâmetros. Esta validação permite verificar se o cliente está a ser visitado dentro da janela temporal selecionada. Se não estiver é aplicada uma penalização de distância na visita ao cliente. Desta forma o impacto da visita deste cliente na matriz de feromonas global será reduzido.
Em seguida verifica se o ponto atual é o ponto de partida, no caso negativo repete- se a sequência do parágrafo anterior até se atingir o ponto inicial. Quando atingimos o ponto inicial significa que terminamos a nossa rota de recolha. Em seguida vamos validar se na proposta de solução calculada foram visitados todos os pontos de recolha da lista, em caso negativo, a rota irá sofrer uma forte penalização para que esta sequência não tenha grande impacto no seu todo, mas apesar disso possa permitir o reforço de outras soluções pela sua sequência parciais.
Após a conclusão da rota em todas as formigas, elas são classificadas com base na sua performance, ou seja por ordem crescente de distância, e com base nesta ordem irão ter um peso diferente na atualização da matriz global de feromonas. Nota, devido à penalização no caso de rotas inacabadas, as melhores formigas vão sempre possuir a rota completa. À medida que cada vez mais formigas visitem uma determinada sequência, mais forte será o peso dessa sequência na matriz e mais forte irá ser o peso na seleção do próximo cliente. Assim irá permitir a emergência do menor percurso na matriz de feromonas.
Após a atualização é verificado se foram atingidos os parâmetros de saída da repetição de interações, elas podem ser ou um limite de interações, por exemplo 300 interações, ou um limite em percentagem de otimização, por exemplo se a otimização for inferior a 1% termina, e considera-se que a sequência obtida pelos pesos mais fortes da matriz de feromonas é a sequência mais otimizada possível.
Após a repetição deste processo para todas as rotas calculadas anteriormente considera-se que o processo de planeamento de rotas se encontra concluído.
5.2.3.3.
Agendamento de Rotas
O processo de agendamento de rotas é um processo manual que decorre a conclusão do planeamento automático de rotas. Este processo tem como objetivo servir para o funcionário de gestão de rotas atribuir as rotas selecionadas para determinado funcionário realizar e desta forma dar resposta ao requisito P3 - Agendar rotas e atribui-las a um funcionário interno ou externo.
Esta fase tem também como objetivo permitir a modificação manual das rotas, adicionar clientes, juntar conjuntos de rotas, partir rotas ao meio para realizar em 2 dias, entre outros procedimentos. Sempre que for confirmada determinada ação o planeamento
recomeça para a rota selecionada e o funcionário é notificado quando a otimização termina o processamento.
É também no agendamento que é se permite também atribuir rotas aos funcionários remotos, sendo que assim que a atribuição de rota é confirmada, a informação é enviada para o servidor de armazenamento externo e assim que o funcionário externo se encontrar ligado à internet irá realizar a respetiva sincronização de novas rotas a recolher, e de informação recolhida.
5.2.3.4.
Validação e finalização de rotas
Após o funcionário de recolha selecionar a rota que lhe foi agendada para realizar com o apoio da aplicação móvel de recolha, ele irá proceder à visita de todos os clientes, sendo que no fim do dia, no regresso à empresa, ou ao seu armazém, ele irá enviar os dados obtidos de volta ao sistema principal e essa informação ficará pendente de validação. Nesta funcionalidade é realizado a implementação necessária para dar resposta ao requisito P4 - Validar a informação de execução das rotas;
Essa validação tem duas funções, verificar se as quantidades recolhidas pelo funcionário fazem sentido, de forma a evitar erros de inserção e validar o percurso realizado pelo mesmo, verificando se de facto todos os clientes foram visitados e a informação foi atualizada no local correto.
Esta fase tem ainda outro objetivo que é permitir adicionar às rotas de recolha, a digitalização das guias de recolha para posterior consulta. A guia é adicionada ao sistema selecionando uma opção que permita realizar o scan e envio desse ficheiro de volta para o sistema após a digitalização da mesma, é apresentado ao utilizador a possibilidade de inserir o número de guia digitalizado e após esse momento o ficheiro é armazenado num arquivo digital. Esta funcionalidade de associação das guias em formato digital pretendem dar resposta ao requisito P6 - Adicionar as guias em formato digital à ficha do cliente
5.2.3.4.1. Atualização da periodicidade e reagendamento de recolha
Após a validação desta rota de recolha irá ter lugar um processo de atualização automático da informação de recolha no sistema, nomeadamente a nível da periodicidade de recolha e agendamento das novas rotas. Mesmo quando usada o modo de sensores de deteção o valor de periodicidade é mantido atualizado de forma prever possíveis avarias. É no entanto no modo de previsão estatística que esta atualização possui mais importância.
A periodicidade irá então sofrer uma atualização com base numa média ponderada consoante o resultado da visita ao cliente, com base na fórmula seguinte:
𝑝
𝑛𝑜𝑣𝑜=(𝑤𝑎𝑝𝑎)+(𝑤𝑛𝑝𝑛)
Wa: peso da periodicidade anterior; Wn: Peso da periodicidade nova;
Pa: periodicidade anterior Pn: Periodicidade Nova
Fórmula de média ponderada aplicada à periodicidade
Em que dependendo das seguintes situações os parâmetros irão variar da seguinte forma:
Se a visita foi bem-sucedida (> 70%), isto é, se foi recolhido o que se estava a prever a periodicidade mantém-se inalterável.
Se a visita foi realizada com pouca quantidade ( <70% ), isto é foi recolhido uma quantidade inferior ao que se estava prevista para recolha, a periodicidade irá ser atualizada com base na seguintes proporções:
o Acima de 50%: wa = 0,7 ; wn = 0,3 e pn = (pa+1);
o Entre 25 a 50%: wa = 0,6 ; wn = 0,4 e pn = (pa+1);
o Abaixo de 25%: wa = 0,5 ; wn = 0,5 e pn = (pa+2);
Se foi visitado e o cliente não possuía óleo suficiente para recolha, será atualizado com os seguintes parâmetros: wa = 0,6 ; wn = 0,4 e pn = (pa+2);
Se o cliente foi visitado e pediu para ser realizada apenas daqui a X semanas, a periodicidade será atualizada com os seguintes parâmetros: wa = 0,7 ; wn = 0,3 e pn =
(pa+X), onde X é o número de semanas a esperar para repetir a visita.
No caso de ser realizada uma recolha urgente, também esta irá ter uma atualização dependente de quando o cliente estava agendado para recolha:
o Na semana a seguir: wa = 0,85 ; wn = 0,15 e pn = (pa-1);
o 2 Semanas a seguir: wa = 0,7 ; wn = 0,3 e pn = (pa-1)
o > 3 Semanas a seguir: wa = 0,5 ; wn = 0,5 e pn = (pa-2);
Após a atualização da periodicidade irá dar-se lugar ao cálculo da próxima necessidade de recolha e registar essa data no sistema no sistema, respeitando os dias autorizados de recolha, se existirem para esse cliente. Após a conclusão deste processo é apresentada a informação ao funcionário de gestão sobre o resultado da operação e da variação de periodicidade dos clientes dessa rota.
5.2.3.5.
Tratamento de Urgências
As recolhas urgentes são situações delicadas para uma empresa de recolhas, pois normalmente a sua recolha tem que ser feita o quanto antes, e isso pode levar a quebrar todo o planeado já realizado anteriormente para uma determinada rota. Mesmo após este inconveniente existe toda a problemática associada com o passar essa informação ao funcionário de recolhas, e ele realizar a recolha do mesmo sem ficar sem tempo para recolher os clientes planeados.
Dessa forma o sistema trata das urgências como sendo um problema para otimizar, não é possível evitar o impacto das recolhas de ultima hora, mas é possível reduzir o mesmo. Com este processo pretendemos dar resposta ao requisito P5 - Realizar o processamento de urgências; O processo de processamento de uma urgência encontra-se representado na Figura 29.
FIGURA 30-PROCESSO DE TRATAMENTO DE UMA URGÊNCIA
Desta forma quando o funcionário recebe um pedido de recolha urgente, ele seleciona no sistema a opção de tratamento de urgências, em seguida irá identificar o cliente insere também o intervalo de urgência, isto é, se é possível recolher o cliente nos próximos dias invés de hoje. Desta forma é possível ajustar a recolha desse cliente a recolha mais próxima. Após esse processo é identificado qual a rota mais próxima do cliente com base na flexibilidade de recolha inserida.
Após essa identificação, o sistema procede de duas formas, se a rota já estiver a ser realizada, é calculado quais os clientes mais próximos do mesmo e enviada essa informação por SMS para o dispositivo móvel do funcionário. No caso de rota ainda não estiver a ser realizada, rotas dos dias seguintes, o cliente é inserido na rota de recolha normal, e iniciada uma nova otimização da sequência da recolha. Desta forma o impacto da recolha urgente é reduzido ao mínimo possível.