um algoritmo hÍbrido para a soluÇÃo de problemas de...

56
UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE ESCALA DE MOTORISTAS Alan de Freitas Dissertação de Mestrado apresentada ao Programa de Pós-graduação em Engenharia de Sistemas e Computação, COPPE, da Universidade Federal do Rio de Janeiro, como parte dos requisitos necessários à obtenção do título de Mestre em Engenharia de Sistemas e Computação. Orientador: Nelson Maculan Filho Rio de Janeiro Setembro de 2011

Upload: buinhu

Post on 10-Nov-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE

ESCALA DE MOTORISTAS

Alan de Freitas

Dissertação de Mestrado apresentada ao

Programa de Pós-graduação em Engenharia

de Sistemas e Computação, COPPE, da

Universidade Federal do Rio de Janeiro, como

parte dos requisitos necessários à obtenção do

título de Mestre em Engenharia de Sistemas e

Computação.

Orientador: Nelson Maculan Filho

Rio de Janeiro

Setembro de 2011

Page 2: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE

ESCALA DE MOTORISTAS

Alan de Freitas

DISSERTAÇÃO SUBMETIDA AO CORPO DOCENTE DO INSTITUTO

ALBERTO LUIZ COIMBRA DE PÓS-GRADUAÇÃO E PESQUISA DE

ENGENHARIA (COPPE) DA UNIVERSIDADE FEDERAL DO RIO DE

JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A

OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIAS EM ENGENHARIA DE

SISTEMAS E COMPUTAÇÃO.

Examinada por:

Prof. Nelson Maculan Filho, H.D.R.

Profa. Marcia Helena Costa Fampa, D.Sc.

Prof. Luiz Satoru Ochi, D.Sc.

RIO DE JANEIRO, RJ – BRASIL

SETEMBRO DE 2011

Page 3: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

de Freitas, Alan

Um Algoritmo Híbrido para a Solução de Problemas de

Escala de Motoristas/Alan de Freitas. – Rio de Janeiro:

UFRJ/COPPE, 2011.

X, 46 p.: il.; 29, 7cm.

Orientador: Nelson Maculan Filho

Dissertação (mestrado) – UFRJ/COPPE/Programa de

Engenharia de Sistemas e Computação, 2011.

Referências Bibliográficas: p. 43 – 46.

1. Problema de Escalonamento de Motoristas(PEM). 2.

Geração de Colunas. 3. Metaheurísticas. 4. Busca Tabu,

VNS. I. Maculan Filho, Nelson. II. Universidade Federal

do Rio de Janeiro, COPPE, Programa de Engenharia de

Sistemas e Computação. III. Título.

iii

Page 4: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Agradecimentos

Gostaria de agradecer a Deus, que proporcionou coragem e estímulo para continuar

e concluir esse trabalho.

Gostaria de agradecer aos meus pais, Gonçalo e Maria, minha irmã e meu cunhado,

que me ajudaram dando apoio, "puxões"de orelha e que depositaram total confiança

para eu concluir esse trabalho.

Gostaria de agradecer a CNPQ, que pelos meses que contribuiu financeiramente

com os meus estudos no mestrado.

Gostaria de agradecer ao meu orietador e amigo, Nelson Maculan Filho, pela

paciência e atenção comigo, também pelos conhecimentos repassados nas aulas e

reuniões em sua sala.Além disso, pelo estímulo e confiança depositadas em mim, o

que contribuiu para a conclusão desse trabalho.

Gostaria de agradecer a Secretária Acadêmica Solange e Secretária da linha de

otimização Maria de Fátima, que tiveram total paciência e atenção comigo, que me

socorreram em situações de apuros durante o mestrado.

Gostaria de agradecer aos meus colegas de mestrado e de sala de estudo: Brígida

Sartinni, Rogério Tostas, Claudia Susie, Herbert; que contribuiram com conheci-

mento e materiais de apoio; e descontração, nos momentos de tensão e desespero.

Gostaria de agradecer aos meus amigos de mestrado Diana Sasaki, Vinícius Forte,

Vinícius Xavier, Viviane, Carolina, Larissa Spinelli, Renan Vicente, pelas horas de

estudo super descontraída na sala do "marimbondo"e no LUG.

Gostaria de agradecer aos minhas amigas da UERJ, Joyce e Sueni, que me apoiaram

e motivaram nos momentos de desespero no projeto de elaboração desse trabalho.

iv

Page 5: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Resumo da Dissertação apresentada à COPPE/UFRJ como parte dos requisitos

necessários para a obtenção do grau de Mestre em Ciências (M.Sc.)

UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE

ESCALA DE MOTORISTAS

Alan de Freitas

Setembro/2011

Orientador: Nelson Maculan Filho

Programa: Engenharia de Sistemas e Computação

Apresenta-se, nesta tese, uma metodologia híbrida para resolução de Problemas

de Escalonamento de Motoristas(PEM).Na literatura, existem muitas contribuições

sobre o Problema de Escalonamento de Motoristas(PEM), em geral, modelamos esse

problema como um Problema de Particionamento de Conjuntos, que no caso, não

podemos resolvê-lo através de Algoritmos exatos, pois, o PPC é um problema NP-

Completo. Então, uma forma que muitos autores adotam são algoritmos heurísticos

de busca local para resolver problemas com dados reais, mas esses algoritmos podem

se perder no grande espaço de solução gerado pela solução inicial.Então, uma pro-

posta feita para esse trabalho é resolver o problema através de geração de colunas,

com auxílio de algoritmos heurísticos para acelerar o processo de geração de novas

colunas no subproblema princing, obtendo assim, um número reduzido de colunas,

que nos facilita na resolução do problema mestre, que um Problema de Particiona-

mento de Conjuntos(PPC).Para comprovar a eficiência da metodologia em resolver

tal problema, repotamos resultados computacionais para dados na literatura, que

foram tomados na literatura, e que comprova o método híbrido pode resolver de

forma exata Problemas de Escalonamento de Motoristas(PEM) mais rapidamente

que utilizando-se apenas métodos exatos ou apenas heurísticas.

v

Page 6: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Abstract of Dissertation presented to COPPE/UFRJ as a partial fulfillment of the

requirements for the degree of Master of Science (M.Sc.)

A HYDRID ALGORITHM FOR SOLVING THE DRIVERS SCHEDULING

PROBLEM

Alan de Freitas

September/2011

Advisor: Nelson Maculan Filho

Department: Systems Engineering and Computer Science

In this work, we present a hybrid methodology for solving Drivers Scheduling

Problems(PEM). In literature, there are many contributions on the Drivers Schedul-

ing Problem(DSP), in general, we model this problem as a partitioning problem Sets,

in which case, we can not solve it through exact algorithms, because PPC is an NP-

complete. So one way that many authors adopt are local search heuristic algorithms

to solve problems with real data, but these algorithms can get lost in the large so-

lution space generated by the solution inicial.Então, made a proposal for this work

is to solve the problem by column generation with the aid of heuristic algorithms to

accelerate the process of generating new columns in the subproblem textit Princ-

ing, obtaining thus a reduced number of columns, which facilitates us in solving

the master problem, a Partitioning problem Sets (PPC). to prove the efficiency of

the methodology to solve this problem, repot computational results for data in the

literature that were taken in the literature, and that proves the hybrid method can

solve problems accurately Scheduling Drivers (PEM) faster than using only exact

methods or just heuristics.

vi

Page 7: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Sumário

Lista de Figuras ix

Lista de Tabelas x

1 Introdução 1

2 Revisão Bibliográfica 4

2.1 Planejamento de Transporte em Massa . . . . . . . . . . . . . . . . . 4

2.1.1 Definições Básicas . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.2 Construção de Rotas . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.3 Construção de quadro de horãrios para os veículos . . . . . . . 6

2.1.4 Escalonamento de Veículos . . . . . . . . . . . . . . . . . . . . 7

2.1.5 Escalonamento de Tripulação . . . . . . . . . . . . . . . . . . 11

2.1.6 Etapa 5: Rodízio de Tripulação . . . . . . . . . . . . . . . . . 15

2.2 Abordagens usadas para a Resolução do PET . . . . . . . . . . . . . 15

2.3 Geração de Tarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.4 Problema de Escalonamento de Tripulação(PET) . . . . . . . . . . . 18

3 Problema de Escalonamento de Motorista(PEM) 19

3.1 Descrição do PEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.2 Formulação Matemática do PEM . . . . . . . . . . . . . . . . . . . . 22

4 Aplicação do Método de Geração de Colunas no PEM 26

4.1 Método da Geração de Colunas . . . . . . . . . . . . . . . . . . . . . 26

4.2 Resolução do PEM através de Geração de Colunas . . . . . . . . . . . 30

4.2.1 Formulação do Problema Mestre . . . . . . . . . . . . . . . . . 30

4.3 Solução do Subproblema Pricing . . . . . . . . . . . . . . . . . . . . 31

5 Algoritmo Híbrido para Solução do PEM 35

5.1 Algoritmo Proposto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

5.2 Solução Inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.3 Resolução do subproblema . . . . . . . . . . . . . . . . . . . . . . . . 37

vii

Page 8: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

5.3.1 Relaxação Linear . . . . . . . . . . . . . . . . . . . . . . . . . 37

6 Resultados 39

6.1 Instância Utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

7 Conclusão e Recomendações Futuras 41

Referências Bibliográficas 43

viii

Page 9: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Lista de Figuras

2.1 Planejamento de Transporte em Massa QIAO[1] . . . . . . . . . . . . 4

2.2 Relação entre tarefa, pedaço de trabalho e bloco[2] . . . . . . . . . . 6

2.3 Uma solução para o PEV (SIMOES [3]) . . . . . . . . . . . . . . . . . 10

2.4 Bloco de veículos particionado em tarefas(SIMOES[3]) . . . . . . . . 12

4.1 O grafo que representa o PCMRR com dois recursos[4] . . . . . . . . 33

ix

Page 10: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Lista de Tabelas

2.1 Estrutura que define uma viagem GONÇALVES[2] . . . . . . . . . . 7

2.2 Tabela de Horários . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.1 tarefas da instância L1170-54(SANTOS[4]) . . . . . . . . . . . . . . . 21

3.2 Uma solução do PEM, utilizando jornadas simples SANTOS[4] . . . . 22

3.3 Uma solução do PEM(jornadas do tipo dupla pegada) SANTOS[4] . . 22

6.1 Estrutura que define uma tarefa do problema . . . . . . . . . . . . . . 39

6.2 Dados da Instância BHTrans(SANTOS[4]) . . . . . . . . . . . . . . . 40

6.3 Parâmetros utilizados no algoritmo proposto . . . . . . . . . . . . . . 40

x

Page 11: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Capítulo 1

Introdução

O problema de escalas de tripulação (PET) tem sido foco de estudo há vários anos

em função de sua complexidade e da necessidade de as empresas terem pessoal su-

ficiente para as suas operações. Esse problema pode ser analisado em vários tipos

empresas, como transportes rodoviários, ferroviários, aéreos, marítimo, etc. Em to-

das as empresas, o objetivo é o mesmo, ou seja, alocar tripulantes necessários para

a realização das operações previstas para a empresa com o menor custo possível e

maximizando a utilização dos recursos (tripulantes).

Segundo a ANTT[5], Agência Nacional de Transportes Terrestres, o transporte ro-

doviário de passageiros, no Brasil, é um serviço que movimenta mais de 140 milhões

de usuários por ano. A ANTT é o órgão responsável pela permissão e autorização

dos serviços de transportes, através de empresas legalmente constituídas no setor de

transporte. A maioria das empresas de grande e médio porte oferecem transporte

coletivo para locomoção dos seus funcionários até o seu local de trabalho com o

objetivo de proporcionar comodidade e pontualidade, assim os funcionários não pre-

cisam enfrentar ônibus coletivo urbano com "superlotação"e atrasos devido à espera

pelo coletivo em seus pontos de parada.

Por outro lado, a grande maioria dependem de ônibus coletivo para movimentar-se

pelos grandes centros urbanos, sejam por questões de trabalho ou à passeio. Além

disso, grande parte das empresas não se preocupam em alugar ônibus privativos para

translado dos seus funcionários, já que oferecem vale transporte ou "RioCard"para

que os mesmos possam utilizar o coletivo urbano.

Assim, para oferecer condições excelentes de atendimento a essa parcela da popula-

ção as empresas transporte coletivo devem organizar os seus veículos e motoristas

