



Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Este trabalho apresenta uma metodologia para resolver o problema de programação de tripulações (ppt), que tem como objetivo determinar um conjunto de jornadas de trabalho para as tripulações com o menor custo possível. A metodologia utiliza uma abordagem de geração de colunas e o método simplex para resolver o problema. Além disso, é implementada uma heurística baseada na abordagem de chvátal para reduzir a dimensão do problema, considerando apenas as colunas com maiores probabilidades de participar da solução ótima. A metodologia é aplicada a um modelo de particionamento, no qual cada linha da matriz está relacionada a uma única tarefa e as colunas se relacionam com as possíveis jornadas de trabalho.
Tipologia: Manuais, Projetos, Pesquisas
1 / 7
Esta página não é visível na pré-visualização
Não perca as partes importantes!




Gustavo Peixoto Silva Departamento de Engenharia de Produção - EM Universidade Federal Ouro Preto Ouro Preto - MG [email protected]
Marcone Jamilson Freitas Souza Departamento de Computação - ICEB Universidade Federal Ouro Preto Ouro Preto - MG [email protected]
Jorge von Atzingen dos Reis Departamento de Engenharia de Produção - EM Universidade Federal Ouro Preto Ouro Preto - MG [email protected]
Resumo Este trabalho apresenta a implementação de um método híbrido de geração de colunas para o problema de geração da Escala de Motoristas e Cobradores do Sistema de Transporte Público. Esse problema, denominado na literatura Problema da Programação de Tripulações, tem como objetivo determinar um conjunto de jornadas de trabalho para as tripulações, de tal forma que a programação dos veículos seja realizada com o menor custo possível. Como restrições, cada jornada deve atender à legislação e à convenção coletiva de trabalho do setor. Neste trabalho é apresentada uma metodologia que formula o problema como um modelo de particionamento e utiliza o método Simplex para resolvê-lo. Para reduzir o número de colunas do problema, é realizada uma adaptação da heurística de Chvátal para o problema de recobrimento. São apresentados também os resultados obtidos, sinalizando a possibilidade de redução nos custos referentes à mão de obra operacional do setor. Palavras-chave: Escala de motoristas e cobradores, Programação da tripulação, Geração de colunas
Abstract This work presents a hibrid column generation method to solve the crew scheduling problem. In this problem, the objetive is to find a group of workdays for the crews, in such a way that the programming of the vehicles is accomplished with the smallest possible cost. As restrictions, each workday should assist to the legislation and the labour agreement of the sector. In this work it is presented a methodology that formulates the problem as a set partitioning model and it uses the Simplex method to solve this problem. In order to reduce the number of columns, it is proposed a Schivátal heuristic tailored to this problem. It is also presented the results obtained, showing reduction possibilities in the operational costs. Keywords: Crew scheduling, Drivers scheduling, Column generation
A necessidade cada dia maior de reduzir os custos das empresas tem feito com que elas busquem aprimorar cada vez mais seus processos produtivos, mantendo a qualidade de seus produtos e serviços. No setor do transporte público ocorre o mesmo, tendo como agravante o grande número de passageiros que utiliza o sistema sem pagar pelo mesmo, seja por direito, como é o caso dos idosos e
deficientes ou simplesmente por transgressão à ordem. Assim, as companhias do setor são obrigadas a utilizar, de maneira eficiente, seus recursos materiais e humanos para se manterem lucrativas, sem comprometer a qualidade do serviço oferecido. Como a mão-de-obra operacional é umas das componentes que mais pesam na planilha de custos, uma pequena redução neste item pode significar um ganho considerável no custo total, o que justifica qualquer trabalho no sentido de minimizar os custos com a mão-de-obra.
O Problema da Programação de Tripulações (PPT) tem como objetivo determinar um conjunto de jornadas de trabalho para as tripulações, de tal forma que a programação dos veículos seja realizada com o menor custo possível. Como restrições, cada jornada deve atender à legislação e à convenção coletiva de trabalho do setor. A complexidade do problema reside na dificuldade de considerar as cláusulas trabalhistas no modelo matemático, assim como o considerar todas as possíveis soluções, que tendem a crescer numa razão exponencial em relação à dimensão do problema. Neste contexto, vários autores têm se dedicado ao desenvolvimento de modelos capazes de gerar, com menor custo possível, escalas de tripulações que satisfaçam às restrições impostas. Este é um problema permanentemente estudado uma vez que as realidades dos sistemas de transporte estão em contínua transformação e exigem cada vez mais uma gerência eficiente dos recursos disponíveis.
Esse tema tem sido largamente estudado e aplicado nos países mais desenvolvidos. A abordagem mais explorada é aquela que formula o PPT como um problema de recobrimento ou de particionamento (set covering ou set partitioning model) e utiliza a técnica de geração de colunas para resolvê-lo (Smith e Wren 1988, Desrochers e Soumis 1989, Desrochers et al. 1992, Fores et al. 1999, Barnhart et al. 1998, Friberg e Haase 1999). A variedade de trabalhos deriva das diferentes maneiras de gerar as colunas e diferentes metodologias para resolver o problema, tais como: branch-and- bound, branch-and-price e a relaxação lagrangeana.
Desrochers e Soumis (1989) propõem uma abordagem de geração de colunas para o PPT que decompõe o problema em duas partes: um problema principal que é o problema de recobrimento e um subproblema de caminho mínimo. O problema de recobrimento escolhe uma programação dentre as jornadas factíveis previamente conhecidas. O subproblema é usado para encontrar uma nova jornada factível que melhore a solução corrente do problema de recobrimento. No modelo de recobrimento são consideradas as restrições globais do problema, tais como os números máximo e mínimo de pegadas corridas e o número máximo de tripulações. Esse problema é resolvido pelo método Simplex e fornece uma relaxação linear do problema de recobrimento. Uma vez resolvido o problema principal, as novas colunas são geradas pelo algoritmo de caminho mínimo com restrições adicionais. Nesse subproblema, cada caminho factível existente na rede que liga a origem até o destino representa uma jornada viável. A função objetivo é definida de tal forma que o caminho tenha o menor custo marginal possível.
O trabalho de Desrochers e Soumis (1989) constitui a base do método HASTUS (Rousseau e Blais, 1985), que consiste no sistema comercial para a programação de tripulações desenvolvido no centro de pesquisa GERARD da Universidade de Montreal.
Um outro sistema comercial de referência internacional é o TRACS II (Wren et al. 1994) desenvolvido pelo Grupo de Programação de Restrições e Pesquisa Operacional da Universidade de Leeds no Reino Unido. O sistema TRACS II é uma versão atual do IMPACS e vem sendo aprimorado e adaptado para resolver também o problema de programação de tripulações de trens (Wren et al. 1994, Fores et al. 1999). O sistema IMPACS tem como base o trabalho de Smith e Wren (1988) que emprega o modelo de recobrimento associado a um método de busca branch-and-bound para a obtenção de uma solução inteira para o PPT. Nesse caso, para diminuir o número de colunas, são consideradas as características do problema, gerando apenas as colunas que se referem a jornadas de trabalho similares àquelas praticadas pelas empresas operadoras do sistema. Dessa forma, o espaço de busca do Simplex é reduzido consideravelmente, permitindo a resolução do problema em um tempo razoável de processamento computacional.
As jornadas de trabalho são combinações de tarefas dos veículos de uma mesma linha. Entretanto, foi considerada a possibilidade de uma tripulação executar tarefas de veículos distintos, ou seja, que uma tripulação realize a troca de veículos dentro da linha.
Para reduzir o número de jornadas e garantir uma duração mínima de cada jornada, as tarefas que se localizam no início e no final de cada veículo foram agrupadas em uma única tarefa, conforme descrito abaixo.
A primeira tarefa de cada veículo é combinada com as tarefas seguintes até atingir o tempo mínimo de trabalho; Da mesma forma, a última tarefa de cada veículo é combinada com as tarefas anteriores até atingir o tempo mínimo de trabalho.
Dessa forma foi agrupada parte das tarefas, diminuindo o número de combinações possíveis de serem realizadas, pois quanto maior o número de tarefas maior será o número de combinações. A Tabela 1 contém o número de tarefas de cada linha antes e depois da união das tarefas iniciais e finais de cada veículo.
Tabela 1 - Redução do número de tarefas devido ao processo de tempo mínimo. Número da Linha 01 02 03 04 05 06 07 08 09 10 11 Total
Número de tarefas 39 49 23 54 190 40 128 150 200 154 163 1190 Número reduzido de tarefas
Pelos dados da tabela 1 pode-se observar que houve uma grande redução no número de tarefas de cada linha atingindo uma redução de 55% no número total de tarefas (de 1190 tarefas para 535 tarefas).
Em seguida foram consideradas todas as possíveis combinações de tarefas gerando as jornadas de trabalho. Cada jornada é avaliada e apenas as jornadas viáveis, ou seja aquelas que satisfazem as restrições trabalhistas são incluídas no modelo. As restrições trabalhistas contempladas neste trabalho são:
Folga corrida de 30 minutos, que deve ter início antes de completar 6 horas trabalhadas; Tempo máximo de trabalho igual a 9 horas e 10 minutos; Tempo mínimo entre o final da jornada e seu início no dia seguinte de 11 horas. Jornada normal de trabalho com duração de 7 horas e 10 minutos.
O custo operacional cj de cada jornada é calculado de acordo com a seguinte expressão:
Cada jornada define uma coluna da matriz de restrições e um coeficiente na função de custo. Na Tabela 2 é apresentado um exemplo de uma matriz gerada segundo essa metodologia, na qual as linhas correspondem às tarefas de cada veículo. A Tarefa 0101 corresponde à primeira tarefa do modelo, a qual pertence ao veículo 1, enquanto a Tarefa 0302 é a terceira tarefa do modelo que pertence ao veículo 2. A coluna 1 corresponde à jornada composta apenas pela tarefa 0101, e a coluna 6 representa a jornada que realiza as tarefas 0101, 0201 e 0302. No primeiro exemplo a tripulação opera um único veículo enquanto no segundo, a tripulação atuará em dois veículos distintos. Essa estratégia permite uma flexibilização na operação e consequentemente uma redução nos seus custos, sem no entanto propor uma alteração drástica na filosofia de trabalho da empresa.
Tabela 2 - Exemplo de uma Matriz gerada pelo programa Geratarefa. Jornadas J1 J2 J3 J4 J5 J6 J7 J8 J9 J10 J11 J Tarefa 0101 1 0 0 1 0 1 0 0 1 0 1 1 Tarefa 0201 0 0 0 1 0 1 0 1 0 1 0 0 Tarefa 0302 0 0 0 0 0 1 0 1 0 1 0 0 Tarefa 0401 0 1 0 0 0 0 0 1 0 0 0 1 Tarefa 0502 0 0 1 0 1 0 0 0 0 1 0 0 Tarefa 0602 0 0 0 0 1 0 1 0 1 0 0 0 Tarefa 0701 0 0 0 0 0 0 1 0 0 0 1 0
Foram gerados os seguintes tipos de jornadas de trabalho:
Dupla Pegada: ocorre quando a tripulação executa parte das tarefas de uma determinada jornada e após uma folga corrida de pelo menos 2 horas, retorna para continuar a cumprir o restante das tarefas pertencentes à mesma jornada. Durante o período que a tripulação permanece parada, ela não tem remuneração. Pegada Simples: é quando uma tripulação executa todas as tarefas de uma determinada jornada com uma folga corrida menor que 2 horas. Neste caso existe uma folga para alimentação/repouso de 30 minutos incluída na jornada.
3.1 A Heurística de Chvátal para o PPT Após a geração de todas as colunas, as quais correspondem às jornadas de trabalho viáveis, é feita uma seleção de parte desse conjunto de forma a reduzir a dimensões da matriz e garantir que o modelo encontre uma solução ótima dentro de um tempo de processamento aceitável.
A seleção das colunas é realizada tendo como base a heurística proposta por Chvátal (1979). Assim, durante a geração das colunas, é atribuído um valor denominado custo relativo para cada jornada de trabalho conforme a expressão (6), onde a constante total_tarefas_cobertas representa o número de tarefas cobertas pela jornada j.
Em seguida as colunas são ordenadas segundo seus custos relativos e aquelas que apresentam os menores valores irão compor as colunas da matriz do modelo de programação linear. Para garantir a existência de uma solução para o PPT, são adicionadas as jornadas de trabalho que possuem uma única tarefa. O número de jornadas de trabalho a ser considerado é definido como um parâmetro de entrada do sistema.
Esse modelo foi testado com os dados reais de um empresa de transporte público e os resultados são apresentados a seguir.
Nesse estudo foi considerado um grupo de três linhas similares sob responsabilidade da empresa. O grupo de linhas foi tratado como um único problema e resolvido, considerando-se todas as possíveis jornadas viáveis de trabalho, ou seja, com todas as colunas do problema. Dessa forma foi obtida a solução ótima para o problema.
problemas de grandes dimensões, esse fato demostrar a potencialidade da metodologia na abordagem de problemas reais.
A continuidade da pesquisa se dará com o aprimoramento da heurística de Chvátal (1979), com diferentes funções de avaliação das jornadas, para selecionar as colunas a serem incluídas no modelo de particionamento e outras formas de cálculo do custo reduzido utilizado nesse trabalho.
Agradecimentos Os autores agradecem à UFOP pelo apoio recebido para a execução desse projeto.
Barnhart, C.; Johnson, E. L.; Nemhauser, G. L.; Savelsbergh, M. P. e Vance, P. H. (1998) - Branch- and-price: column generation for solving huge integer programs. Operations Research, v.46, p.316-329.
Chvátal, V. (1979) A greedy heuristic for the set covering problem. Mathematics of Operations Research, v. 4, p. 233-235.
Desrochers, M. e Soumis, F. (1989) - A Column Generation approach to the urban transit crew scheduling problem. Transportation Science, v. 23, p. 1-13.
Desrochers, M; Gilbert, J.; Sauve, M. e Soumis, F. (1992) - CREW-OPT: Subproblem modeling in a column generation approach to urban crew scheduling. In: Computer-Aided Transit Scheduling, Desrochers, M. & Rousseau, J. M. (eds.), Spring, Berlin, p. 395-406.
Fores, S.; Proll, L. e Wren A. (1999) - An Improved ILP System For Driver Scheduling. In: Computer-Aided Transit Scheduling, Wilson, N. H. M. (ed.), Springer, Berlin , p. 43-61.
Friberg, C. e Haase, K. (1999) - An exact branch and cut algorithm for the vehicle and crew scheduling problem. In: Computer-Aided Transit Scheduling, Wilson, N. H. M. (ed.), Springer, Berlin, p. 63-80.
Rousseau, J. M. e Blais , J. Y. (1985) - HASTUS: an interactive system for buses and crew scheduling. In: Computer scheduling of public transport 2, J. M. Rousseau (ed.), 45-60, North-Holland.
Smith, B. M. e Wren, A. (1988) - A Bus Crew Scheduling System Using a Set Covering Formulation, Transportation Research, v. 22A, p.97-108.
Wren, A.; Kwan, R. S. K. e Parker, M. E. (1994) - Scheduling of rail driver duties. In: Computers in Railways IV, vol. 2, Murty, T. K. S.; Mellitt, B.; Brebbia, C. A.; Sciutto, G. & Sone, S. (eds.), Southampton, Boston.