APLICAÇÃO E FLEXIBILIZAÇÃO DO METODO DE GERAÇÃO DE ARCOS ARCGEN PARA A PROGRAMAÇÃO DE ÔNIBUS DE TRANSPORTE PÚBLICO Gustavo Peixoto Silva Departamento de Engenharia de Produção – UFOP Nicolau D. Fares Gualda Departamento de Engenharia de Transportes – POLI/USP Abstract – This work presents partial results obtained in a PhD resource, which explores network flow algorithms to solve public mass vehicle scheduling problem. The basic problem is solved through circulation model combined with the arc generation technique, derived from the column generation approach of the linear programming theory. The proposed method was applied to a real case, producing extensions to support operational practices in Brazil. This work briefly presents the basic methodology, explaining in details the extensions achieved in order to generate alternative vehicle schedules. Keyword: Vehicle scheduling, network flow algorithms, arc generation. 1 INTRODUÇÃO Um problema básico para programar a operação de uma frota de ônibus no transporte coletivo urbano consiste em determinar o número mínimo de veículos necessários para realizar um dado conjunto de viagens, assim como definir a seqüência das viagens executadas por cada veículo. Este problema é trivial quando o número de linhas é reduzido, mas ele se complica à medida que este número aumenta. Para os casos mais complexos, a utilização de métodos matemáticos pode levar a uma redução no número de veículos, além de minimizar o custo operacional da frota (Bodin 1983). Este problema pode ser formulado com a teoria de fluxo em redes de diferentes maneiras. Para melhor compreensão dos diversos modelos ver Daduna e Paixão (1995), Carraresi e Gallo (1984) e Bodin et al. (1983). Independente da formulação adotada, o gargalo que surge na resolução do problema de fluxo subjacente diz respeito ao elevado número de arcos na rede. Para contornar este problema pode-se empregada a técnica de geração de arcos, que consiste em inicializar o domínio do problema com um conjunto de arcos com grande possibilidade de participarem da solução. Posteriormente este conjunto é incrementado com os arcos com alguma possibilidade de melhorar a solução corrente. Assim, é possível atingir a otimalidade sem processar a rede toda (Freling et al. 1995). A metodologia utilizada neste trabalho transforma a formulação de pseudo-designação proposta por Paixão e Branco (1987) em um problema de circulação que é resolvido com o algoritmo Out-of-Kilter combinado com a técnica de geração de arcos (Silva e Gualda 2000). Desta forma o problema de programação de veículos pode ser resolvido sem que haja degeneração no tempo de processamento. Os objetivos deste trabalho são: i) Aplicar a metodologia de programação de ônibus urbano apresentada em Silva e Gualda (2000) ao serviço de transporte coletivo diferenciado em operação na cidade de Santos, denominado “Seletivo” e verificar a viabilidade operacional da solução. ii) Explorar a operação da empresa a fim de incorporar ao modelo novos recursos de utilidade prática. Este trabalho conta ainda com quatro seções: na seção seguinte são relatadas as práticas operacionais e características do problema estudado. A seção três mostra os diversos experimentos realizados, com os resultados encontrados. Finalmente são apresentadas as conclusões e continuidade do trabalho. 2 SITUAÇÃO ATUAL O sistema de transporte “Seletivo” de Santos é um serviço diferenciado por apresentar as seguintes características: a) os veículos são de tamanho reduzido (28 assentos) e equipados com ar condicionado, b) os passageiros só viajam sentados, c) o motorista também desempenha a função de cobrador, d) os veículos cumprem suas tabelas de horários com rigidez, e d) o preço da passagem é mais alto do que no transporte coletivo comum. O serviço é composto de oito linhas circulares, partido de três terminais distribuídos na cidade de Santos. A operação do serviço em curso apresenta as seguintes características: • • • • Para cada linha é definido o número de veículos que nela atua, tendo em vista a demanda na linha e o tamanho da frota disponível. Atualmente cada veículo só opera em uma determinada linha. A freqüência de partida de cada linha é calculada dividindo-se o tempo de duração da viagem pelo número de veículos que atuarão na linha. São feitos os arredondamentos necessários para facilitar a operação. Ao final de cada viagem é dado 10 minutos para o descanso do motorista. Analisando as características operacionais do serviço de transporte pode-se concluir que: • • • • Não é considerada a variação da demanda nas linhas, visto que a freqüência é constante no decorrer do dia, computado o tempo de ponto. Ocorre uma super-utilização dos veículos no período de pico e uma sub-utilização no período de entre-pico. Não existe retorno de veículos à garagem no período de entre-pico. Este serviço segue um padrão operacional de linhas de baixa demanda. Este trabalho explora as diversas possibilidades de flexibilização no sistema, gerando soluções que variam tanto em custo capital quanto na dificuldade de sua implementação. As programações apresentadas representam os principais resultados alcançados e incluem apenas aquelas que mais aproximam-se da situação atual. 3 ESTUDOS REALIZADOS Foram realizados dois estudos diferentes tendo em vista o cumprimento rigoroso das viagens programadas ou a relaxação desta condição, gerando programações que omitem algumas viagens para reduzir a frota em operação. 3.1 PROGRAMAÇÕES QUE REALIZAM TODAS AS VIAGENS PLANEJADAS As programações geradas nesta etapa executam todas as viagens programadas, respeitando os seus respectivos horários e locais de partida e de chegada. Os dados básicos que alimentaram o sistema foram: o total de viagens programadas, os horários e locais de início, horários e locais de término das viagem, o tempo de viagem entre os terminais, e o tempo de viagem entre os terminais e a garagem, estando o veículo fora de operação. 1 Também é informado o tempo mínimo de permanência na garagem, caso o veículo retorne a ela no período de entre-pico. A prática mostra que um período mínimo da ordem de 30 minutos de estacionamento temporário na garagem é razoável (Kwan e Rahin 1999). 3.1.1 Com restrição de troca de linhas Nestes casos não foi permitido que os veículos atuassem em mais de uma linha durante a operação. Quanto ao descanso do motorista foram testadas duas situações diferentes. 3.1.1.1 Com tempo de descanso para o motorista Considerando um período de 10 minutos ao final de cada viagem para o descanso do motorista, foi gerada uma programação com as seguintes características: Frota 34 Tempo total de viagens vazias 31:50 hh:mm Tempo livre nos terminais 00:00 hh:mm Retornos à garagem 0 Tabela 2: Programação sem troca de linha e com tempo de descanso para o motorista. Esta programação tem as mesmas características da situação atual e foi gerada para verificar a validade do modelo. Foi verificado que a totalidade das viagens não apresenta folga no terminal além do tempo de descanso do motorista. 3.1.1.2 Sem garantia de tempo de descanso para o motorista Se não for assegurado o tempo mínimo de 10 minutos ao final de cada viagem para o descanso do motorista, a programação ótima gerada pelo modelo apresenta as seguintes características: Frota 32 Tempo total de viagens vazias 30:50 hh:mm Tempo livre nos terminais 44:50 hh:mm Retornos à garagem 0 Tabela 3: Programação sem troca de linha nem garantia do tempo de descanso do motorista. Embora esta programação não garanta o tempo de descanso, ela conta com 44 horas e 50 mínimo livres nos terminais para criar condições operacionais aos motoristas. Segundo o histograma de folga, 200 viagens não apresentam folga no terminal, o que impossibilita o descanso do motorista. No restante das viagens é possível acomodar o descanso do motorista, sendo que em 205 viagens o tempo livre no terminal é de 10 minutos. 3.1.2 Com liberdade de troca de linhas durante a operação Esta é uma situação de maior flexibilidade onde um veículo pode realizar viagens de diferentes linhas em um mesmo dia de trabalho. No entanto o sistema teve seus parâmetros ajustados para que não houvesse muita troca de linha, mantendo ao máximo as características da programação atual. Assim como no caso anterior, foram testadas duas situações diferentes em função do descanso do motorista, as quais são apresentadas abaixo. 3.1.2.1 Com tempo de descanso para o motorista Uma vez garantido o tempo mínimo de 10 minutos ao final de cada viagem para o descanso do motorista, a programação gerada conta com as seguintes características: Frota Tempo total de viagens vazias Tempo livre nos terminais 34 31:50 hh:mm 00:00 hh:mm Obs: Nesta programação os ônibus atuam em média em 3 linhas diferentes. Retornos à garagem 0 Tabela 4: Programação com troca de linha e com tempo de descanso para o motorista. 2 Neste caso, embora seja garantido o descanso do motorista, não existe redução no número de ônibus, ocorrendo ainda a desvantagem da troca de linhas dos veículos durante a operação. 3.1.2.2 Sem garantia de tempo de descanso para o motorista A programação apresentada abaixo não assegura o tempo mínimo para o descanso do motorista e suas principais características são: Frota Tempo total de viagens vazias Tempo livre nos terminais Retornos à garagem 32 32:40 hh:mm 32:20 hh:mm 1 (com 02:55 estacionado) Obs: Nesta programação os ônibus atuam em média em 4 linhas diferentes. Tabela 5: Programação com troca de linha e sem tempo de descanso para o motorista. Embora ocorra uma redução na frota em operação, programações deste tipo são pouco atraentes por não permitir o descanso adequado ao motorista em grande parte das viagens. 3.1.3 Conclusão As situações que garantem o descanso do motorista (3.1.1.1 e 3.1.2.1) coincidem com a programação atual, independentemente de haver flexibilização quanto à permanência dos veículos nas suas linhas. Isto se deve pelo fato do intervalo entre as partidas ter sido calculado dividindo-se o tempo de viagem pelo número desejado de veículos em operação na respectivas linha. Nos casos em que o descanso do motorista não foi imposto ao modelo (3.1.1.2 e 3.1.2.2) houve uma diminuição da frota em operação. Em contra partida, surgem os problemas de alocação e treinamento dos motoristas. Logo, é observado que as programações geradas nesta seção que reduzem a dimensão da frota levam ao problema de programação dos motoristas, o qual é de grande complexidade. Surgiu então a necessidade de permitir a supressão de algumas viagens para que novos quadros de interesse fossem produzidos. 3.2 PROGRAMAÇÕES QUE OMITEM ALGUMAS VIAGENS PLANEJADAS Foram testadas outras alternativas para o planejamento das linhas do sistema de transporte estudado. Assim, o modelo foi adaptado para possibilitar a não realização de algumas viagens, caso esta omissão levasse a uma economia na operação do sistema. A omissão de algumas viagens em função da redução a frota está associada à relação custo/benefício no sistema como um todo. Neste sentido, viagens com maior custo são consideradas mais importantes do que viagens com menor custo de omissão. Todas as programações geradas neste subseção contemplam o descanso do motorista, de 10 minutos após o cumprimento de cada viagem, como na situação atual. A seguir são descritos os diferentes custos associados à omissão das viagens, juntamente com os resultados proporcionados pelo modelo. 3.2.1 Custo por omissão constante para todas as viagens Inicialmente foi considerado um custo de omissão constante para todas as viagens. Desta forma foram suprimidas viagens que levam à economia de veículos, independentemente das suas características de demanda de passageiros ou de suas inter-relações com as outras viagens da mesma linha. Logo, o custo de omissão de uma viagem é dado por: Coi = K para cada viagem i (1) 3 Onde K é uma constante adimencional manipulada pelo usuário para controlar o número de viagens suprimidas na programação. Considerando a operação onde os veículos podem realizar viagens em diferentes linhas durante o dia de trabalho, a programação ótima tem as características que seguem. Ao assumir um custo de omissão constante para todas as viagens, a retirada de 16 viagens da programação, reduziu em dois o número de veículos em operação, sendo um veículo da linha 206 e outro da linha 207. Algumas viagens destas linhas foram incorporadas a dois veículos da linha 202. Por outro lado, as viagens suprimidas estão distribuídas ao longo do dia, abrangendo períodos de pico e fora do pico. O mesmo resultado foi gerado tendo em vista o custo de omissão dado em função da taxa de ocupação dos veículos (1o da tabela 7) porém, neste caso surgem outras programações de interesse prático. Total de veículos: 32 ônibus Viagens omitidas: 8 viagens da linha 206 (redução de 1 veículo) 8 viagens da linha 207 (redução de 1 veículo) Total de retornos à garagem: 0 Obs: apenas 2 ônibus operam em 2 linhas diferentes, realizando no final do período um bloco de quatro viagens em uma segunda linha. Tabela 6: Programação com custo constante por omissão de viagem. 3.2.2 Custo por omissão dependente da taxa de ocupação do veículo e fator multiplicativo Para serem considerados fatores da demanda de passageiros relativos às viagens, foi associado ao custo de omissão informações referentes à taxa de ocupação do veículo. O período de operação de cada linha foi dividido em intervalos caracterizados pela demanda tais como: pré pico, pico da manhã, entre pico, etc. A empresa forneceu, para cada intervalo, a taxa de ocupação do veículo. Esta taxa, que reflete a demanda na linha, foi incorporada ao custo de omissão da viagem. Foi utilizado ainda, um multiplicador para calibrar os custos e regular o número de viagens omitidas, como pode ser verificado na expressão abaixo. Coi = K×Di, para cada viagem i (2) Onde K tem a mesma interpretação da expressão (1) e Di representa a taxa média de ocupação do veículo para a viagem i. Consideração da demanda nos custos de omissão das viagens, não foi possível que o modelo gerasse programações alternativas sem que houvesse alguma troca de linha durante a operação. Portanto, as programações apresentadas a seguir realizam pelo menos uma troca de linha. As duas primeiras programações na tabela 7 utilizam 32 veículos omitindo 16 e 17 viagens respectivamente. Na primeira programação apenas dois veículos operam em duas linhas diferentes, realizando um bloco de 4 viagens no final do período. No caso da segunda programação quatro veículos atuam em duas linhas diferentes, sempre em blocos de 3 a 4 viagens no início e final do período. Esta programação suprime 17 viagens e portanto uma a mais do que a programação anterior. A vantagem é que as viagens não realizadas estão distribuídas em períodos fora do horário de pico das respectivas linhas. As duas últimas programações na tabela 7 utilizam 33 veículos omitindo em ambos os casos 8 viagens. Na terceira programação todas as viagens não realizadas pertencem à 4 linha 206, abrangem horários de pico e fora do pico, e um único veículo da frota atua em linhas diferentes. Este veículo realiza um bloco de 4 viagens na linha secundária no final do período. Na última programação apresentada acima, as viagens não realizadas pertencem a duas linhas diferentes, 206 e 207, não se encontram em horários de pico, e dois veículos atuam em linhas diferentes, realizando blocos de viagens na linha secundária no início e final do período. Veículos com troca de linha Número. veículos / Linha/Viagens omitidas Total de omissões - período das viagens 32 / 16 206/8 viagens – entre 202 07:30 e 17:25. 202 207/8 viagens – entre 07:50 e 17:45. 206 × 4 fim período 207 × 4 fim período 208/3 viagens – entre 201 07:05 e 09:45. 202 207/4 viagens – entre 207 07:50 e 12:05. 208 206/10 viagens – entre 11:05 e 18:10. 206 × 3 fim período 206 × 4 fim período 206 × 4 início período 206 × 3 início período 206/8 viagens – entre 202 07:30 e 17:25 206 × 4 fim período 207/4 viagens – entre 202 7:50 e 12:05. 207 206/4 viagens – entre 13:10 e 17:25. 206 × 4 fim período 206 × 4 início período Programação 1 32 / 17 Programação 2 33 / 8 Programação 3 33 / 8 Programação 4 Linha principal L. secundária× Período viagens secundárias no viagens Tabela 7: Programações com custo por omissão dado em função da taxa média de ocupação dos veículos por viagem. 3.2.3 Custo por omissão dependente da taxa de ocupação do veículo, do intervalo até a próxima viagem e fator multiplicativo Outro fator que reflete a qualidade de um serviço de transporte público é o intervalo entre as partidas dos veículos de uma dada linha. Se por um lado o intervalo mais amplo entre duas partidas garante uma alta taxa de ocupação do veículo, por outro lado ele caracteriza uma escassez de opções para o usuário. Este fator foi incorporado ao modelo atribuindo ao custo de omissão de cada viagem a expressão abaixo, ou seja, o produto entre a taxa de ocupação do veículo e o intervalo de tempo até a próxima partida, além do fator multiplicativo. Coi = K×Di×Ti para cada viagem i (3) Onde K e Di têm a mesma interpretação da expressão (2) e Ti é o intervalo de tempo até a próxima partida da linha a que pertence a viagem i. A tabela abaixo mostra as programações resultantes tendo em vista os custos expressos em (3). Foram apresentadas apenas aquelas que mais se aproximam da programação corrente, embora em todas as soluções ocorra troca de linha por parte dos veículos. Somente desta forma foi possível reduzir o número de veículos em operação. 5 Número. Veículos / Total omissões 32 / 19 Programação 1 33 / 9 Programação 2 Linha/ omitidas Veículos com troca de linha Viagens - período das viagens Linha principal L. secundária Período viagens × no viagens secundárias 208/9 viagens - entre 208 07:05 e 12:25. 202 204/10 viagens - entre 208 13:05 e 18:10. 204 × 6 Início período 208 × 1 Início período 204 × 5 Início período 208/4 viagens - entre 202 08:00 e 12:00. 208 204/5 viagens - entre 13:05 e 17:45. 208 × 1 Início período 204 × 5 Início período Tabela 8: Programações que consideram a taxa de ocupação do veículo e o intervalo até a próxima partida na omissão de uma viagem. Para reduzir a frota ao mesmo número de veículos (32 e 33) das programações apresentadas na tabela 7, as programações desta seção suprimiram um número maior de viagens. No primeiro caso, para uma frota de 32 ônibus, foi necessário suprimir um total de 19 viagens e portanto 3 e 2 viagens a mais do que nas duas primeiras programações da tabela 2. Por outro lado 3 veículos que fazem troca de linhas correspondendo à média dos casos anteriores. 4 CONCLUSÕES A possibilidade de não executar todas as viagens programadas permite gerar programações alternativas com diferentes graus de redução na frota. Os resultados mais interessantes do ponto de vista operacional são aqueles que refletem a taxa de ocupação dos veículos e os que associam a taxa de ocupação e o intervalo até a próxima viagem para definir o custo de omissão da viagem. A tabela 7 apresenta dois grupos de programações com a mesma taxa de redução da frota, porém com diferentes características operacionais. Enquanto na primeira e terceira programações algumas das viagens omitidas pertencem ao horário de pico das respectivas linhas, as viagens não realizadas na segunda e quarta programações pertencem ao horário de entre pico. Em contrapartida, existe um número menor de veículos operando em linhas diferentes na primeira e terceira programações do que na segunda e quarta programações. Embora os resultados apresentados na tabela 8 suprimam algumas viagens a mais do que nos casos anteriores, para as mesmas dimensões da frota (32 e 33 veículos), adotando-se a função de custo de omissão de viagens na expressão (3) foi possível gerar outras alternativas de programação. A primeira e segunda programações da tabela 8 podem ser comparadas à segunda e quarta programações da tabela 7, pois ambos os pares têm a mesma frota e todas as viagens omitidas estão fora do horário de pico. A diferença qualitativa entre estes resultados, além do número de viagens omitidas, está nas linhas que sofrem redução de viagem, no número de veículos que atuam em linhas diferentes e o número viagens realizadas na linha secundária. Comparando as programações com 32 veículos pode-se observar que: a) existe uma interseção entre elas de apenas três viagens da linha 208, b) 4 e 3 veículos atuam em linhas diferentes nas programações da tabela 7 e tabela 8 respectivamente e c) são realizadas 14 e 12 viagens nas linhas secundárias nas programações da tabela 7 e tabela 8 respectivamente. Para as programações com 33 veículos observa-se que: a) as 6 programações omitem viagens pertencem a linhas distintas viagens nas linhas secundárias nas programações da tabela 7 Logo, são gerados resultados alternativos e de certa forma mesma dimensão da frota, propiciando liberdade de escolha transporte. e b) são realizadas 8 e 6 e tabela 8 respectivamente. complementares para uma ao operador do sistema de Como continuidade do trabalho pretende-se permitir que o modelo de programação faça também o planejamento de partidas das linhas. Uma descrição da metodologia adotada na etapa subsequente se encontra abaixo. 5 CONTINUAÇÃO DO TRABALHO O que se pretende na continuidade deste estudo é que o modelo de otimização determine a tabela de horários de forma integrada com a programação dos veículos. Assim, é gerado um conjunto maior de viagens, a partir do qual é escolhido um subconjunto de viagens a ser executado, associado à minimização da frota em operação. Este processo associa o planejamento das linhas com a otimização da programações, executando ambas ao mesmo tempo. 5.1 MÉTODO INTEGRADO DE PLANEJAMENTO DAS LINHAS E VEÍCULOS Inicialmente o dia de trabalho é dividido em tantos intervalos quantos forem necessários para se obter uma caracterização da curva de demanda em cada linha. Para cada intervalo são geradas viagens em subintervalos constantes e suficientemente pequeno, de tal forma que se tenha uma discretização do tempo com suas respectivas viagens. O usuário informa o número mínimo de viagens realizadas por intervalo para cada linha e o modelo matemático baseado em Relaxação Lagrangeana, determina as viagens a serem realizadas. Desta forma é gerado um planejamento cuja programação resultante satisfaz às condições mínimas impostas pela usuário, maximizando a utilização do veículo e minimizando o custo operacional da frota como um todo. Esta esta flexibilização já foi implementada, porém o método ainda não foi avaliado com dados reais. 6 BIBLIOGRAFIA Bodin, L.; B. Golden; A. Assad e M. Ball. (1983) Routing and scheduling of vehicles and crews: The state of the art. Computers and Operations Research, v 10, p. 63-211. Carraresi, P. e G. Gallo (1984) Network models for vehicle and crew scheduling. European Journal of Operational Research, v 16, p. 139-151. Daduna, J. R. e J. M. P. Paixão (1995) Vehicle scheduling for public mass transport- an overview. In: Daduna, J. R.; I. Branco e J. M. P. Paixão (eds.) Computer-Aided Transit Scheduling, Lectures Notes in Economics and Mathemaitcal Systems. Springer Verlag, Berlin, Alemanha. Freling, R.; J. M. P. Paixão e A. P. M. Wagelmans (1995) Models and Algorithms for Vehicle Scheduling. Aviable via WWW at http://kaa.cs.few.eur.nl/few/people/freling/. Kwan, R. K. e M. A. Rahin (1999) Object oriented bus scheduling - the BOOST system. A ser publicado em: Computer Aided Scheduling of Public Transport ed. N. H. M. Wilson. Springer, Berlin. Paixão, J. e L. Branco (1987) A quasi-assignment algorithm for bus-scheduling, Networks, v 17, p. 249-269. Silva, G. P. e N. F. D. Gualda (2000) Uma algoritmo de Geração de Arcos para o Problema de Programação de Veículos”. TRANSPORTES, v 8 (1) p. 35-54. 7