de tal forma a prestar um melhor atendimento ao público que depende desse trans-

porte. Em particular, criar escalas eficientes de motoristas e cobradores de tal forma

que minimize os custos com a mão de obra. Segundo BOUZADA[6](2000),diz que

a mão de obra operacional é uma das componentes que mais pesa na planilha de

custos, e que motoristas e/ou cobradores, pode chegar a 80 % do custo operacional

1

Page 12: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

total. Então, os autores confirmam que uma redução nos custos com mão de obra

pode gerar um ganho significativo para empresa. Logo, essa redução implicará di-

retamente na diminuição da tarifa cobrada ao usuário do coletivo(passageiro), com

isso, aumenta-se o nível de competitividade das empresas do setor.

Neste trabalho, vamos abordar o problema de escalas de tripulação (PET) em trans-

porte urbano em massa, mas conhecido como Problema de Escalonamento de Mo-

toristas e Cobradores(PEMC) ou em alguns casos, simplesmente, Problema de Es-

calonamento de Motoristas(PEM). Para resolver estes tipos de problemas, utiliza-

remos recursos da otimização que é uma ferramenta muito importante no processo

decisório.[7]

O problema de escalonamento de transporte pode ser dividido em dois subproblemas,

que são: O Problema de Escalonamento de Veículos e o Problema de Escalonamento

de Tripulação. No primeiro caso, queremos atribuir os veículos à um conjunto de

tarefas de custo mínimo, enquanto que o segundo devemos atribuir os motoristas aos

veículos escalonados anteriormente. Ambos os problemas tem pontos em comum,

mas existem diferenças cruciais no segundo, principalmente, por que no segundo

problema nos deparamos com leis trabalhistas e fatores humanos, que aumentam a

complexidade do segundo problema.

A grande maioria dos Problemas de Escalonamento de Tripulantes, ou como trata-

remos nesse trabalho, como Problema de Escalonamento de Motoristas(PEM) são

NP-completos e não podem ser resolvidos através de algoritmos exatos para to-

das as instâncias do problema, sob o ponto de vista prático, porém para pequenas

instâncias, podemos obter excelentes resultados utilizando recursos de softwares co-

merciais. Porém, existem na literatura abordagens que envolvem algoritmos exatos,

como geração de colunas, que junto com metaheurísticas, aceleraram o processo de

geração de novas colunas (variáveis do problema).(CALVI[8]).

Segundo SANTOS[4], a utilização de um algoritmo exato puramente, pode consumir

bastante tempo e memória para instâncias baseada em dados reais, pois devemos

enumerar todas as possíveis jornadas viáveis, que mesmo utilizando um software

comercial(XPRESS, por exemplo) pode ser uma tarefa complicada. Por outro lado,

a utilização de metaheurísticas, puramente, pode acontecer da solução se perder no

grande espaço de solução. Uma vez que, a solução ótima geralmente contém apenas

um número reduzido de jornadas, o método de geração de colunas parece ser bas-

tante ideal para atingirmos a otimalidade.

Na literatura, existem muitas contribuições sobre a resolução do Pro-

blema de Escalas de Tripulação; utilizando algoritmos exatos (QIAO[1],

BEASLEY&Cao [9],SANTOS [4],HUISMAN et al [10], WOEGINGERet al [11],

ROUSSEAU et al [12], SCHELTEN et al[13], SOUZA et al [14], LORENA et al [15],

MAURI&LORENA[16], MINGOZZI et al [17],LORENA et al [18], WALGELMANS

2

Page 13: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

et al [19], entre outros) e algoritmos metaheurísticos(GONÇALVES[2], THEMIDOet

al [20], CUNHAet al [21],CALVI[8], entre outros).

A metodologia desse trabalho é propor um algoritmo para resolver um Problema de

Escalonamento de Motoristas(PEM), em particular, um problema que foi abordado

no trabalho de SANTOS[4] e trata do transporte coletivo de ônibus na cidade de

Belo Horizonte, cujo modelo é um Problema de Particionamento de Conjuntos com

Restrições adicionais. Nesse algoritmo, utilizaremos o método de geração de colunas

combinado com heurísticas de busca local, com o objetivo de acelerar a geração de

novas colunas, isto é, resolver heuristicamente, o subproblema pricing.

Então, organizamos esse trabalho da seguinte forma:

• 2. Revisão bibliográfica: Nesse capítulo descreveremos o planejamento de

transporte urbano em massa, assim como, com Problema de Escalonamento

de Tripulação, e citaremos alguns métodos exatos de resolução para o problema

em questão.

• 3. Nesse capítulo faremos uma descrição detalhada de Problema de Escalo-

namento de Motorista, que será objeto de estudo do nosso trabalho, que é

um caso particular, abordado no trabalho de SANTOS[4], que é o caso de

um Problema de Escalonamento de Motoristas de Ônibus da cidade de Belo

Horizonte. Depois, formularemos matematicamente esse problema, utilizando

um modelo de Programação Linear Inteira 0-1.

• 4. Nesse capítulo, faremos um resumo do método de geração de colunas,

depois, Aplicaremos esse método ao problema modelado no capítulo 2, mo-

delando o problema mestre e o subproblema pricing relacionado ao problema

original.

• 5. Nesse capítulo, descreveremos o algoritmo usado nesse trabalho, que é

subdivido em passos: No primeiro passo, construção de uma solução inicial;

No segundo passo, resolver o subproblema Pricing, através das metaheurísticas

vistas no capítulo 3.

• 6. Nesse capítulo, apresentaremos os resultados obtidos pelo emprego da me-

todologia adotada nesse trabalho, comparações entre a relaxação linear e a

solução metaheuristica do subproblema Pricing, através de tabelas e gráficos

comparativos.

• 7. Nesse capítulo, apresentaremos a conclusão e recomendação para trabalhos

futuros.

3

Page 14: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Capítulo 2

Revisão Bibliográfica

2.1 Planejamento de Transporte em Massa

Como vimos anteriormente, na introdução desse trabalho, os sistemas de transpor-

tes de massa apresentam um problema muito complexo na elaboração do seu pla-

nejamento. Portanto, nos diversos trabalhos publicados na literatura recomenda-se

dividí-lo em etapas, formando assim problemas menores (QIAO[1]), que estão es-

quematizados abaixo:

Figura 2.1: Planejamento de Transporte em Massa QIAO[1]

4

Page 15: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

2.1.1 Definições Básicas

Antes de descrevermos tais etapas do processo de Planejamento de Transporte em

massa, vamos definir alguns termos que são importantes na compreensão do pro-

blema:

1. Viagem: É a tarefa de transferir passageiros de um ponto a outro. Para realizar

essa tarefa devem ser conhecidos os horários de embarque e desembarque, assim

como o local de partida e de chegada nesses pontos de transferência.

2. Bloco: É uma seqüência de viagens que um determinado veículo deve realizar

em um dia, começando e terminando na garagem. O conjunto de blocos forma

a escala do ônibus.

3. Oportunidade de Troca(OT): É um local e horário onde é permitido que uma

tripulação abandone ou assuma um veículo. Então, a cada oportunidade de

troca está associado um Horário de Troca e um Ponto de Troca, os quais

representam respectivamente a hora e um local onde poderá haver uma troca

de tripulações.

4. Tarefa: É a viagem realizada por um tripulante entre duas oportunidades

de Troca consecutivas sobre um bloco. Assim, conseqüentemente, durante a

realização de uma tarefa não é possível que haja troca de tripulação. Veremos,

mais adiante que, as tarefas são dados de entrada para a resolução do Problema

de Escalonamento de Tripulação(PET);

5. Pedaço de trabalho: É um conjunto contendo um número de tarefas consecu-

tivas.

6. Jornada: É a combinação de várias viagens que serão atribuídas a um tripu-

lante para compor o seu dia de trabalho. Geralmente, esse termo é conhecido

como turno de trabalho.

7. Demanda: É a quantidade de jornadas que devem ser cumpridas num mesmo

dia de modo a atender ao mercado. De acordo com os dias da semana e as

estações do ano, a quantidade de jornadas, bem como as viagens previstas em

cada uma, podem ser diferentes.

8. Escala: É o conjunto de jornadas que cobre toda a escala de ônibus.Este

termo também é conhecido na literatura como Escala de Tripulação ou Escala

de Trabalho.

9. viagem morta: É a viagem realizada a partir da garagem até o ponto de

embarque de passageiros, assim como do último ponto de embarque presente

na jornada até a garagem.

5

Page 16: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

A figura abaixo, ilustra a relação entre tarefas, pedaço de trabalho e bloco.

Figura 2.2: Relação entre tarefa, pedaço de trabalho e bloco[2]

Agora, nas próximas subseções, veremos resumidamente, cada etapa do plane-

jamento de transporte.

2.1.2 Construção de Rotas

Segundo QIAO[1], nessa etapa um conjunto de rotas são construídas e seleciona-

das para servir a uma determinada área. Essas rotas são construídas a partir de

ligações viáveis numa rede, e são selecionadas de acordo com a demanda pelo ser-

viço.Geralmente, essas ligações são produzidas manualmente e pelo dono ou gerente

de planejamento da empresa, isto é, são procedimentos manuais que não são custo-

sos.

2.1.3 Construção de quadro de horãrios para os veículos

Obtidas as rotas na etapa anterior, e considerando as informações sobre a disponi-

bilidade de veículos, bagagem, demanda pelo serviço requisitado, então, dividimos o

espaço de tempo em períodos, o qual é atribuído o horário de partida de cada viagem

e um horário de término, estalecendo a quantidade de viagens que devem ser reali-

zadas por faixa de horário.A quantidade de viagens deve ser suficiente para atender

o usuário do transporte(passageiro) a ser considerado, de modo que ele espere o mí-

nimo possível ou que consiga chegar ao seu destino no momento desejado.Portanto,

6

Page 17: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

durante essa etapa, são fixadas freqüências em cada linha disponível na frota esta-

cionada na garagem.

Segundo CASIMIRO[22], a construção de quadro de horários para os veículos, ou

como ele chama Problema de Montagem de Horários, deve ser considerado também

na construção de horários fixos, restrições operacionais que geralmente são impos-

tas por autoridades locais, regionais ou nacionais, uma vez que, essas autoridades

mantém o serviço de transporte funcional até mesmo em horários pouco lucrativos

com um patamar de qualidade adequado.

A tabela abaixo mostra um esquema de viagem, que é um dado de saída obtido nessa

etapa e será um atributo que utilizaremos na construção de jornadas de trabalho

que veremos mais adiante.

ViagemHorário Inicial Horário FinalPonto de Partida Ponto de ChegadaLinha Veículo

Tabela 2.1: Estrutura que define uma viagem GONÇALVES[2]

2.1.4 Escalonamento de Veículos

O Escalonamento de Veículos ou como também é conhecido na literatura Problema

de Escalonamento de Veículos(PEV) ou Vehicle Scheduling Problem(VSP) é a etapa

anterior ao escalonamento de tripulações. Essa etapa, Consiste na criação de uma

rotina diária de operação para uma frota de veículos que está disponível para uso de

uma empresa, de modo que todas a viagens a ela responsabilizadas seja realizadas

e a programação gerada não viole as regras operacionais e as limitações espaço-

temporais existentes. A programação de veículos é feita a partir de uma tabela

de horários, que é obtida na etapa 2 do Planejamento de Transporte em Massa,

cujo dado de saída dessa etapa serão todas as viagens a serem realizadas em um

determinado dia por uma empresa. A tabela abaixo, mostra um fragmento de uma

tabela de horários retirada de SIMOES[3].

Na tabela ??, cada viagem é identificada por meio de um conjunto de atributos

que consistem de informações importantes para a resolução do problema. Como

podemos observar, esses estão organizados nas colunas dessa tabela, tais atributos

são:

• O número da viagem;

7

Page 18: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Viagem Horário Inicial Partida Horário Final Chegada Linha1 5 30 70 30 30.42 5 302 38 302 302.43 20 30 76 30 30.44 240 302 265 302 302.45 255 30 309 30 30.36 260 302 281 302 302.17 270 305 335 305 305.18 270 30 331 30 30.39 270 326 300 326 326.110 280 30 340 30 30.3

Tabela 2.2: Tabela de Horários

• Horário de início da viagem(em minutos);

• O ponto inicial que corresponde ao local de inicio da viagem;

• Horário de término da viagem(em minutos);

• O ponto final que se refere ao local em que a viagem termina;

• A linha o qual a viagem pertence;

