XXX ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO Maturidade e desafios da Engenharia de Produção: competitividade das empresas, condições de trabalho, meio ambiente. São Carlos, SP, Brasil, 12 a15 de outubro de 2010. PROGRAMAÇÃO DE VEÍCULOS APLICADO AO TRANSPORTE RODOVIÁRIO Elaine Corrêa Pereira (FURG) [email protected] Sérgio Fernando Mayerle (UFSC) [email protected] Vilmar Trevisan (UFRGS) [email protected] Este trabalho tem foco no plano de operação de empresas de transporte rodoviário regional de passageiros, visando à alocação da frota. Tem por objetivo desenvolver um modelo dinâmico, que permita corrigir os desvios ocorridos durante a execcução do plano ao longo do horizonte de planejamento em tempo computacional razoável. O modelo de programação da frota se resolve através de um processo seqüencial de aplicação do algoritmo húngaro, e os resultados obtidos se comparam com limite inferior, calculado pela relaxação de algumas restrições do problema. O modelo desenvolvido foi aplicado aos dados de uma empresa que atua na região sul do Brasil e os resultados obtidos são analisados. Palavras-chaves: programação de veículos, algoritmo húngaro, otimização combinatorial, alocação heurística, transporte rodoviário regional de passageiros 1. Introdução Um dos mais importantes problemas em pesquisa operacional é o problema de alocação de veículos (VSP), que consiste em atribuir veículos a um conjunto de viagens predeterminadas, com horários e locais de saída e chegada fixos, minimizando uma função de custo. As variações específicas do VSP são consideradas problemas NP- difícies, o que significa dizer que até o presente momento não pode ser resolvido otimamente em tempo polinomial; técnicas heurísticas foram desenvolvidas ao longo do tempo com o objetivo de encontrar algoritmos mais eficientes. O VSP foi inicialmente introduzido por Christofides e Eilon (1969) como um problema de despacho de caminhões. Ceder e Stern (1981) resolveu este problema usando uma heurística inteligente baseada em um algoritmo de economias e em Bodin et al. (1983) fez uma revisão bibliográfica do VSP e suas variações. O VSP formulado como um problema de atribuição aplicado ao transporte rodoviário urbano de passageiros foi proposto por Mayerle (1996), encontrando sua solução através do algoritmo húngaro. Baita et al (2000) fez uma comparação de três métodos para resolver o VSP: modelo de atribuição, programação lógica e algoritmos genéticos. As soluções obtidas pelos métodos de atribuição e programação lógica foram consideradas merecedoras de uso prático, enquanto o algoritmo genético foi incapaz de obter resultados semelhantes. Nota-se que com o tempo houve avanços na procura de técnicas que resultassem soluções melhores para o VSP, o que conduziu a melhorias concretas aplicadas a problemas do mundo real. No entanto, quase todos os modelos desenvolvidos têm um enfoque particular, que é levado em consideração para a resolução do problema. Por isso, é praticamente impossível desenvolver ferramentas gerais que se aplicam a todos problemas de programação de frota. Mesmo quando se trabalha com o mesmo tipo de transporte, digamos, transporte de passageiros, existem singularidades entre as diferentes companhias de transporte e as abordagens gerais devem ser adaptadas antes de serem usadas. Este trabalho tem foco no plano de operação de empresas de transporte rodoviário regional de passageiros, visando à alocação da frota. Tem como objetivo desenvolver um modelo dinâmico, que permita corrigir os desvios ocorridos durante a execução do plano ao longo do horizonte de planejamento em tempo computacional razoável. O modelo de programação da frota é resolvido através de um processo seqüencial de aplicação do algoritmo húngaro e os resultados obtidos são comparados com limites inferiores, calculados pela relaxação de algumas restrições do problema. O modelo foi aplicado para a programação da frota de uma empresa que transporte que opera na região sul do Brasil. 2. Caracterização do problema O transporte rodoviário regional de passageiros se caracteriza pelo transporte entre cidades, estados e países, onde o ciclo de viagens se repete em períodos ou dias alternados com linhas regulares de longa distância, com horários e itinerários bem definidos. Feriados e datas especiais, o número de viagens aumenta. A freqüência das atividades de cada veículo é pequena, visto que algumas viagens não terminam no mesmo dia que começam. As garagens se localizam em diversos pontos da rede viária regional. Estas garagens são para a manutenção ou tempo ocioso em que determinado veículo aguarda a próxima viagem. 2 Uma viagem é caracterizada pelo seu local de saída, horário de saída, local de chegada, horário de chegada e tipo de veículo. Cada viagem exige um tipo de veículo diferenciado que está associado a comodidade e conforto do veículo e têm um custo associado a ela. Existem também viagens sem passageiros, ou seja, deslocamentos do veículo entre terminal (local de chegada) até garagem após terminar uma viagem e aguardar a próxima atribuição ou entre garagem e terminal (local de saída) para iniciar uma nova viagem . O objetivo é alocar o tipo de veículo exigido a cada viagem, minimizando uma função custo. O processo de alocação de viagens aos veículos dentro de um horizonte de planejamento aplicado ao transporte rodoviário regional de passageiros é distinto, pois o início de um novo horizonte de planejamento tem que levar em consideração o resultado do anterior. Na literatura estudada o VSP que mais se assemelha a formulação do problema de transporte rodoviário regional de passageiros são os problemas VSPMD (problema de alocação de veículos com múltiplos depósitos) e o VSPMVT (problema de alocação de veículos com múltiplos tipos de veículos), como os trabalhos desenvolvidos em 2006 por Kliewer et al e Rodrigues et al. Estes problemas podem ser modelados como problemas de fluxos em redes e podem ser resolvidos por heurísticas evitando a explosão combinatorial. Na seqüência, usa-se a experiência de várias implementações anteriores, a fim de gerar um modelo e uma boa solução viável que pode ser obtida em um período de tempo razoável. Uma solução viável é aquele que atribui um veículo para cada viagem não violando qualquer restrição. Esta solução é boa se usa poucos veículos e seu custo é pequeno. Uma vez que não existe um meio eficaz para comparar a solução encontrada com a solução ótima, desenvolveuse um algoritmo capaz de obter um limite inferior para a solução ótima e assim poder comparar este limite com a solução encontrada. O método desenvolvido é dinâmico, o que significa que a solução encontrada para o horizonte de planejamento é obtida em tempo razoável e, se for necessário acrescentar novos deslocamentos e ou novas restrições para o problema, um novo planejamento pode ser rearranjado a partir de qualquer ponto, respeitando a solução obtida até o momento. 3. Modelo proposto A rede viária do problema é representada por um grafo, onde o conjunto de nós é formado pelos locais de início e fim de viagens (terminais), que são cidades de uma determinada região. Alguns terminais também são garagens. O conjunto de arcos é formado pelas vias não direcionadas que ligam estas cidades. Os tempos de deslocamentos nos arcos correspondem aos deslocamentos produtivos (movimentos de veículos com demanda) e aos deslocamentos improdutivos, estes últimos, referentes a movimentos de veículos vazios. A frota é constituída de tipos de veículos classificados de acordo com as características de conforto e comodidade oferecida aos passageiros. O problema consiste em encontrar uma solução viável de mínimo custo que satisfaça o conjunto de restrições, ou seja, não pode haver sobreposição de viagens para cada veículo, adequar o veículo às necessidades específicas de cada viagem e assegurar os tempos mínimos necessários aos deslocamentos dos veículos vazios entre os terminais, caso seja necessário. A solução consiste em construir seqüências de viagens, alocadas ao tipo de veículo exigido, através da análise dos custos, respeitando restrições, tais como: local de saída, local de chegada, hora de saída e hora de chegada das viagens, de forma a minimizar os custos improdutivos (tempo de permanência e deslocamentos) e cobrir todas as viagens do horizonte de planejamento. 3 No modelo proposto de alocação da frota considera-se um grafo G(V, A), onde V é o conjunto das viagens e A é o conjunto de arcos, constituído pelos arcos viáveis (vu, vl), ou seja, caso seja possível a realização da viagem vl após a viagem vu, pelo mesmo veículo. Observa-se que o grafo G está disposto por camadas, onde cada camada k está constituída por um subconjunto de viagens Vk de V. As camadas são constituídas por viagens que não podem ser realizadas uma na seqüência da outra. A figura 1 mostra um exemplo de um grafo com 8 viagens distribuídas em 4 camadas. 1 3 Camada 1 2 5 Camada 2 4 7 Camada 3 6 8 Camada 4 Figura 1: Camada e possíveis seqüencias de viagens A cada camada do grafo G, formula-se um problema de atribuição. A princípio considera-se que todos os veículos estão disponíveis. A solução de cada problema de atribuição aloca as viagens de uma camada do grafo G à frota disponível. O processo se repete para todas as camadas; considera-se a solução de cada camada como uma solução parcial. Assim, formulam-se K problemas de atribuição, isto é, um problema de atribuição a cada camada da seguinte forma, onde M é o número de veículos e L é o número de viagens da camada: M LM L Z Min cij xij i 1 (1 a) j 1 s.a. m L x ij 1 j 1,..., M L (1 b) x ij 1 i 1,..., M L (1 c) i 1 m L j 1 xij 0, 1 (1 d) As restrições (1 b) e (1 c) garantem que cada viagem será alocada a um veículo distinto; a restrição de integridade (2 d) garante que, se xij = 1, a viagem i é realizada pelo veículo j ou, caso contrário, xij = 0. A função objetivo (1 a) minimiza os custos operacionais de alocar viagens aos veículos. Associa-se a cada problema de atribuição de uma camada uma matriz quadrada de custos C =[ cij ] de ordem M + L. 4 3.1. Custo operacional de uma seqüência de viagem Para calcular o custo de alocar uma viagem i à seqüência de viagens de um veículo j, isto é, calcular os elementos, cij, da matriz C, fazem-se as seguintes considerações. As viagens são caracterizadas pelo local de saída, local de chegada, horário de saída e horário de chegada, tipo de viagem e tipo de veículo adequado para sua realização. Seja SVj, uma seqüência de viagens alocada ao veículo j, onde vu é a última viagem realizada pelo veículo; a viagem vi é uma das possibilidades de viagem a ser adicionada a seqüência SVj. Para alocar vi a SVj é necessário analisar o terminal ou garagem onde se encontra este veículo, o tempo de deslocamento do local onde se encontra até o terminal de saída da viagem vi e analisar se este veículo é adequado para a viagem vi. Pode ocorrer que o veículo após término de uma viagem tenha que permanecer em um dos terminais ou em uma das garagens e também se deslocar de um terminal ao outro; a busca do melhor local para permanência do veículo é feita pelo custo mínimo entre esses locais. Evitase a invibialidade de alocação de viagens a veículos através de penalidades. 3.2. Algoritmo de Alocação Para obter a solução do modelo apresentado, segue-se os seguintes passos: Inicialização: Entre com os seguintes conjuntos: conjunto de viagens do horizonte de planejameto, conjunto de veículos da frota e a matriz de tempos de deslocamentos improdutivos. Faça k = 1. Seleção de Camadas: Monte a camada k, ou seja, o subconjunto de viagens, Vk de V. Matriz de Custos: Monte a matriz C, calculando seus custos. Problema de Atribuição: Resolva o problema de atribuição para a matriz de custos C , através do algoritmo húngaro, que resulta uma solução parcial de pares, que representam (viagem, veículo). Alocação das Viagens: Atribua ao veículo a viagem, seguindo os pares (viagem,veículo) resultantes da solução do problema de atribuição e calcule o custo da seqüência de viagens do veículo com o acréscimo da viagem alocada. Teste de Finalização: Retire as viagens da camada k de V e faça k = k + 1. Se ainda existir viagens no conjunto de viagens do horizonte de planejamento, volte ao passo 2; em caso contrário, vá para o passo 7. Finalização: Determine os seguintes conjuntos: conjunto das viagens alocadas, conjunto das viagens não alocadas e conjunto dos movimentos de veículos vazios. 4. Validação Como o modelo de programação desenvolvido é um método heurístico cuja solução é aproximada, não se tem como medir o quanto esta solução está próxima ou longe da melhor solução em termos de qualidade. Então para validar a solução que será obtida com a aplicação desse modelo, propõe-se o cálculo de limite inferior para o problema de programação da frota através do relaxamento de algumas restrições do problema real e assim avaliar a qualidade da solução obtida. 5 Para encontrar o limite inferior para o problema de alocação da frota proposto nesse trabalho, relaxa-se a restrição de adequar a viagem ao tipo de veículo exigido, ou seja, considera-se uma frota homogênea. No problema de alocação de frota homogênea, considera-se um grafo, onde os nós são representados pelas viagens de um intervalo de tempo e o conjunto de arcos representam a viabilidade de uma viagem ser realizada após outra. Este problema é formulado como problema de atribuição e resolvido através do algoritmo húngaro. A função objetivo minimiza a soma dos custos improdutivos relativos a movimentos de veículos vazios e tempos ociosos. A solução do problema de alocação de frota homogênea pode ser uma solução inviável para a solução do problema de alocação de frota, proposto neste trabalho; o número de veículos na alocação de frota homogênea certamente será menor, pois o veículo que se encontra mais próximo e com tempo hábil para realizar uma viagem é que será alocado, não sendo necessário analisar a exigência da viagem em relação ao tipo de veículo; a solução obtida com a alocação da frota homogênea pode ser considerada como um limite inferior para avaliar a qualidade da solução obtida pelo método proposto. 5 Análise dos Resultados Os dados obtidos para este experimento foi fornecido por uma empresa privada que tem o direito de explorar o transporte de passageiros das linhas de ônibus no sul do Brasil, mais precisamente linhas entre cidades dos estados de Santa Catarina e Rio Grande do Sul. O transporte de passageiros se caracteriza por linhas intermunicipais dentro dos dois estados, totalizando 671 viagens semanais. Nos feriados e vésperas de feriados, há acréscimos de linhas para algumas localidades, assim como em dias alternados. Também, devido à exigência do mercado, há acréscimo diário de linhas para algumas localidades em determinados períodos do ano O número de linhas com vigência anual, acrescidas das linhas com vigência especial, resultam em 38 linhas. O plano operacional da empresa para uma semana regular é apresentado na tabela 1 e o número de linhas e viagens adicionais durante o ano é apresentado na tabela 2. PERÍODO ANUAL DOM SEG Linhas 27 25 Viagens 104 97 VÉSPERA DIAS TER QUA QUI SEX SÁB FERIADO FERIADO ALTERNADOS 26 26 29 25 27 17 3 1 98 98 105 95 74 42 4 2 Tabela 1 – Número de linhas e viagens em semana regular PERÍODO ESPECIAL DOMINGO Março a Linhas 2 Dezembro Viagens 5 Abril a Outubro Novembro a Março Dezembro a SÁBADO 2 DIAS ÚTEIS 1 FERIADOS 2 5 9 6 Linhas 1 0 1 0 Viagens 1 0 5 0 Linhas 2 1 1 1 Viagens 5 1 5 4 Linhas 1 1 1 0 6 Fevereiro Viagens 3 3 15 0 Dezembro a Março Linhas 4 4 4 1 Viagens 10 11 54 5 Tabela 2 – Número de linhas e viagens em período especial do ano As viagens são de três tipos: direta, semidiretas e seccionadas. Viagens diretas não possuem locais de embarque e desembarque durante seu percurso, apenas paradas de descanso, obrigatórias por lei, a cada 300 km rodados. Viagens semidiretas têm um local de embarque e desembarque durante seu percurso, e as viagens seccionadas possuem vários locais de embarque e desembarque ao longo de seu percurso. Cada viagem exige um tipo de veículo adequado. A frota da empresa é composta de 97 veículos, sendo 4 leitos, 48 executivos e 45 convencionais. Para a implementação do algoritmo utilizou-se um horizonte de planejamento de 4 meses (18 semanas), o que possibilita uma visão futura dos acontecimentos e discussões das soluções para a tomada de decisão. A abordagem para se chegar ao parâmetro adequado das penalidades para o algoritmo foi através de vários testes comparativos entre as soluções obtidas pelo algoritmo proposto de forma a não violar as restrições; caso essas soluções violem restrições, modificam-se os parâmetros das penalidades e uma nova solução é obtida; o processo repete-se até não violar restrições. A figura 2 representa o histograma de viagens, de um intervalo de tempo de uma semana (domingo a sábado). Os picos representam os pontos onde o número de viagens diárias que ocorrem simultaneamente é mais acentuado. È evidente que este é um limite inferior para o número de veículos necessários para a atribuição de todas as viagens. Neste caso (uma semana normal), 27 veículos é o número máximo de veículos a serem utilizados simultaneamente. 30 A B C D F 25 L I G E H M N J Viagens 20 15 10 5 0 0 1440 2880 4320 5760 7200 8640 10080 Tempo (minutos) Figura 2 - Histograma de viagens do período 7 Após executar o algoritmo, resultou um conjunto de viagens sem passageiros, por exemplo, um ônibus viajando para iniciar uma nova viagem a partir de uma garagem. O histograma de viagens vazias estão representados na figura 3. Percebe-se que há no máximo 8 viagens sem passageiros em uma semana regular. Adicionado as seqüências dos histogramas representados na figura 2 e na figura 3, obtém-se um número máximo de viagens simultâneas, que não ultrapassam 30 viagens. Conclui-se que o limite mínimo para o problema de programação da frota, analisado de forma estática é 30 veículos. Em outras palavras, numa situação estática do problema ocorrem no máximo 30 viagens simultâneas. Logo, na hipótese mais simples, seriam necessários 30 veículos para cobrir as viagens do intervalo e este será um limite inferior absoluto vinculado a alocação de veículos da frota. É evidente que este é um processo estático, onde não se leva em consideração para a atribuição da próxima semana, a localização do veículo. Observa-se que este é um modelo dinâmico de programação da frota. Cada vez que o algoritmo é executado, situações diferentes ocorrem, uma vez que os veículos possivelmente se encontram em localidades distintas. 9 8 7 Viagens 6 5 4 3 2 1 0 0 1440 2880 4320 5760 7200 8640 10080 Tempo (minutos) Figura 3 - Histograma dos movimentos de veículos vazios do período O algoritmo proposto atribuiu 37 veículos para uma semana regular, onde 32 ônibus são convencionais, 3 são executivos e 2 são leitos cobrindo todas as viagens do horizonte de planejamento, respeitando as restrições impostas do problema, como: a não sobreposição de viagens e a adequação do tipo de veículo às exigências das viagens. Em uma semana com feriado, houve necessidade de adicionar 7 ônibus convencionais para cobrir todas as viagens. Este acréscimo de viagens resultou em um pequeno número de viagens atribuído para cada veículo adicional, mas necessário para cobrir a demanda. Este número de ônibus alocados não está longe demais do limite inferior absoluto, de 30 veículos. Para comparar a solução obtida pelo método de uma forma mais realista, recorreu-se ao procedimento de validação. Se não houvesse a exigência de tipos de veículos seriam 8 necessários 35 veículos para cobrir as viagens de uma semana regular e 40 veículos para cobrir as viagens de uma semana com feriado. Na tabela 3, apresenta-se um resumo comparativo entre a solução obtida pelo algoritmo proposto e do limite inferior da frota homogênea, considerando uma semana regular e uma semana com feriado. Observa-se que apenas 45% da frota é necessária para cobrir todas as viagens, resultando que mais da metade da frota torna-se ociosa para a empresa. Em relação a tempos ociosos há no máximo 4% em relação a movimentos de veículos vazios. Ainda nesta tabela, observa-se que dos veículos efetivamente alocados na operação, apenas 35% e 32%, respectivamente, para uma semana regular e para uma semana com feriado, é produtiva, tornando lucro para a empresa. Pode-se observar que os resultados obtidos são muito próximos do limite inferior discutido na seção 4, garantindo que a solução está próxima da solução ótima. A maior discrepância ocorre em movimentos de veículos vazios, o que é necessário devido a exigência de tipos diferenciados de veículos para as viagens. Situação Algoritmo Veic. Aloca dos Indice Total de Tempo (minutos) de Utiliza ção Improdutiva dos Veic. s/feriado Limite Inferior 35 36% 37 38% 40 41% 44 45% Taxa de Utilização Improdutiva Produtiva Produtiva Tempo Mov. Tempo Mov. Ocioso Vazio Ocioso Vazio 213538 7122 132140 61% 2% 37% 225324 15496 132140 61% 4% 35% 256592 6153 140455 64% 1% 35% 288065 15000 140455 65% 3% 32% frota homogênea Proposto frota heterogêne a c/feriado Limite Inferior frota homogênea Proposto frota heterogêne a Tabela 3: Resumo dos Resultados 9 6. Conclusões Nesse trabalho foi apresentado um modelo para a solução do problema de programação da frota aplicado ao transporte rodiviário regional de passagiros, considerando um horizonte de planejamento de 18 meses. Tal modelo se presta a aplicação em casos reais, dada sua eficiência em encontrar a solução de um problema de otimização combinatória em tempo computacional razoável, através de um método heurístico. Desenvolveu-se um plano operacioal, cobrindo todas as viagens do horizonte de planejamento, com um tempo total de processamento de 4 minutos e 36 segundos. A qualidade das soluções do problema de programação da frota é comprovada para os dados testados pela proximidade dessas soluções com seus limites inferiores, determinados pela relaxação de algumas restrições do problema real. A qualidades dos serviços prestados a comunidade foi mantida, pois toda a programação horária foi cumprida com veiculos adequados às viagens e houve redução de custos fixos da frota, pois o número de veículos é significativamente menor que o número total de veiculos disponíveis. Referências BAITA, F.; PESENTI, R.; UKOVICH, W. & FAVARETTO, D. A comparison of different solution approaches to the vehicle scheduling problem in a practical case. Computers and Operations Research, Vol 27, n. 13, p. 1249-1269, 2000. BODIN, L.; GOLDEN, B.; ASSAD, A. & BALL, M. Routing and scheduling of vehicles and crews. The State of the Art. Computers and Operations Research, Vol. 10, n. 2, p. 63-212, 1983. CEDER, A. & STERN, H. I. Deficit function bus scheduling with deadheading trip insertions for fleet size reduction. Transportation Science, Vol.15, p. 338-363, 1981. CHRISTOFIDES, N. & EILON, S. An algorithm for the Quart, n. 20, p. 309-318,1969. vehicle dispatching problem. Operations Research KLIEWER, N.; MELLOULI, T. 7 SUHL, L. A timespace network based exact optimization model for multidepot bus scheduling. European Jornal of Operational Research, n. 175, p. 1616-1627, 2006. MAYERLE, S. F. Um Sistema de apoio à decisão para o planejamento operacional de empresas de transporte rodoviário urbano de passageiros. Tese de Doutorado. Programa de Pós-Graduação em Engenharia de Produção, UFSC, 1996. RODRIGUES, M. M.; SOUZA, C. C & MOURA, A. V. Vehicle ande crew scheduling for urban bus lines. European Journal of Operational Research, n. 170, p. 844-862, 2006. 10