• Tempo de embarque se refere ao tempo, em minutos, necessários para que os

passageiros embarque no terminal. Esse tempo depende do horário de início

da viagem;

• Tempo de desembarque se refere ao tempo, em minutos, necessários para que

os passageiros desembarque no terminal final da viagem. Esse tempo está

associado ao horário de término da viagem;

Para exemplificar esse processo, vamos utilizar os dados da tabela ??. Considere

a viagem "1"dessa tabela, essa viagem tem início no ponto "30"aos 5 minutos do

dia, isto é, às 00:05 horas e é finalizada no ponto "30"aos 70 minutos do dia, que

corresponde às 01:10 horas.

Além do conjunto de viagens, devem ser fornecidas também informações

relativas aos tempos de deslocamento entre os vários pontos de parada dos veículos,

incluindo a garagem. De porte dessas informações é possível determinar o tempo

que um veículo gasta, sem passageiros, para sair de um ponto e chegar a outro, ou

seja, uma viagem morta.

8

Page 19: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Para obtermos um escalonamento de veículos viável é necessário atender a uma

série de restrições, as quais podem variar conforme as políticas operacionais que

regem o Sistema de Transporte no qual a empresa atua.

O Sistema de Transporte pode ser público ou privado, no primeiro caso,

temos empresas de ônibus, trens e metros; no segundo caso, empresas de ônibus e

companhias aéreas. Nesse trabalho, estamos realizando um estudo no caso de um

Sistema de Transporte Urbano por Ônibus, mas especificamente na próxima etapa

do Planejamento de Transporte em Massa, que é o Problema de Escalonamento de

Tripulação.

Assim, como em SIMOES[3], vamos analisar o caso do Sistema de Transporte

Público por Ônibus que atua na cidade de Belo Horizonte.Para esse problema,

considere que todos os veículos da frota sejam idênticos e que partem de uma mesma

garagem, e as seguintes restrições para o Problema de Escalonamento de Tripulação:

• Todas as viagens devem ser realizadas por uma veículo da frota, que está sob

a responsabilidade da empresa;

• Antes de se iniciar e após finalizar uma viagem, um veículo deve obrigatori-

amente cumprir um tempo mínimo no terminal, que corresponde ao tempo

necessário para o embarque e desembarque de passageiros.

• Um mesmo veículo somente poderá realizar duas viagens, i e j, consecutiva-

mente, se o intervalo de tempo existente entre elas for suficiente para que o

veículo desloque do ponto final da viagem i para o ponto inicial da viagem j,

respeite os tempos destinados para embarque e desembarque de passageiros e

inicie uma viagem j sem atrasos. Caso contrário, ocorrerá uma sobreposição

de horários entre as viagens.

• Um veículo não deve ficar mais de duas horas em um terminal esperando para

executar a sua próxima viagem. Se o tempo de espera exceder esse limite, o

veículo deverá se deslocar para a garagem. Diz-se, nesse último caso, que o

veículo está realizando uma dupla pegada.

• O número de duplas pegadas da programação não pode exceder 60% do tama-

nho da frota.

• Todo veículo deve iniciar e terminar a sua jornada de trabalho na garagem;

• Todo veículo deve permanecer, no mínimo, trinta minutos consecutivos na

garagem, por dia, para que ocorra a sua manuntenção e limpeza. Este tempo

9

Page 20: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

pode ser cumprido quando o veículo pára na garagem durante uma dupla

pegada ou mesmo depois de completada toda a sua jornada operacional diária.

O objetivo dessa etapa é obter uma escala de veículos em que o tamanho da

frota utilizada e os deslocamentos dos veículos fora de operação(deslocamentos que

não equivalem a nenhuma viagem) sejam minimizados.

Afim de obtermos uma solução para o Problema de Programação de Veículos,

então deve-se atribuir um conjunto de viagens a um número de veículos menor ou

igual à frota disponível pela empresa, levando em conta as restrições expressas nos

item (a)-(e), de tal forma, que todas as viagens sejam realizadas com o menor custo

operacional possível.Ao resolvê-lo tem-se como resultado os chamados blocos de

veículos. Cada um desses blocos corresponde a um conjunto de viagens que serão

executadas por um mesmo veículo.

Na figura abaixo, apresentamos um esquema de solução para o Problema de

Escalonamento de Veículos em Transporte Urbano por ônibus. A partir do bloco de

um veículo são criadas as Tarefas, que será um dado de entrada na fase posterior a

essa fase.

Figura 2.3: Uma solução para o PEV (SIMOES [3])

Na literatura, existem muitas contribuições para resolução do PEV, como em

DANNA&LaPApe[23], PRATA[24], MÖLLER[25], WALGEMAN et al [? ]

Nesse trabalho, vamos utilizar a solução já disposta na literatura do PEV, pois o

nosso objetivo é resolver a próxima etapa do planejamento, que é o Escalonamento

10

Page 21: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

de Tripulação ou Problema de Escalonamento de Tripulação.

2.1.5 Escalonamento de Tripulação

O Problema de Escalonamento de Tripulação(PPT) é a penúltima etapa do

processo de Planejamento de Transporte e consiste em gerar um conjunto de

jornadas diária de trabalho que cubra todas as tarefas previstas e, posteriormente,

atribuí-las aos tripulantes que conduzirão a frota do meio de transporte que está

em operação.Portanto, nessa etapa, o horizonte de planejamento é diário, isto é, ao

final dessa fase, teremos uma escala diária para todos os tripulantes responsáveis

por cada deslocamento realizado por um veículo.

Para a resolução do PPT, inicialmente os blocos de veículos gerados no PEV

são simplificados em tarefas, isto é, antes do PPT ser resolvido, existe um etapa

intermediária entre o PPT e PEV.Nessa etapa, Os blocos de viagens, gerados na

solução do PEV, são quebrados em tarefas que serão usadas para a solução do PPT,

uma vez que, cada tarefa contém viagens consecutivas de um mesmo veículo e entre

as quais não pode ocorrer a troca de tripulações devido as limitações de tempo

e espaço(GONÇALVES[2]).Segundo SIMOES[3], o procedimento de contrução de

tarefas nos ajudam a resolver a PET, pois mantém as viagens que obrigatoriamente

devem ser realizadas por uma mesma tripulação juntas, evitando dessa forma que

as soluções do PEV e do PET sejam inviáveis.No trabalho de GONÇALVES[2010],

ele desenvolve um algoritmo para gerar as escalas, dado como entrada um conjunto

contendo os blocos de viagens.

Em relação a troca de tripulação, nas oportunidades de troca, SIMOES[3]diz que

é necessário um tempo superior ou igual a seis minutos entre as viagens, podemos

ver um exemplo de um bloco de veículo particionado em tarefas, na figura abaixo:

Na figura ??, as colunas "Viagem Morta"e "Tempo de Terminal"representam

os tempos de viagem do veículo fora de operação(sem passageiro) e de espera no

terminal aguardando o horário de início da próxima viagem agendada.Além disso,

podemos observar que, uma tarefa herda os atributos de uma viagem, como por

exemplo: horário de início, horário de término, ponto inicial e ponto final.

No exemplo dado na figura acima, observa-se que a "Tarefa 5"é composta pelas

viagens "101", "120"e "149"e que entre essas viagens não um intervalo de tempo

suficiente para que ocorra troca de tripulação. Ela iniciará às 15:15 horas, no ponto

"3055", e será finalizada neste mesmo ponto às 20:04 horas. Assim sendo, a "Tarefa

11

Page 22: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Figura 2.4: Bloco de veículos particionado em tarefas(SIMOES[3])

5"é realizada em 4 horas e 49 minutos e possui uma folga acumulada de 4 minutos.

Quando as tarefas são construídas, elas devem cobrir não apenas as viagens

operacionais(com passageiros) dos veículos, como também as viagens sem passa-

geiros(viagem morta), conforme podemos notar nas tarefas "Tarefa 1", "Tarefa

2"e "Tarefa 6"do exemplo da figura acima. A "Tarefa 1"considera a sua primeira

viagem partindo da garagem, ou seja, o seu ponto de partida é a garagem. A

"Tarefa 3"inicia com reposionamento do veículo do ponto "3050"(ponto final da

viagem "60") para o ponto "3055"(local de ínicio da próxima viagem, viagem "87")

e a "Tarefa 6"cobre o retorno do veículo à garagem ao fim da sua jornada de trabalho.

Então, vamos considerar que possuímos as seguintes informações:

1. As rotas de cada veículo;

2. As viagens que compõe as rotas

3. Ponto de repouso e troca de tripulação;

4. Horários e freqüências de cada veículo;

5. Associação dos veículos para cada viagem, de forma que se conheça quais os

funcionários que serão habilitados a conduzí-los para cada viagem, conside-

rando a sua habilidade e experiência no tipo de veículo utilizado.

6. As tarefas geradas a partir da lista de viagens.

12

Page 23: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Como podemos determinar a escala de trabalho de cada trípulante, difinindo

assim a sua jornada diária de trabalho, isto é, que tarefas o tripulante deve cumprir

ao longo de um determinado dia de trabalho?

A solução encontrada para esse problema será um conjunto de jornadas diárias

de trabalho, cuja jornada consiste em uma seqüência de tarefas a serem cumpridas

por uma mesma tripulação e que satisfaça a legislação trabalhista e as regras

operacionais da empresa com o menor custo possível. Essas jornadas geradas na

solução, podem ser de dois tipos:

1. Jornada Tipo Simples: é a jornada em que todos os intervalos entre suas tarefas

consecutivas são inferiores a duas horas, ou seja, a tripulação responsável por

essa jornada trabalhará um único turno.

2. Jornada Tipo Dupla Pegada: é a jornada que possui um intervalo de tempo,

entre duas de suas tarefas consecutivas, igual ou superior a duas horas. Tais

jornadas são realizadas em dois turnos, a pausa dada entre os dois turnos,

nesse caso, não é remunerado pela empresa.

Na formação das jornadas de trabalho, a legislação trabalhista(CLT) e as regras

operacionais devem ser obrigatoriamente satisfeitas para que a solução para o PPT

seja viável. As restrições abaixo, foram consideradas no trabalho de SIMOES[2009]

e também serão levadas em consideração nesse trabalho, que são:

1. Uma tripulação não pode executar duas tarefas simultaneamente;

2. Uma tripulação somente poderá realizar a troca de veículos nas seguintes oca-

siões: Quando os veículos envolvidos na troca se encontram no mesmo terminal

no momento da troca.Então, para que ocorra troca, basta que o tripulante te-

nha um pequeno intervalo de ocioso(cinco minutos no mínimo) para abandonar

um veículo e assumir outro, rapidamente. Por outro lado, se os veículos es-

tiverem em terminais distintos, a troca somente poderá ocorrer em intervalos

entre turnos de uma jornada do tipo dupla pegada, pois, a distância entre os

diferentes terminais é muito grande;

3. Uma tripulação pode extrapolar, no máximo, duas horas diárias de trabalho,

além da duração normal de sua jornada, sendo este tempo excedente conside-

rado hora extra;

13

Page 24: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

4. Toda jornada do tipo pegada simples deve ter uma folga mínima de 20 minu-

tos.Esse tempo pode ser fracionado em dois intervalos, tendo cada um, uma

duração igual ou superior a 10 minutos;

5. O intervalo mínimo entre o final de uma jornada e o início da mesma no dia

seguinte deverá ser de 11:00 horas;

6. O número de jornadas de trabalho do tipo dupla pegada não pode exceder a

20 % do total de tripulações na programação.

Na literatura, existem várias abordagens que são utilizadas para a resolução

desse problema. Devido ao grande número de restrições trabalhistas e operacionais

impostas ao PET, então, resolvê-lo como um Problema de Programação Inteira e

incorporando todas as restrições vistas acima no modelo, é uma tarefa complicada.

Portanto, em geral, resolvemos o problema de escalonamento de mão-de-obra,

dividindo-o em três fases principais:

• Geração de Jornadas - um grande número de jornadas é gerado através da

associação de tarefas afins e possíveis de serem executadas consecutivamente

por uma única tripulação. Essas jornadas devem respeitar regras trabalhistas

impostas por uma classe de funcionários.A solução desse problema será uma

solução inicial para o Problema de Cobertura de Conjuntos.

• Problema de Cobertura de Conjuntos - é um problema clássico de otimiza-

ção combinatória utilizado em inúmeras aplicações em logística do transporte,

como por exemplo, problemas de escalonamento de mão-de-obra, roteamento

de veículos e entrega de mercadorias, dentre outras.CASIMIRO(17), modela o

Problema de Escalonamento de Tripulação, Como um Problema de Cobertura

de Conjuntos(PCC), cujo problema é descrito abaixo: Considerado como dado

de entrada um conjunto de tarefas a serem executadas pelas tripulações e um

conjunto de jornadas viáveis capazes de cobrir essas tarefas a um determinado

custo, esse problema procura por um conjunto de jornadas capazes de atender

toda a demanda a um custo mínimo. As duas primeiras fases, vamos agrupar

num único problema, pois a solução da primeira fase será uma solução inicial

viável para o PCC, e a segunda fase, será o processo de otimização dessas

escalas.

• Problema de Seqüênciamento de Jornadas - Esse problema recebe como dados

de entrada as jornadas obtidas pela solução do Problema de Cobertura de

Conjuntos, ele tem o objetivo de criar rosters, que descrevemos na próxima

14

Page 25: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

subseção.

Nesse trabalho, focaremos a nossa atenção nas fase 1 e 2, da abordagem

de solução do problema de escalonamento de mão de obra, principalmente, no

caso do Problema de Escalonamento de Tripulação em transporte urbano de

ônibus.Daremos mais detalhes da construção das fases 1 e 2, na seção 1.4.

2.1.6 Etapa 5: Rodízio de Tripulação

Resolvido o PPT para cada dia da semana, através da etapa anterior, agora surge

um novo problema, que é o Problema de Rodízio de Tripulação(PRT), que consiste

em atribuir uma jornada de trabalho mensal para cada tripulação, considerando

certas regras trabalhistas relativas, que não foram aobrdados na programação

diária, o que corresponde a escalonamento de tripulações por um periodo maior

de tempo(semanal e mensal).Segundo CASIMIRO[2005] Tais regras trabalhistas são:

• Número de folgas,

• Atendimento a pedidos de mudança semanal

• Equilíbrio na distribuição da carga de trabalho para o período considerado.

Nesse trabalho, não abordaremos essa etapa, pois o nosso objetivo é resolver

um problema de escalonamento de tripulação, que no caso, é um horizonte de

planejamento diário.

Na próxima seção, mencionaremos algumas abordagens que são usadas na prática

para a resolução do PPT.

2.2 Abordagens usadas para a Resolução do PET

Como vimos na introdução desse trabalho, o Escalonamento de Veículos e o Es-

calonamento de Tripulação são etapas essenciais para um bom planejamento do

transporte, umas vez que, estamos realizando o planejamento de dois objetos cru-

ciais para um bom atendimento da demanda pelo meio de tranaporte, que são:

veículos e mão-de-obra. Porém, mesmo divindo o planejamento de transporte em

etapas(seção anterior), resolver as duas últimas etapas é um problema desafiador.

Portanto, vários autores adotam abordagens distintas para resolver cada um desses

15

Page 26: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

problemas.Alguns autores resolvem, consecutivamente, escalonamento de veículos

e tripulações, outros de forma independente, e outros resolvem, simultâneamente,

Escalonamento de veículos e tripulação.No trabalho de SIMOES[2009], ele expõe os

tipos de abordagem para a resolução do PET: Abordagem Seqüencial, Integrada e

Integrada e depois faz as comparações das soluções obtidas em cada abordagem.

Veremos as três abordagens, a seguir:

• Abordagem Seqüencial - Nessa abordagem, inicialmente, é definida a

forma de operação dos veículos e, em seguida, baseando-se na programa-

ção obtida no Problema de Escalonamento de Veículos(PEV), são definidas

as jornadas de trabalho dos tripulantes. Essa metodologia é batante inte-

ressante, uma vez que, o PEV e o PET, segundo a introdução desse traba-

lho, são problemas de grande importância no Planejamento de Transporte em

Massa.(SIMOES[2009]).

• Abordagem Independente - Nessa abordagem, o PEV e o PET são

resolvidos separadamente, e em qualquer ordem e de forma a se relacionarem.

Para tanto, a estratégia de resolução adotada é semelhante à abordagem

seqüencial, com exceção do fato de que cada tarefa no PET corresponderá a

exatamente uma viagem.Além disso, supomos que todas tarefas são executa-

das por um mesmo veículo para que não haja a necessidade de contemplar

trocas de veículos na programação de tripulações. Portanto, são eliminados

todos os veículos entre as programações de veículos e tripulações e ambas

passam a ser definidas a partir do conjunto de viagens. SIMOES[3], diz

que a programação independente do PET e do PEV pode gerar soluções

incompatíveis ou inviáveis no contexto prático.

• Abordagem Integrada - essa abordagem consiste em definir simulta-

neamente, as rotinas de operação dos veículos e as jornadas de trabalho

das tripulações, de tal forma a minimizar os custos envolvidos e ao

mesmo tempo viabilizar a execução de todas as viagens sob responsabi-

lidade da empresa.Existem muitos trabalhos na literatura realizam essa

abordagem, como SIMOES[3], WAGELMANS et al [26],TOTH et al [27],

VALOUXIS&HOUSOS[28], PAIXAO et al [29]

Nesse trabalho, adotaremos a primeira abordagem, a abordagem seqüencial, isto

é, primeiro resolvemos o PEV, e então, com a sua solução, utilizaremos como dado

de entrada para o PET. Mas, devido a complexidade do PET, vamos supor que já

temos disponíveis a solução do PEV, isto é, temos como dado de entrada o bloco de

16

Page 27: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

veículos, e por sua vez, cada veículo, o seu conjunto de viagens. Na próxima seção,

veremos o processo para a construção do conjunto de jornadas.

2.3 Geração de Tarefas

Conforme anteriormente mencionado, na seção 1.1, entre as etapas de escalona-

mento de veículos(PEV) e escalonamento de tripulação(PET), existe um etapa

intermediária, cuja etapa será responsável pela geração de tarefas, que serão obtidas

a partir do particionamento de blocos de veículos, obtidos no PEV. No trabalho de

GONÇALVES[2], ele descreveu e utilizou um algoritmo para gerar um conjunto de

tarefas.

Nesse algoritmo, ele considera um conjunto B = {b1, . . . , bn} formado por todos

os blocos de viagens, onde cada elemento bk = {vk1, . . . , vkm} é formado por um

conjunto viagens.

Relembrando que a estrutura de cada viagem possui os seguintes atributos:

• Horário Inicial;

• Horário final;

• Ponto Inicial;

• Ponto Final;

• Linha;

• Veículo;

E que de acordo com os horários iniciais e finais de cada viagem, então, cada um

dos blocos de veículos encontram-se ordenados pelo horário em que cada viagem

deve ser realizada.

Abaixo, descrevemos o pseudocódigo de um algoritmo para gerar tarefas, a

partir de blocos de viagens, ordenados por horário de inicio e fim, de cada viagem.

17

Page 28: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

2.4 Problema de Escalonamento de Tripula-

ção(PET)

Este é um dos problemas mais importante do setor de transporte, independen-

temente do tipo de meio de transporte tratado. Programação de Tripulações,

Escalonamento de Tripulações e Alocação de Tripulações, estes são alguns dos

termos mais usuais, para referir-se sobre este problema, que são encontrados na

literatura sobre este problema.

Segundo GONÇALVES[2], O problema consiste em distribuir tarefas aos tripulantes

(pilotos, comissários de bordo, maquinistas, motoristas, cobradores, etc.) durante

vários trechos de viagens a serem cobertos por empresas aéreas, ferroviárias

(metroviário) ou rodoviárias, gerando assim jornadas individuais passíveis de serem

atribuídas a cada uma das tripulações disponíveis. Tudo isso deve ser feito com o

menor custo possível. Em contrapartida, esse custo deve ser minimizado sem violar

quaisquer das restrições do problema, como por exemplo, normas sindicais e leis

trabalhistas, as quais regulam essencialmente o relacionamento entre as companhias

e seus funcionários). Essas restriçoes influenciam diretamente no tempo de algum

algoritmo para resolver o problema.

Uma maneira bastante usual de obter um conjunto de jornadas viáveis, e que é

bastante usada em muitos trabalhos sobre o problema em questão, é representar o

Problema de Escalonamento de Tripulação por meio de grafos. Nessa metodologia,

é dado um grafo G = (V,A), cujo conjunto V de vértices representam as tarefas

a serem executadas e o conjunto A de arestas representam as possíveis transições

entre essas tarefas. Além disso, são adicionados vértices artificiais(depósitos), que

são adicionados ao grafo G para indicar o ínício e o fim de cada jornada.

Vimos na seção 1.1, que o Problema de Escalonamento de Tripulação(PET) é um

problema multi-objetivo, que dependendo do tipo de transporte em massa(aéreo,

urbano,ferroviário), e a empresa que presta o serviço de transporte em questão.

18

Page 29: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Capítulo 3

Problema de Escalonamento de

Motorista(PEM)

3.1 Descrição do PEM

No capítulo anterior, falamos das etapas do processo de escalonamento de tri-

pulação de forma geral, isto é, tripulação de transporte urbano, transporte

aéreo,ferroviário(SOARES[7],GONCALVES[2],PIMENTEL[30], REISetal [31], PAI-

XAO et al [29],WREN&ROUSSEAU[32]). Nesse capítulo, falaremos do Problema de

Escalonamento de Tripulação, sob o ponto de vista, do transporte urbano em massa,

conhecido na literatura, como Problema de Escalonamento de Motoristas(PEM),

ou também referenciado como,Problema de Escalonamento de Motoristas e Cobra-

dores, mas por questões de simplicidade do modelo, facilidade na resolução desse

problema, vamos nos referir motoristas e cobradores, como duplas, que pertencem

a uma mesma escala para condução do veículo. Na próxima seção, vamos obter

a descrição de um Problema de Escalonamento de Motoristas(PEM), no caso na

cidade de Belo Horizonte, cuja descrição foi usada por SANTOS[4]. Na seção se-

guinte, vamos modelar o Problema de Escalonamento de Motoristas(PEM), como

um Problema de Programação Linear Inteira 0-1.

O problema que descreveremos a seguir foi retirado de SANTOS[4], uma vez que,

para se obter dados reais sobre o problema é necessário realizar acordos ou contratos

sigilosos com a empresa de ônibus urbano. Nesse trabalho citado, o autor descreve

resumidamente, o Problema de Transporte Urbano na cidade de Belo Horizonte.

Então, SANTOS[4] descreve que várias empresas que fazem o serviço de transporte

público em Belo Horizonte, cada uma com uma ou mais linhas de ônibus, porém

todas as linhas devem seguir as mesmas regras para formação das jornadas de tra-

balho, estabelecidas na Convenção Coletiva de Trabalho 2002/2003, e fiscalizadas

pelo orgão municipal responsáveis pelo transporte urbano da cidade de Belo Hori-

19

Page 30: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

zonte, que é a BHTrans. Vamos apresentar apenas algumas das principais regras

estabelecidas na convenção.

A regulamentação da BHTrans permite que a troca de tripulação de veículos ou de

terminais de início e de fim das tarefas, ocorram durante a sua jornada de trabalho,

nas seguintes ocasiôes:Trocas de linha são permitidas apenas entre alguns itinerá-

rios, geralmente controlados pela mesma empresa e com finais de rota próximos,

mas estes dados, no trabalho de SANTOS[4], vamos considerar que nenhuma troca

de linha seja permitida. Sendo assim, o problema pode ser resolvido separadamente

para cada linha.

Antes de se fazer o escalonamento de tripulações, as viagens sao agrupadas em blo-

cos, que sao seqüências de viagens cujos intervalos entre viagens consecutivas sejam

de no máximo 5 minutos. Intervalos maiores que 5 minutos caracterizam pontos de

troca, onde a tripulação pode ser substituida por outra. Nesse caso, vamos gerar

um conjunto de tarefas para um determinado tripulante.Então, as tarefas consti-

tuem um bloco com uma ou mais viagens, que devem ser conduzidos por um mesmo

tripulante.

As jornadas de trabalho podem ser de dois tipos: jornada simples ou de dupla pe-

gada.

As jornadas de trabalho do tipo dupla pegada são caracterizadas por um intervalo

entre tarefas com duracao igual ou superior a 2 horas. o que justifica o nome dupla

pegada, uma vez que o trabalho é realizado em dois momentos pela tripulação. Para

cada linha de ônibus são permitidas um número limite de jornadas do tipo dupla

pegada sem custo adicional para a empresa, acima desse valor estipulado, os custos

com jornada de dupla pegada são penalizadas na contagem final dos custos opera-

cionais.

Como relação a duração máxima de uma jornada diária de trabalho, temos que para

as jornadas do tipo Dupla Pegada, O tempo máximo de trabalho é de 6 horas e 40

minutos, sendo permitidas até 2 horas extras além desse periodo, isto é, duração

máxima de trabalho durante um dia será: 06 : 40 + 02 : 00 = 08 : 40, ou seja, 8

horas e 40 minutos. Para jornadas simples, tempo máximo de trabalho é de 7 horas

e 10 minutos, nesse tipo de jornada são exigidos ainda pelo menos 30 minutos de

descanso. Esse tempo ocioso pode estar distribuído ao longo da jornada, inclusive no

fim da mesma, sendo contadas inclusive as folgas dentro de uma tarefa (intervalos

entre viagens do bloco), desde que pelo menos um desses momentos seja de pelo

menos 15 minutos ininterruptos.

Essas condições para descanso da tripulação são válidas somente apenas para jor-

nadas simples; jornadas do tipo dupla pegada, já possuem um intervalo longo, que

ocorrem durante o intervalo de duas horas, entre os dois momentos de trabalho,

portanto, essas restrições de descanso não serão consideradas. No intervalo de 2

20

Page 31: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

horas de uma dupla pegada é permitido que a tarefa seguinte inicie em uma estação

diferente da estação anterior, antes de começar o intervalo de 2 horas, pois há tempo

suficiente para a tripulação se mover de uma estação para outra. Em todos os de-

mais casos, uma tarefa deve comecar no ponto onde foi concluída a tarefa anterior.

Trocas de veiculos são permitidas em qualquer caso, porém sempre penalizadas.

A Tabela 1, mostra um exemplo de um conjunto de dados de entrada do Problema

de Escalonamento de Motoristas.

Nesse exemplo, da tabela 3.1, nenhuma das tarefas possui folga entre as viagens

Tarefa Veículo Horário Inicial Horário Final Ponto Inicial Ponto Final Folga1 9 345 410 0 4 02 10 365 430 0 4 03 9 420 480 4 4 04 10 435 495 4 4 05 9 495 561 4 4 06 10 510 578 4 4 07 9 570 640 4 4 08 10 590 660 4 4 09 9 650 710 4 4 010 10 665 725 4 4 011 9 730 790 4 4 012 10 745 805 4 4 013 10 830 910 4 4 014 10 930 1006 4 4 015 10 1020 1080 4 4 016 10 1105 1165 4 4 017 10 1190 1240 4 4 018 10 1250 1315 4 0 0

Tabela 3.1: tarefas da instância L1170-54(SANTOS[4])

do bloco, logo todos os intervalos de descanso que existirem nas jornadas são entre

uma tarefa e outra. As tarefas são distribuídas ao longo do dia em dois veículos

distintos(veículo 9 e veículo 10). Algumas tarefas correspondem a retirar ou levar o

ônibus para a garagem (ponto inicial ou ponto final igual a 0), mas a maioria é do

tipo circular, inicia em um ponto e termina no mesmo ponto(no caso, é o ponto 4).

Nas Tabelas 2 e 3 abaixo, respectivamente, mostram possíveis soluções viáveis para

esse exemplo. Na tabela 2, todas as jornadas são do tipo pegada simples, pois essa

jornada foi gerada considerando o fato de que todas as jornadas do tipo dupla pe-

gada tenham custo alto para a empresa. Na tabela 3, considera-se que a empresa

pode utilizar duas jornadas do tipo dupla pegada sem custo adicional. Tais jornadas

estão assinaladas com . Comparando os dois casos apresentados na tabela abaixo,

temos que a segunda solução está economizando (22 : 50− 22 : 18 = 00 : 32)32 mi-

21

Page 32: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

nutos de trabalho total, e 22 minutos de tempo ocioso, com o custo de se aumentar

52 minutos de hora extra em relação à primeira solução, sem jornadas do tipo dupla

pegada.

Jornada Tarefas Duração Tempo Ocioso Hora Extra Troca de Veículo1 1-3-5-7-9-11 7:25 1:04 0:15 02 2-4-6-8-10-12 7:20 0:57 0:10 03 13-14-15-16-17-18 08:05 1:34 1:35 0

Tabela 3.2: Uma solução do PEM, utilizando jornadas simples SANTOS[4]

Jornada Tarefas Duração Tempo Ocioso Hora Extra Troca de Veículo1 1-3-5-7-9-11 7:25 1:04 0:15 02 2-4-614-15-16 7:28 0:59 0:48 03 8-10-12-1317-18 7:25 1:00 0:45 0

Tabela 3.3: Uma solução do PEM(jornadas do tipo dupla pegada) SANTOS[4]

De posse de todas as possíveis jornadas viáveis do problema, agora devemos

escolher um conjunto de jornadas que cubram as tarefas disponíveis, como por

exemplo, os conjuntos de dados mostrados nas tabelas 3.2 e 3.3, respectivamente,

acima.Depois, em uma próxima etapa, cada uma das jornadas selecionadas vão ser

designadas a cada motorista.

3.2 Formulação Matemática do PEM

Vimos na seção anterior, que o Problema de Escala de Motoristas possui muitas

restrições que devem ser satisfeitas para que tenhamos um jornadas viáveis de

trabalho, alguns autores como: GONÇALVES [2], SANTOS [3] tratam as restrições

trabalhistas e algumas operacionais como restrições essenciais. Uma formulação

do PEM muito usada na literatura é através do Problema de Particionamento de

Conjuntos. Como descrevemos abaixo:

Sejam N o conjunto de conjunto de colunas do problema(jornadas) e M o con-

junto de linhas a serem cobertas(tarefas).Além disso, considere n o número de jorna-

das (colunas), m o número de tarefas(linhas) a serem cobertas e cj o custo associado

à jornada j.Esse custo associado a cada jornada é calculado em função do tempo

total que o motorista e/ou cobrador são remunerados e não está dirigindo o veículo,

dito tempo ocioso e do total de horas extras contidas na jornada.Esses custos são

calculados da seguinte forma:

22

Page 33: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

cj = Thoraextra · Phoraextra + Tocioso · Pocioso

onde:

cj : custo da coluna j;

Thoraextra : número de horas extras na jornada j;

Phoraextra : peso atribuido a cada minuto de hora extra presente na jornada j;

Tocioso : número de horas ociosas da coluna j;

Pocioso : peso atribuido a cada minuto de hora ociosa da coluna j;

Além disso, para cada jornada j ∈ N associamos uma variável binária xj , que

definimos, como:

xj =

{

1, se a jornada j é viável

0, caso contrário

e uma matriz binária A = (aij)|M |×|N |, para i ∈ M e j ∈ N , que definimos como:

aij =

{

1, se a jornada j cobre a tarefa i

0, caso contrário

Portanto, a formulação do PEM através de um modelo de PCC:

(PEMPPC)

min

n∑

i=1

cjxj (3.1)

s.an

j=1

aijxj = 1 i ∈ M (3.2)

xj ∈ 0, 1 j ∈ N (3.3)

Nesse modelo, A função objetivo (1) busca minimizar os custos na jornada j. O

conjunto de restrições (2) garante que todas as tarefas sejam cobertas, sendo cada

tarefa coberta por apenas uma das jornadas selecionadas. A última restrição, (3)

estabelece a integralidade das variáveis de decisão. A restrição (2) satisfaz uma das

restrições do PEM, visto no capítulo 2, seção 2.4, que é a restrição usada muitos

problemas de Escalonamento de Tripulações:

Uma tripulação não pode executar duas tarefas simultaneamente;

Porém, a solução do problema ?? somente satisfaz uma das restrições do PEM, o

nosso objetivo é formular o PEM, de forma a cobrir pelas menos a restrições mais

relevante do problema de escalas, conhecido por GONÇALVES[2], SIMOES[3] e

23

Page 34: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

MAPA[33], como restrições essenciais, cujas restrições se não forem satisfeitas, irão

gerar jornadas inviáveis de trabalho.

Então, SILVA etal [34] e SANTOS[4], acrescenta outra restrição ao 3.2. Essa

restrição, diz que, caso haja um conjunto de jornadas de dupla pegada,a quan-

tidade dessas jornadas sem custo adicional deve ser limitado, a uma constante

MAX_DUPLA_PEGADA, que segundo SILVA etal [34], esse número máximo fica,

em geral, em torno de 10 % do número total de motoristas disponíveis na em-

presa(tripulantes). Essa restrição é formulada da seguinte forma:

n∑

j=1

am+1,j .xj ≤ MAX_DUPLA_PEGADA (3.4)

Nesse caso, am+1,j = 1, caso j seja uma jornada do tipo dupla pegada, e 0, caso

contrário. Além disso, vamos penalizar essas jornadas na função objetivo, acrescen-

tando a parcela bk na função objetivo (1.1).Essa modificação no 3.2 é vista abaixo:

(PEMPPC) :

min

n∑

i=1

cjxj + bk (3.5)

s.an

j=1

aijxj = 1 i ∈ M (3.6)

n∑

j=1

am+1,jxj ≤ MAX_DUPLA_PEGADA (3.7)

xj ∈ {0, 1} j ∈ N (3.8)

k ∈ {0, 1} (3.9)

O parâmetro bk acrescentado na função objetivo significa que se a quantidade

de jornadas de dupla ultrapassar 10 % do número total de motoristas disponiveis,

então será cobrado um custo extra no total dos custos referentes a uma jornada.A

variável k é uma variável binária, definida como:

k =

{

1, se a jornada j é de dupla pegada

0, caso contrário

No início dessa seção, quando formulamos o PEM, através de um modelo de um

Problema de Particionamento de Conjuntos (PPC), as variáveis desse problema são

as variáveis xj , que é definida como 1, se j é uma jornada viável e 0, caso contrá-

rio; E depois, quando formulamos o PEM com restrições adicionais, acrecentamos

24

Page 35: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

uma variável k, que representa as jornadas de dupla pegada. Então, para formular

esse problema com todas as suas variáveis deveriamos construir anteriormente todas

as possibilidades de jornadas, que cubram uma quantidade de tarefas satisfazendo

as restrições trabalhistas e operacionais, o que é impossível, devido a sua explosão

combinatória.

Porém, a solução desse problema não será todas as jornadas geradas, apenas uma

quantidade finita e mínima de jornadas serão as soluções ótimas, então, um método

ideal de solução para o nosso problema será a utilização de um método de enume-

ração implíticita, e que não precise trabalhar com todas as jornadas possíveis, mas

com um número reduzido de jornadas. Portanto, um método que possa atender

nosso objetivo é o método da geração de colunas.

25

Page 36: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Capítulo 4

Aplicação do Método de Geração de

Colunas no PEM

4.1 Método da Geração de Colunas

uma grande dificuldade na solução do problema de alocação de tripulação mesmo

para casos que possui instâncias pequenas é o grande número de possíveis jornadas

de trabalho. Mesmo existindo diversas regras que controlam a viabilidade de uma

jornada, o conjunto completo de jornadas viáveis é geralmente grande. E quando é

possível gerar o conjunto completo, este número enorme de jornadas torna difícil a

solução do PCC resultante.

Para o caso do Problema de Escalonamento de Motoristas(PEM), ainda é mais

complexo, uma vez que, esse problema possui restrições que são difíceis de modelar

em um Problema de Particionamento de Conjuntos(PCC).Porém, o nosso objetivo

não é obter todas as jornadas possíveis e viáveis, mas as jornadas interessantes para o

problema, isto é, jornadas que são viáveis, que atendem todas as regras operacionais

e trabalhistas, e que possuem um custo mínimo. Portanto, o número de jornadas

efetivamente utilizadas na solução ótima é bem menor comparado ao número total

de jornadas possíveis.

Mesmo para instâncias pequenas é possivel notar que havendo a possibilidade de

prever que certas jornadas viáveis não fazem da parte da solução ótima, ou que

tem pequenas chances de participar desta solução, então, pode-se trabalhar com um

número reduzido de jornadas e encontrar a mesma solução ótima. Ou, pensando de

outra forma, prever quais as jornadas tem maiores chances de participar da solução

ótima.

Portanto, para gerar um subconjunto pequeno de jornadas, acelerar o processo de

geração das jornadas, e facilitar a solucao do PCC. Encontramos duas questões que

dificultam a inserção dessa ideia na prática, que são:

26

Page 37: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

(i) Como podemos gerar boas jornadas de trabalho de forma a incluí-las na

solução ótima, em outras palavras, como podemos guiar a geração de jornadas

para produzí-las?

(ii) Como podemos garantir que nenhuma jornada não gerada não melhora a

solução?

Uma forma de solucionar essas questões será utilizando o método chamado geração

de colunas.

Considere o Problema de Programação Linear Inteiro(PPLI), abaixo:

(PPL)

min cTx

s.a Ax = b

Dx ≤ d

x ≥ 0

(4.1)

Suponha que o problema ?? tenha um número muito grande de variáveis,

como é o caso do Problema de Particionamento de Conjuntos(PPC), ou seja,

um problema com uma quantidade muito grande de colunas. Então, segundo

(MACULAN&FAMPA[35],WALGEMANetal [19]), resolvemos esse problema utili-

zando a decomposição de Dantzing-Wolf. Para isso, devemos representar um

dado conjunto conjunto convexo e limitado de soluções viáveis, como uma com-

binação linear convexa de pontos extremos e também das direções extremas desse

conjunto(BUENO[36]).

Se o conjunto de pontos extremos é vazio, dizemos que o conjunto convexo é

limitado, que é o caso do PPC(mesmo que contenha restriçoes adicionais),ou seja, do

Problema de Escalas de Motoristas(PEM), que mesmo leve um tempo muito grande

para resolvê-lo, a solução ótima terá uma quantidade finita de colunas(jornadas,

respectivamente).Para mais detalhes mais detalhes sobre formulações, envoltórias

convexas e detalhes mais teóricos sobre programação inteira e geração de colunas

pode ser encontrado em SCHRIJVER [37], MACULAN & FAMPA [35], WOLSEY

[38].

Portanto, considerando X um conjunto convexo, temos que:

X = {x ∈ Rn+;Dx ≤ d}

= {x ∈ Rn+; x =

p∑

j=1

λjxj ,

p∑

j=1

λj = 1, λ ∈ Rn+}

27

Page 38: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Então, podemos reformular o PPL ??, substituido a equação x =∑p

j=1λj x

j no

problema 4.1, obtemos o seguinte problema: (PM)

minp

j=1

λj cj (4.2)

s.a A

p∑

j=1

λjaj = b (4.3)

p∑

j=1

λj = 1 (4.4)

λj ≥ 0 (4.5)

Nesse caso, definimos cj = cT xj e aj = Axj para cada j ∈ 1, 2, . . . , q. O problema

acima é conhecido como Problema Mestre.Então, a idéia desse método é decompor

esse problema em dois problemas:

1. Problema Mestre: O problema 4.2 formulado acima, que no caso é o problema

a ser resolvido, porém com menos variáveis(colunas).

2. Subproblema pricing : Esse problema é responsável pela geração de novas co-

lunas(variáveis) para o problema mestre. Essas colunas quando incorporadas

no problema mestre melhora a solução atual.

O subproblema pricing é formulado como:

(SP ) :

Max (u1A− c)x+ u0 (4.6)

s.a Dx ≤ b (4.7)

x ≥ 0 (4.8)

Segundo MACULAN&FAMPA[35], BUENO[36], SANTOS[4], LASDON[39], esse

problema não precisa ser resolvido até a otimalidade, isto é, para resolvê-lo basta

que a solução seja viável, ou seja, que satisfaça as seguintes restrições de viabilidade

do problema 4.1:

Dx ≤ b e x ≥ 0

Então, a solução desse problema será uma coluna gerada para o problema 4.2. Na

seção 3.2 do capítulo 3, formulamos o Problema de Escalonamento de Motoristas

como um Problema de Programação Inteira, que no caso, é um Problema de

Particionamento de Conjuntos(PPC), que no caso, mantém algumas características

28

Page 39: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

da geração de colunas para o Problema de Programação Linear, que no caso, vamos

considerar agora o conjunto X, que definimos acima como:

Na seção 3.2 do capítulo 3, formulamos o Problema de Escalonamento de Motoris-

tas como um Problema de Programação Inteira, que no caso, é um Problema de

Particionamento de Conjuntos(PPC), que no caso, mantém algumas características

da geração de colunas para o Problema de Programação Linear, que no caso, vamos

considerar agora o conjunto X, que definimos acima como:

X = {x ∈ Zn+;Dx ≤ d}

= {x ∈ Zn+; x =

p∑

j=1

λjxj ,

p∑

j=1

λj = 1, λ ∈ Zn+}

E o problema mestre ficará da seguinte forma:

(PM) :

min zPMI =

p∑

j=1

λj cj (4.9)

s.a A∑p

j=1λja

j = b (4.10)p

j=1

λj = 1 (4.11)

λj ∈ Z+ j = 1, 2, . . . , p (4.12)

(4.13)

Segundo BUENO[36] e WOLSEY[38], a restrição de convexidade∑p

j=1λj = 1

em conjunto com a restrição de integralidade λj ∈ Zp+ será imposto que λ ∈ 0, 1n.

Ou seja, o problema mestre 4.9 será um problema inteiro binário.

Segundo BUENO[36], as formulações original e mestre do problema inteiro, diferem

em sua relaxações lineares e os seus limites(bounds) para a solução das relaxações

lineares do problema original inteiro(−zPI), problema mestre(−z

PM) e a solução

ótima inteira do Problema Inteiro(PI)(z∗PI), estão relacionados através da seguinte

desigualdade:

−zPI ≤ −z

PM ≤ z∗PI

Quando a formulação é tal que o conjunto X = {x ∈ Rn+;Dx ≤ d} tem a propri-

edade da integralidade(GEFRION[1990]), então, teremos que −zPI = −z

PM . Caso

a formulação original não apresente a propriedade da integralidade e a relaxação

linear do problema mestre não fornece uma solução inteira, como é o caso do

29

Page 40: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Problema de Escalonamento de Motoristas(PEM), então teremos a seguinte relação

entre os valores ótimos:

−zPI < −z

PM < zPI

Na seção seguinte, formularemos o problema mestre associado ao PEM, e conse-

quentemente, na próxima, formularemos o subproblema que irá gerar as colunas

para o PEM.

4.2 Resolução do PEM através de Geração de Co-

lunas

4.2.1 Formulação do Problema Mestre

Nessa seção, aplicaremos ao Problema de Escalonamento de Motoristas(PEM),

formulado na seção 3.2 do capítulo anterior, o método da geração de colunas. Para

isso, vamos, considerar a formulação do problema novamente.

PEMPPC :

min

n∑

i=1

cjxj + bk (4.14)

s.an

j=1

aijxj = 1 i ∈ M (4.15)

n∑

j=1

am+1,jxj ≤ MAX_DUPLA_PEGADA (4.16)

xj ∈ {0, 1} j ∈ N (4.17)

k ∈ {0, 1} (4.18)

Temos que o problema acima é um problema linear inteiro binário, onde cada

coluna da matriz de restrições, ou seja, cada variável do problema, é uma jornada

viável, que cobre um subconjunto das tarefas. Cada restricao do problema é uma

tarefa que deve ser coberta. Como existem muitas jornadas viáveis, o problema

possui muitas colunas(variáveis), e por isso, existe a necessidade do uso do método

de geração de colunas. Entretanto, o PEM nao apresenta a propriedade de inte-

gralidade da solução, pela seção anterior, tem que o Relaxação Linear do Problema

Inteiro não é igual a Relaxação do Problema Mestre associado ao Problema Inteiro,

30

Page 41: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

com isso é impossível obter o calculo dos custos duais das tarefas.

Para obter o valor das variáveis duais necessários na solução do subproblema, O

PPC nao é resolvido, mas sim sua relaxacao linear. Nesse caso, as variáveis cor-

respondentes a cada coluna deixam de ser binárias e passam a ser não-negativas

.Como visto na seção anterior, não existe a necessidade de limitar o valor da variá-

vel explicitamente em 1, pois as restrições de cobertura,juntamente com restricoes

de não-negatividade, impõem esse limite. Caso a solução ótima do problema re-

laxado não seja inteira, parte-se para uma enumeração branch-and-bound, porém,

com um número reduzido de colunas.

Então, vamos utilizar a formulação do problema mestre proposta por SANTOS[4].

Como a formulação do Problema Mestre trabalha com um número reduzido de colu-

nas, então, vamos considerar um subconjunto N ⊂ N de tarefas e um subconjuntoNDP ⊂ NDP , que essas tais jornadas que estarão no problema mestre, então pro-

blema mestre para esse caso será:

(PM_PEMPPC)

MINn

i=1

cjxj + b k (4.19)

s.a∑

j∈ N atjxj = 1 t ∈ M (4.20)

j∈ NDP

am+1,j.xj ≤ MAX_DUPLA_PEGADA (4.21)

xj ≥ 0 j ∈ N (4.22)k ≥ 0 (4.23)

Mesmo obtendo essa formulação para o problema mestre não conseguimos resolvê-lo

até a otimalidade, uma vez que precisamos enumerar todas as jornadas possíveis

que estão no conjunto N ⊂ N , que são as soluções que farão parte da solução viável

inicial, em outras palavras, esse problema que formulamos ainda é NP-Díficil.Então,

uma forma de resolver esse problema é obter uma solução dual viável do problema

4.2.1, isto é, resolver o subproblema pricing até obter uma solução viável.

4.3 Solução do Subproblema Pricing

A finalidade do subproblema é gerar uma (ou mais) nova jornada de trabalho,

que seja viável e de custo reduzido negativo, quando considerados os preços duais

das tarefas do problema mestre anteriormente resolvido. Estas novas jornadas são

novas colunas acrescentadas ao problema mestre, que melhoram o valor da solução,

ou atualizam os preços duais para permitir a geração de outras novas jornadas pelo

31

Page 42: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

subproblema.

Para o problema de alocação de tripulação, que possui diversas restrições

na viabilidade de uma jornada, portanto na criação de uma nova coluna,

uma abordagem bastante utilizada é a modelagem deste problema em um

grafo(IRNICH&DESAULNIERS[40]). A topologia do grafo é facilmente definida

pelas características de uma jornada de trabalho: uma seqüência de tarefas

ordenadas pelo horário de execução.

Para isso, considere um grafo dirigido G = (V,A), em que o conjunto V de

vértices contém um vértice vt associado a cada tarefa t ∈ T a ser coberta no

problema de cobertura, e dois vértices adicionais, v0 e vf marcando o ínicio e o

fim, respectivamente, de uma jornada; e o conjunto A de arcos contém os arcos

(v0, vt) e vt, vf , ∀t ∈ T , e os arcos (vt, vw) para todo par de tarefas t e w tal que

a tarefa w possa ser efetuada logo após a tarefa w em alguma jornada viável. Na

definição desses últimos arcos são considerados os horários de execução das tarefas

e outras características específicas do problema. Dessa forma, a existência de um

arco (vt, vw) indica que o horário de execução da tarefa w é posterior ao da t, o

que dificulta a ocorrência de sobreposição de horários, e que essa sequência atende

outros requisitos do PEM, como: como troca de estações, de veículos, e tempo

mínimo entre tarefas consecutivas.

O grafo G assim construído é um grafo dirigido acíclico, e qualquer jornada de

trabalho viável é um caminho do vértice (v0 ao vértice vf no grafo. Os vértices

vt nesse caminho representam as tarefas t da jornada construída.O grafo está

representado na figura abaixo:

Vamos considerar as seguintes notações, que utilizaremos no modelo. Essas

notações são utilizadas por BEASLY&Cao [9] e SANTOS [4], que são:

• V: Conjunto de vértices do grafo;

• A: Conjunto de arcos do grafo;

• P: Conjunto de arcos com intervalo de tempo superior a 2 horas entre tarefas

consecutivas(dupla pegada), neste caso, temos P ⊆ A;

• Q: Conjuntos de arcos com intervalo de tempo entre tarefas consecutivas su-

perior ou igual a 15 minutos, neste caso, temos Q ⊆ A;

• ca: custo associado a troca de veículo ou de estação, que ocorre no arco a do

grafo.

• da: duração do arco a, a soma da duração da tarefa correspondente ao vértice

final e o intervalo entre as tarefas do arco. Assim, para um arco a = (vt, vw),

32

Page 43: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Figura 4.1: O grafo que representa o PCMRR com dois recursos[4]

temos que:

da = hora final da tarefa w − hora final da tarefa t.

Podemos visualizar esse parâmetro no esquema da figura(3.3).

• la: tempo efetivo de trabalho no arco a, que é o tempo efetivo de trabalho no

vértice final. Assim, para um arco a = (vt, vw), temos que:

la = hora final da tarefaw − hora inicial da tarefa w

−folga entre as viagens do bloco da tarefa w

• ch:Custo por hora extra(minutos que extrapolam a duração máxima de tempo,

isto é, quando ultrapassam às 7 horas e 10 minutos para jornadas simples e 6

horas e 40 minutos para o caso de jornadas de dupla pegada);

• cr:Custo por tempo ocioso(minutos de intervalo entre tarefas e folga entre

viagens);

Para os arcos a = (vt, vw), que finalizam o caminho, da = l e a = 0. Para os arcos

a = (v0, vt), que iniciam o caminho, da e la são calculados da mesma forma que os

33

Page 44: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

arcos entre tarefas, porem considerando-se que o intervalo entre as tarefas é 0.

Esse problema é conhecido como Problema de Caminho Mínimo com Restrições de

Recursos(PCMRR), que foi definido e modelado por IRNICH&DESAULNIERS[40],

proporam alguns métodos de solução para tal problema, como o Método de

Programação Dinâmica por Rotulação,Heurística Langrageana e Programação por

Restrições. Segundo os autores, esse problema pode ser utilizando na solução

de Problemas de Escalonamento de Tripulação, Escalonamento e Roteamento de

Veículos. A formulação do subproblema, encontra-se abaixo:

No próximo capítulo, mostraremos o algoritmo utilizado no trabalho para obter

uma solução para o PEM.

34

Page 45: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Capítulo 5

Algoritmo Híbrido para Solução do

PEM

5.1 Algoritmo Proposto

Nesse capítulo, descreveremos o algoritmo que será usado para resolver o PEM,

que foi formulado no capítulo 3. Alguns passos do algoritmo como a resolução do

subproblema através de metaheuristicas, assim como a sua iteração com o algoritmo

de geração de colunas são ao trabalho de santos[4], porém, nesse trabalho para ajudar

a acelerar o processo de geração de novas colunas, vamos obter uma solução inicial,

tal como é descrita no artigo de Santos&Geraldo, tal procedimento é chamado de

heurística de Chvatal. No trabalho de Santos&Geraldo foram obtidas boas jornadas

utilizando tal heurística. Nesse trabalho, não nos abordaremos a solução inteira,

pois, uma vez que, o conjunto de jornadas obtidas na solução linear será o mínimo

para obtermos as soluções inteiras mais rapidamente através do otimizador Xpress.

Os passos do algoritmo estão descritos abaixo:

1. Solução Inicial: Obter uma quantidade razoável de jornadas iniciais;

2. Resolver o subproblema pricing, formulado no capítulo anterior, para verifi-

car, se as jornadas geradas anteriormente são ótimas. Primeiro, resolvemos o

problema linear até a otimalidade, para obter uma solução ótima.

3. Devido a dificuldade encontrada para obter as soluções do PEM, através de

métodos exatos, utilizamos o algoritmo genético, e geramos mais rapidamente

as colunas.

4. As soluções obtidas avaliamos através do Xpress, obter a relaxação inteira.

35

Page 46: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

5.2 Solução Inicial

Para obtermos as jornadas, inicialmente, devemos obter as tarefas, que são geradas

a partir do bloco de viagens.Todas as viagens que constitui uma tarefa possuem as

seguintes caracteristicas:

1. Tempo de terminal entre as viagens menor que cinco minutos;

2. Final de uma tarefa ocorre apenas nos pontos onde existe um fiscal da empresa;

3. A primeira viagem da tarefa tem início na garagem da empresa, ou em um

ponto onde existe um fiscal;

4. A última viagem da tarefa tem término em um ponto onde existe um fiscal,

ou na garagem da empresa;

Agora, abordaremos algumas restrições que são levadas em conta, nessa etapa:

1. Folga mínima entre tarefas de 15 minutos e folga total de 30 minutos;

2. Tempo máximo de trabalho de 9 horas e 10 minutos;

3. Jornada normal de trabalho com duração de 7 horas e 10 minutos;

4. O início da primeira janela de troca corresponde ao início da janela com horário

mais cedo;

5. O término da última janela de troca corresponde ao término da janela com

horário mais tarde;

6. Adiciona-se o tempo médio de trabalho da linha ao horário de início, marcando

o meio da janela seguinte;

7. Subtrai-se o tempo médio de trabalho da linha ao horário de término, mar-

cando o meio da última janela;

A heurística de Chvátal constrói interativamente uma solução para o PEM. A cada

iteração do método o conjunto de colunas(jornadas) é avaliado por uma função que

leva em consideração o custo de cada coluna e o número de tarefas por ela coberta.

Então, cada coluna será avaliada pelo seguinte expressão para custo relativo:

custoRelativoj =cj

totaltarefascobertas(5.1)

(5.2)

onde:

36

Page 47: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

• cj é o custo da coluna j, visto capítulo 3,

• totaltarefascobertas representa o número de tarefas cobertas pela inserção da

coluna j na solução inicial;

• custoRelativo representa o custo relativo da coluna j.

Depois da avaliação de cada coluna, através da expressão 5.1, é inserida na solução

inicial, a coluna de menor custo relativo.Essa coluna é excluida do conjunto de

colunas candidatas. A seguir, todas as colunas candidatas restantes são novamente

avaliadas pela expressão 5.1, excluindo-se em cada coluna as tarefas já cobertas

pelas colunas anteriormente inseridas no conjunto solução. Este procedimento

encerra-se quando todas tarefas forem cobertas.

5.3 Resolução do subproblema

5.3.1 Relaxação Linear

Submetemos a relaxação linear do modelo do subproblema, visto no capítulo 4, a um

pacote de programação linear(Xpress), e se a solução do problema relaxado não for

inteira, usamos essa solução fracionária para construir uma jornada (uma solução

inteira, mesmo que não ótima). A solução ótima do subproblema é um caminho do

vértice v0 ao vértice vf no grafo Construído no capítulo 4, representando a sequência

de tarefas da jornada. Uma solução fracionária é um conjunto de "caminhos parci-

ais"entre os vértices v0 e vf , que representa um conjunto de jornadas, onde algumas

tarefas são incluídas parcialmente em uma e outra jornada. A Figura abaixo,

ilustra esse conjunto de caminhos. Os arcos pontilhados não fazem parte da solu-

ção do problema relaxado, e os demais foram selecionados, mesmo que parcialmente.

Para escolher um vértice em um caminho do grafo, utilizamos uma estratégia

gulosa, onde o próximo vértice do caminho a ser escolhido é aquele cujo arco tenha

o maior valor, entre todos os arcos a partir do vértice anterior. Então, é escolhida

a tarefa que aparece, em alguma jornada, em seqüência à tarefa anteriormente

escolhida, e cujo valor seja o maior entre as tarefas existentes.

Se a jornada sendo construída continua viável após a inclusão dessa tarefa, ela

é incluída, e continua?se o processo a partir dessa tarefa. Senão, a tarefa não

é incluída, e o valor do arco correspondente é zerado, para que outra tarefa

seja escolhida na iteração seguinte. Eventualmente nenhuma tarefa poderá ser

incluída na jornada, e o vértice final do grafo é escolhido, finalizando o caminho e

37

Page 48: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

conseqüentemente a jornada.

Segundo SANTOS[4], mesmo quando é finalizada a jornada, ela pode ainda ser

inviável, devido a requisitos que não podem ser verificados durante a construção

da jornada. Quando isso acontece, a jornada inteira é descartada, e invoca?se

novamente o pacote de programação linear inteira para continuar a solução do

modelo até obter a solução ótima inteira. Isso também é feito caso a jornada gerada

pela heurística não tenha custo reduzido negativo.

Segundo SANTOS[4], resultados experimentais mostram que muitas colunas

são adicionadas ao problema mestre, porque algumas das geradas pela heurística

não são tão boas jornadas. Como a cada coluna adicionada, o problema mestre é

resolvido novamente, o número de vezes que o problema mestre é resolvido é maior

quando usamos a heurística. Porém, o subproblema é resolvido mais rapidamente

quando utilizamos a heurística do que quando usamos somente o método exato.

Além disso, a solução do problema mestre é computada rapidamente a partir

da solução anterior, porque a base ótima anterior pode ser utilizada, e poucos

pivoteamentos são necessários. Então, embora o problema mestre e o subproblema

sejam resolvidos mais vezes, o processo como um todo é mais rápido.

Na próxima seção, falaremos da abordagem heurística para a solução do PEM.

38

Page 49: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Capítulo 6

Resultados

Os algoritmo proposto nesse trabalho foi implementado em Java, utilizando a

IDE NetBeans 6.5.1, e a solução do problema linear inteiro foi obtida através de

chamada de funções do Xpress(2010). Os resultados foram apurados pela execução

do algoritmo num notebook com processador Intel Celeron, memória RAM de 2Gb,

com sistema operacional Windows 07. Nas implementações utilizamos chamadas a

algumas bibliotecas diponíveis por ROSEN [41]. Na próxima seção, exibiremos as

instâncias utilizados no trabalho de SANTOS [4], que serão utilizadas para testar

o algoritmo proposto nesse trabalho, pois conseguiu-se obter dados reais de empre-

sas no Rio de Janeiro, então utilizaremos, o caso de uso na cidade de Belo Horizonte.

6.1 Instância Utilizadas

Vamos utilizar as instâncias do trabalho de SANTOS [4], o conjunto de dados que

ele utiliza contém 733 tarefas, divididas em 11 linhas de ônibus. Em cada tarefa

possui a seguinte estrutura: SANTOS [4] fez algumas considerações no problema,

TarefaNúmero do Veículo

Horário Inicial Horário FinalPonto de Partida Ponto de Chegada

Tempo de Repouso entre viagensLinha de início Linha de término

Tabela 6.1: Estrutura que define uma tarefa do problema

como por exemplo,

• O número da linha de inicio e término é o mesmo para algumas tarefas;

39

Page 50: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

• Não são permitidas trocas de linha, pois os dados fornecidos não possuem o

grupo de veículos, onde poderia se verificar troca de motoristas entre veículos

de um mesmo grupo ou grupo distintos.

Nas tabelas abaixo, estão disponíveis os dados resumidos das instâncias da Compa-

nhia de Transporte Urbano de Belo Horizonte e os valores dos parâmetros utilizados

na geração de jornadas de trabalho, utilizados na solução do subproblema princing,

respectivamente.

Instância Itinerário Número de Tarefas Número de VeículosL101-40 101 40 3

L201-49 201 49 2

L321-54 321 54 3L1170-54 1170 54 5

L2104-94 2104 94 17

L2152-43 2152 43 6L4150-63 4150 63 9

L5201-75 5201 75 12L8207-101 8207 101 18

L8208-78 8208 78 12

L9206-82 9206 82 14

Tabela 6.2: Dados da Instância BHTrans(SANTOS[4])

Custo excedente ao tempo máximo de jornada 0.2Custo por tempo ocioso 0.15

Custo de transição entre duas tarefas consecutivas 19Custo de penalização por dupla pegada excedente 45

Tabela 6.3: Parâmetros utilizados no algoritmo proposto

Com relação a tabela ??, quando ocorre transição entre duas tarefas consecutivas

pode acontecer um intervalo igual ou superior a 2 horas, o que configura uma jornada

do tipo dupla pegada, então, quando ocorrer dupla pegada, SANTOS [4], soma o

valor 5 ao custo de transição entre duas tarefas consecutivas. Caso não ocorra dupla

pegada, não soma nada a esse custo.

40

Page 51: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Capítulo 7

Conclusão e Recomendações Futuras

O trabalho descreve um algoritmo de geracao de colunas para a solucao de proble-

mas de alocacao de tripulacao com uma etapa adicional de solucao do subproblema

por metodos heuristicos. Apesar do uso de heuristicas, o metodo como um todo

permanece exato, pois as heuristicas sao embutidas no processo de geracao de

colunas apenas para acelerar a resolucao do subproblema, que e sempre resolvido

de forma exata quando as heuristicas falham em resolve-lo satisfatoriamente. Tanto

o problema mestre quanto o subproblema sao problemas classicos, particionamento

de conjuntos, e caminho minimo com restricoes de recursos, para os quais varios

metodos, exatos e heuristicos, foram propostos na literatura. Nenhum deles

tem solucao polinomial, porem ambos sao resolvidos de forma eficiente dentro

do algoritmo de geracao de colunas considerado. O problema mestre e resolvido

facilmente por pacotes de programacao linear, porque dentro do contexto de geracao

de colunas nao contem muitas variaveis de decisao. E mesmo quando o numero de

variaveis aumenta, as solucoes podem ser facilmente obtidas a partir da base da

solucao obtida anteriormente, pois o problema cresce aos poucos. O subproblema,

principalmente no inicio do algoritmo, tem solucao exata um pouco demorada, e

nesse ponto as heuristicas obtem solucoes rapidas e tao interessantes quando a

solucao otima exata. Desta forma, todos sao resolvidos rapidamente.

Apesar de ter sido aplicado em apenas dois tipos de instancias, a tecnica e geral e

pode ser aplicada praticamente em qualquer problema de alocacao de tripulacoes.

As heuristicas e metaheuristicas utilizadas nao foram refinadas e calibradas especi-

almente para as instancias consideradas, e nem contam com detalhes tao especificos

de cada uma. Parametros semelhates foram utilizados, o que mostra que elas sao

facilmente aplicaveis em outros contextos.

Embora fosse possível incluir algumas técnicas para acelerar a convergência da

solução, como: retirar colunas redundantes ou sem potencial de contribuição para

uma melhoria na solução; acrescentar cortes no subproblema para acelerar sua

solução; calibrar os parâmetros para cada instância e introduzir busca local nas

41

Page 52: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

heurísticas; entre outras, o enfoque do trabalho não é resolver as instâncias aqui

tratadas, mas estabelecer um algoritmo híbrido com heurísticas e métodos exatos,

que seja mais rápido sem perder a garantia de otimalidade, e geral para ser aplicado

em outros contextos.

Outro contexto significa nao apenas outros problemas de alocacao de tripulacoes,

mas outros problemas semelhantes, como por exemplo, roteamento e veiculos, que

tambem pode ser modelado como um problema de particionamento de conjuntos

com subproblema de caminho minimo com restricoes de recursos. A aplicacao nesse

contexto, e a decisao automatica de qual das heuristicas deve ser utilizada em cada

iteracao durante a execucao do metodo, constituem atividades em andamento e que

provavelmente rendam novos resultados interessantes.

Alem dessas extensoes do trabalho, pretende-se obter outras instancias do proprio

problema de alocacao de tripulacoes, para serem resolvidas com o metodo proposto,

e os resultados comparados com outros metodos da literatura

42

Page 53: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

Referências Bibliográficas

[1] W.QIAO. An Algorithm for Crew Scheduling Problem with Bin Packing Features.

M.Sc. dissertation, Department of Civil and Environmental Engineering,

Rio de Janeiro, RJ, Brasil, 2010.

[2] GONÇALVES, T. Metaheurísticas para o Problema de Programação de Tripu-

lações. Dissertação de M.Sc., COPPE - Engenharia de Sistemas e Com-

putação/UFRJ, Rio de Janeiro, RJ, Brasil, 2010.

[3] SIMÕES, E. Algoritmo para Programação Integrada de Veículos e Tripulações

no Sistema de Transporte Público por Ônibus. Dissertação de M.Sc., Pro-

grama de Pós-Graduação em Ciência da Computação, Universidade Fe-

deral de Minas Gerais, Belo Horizonte, MG, Brasil, 2009.

[4] SANTOS, A. Método de geração de Colunas e Metaheurísticas para Alocação

de Tripulações. Dissertação de M.Sc., Programa de Pós-Graduação em

Ciência da Computação, Universidade Federal de Minas Gerais, Belo Ho-

rizonte, MG, Brasil, 2008.

[5] ANTT. “ANTT. Disponível em: http://www.antt.gov.br/. Último acesso em

01/07/2010.” 2010.

[6] BOUZADA, C. Análise de despesas administrativas no custo do transporte a

coletivo por ônibus no município de Belo Horizonte. Dissertação de M.Sc.,

Escola de Governo Fundação João Pinheiro, Belo Horizonte, MG, Brasil,

2000.

[7] SOARES, E. F. Um Ambiente Computacional Para a Otimização de Escalas de

Tripulantes em Companhias Aéreas. Tese de D.Sc., COPPE/UFRJ, Rio

de Janeiro, RJ, Brasil, 2007.

[8] CALVI, R. Um Algoritmo para o Problema de Escalonamento de Tripulação em

Empresas de Ônibus. Dissertação de M.Sc., Programa de Pós-Graduação

em Ciência da Computação, Universidade Estadual de Maringá, Maringá,

PR, Brasil, 2005.

43

Page 54: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

[9] BEASLY, J. E., CAO, B. “A tree search algorithm for the Crew Scheduling

Problem”, European Journal of Operations Research, v. 94, n. 3, pp. 517–

526, out. 1995.

[10] ABBINK, E., WOUT, J., HUISMAN, D. “Solving Large Scale Crew Scheduling

Problems by Iterative Partitioning”, 7th Workshop on Algorithmic Appro-

aches for Transportation Modeling, Optimization, and Systems, v. 1168,

n. 1, pp. 96–106, fev. 2007.

[11] D, B. F., SPIEKSMA, F., WOEGINGER, G. “A branch and Prince Algorithm

for a Hierarchical Crew Scheduling Problem”, Naval Research Logistics,

v. 49, n. 2, pp. 743–759, maio 2002.

[12] DALLAIRE, A., FLEURENT, C., ROUSSEAU, J. Dynamic Constraint Ge-

neration in CrewOpt, a Column Generation Aprroach for Transit Crew

Scheduling. 75 rue de Port-Royal Est, Montreal H3L3T1, 2000.

[13] BORNDÖRFER, R., SCHLECHTE, T., WEIDER, S., et al. A column Gene-

ration Approach to Airline Crew Scheduling. In: Report D-14195, Berlin,

Germany, 2005.

[14] YUNES, T., MOURA, A., SOUZA, C. Solving Very Large Crew Scheduling

Problems to Optimality. In: Report NBSIR 78-1434, Instituto de Compu-

tação , UNICAMP, Campinas, 2000.

[15] MELLO, F., SENNE, E., LORENA, L. “Uma nova heurística para o Problema

de Escalonamento de Motoristas”, Produto&Produção, v. 10, n. 3, pp. 87–

95, 2009.

[16] MAURI, G., LORENA, L. Método interativo para resolução do Problema de

Escalonamento de Tripulações. In: Report NBSIR 78-1434, Laboratório

Associado de Computação e Matemática Aplicada, Instituto Nacional de

Pesquisas Espaciais, São José dos Campos, SP, 2002.

[17] MINGOZZI, A., BOSCHETTI, M., RICCIARDELLI, S., et al. “A set Partiti-

oning Approach to the Crew Scheduling Problem”, Journal International

of Operations Research, v. 47, n. 6, pp. 873–888, dez. 1999.

[18] MÉLLO, F. G. A., SENNE, E. L. F., LORENA, L. A. N. “Uma abordagem para

solução do Problema de Escalonamento de Motoristas”, Revista Produção,

v. 8, n. 3, pp. 1–18, 2008.

44

Page 55: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

[19] D.HUISMAN, R.JANS, M.PEETERS, et al. “Column Generate”. In: Combi-

ning Generation and Lagrangian Relaxation, v. 5, GERAD, Springer, pp.

247–270, 2005.

[20] CAVIQUE, L., REGO, C., TEMIDO, I. “New Heuristic Algorithms for the Crew

Scheduling Problem”, Journal International of the Applicated Mathmatics,

v. 42, n. 1, pp. 37–47, fev. 1998.

[21] DIAS, T., SOUSA, J., CUNHA, J. A Genetic Algorithm for the Bus Driver

Scheduling Problem. In: Report NBSIR 78-1434, Faculdade de Engenha-

ria, Universidade do Porto, Porto, 2001.

[22] CASIMIRO, J. Modelos e Algoritmos para o Problema de Alocação de Tripu-

lação em Redes de Transporte. Dissertação de M.Sc., Programa de Pós-

Graduação em Ciência da Computação, Universidade Federal de Minas

Gerais, Belo Horizonte, MG, Brasil, 2005.

[23] E.DANNA, C.LAPAPE. “Column Generate”. In: Branch and Prince Heuristics:

A case Study on the Vehicle Routing Problem With Time Windows, v. 5,

GERAD, Springer, pp. 99–129, 2005.

[24] PRATA, B. A. “Programação Integrada de Veículos e Motoristas: Uma visão

geral”, Revista Eletrônica Sistemas & Gestão, v. 4, n. 3, pp. 182–204, 2009.

[25] MÖLLER, J. Seminar on Algorithms and Models for Railway Optimization

Crew Scheduling. In: Report NBSIR 78-1434, Depatamento de Computa-

ção Científica, Universidade de Konstanz, Konstanz, 2002.

[26] FRELING, R., HUISMAN, D., WAGELMANS, A. “Models and Algorithms for

Integration of Vehicle and Crew Scheduling”, Journal of Scheduling, v. 6,

n. 2, pp. 63–85, jan. 2003.

[27] FISCHETTI, M., LODI, A., MARTELLO, S., et al. “A Polyhedral Approach

to Simplified Crew Scheduling and Vehicle Scheduling Problems”, Mana-

gement Science, v. 47, n. 6, pp. 833–850, 2001.

[28] VALOUXIS, C., HOUSOS, E. “Combined bus and driver scheduling”, Compu-

ters and Operation Research, v. 29, n. 1, pp. 243–259, 2000.

[29] R.PORTUGAL, H.R.LOURENÇO, J.P.PAIXÃO. Driver Scheduling Problem

Modelling. In: Report JEL C60-C61, UPF-Universitat Pompeu Fabra,

Barcelona, 2006.

45

Page 56: UM ALGORITMO HÍBRIDO PARA A SOLUÇÃO DE PROBLEMAS DE …objdig.ufrj.br/60/teses/coppe_m/AlanDeFreitas.pdf · de Freitas, Alan Um Algoritmo Híbrido para a Solução de Problemas

[30] PIMENTEL, A. Uma abordagem Heurística para a Solução de Problemas de

Recobrimento de Conjuntos de Grande Porte com Aplicação à Alocação de

Tripulações para Companhias Aéreas. Tese de D.Sc., COPPE - Engenharia

de Sistemas e Computação/UFRJ, Rio de Janeiro, RJ, Brasil, 2005.

[31] SILVA, G., SOUZA, M., REIS, J. Um Método Exato para Otimizar a Escala de

Motoristas e Cobradores do Sistema de Transporte Público. In: Report

NBSIR 78-1434, Universidade Federal de Ouro Preto, Ouro Preto, MG,

2004.

[32] A.WREN, J.M.ROUSSEAU. Bus Driver Scheduling - An overview. VIth Inter-

national Workshop on Computer Aided Scheduling of Public Transport,

Lisbon, Portugal 93.31, 1993.

[33] MAPA, S. Redução de Custos de Programação Diária de Tripulação de Ôni-

bus Urbano via Metaheurística. Monografia de graduação, Departamento

de Engenharia de Produção, Universidade Federal de Ouro Preto, Ouro

Preto, MG, Brasil, 2004.

[34] SILVA, G. P., SOUZA, M. J. F., ATZINGEN, J. V. “Métodos Exatos para

Resolver o Problema de Programação da Tripulação”, Transportes, v. 14,

n. 1, pp. 25–32, jun. 2006.

[35] N.M.FILHO, M.H.C.FAMPA. Otimização Linear. 2 ed. Brasília, Brasil, Editora

UnB, 2006.

[36] BUENO, E. Geração de Colunas em Problemas de Otimização Combinató-

ria. Dissertação de M.Sc., COPPE - Engenharia de Sistemas e Computa-

ção/UFRJ, Rio de Janeiro, RJ, Brasil, 2005.

[37] SCHIJVER, A. Theory of Linear and Integer Programming. 2 ed. New York,

Wiley Sons INC, 1986.

[38] WOLSEY, L. A. Integer Programming. 2 ed. New York, Wiley Sons, INC,

1998.

[39] L.S.LASDON. Optimization Theory for Large Systems. 2 ed. New York, MAC-

MILLIAN, 1970.

[40] S.IRNICH, G.DESAULNIERS. “Column Generate”. In: Shortest Path Problems

With Resource Constraints, v. 5, GERAD, Springer, pp. 33–65, 2005.

[41] ROSEN, K. H. A Java Library Graph Algorithms and Optimization. 2 ed. New

York, Taylor and Francis Group, 2007.

46