• Nenhum resultado encontrado

O uso da heurística Adaptive Large Neighborhood Search para resolver o Problema de Programação de Tripulações do Transporte Público

N/A
N/A
Protected

Academic year: 2018

Share "O uso da heurística Adaptive Large Neighborhood Search para resolver o Problema de Programação de Tripulações do Transporte Público"

Copied!
105
0
0

Texto

(1)

Leandro do Carmo Martins

O uso da heurística

Adaptive Large

Neighborhood Search

para resolver o Problema

de Programação de Tripulações do Transporte

Público

(2)

O uso da heurística

Adaptive Large Neighborhood Search

para resolver o Problema de Programação de Tripulações

do Transporte Público

Proposta de Dissertação apresentada ao curso de Pós-Graduação em Ciência da Computa-ção da Universidade Federal de Ouro Preto como requisito parcial para a obtenção de grau de Mestre em Ciência da Computação.

Universidade Federal de Ouro Preto – UFOP

Instituto de Ciências Exatas e Biológicas – ICEB

Departamento de Computação - DECOM

Orientador: Gustavo Peixoto Silva

(3)

Catalogação: www.sisbin.ufop.br M386u Martins, Leandro do Carmo.

O uso da heurística Adaptive Large Neighborhood Search para resolver o Problema de Programação de Tripulações do Transporte Público [manuscrito] / Leandro do Carmo Martins. - 2017.

104f.: il.: color; grafs; tabs.

Orientador: Prof. Dr. Gustavo Peixoto Silva.

Dissertação (Mestrado) - Universidade Federal de Ouro Preto. Instituto de Ciências Exatas e Biológicas. Departamento de Computação. Programa de Pós-Graduação em Ciência da Computação.

Área de Concentração: Ciência da Computação.

1. Programação heuristica - Adaptive Large Neighborhood Search. 2. Programação de tripulações. 3. Transporte público. I. Silva, Gustavo Peixoto. II. Universidade Federal de Ouro Preto. III. Titulo.

(4)
(5)

Agradecimentos

Primeiramente, agradeço a Deus por mais uma conquista.

Agradeço à minha mãe, à minha tia Carmen e à minha avó Zinha (in memoriam) pelo amor e incentivos dados. À minha irmã Renatha pela fraternidade e companhia, juntamente à amiga Mariana Trevisan. Ao meu avô Carlito (in memoriam) pelo carinho e prontidão a ajudar. À minha prima Marcela por sempre acreditar em mim e me encorajar, e à minha prima Marina Carias por também fazer parte disso.

Ao meu melhor amigo, Rafael Teixeira, agradeço pela companhia, momentos vividos e conselhos, juntamente à amiga Marina Néri. Às amigas Vivi e Olívia também pela atenção e companhia. Ao amigo Darlan pelos incentivos, encorajamentos e carinho. À amiga Samara que, ainda longe, sempre esteve disposta a me ouvir. Aos colegas da pós-graduação, em especial os amigos Dênis e Sirlene, por terem tornado o mestrado mais divertido.

À Mariana Lanna pela prontidão e eficiência ao desempenhar seu papel de secretária sempre em harmonia e alegria. Agradeço ao corpo Docente da Universidade Federal de Ouro Preto por, mais uma vez, ser a base de minha formação. Também agradeço à UFOP e à CAPES pelo financimento destes dois anos de pesquisa.

Sinceros e longos agradecimentos ao meu orientador Gustavo Peixoto Silva por desempenhar tão bem este papel em mais uma etapa profissional concluída. Foram quase 4 anos de muito aprendizado, sabedoria e trocas de experiência.

(6)

Search

para resolver o Problema de Programação de

Tripulações do Transporte Público

Resumo

Este trabalho propõe o desenvolvimento da heurística Adaptive Large Neighborhood Search

(ALNS) para resolver o Problema de Programação de Tripulações (PPT) do Sistema de Transporte Público. O PPT consiste em determinar o número mínimo de tripulações necessário para conduzir todas as viagens previstas na programação dos veículos, definida anteriormente. Os dados de entrada do PPT são as viagens a serem realizadas por cada veículo da frota em operação, definida na etapa anterior, assim como as regras operacionais da empresa, as leis trabalhistas e os acordos vigentes para a categoria. A solução deste problema é um conjunto de sequências de viagens. Cada sequência é uma jornada de trabalho, ou seja, a programação das atividades a serem executadas por uma dada tripulação ao longo de um dia de trabalho. As jornadas devem satisfazer as leis trabalhistas, os acordos sindicais e ainda as regras operacionais da empresa. Como o problema é NP-difícil, casos reais de grande porte são normalmente resolvidos por metaheurísticas. A heurística ALNS tem como objetivo minimizar os custos fixos e variáveis de uma programação completa das tripulações, satisfazendo todas as restrições mencionadas. Os custos fixos são representados pelo número de jornadas (tripulações) e os custos variáveis são calculados em função do total de horas extras e do número de duplas pegadas. A ALNS inicia sua busca a partir de uma solução viável e opera com diferentes métodos de “destruição” e “reparo” da solução corrente para obter uma solução de melhor qualidade. Inicialmente, um peso é atribuído a cada método de destruição e reparo. Estes pesos são ajustados dinamicamente, baseados no desempenho de cada método ao longo da busca, com o intuito de encontrar o par de métodos mais eficiente. Vários métodos diferentes de destruição e reparo tem sido propostos na literatura para resolver o Problema de Roteamento de Veículos. Alguns destes métodos clássicos foram adaptados ao PPT e outros foram propostos pela primeira vez neste trabalho. A heurística foi implementada e testada com dados reais de várias empresas que operam na região metropolitana da cidade de Belo Horizonte, MG. Os parâmetros foram refinados e os resultados obtidos superaram alguns métodos da literatura e a solução adotada pela empresa.

Palavras-chave: 1. Problema de Programação de Tripulações 2. Programação de

(7)

The use of Adaptive Large Neighborhood Search

heuristic for solving the Crew Scheduling Problem for

Public Transportation System

Abstract

This dissertation proposes the development of Adaptive Large Neighborhood Search (ALNS) heuristic to solve the Crew Scheduling Problem (CSP) from Public Transportation Systems. The CSP consists of determining a minimum number of crews required to conduct all planned trips in the vehicle scheduling, previously defined. The CSP input data are the trips to be performed by each vehicle in the fleet in operation, defined in the previous step, as well as the company’s operating rules, labor laws and existing agreements for the category. The solution of this problem is a sequence set of drivers’ activities. Each sequence is called a work shift, that is, a schedule of the activities to be performed by a crew member over a working day. The shifts must meet several requirements due to labor laws, union agreements and yet the operational rules of the company. Since the problem is NP-hard, real cases are usually solved through metaheuristics. The ALNS heuristic has as objective to minimize fixed and variable costs of a complete schedule, satisfying all the constraints mentioned above. The fixed costs are represented by the number of shifts, and the variable costs are calculated depending on the overtime and split duties amount. The ALNS starts from a feasible solution and operates with different methods of “destruction” and “repair” of the current solution aiming to get a better solution. A weight is initially assigned to each destroy and repair methods. Those weights are dynamically adjusted based on the performance of each method along the search aiming to find the most efficient pair of methods. Several different destroy and repair operators have been proposed in the literature to solve the Vehicle Routing Problem. In this work, some classical methods were adapted to the CSP, and others methods were proposed for the first time. The implementation was tested with real data from several companies operating in a metropolitan area of Belo Horizonte city, in Brazil. The parameters were tuned and the results outperformed some methods of literature and the solution adopted by the company.

Keywords: 1. Crew Scheduling Problem 2. Scheduling 3. Adaptive Large Neighborhood

(8)

Figura 1 – Etapas do Planejamento e Operação do Sistema de Transporte Público

Urbano . . . 16

Figura 2 – Estrutura de uma tarefa para o PPT . . . 19

Figura 3 – Estrutura de uma jornada para o PPT . . . 20

Figura 4 – Modelo de composição de uma jornada . . . 20

Figura 5 – Estrutura de uma solução para o PPT . . . 21

Figura 6 – Representação da solução para o PPT . . . 42

Figura 7 – Processo de seleção da roleta . . . 48

Figura 8 – FO Média e melhor FO obtidas para cada peso de t0 no dia útil . . . . 58

Figura 9 – FO Média e melhor FO obtidas para cada peso det0 no sábado e domingo 58 Figura 10 – FO Média e melhor FO obtidas para cada valor de ξ na segunda-feira e terça-feira . . . 60

Figura 11 – FO Média e melhor FO obtidas para cada valor de ξ na quarta-feira e quinta-feira . . . 61

Figura 12 – FO Média e melhor FO obtidas para cada valor de ξ na sexta-feira . . 61

Figura 13 – FO Média e melhor FO obtidas para cada valor de ξ no sábado e domingo 61 Figura 14 – FO Média e melhor FO obtidas para cada valor de r na segunda-feira e terça-feira . . . 63

Figura 15 – FO Média e melhor FO obtidas para cada valor de r na quarta-feira e quinta-feira . . . 64

Figura 16 – FO Média e melhor FO obtidas para cada valor de r na sexta-feira . . 64

Figura 17 – FO Média e melhor FO obtidas para cada valor de r no sábado e domingo 64 Figura 18 – Evolução da qualidade das soluções obtidas ao calibrar sequencialmente os parâmetrost0, ξ e r . . . 65

Figura 19 – FO Média e melhor FO obtidas para cada valor de η na segunda-feira e terça-feira . . . 75

Figura 20 – FO Média e melhor FO obtidas para cada valor de η na quarta-feira e quinta-feira . . . 76

Figura 21 – FO Média e melhor FO obtidas para cada valor de η na sexta-feira . . 77

Figura 22 – FO Média e melhor FO obtidas para cada valor de ηno sábado e domingo 77 Figura 23 – Uso de cada par (hr, hi) de heurísticas no problema da quinta-feira . . 86

Figura 24 – Uso de cada par (hr, hi) de heurísticas no problema do sábado . . . 87

(9)

Lista de tabelas

Tabela 1 – Quantidade de tarefas a serem executadas nos dias úteis, sábados e

domingos pela empresa G00 . . . 55

Tabela 2 – Caracterização dos resultados obtidos para 100%, 50%, 25%, 12,50%, 6,25% do valor de t0 na execução da ALNS para os dias úteis (DU), sábados (SAB) e domingos/feriados (DOM) . . . 57

Tabela 3 – Caracterização dos resultados obtidos para 3,125%, 1,563%, 0,781% e 0,391% do valor de t0 na execução da ALNS para os dias úteis (DU), sábados (SAB) e domingos/feriados (DOM) . . . 58

Tabela 4 – Caracterização dos resultados obtidos para cada valor do parâmetro ξ na execução da ALNS para os dias úteis (SEG, TER, QUA, QUI, SEX), sábados (SAB) e domingos/feriados (DOM) . . . 60

Tabela 5 – Caracterização dos resultados obtidos para cada valor do parâmetro r na execução da ALNS para os dias úteis (SEG, TER, QUA, QUI, SEX), sábados (SAB) e domingos/feriados (DOM) . . . 63

Tabela 6 – Valores definidos para os parâmetros ξ, t0, c,α,β, pshaw, ppior, σ1, σ2, σ2 e r nos problemas dos dias úteis e do fim de semana . . . 67

Tabela 7 – Diferentes tratamentos para os problemas dos dias úteis e fim de semana 68 Tabela 8 – Valor do valor-p retornado pelo teste de Kruskal-Wallis para cada dia da semana . . . 69

Tabela 9 – Posto médio e grupo de cada tratamento da segunda-feira . . . 70

Tabela 10 – Posto médio e grupo de cada tratamento da terça-feira . . . 71

Tabela 11 – Posto médio e grupo de cada tratamento da quarta-feira . . . 71

Tabela 12 – Posto médio e grupo de cada tratamento da quinta-feira . . . 72

Tabela 13 – Posto médio e grupo de cada tratamento da sexta-feira . . . 72

Tabela 14 – Posto médio e grupo de cada tratamento do sábado . . . 73

Tabela 15 – Posto médio e grupo de cada tratamento do domingo . . . 73

Tabela 16 – Tratamentos selecionados e seus respectivos valores para os parâmetros ξ, t0, c, α, β, pshaw,ppior, σ1,σ2,σ2 e r nos problemas dos dias úteis e do fim de semana . . . 74

Tabela 17 – Caracterização dos resultados obtidos para cada valor do parâmetro η na execução da ALNS para os dias úteis (SEG, TER, QUA, QUI, SEX), sábados (SAB) e domingos/feriados (DOM) . . . 76

Tabela 18 – Valores definidos para os parâmetros ξ, t0, c,α,β, pshaw, ppior, σ1, σ2, σ2, r e η nos problemas dos dias úteis e do fim de semana . . . 77

(10)

detalhamento para os dias úteis, sábado e domingo da empresa G00 nos quatro cenários distintos considerados, obtidos pela ALNS sem a

aplicação do ruído . . . 79 Tabela 21 – FO média, Desvio P (%), valor da FO da melhor solução obtida e seu

detalhamento para os dias úteis, sábado e domingo da empresa G00 nos quatro cenários distintos considerados, obtidos pela ALNS com a

aplicação do ruído . . . 79 Tabela 22 – Comparação dos resultados obtidos pela ALNS com as soluções obtidas

pelos métodos GRASP, VNS-VLSN, Matheurística, GLS e com a solução adotada pela empresa, no cenário 1T V600 . . . 80 Tabela 23 – Comparação dos resultados obtidos pela ALNS com as soluções obtidas

pelos métodos VNS-VLS, Matheurística, GLS e com a solução adotada pela empresa, no cenário 1T V5.000 . . . 82 Tabela 24 – Comparação dos resultados obtidos pela ALNS com as soluções obtidas

pelos métodos GRASP, VNS-VLNS e com a solução adotada pela empresa, no cenário 2T V600 . . . 83 Tabela 25 – Comparação dos resultados obtidos pela ALNS com as soluções obtidas

pelo método VNS-VLNS e com a solução adotada pela empresa, no cenário 2T V5.000 . . . 84 Tabela 26 – Custo das melhores soluções obtidas nos cenários 1T V600 e 2T V600 com

a aplicação de ruído . . . 85 Tabela 27 – Custo das melhores soluções obtidas nos cenários 1T V5.000 e 1T V5.000

com a aplicação de ruído . . . 85 Tabela 28 – Índices das heurísticas de remoção e inserção de tarefas . . . 86 Tabela 29 – Quantidade de tarefas de cada problema para as empresas G02, G27,

G46, G48, G61, G69, G99 e G115 . . . 89 Tabela 30 – FO média, Desvio P (%), valor da FO da melhor solução obtida e seu

detalhamento para os dias úteis (DU), sábado (SAB) e domingo (DOM) das empresas G02, G27, G46, G48, G61, G69, G99 e G115, nos cenários 1T V600 e 1T V5.000 . . . 90 Tabela 31 – FO média, Desvio P (%), valor da FO da melhor solução obtida e seu

detalhamento para os dias úteis (DU), sábado (SAB) e domingo (DOM) das empresas G02, G27, G46, G48, G61, G69, G99 e G115, nos cenários 2T V600 e 2T V5.000 . . . 91 Tabela 32 – FO média, Desvio P (%) e o valor da FO da melhor solução obtida para

(11)

Tabela 33 – FO média, Desvio P (%) e o valor da FO da melhor solução obtida para os dias úteis, sábado e domingo com os respectivos valores de ξ

selecionados . . . 97 Tabela 34 – FO média, Desvio P (%) e o valor da FO da melhor solução obtida para

os dias úteis, sábado e domingo com o valor de r selecionado . . . 97

Tabela 35 – Caracterização dos resultados obtidos pelos tratamentos T1, ..., T6 na execução da ALNS para os dias úteis (SEG, TER, QUA, QUI, SEX), sábados (SAB) e domingos/feriados (DOM) . . . 98 Tabela 36 – Caracterização dos resultados obtidos pelos tratamentos T7, ..., T12 na

execução da ALNS para os dias úteis (SEG, TER, QUA, QUI, SEX), sábados (SAB) e domingos/feriados (DOM) . . . 99 Tabela 37 – Caracterização dos resultados obtidos pelos tratamentos T13, ..., T18 na

(12)

ALNS Adaptive Large Neighborhood Search

AG Algoritmo(s) Genéticos(s)

BAP Berth Allocation Problem

BPC AlgoritmoBranch-price-and-cut

CCVRP Cumulative Capacitated Vehicle Routing Problem

DOM Domingo

DP Dupla(s) Pegada(s)

DU Dias Úteis

FO Função Objetivo

GLS Guided Local Search

GRASP Greedy Randomized Adaptive Search Procedure

HE Horas Extras

ID Identificador Único

ILS Iterated Local Search

LAHC Late Acceptance Hill Climbing

LNS Large Neighborhood Search

MDVSP Multiple Depot Vehicle Scheduling Problem

OT Oportunidade de Troca

PCC Problema de Cobertura de Conjunto

PDPTW Pickup and Delivery Problem with Time Windows

PESA-II Pareto Envelope-based Selection Algorithm II

PRT Problema de Rodízio de Tripulações

(13)

PPT Problema de Programação de Tripulações

PPV Problema de Programação de Veículos

QUA Quarta-feira

QUI Quinta-feira

SAB Sábado

SEG Segunda-feira

SEX Sexta-feira

RCSPP Resource-Constrained Shortest Path Problem

SCP Set Covering Problem

SPP Set Partitioning Problem

STRSP Service Technician Routing and Scheduling Problem

TER Terça-feira

VLNS Very Large-Scale Neighborhood Search

VND Variable Neighborhood Descent

VNS Variable Neighborhood Search

(14)

1 INTRODUÇÃO . . . 15

1.1 Objetivos Gerais . . . 17

1.2 Objetivos Específicos . . . 18

1.3 Organização do Trabalho . . . 18

2 PROBLEMA DE PROGRAMAÇÃO DE TRIPULAÇÕES . . . 19

2.1 Restrições do Problema . . . 21

2.2 Função Objetivo . . . 22

2.3 Modelos Matemáticos . . . 23

2.3.1 Problema de Particionamento de Conjunto. . . 23

2.3.2 Modelo Compacto . . . 24

2.3.2.1 Parâmetros e Conjuntos . . . 24

2.3.2.2 Variáveis de Decisão . . . 25

2.3.2.3 Conjunto de Restrições . . . 25

2.3.2.4 Funções Objetivo . . . 28

2.4 Considerações Finais . . . 28

3 REVISÃO BIBLIOGRÁFICA . . . 30

3.1 Métodos Exatos para Resolver o PPT. . . 30

3.2 Metaheurísticas para Resolver o PPT . . . 32

3.3 Métodos Híbridos para Resolver o PPT . . . 35

3.4 Algumas Aplicações da Heurística ALNS . . . 36

3.5 Considerações Finais . . . 39

4 ADAPTIVE LARGE NEIGHBORHOOD SEARCH APLICADA AO PPT . . . 41

4.1 Representação da Solução. . . 42

4.2 Solução Inicial. . . 42

4.3 Heurísticas Destrutivas . . . 43

4.3.1 Remoção Aleatória . . . 43

4.3.2 Remoção de Pior Posição . . . 43

4.3.3 Remoção Shaw . . . 44

4.3.4 Remoção Média. . . 45

4.4 Heurísticas Construtivas . . . 45

4.4.1 Inserção Gulosa . . . 46

(15)

4.5 Escolha das Heurísticas de Remoção e Inserção . . . 47

4.6 Ajuste Adaptativo de Peso . . . 48

4.7 Critério de Aceitação . . . 49

4.8 Aplicação de Ruído na Função Objetivo. . . 51

4.9 Método para Minimizar o Número de Jornadas . . . 51

4.10 Algoritmo . . . 52

5 EXPERIMENTOS COMPUTACIONAIS . . . 54

5.1 Ambiente Computacional . . . 54

5.2 Dados de Entrada . . . 54

5.3 Definição dos Parâmetros . . . 55

5.3.1 Calibragem dos Parâmetros . . . 56

5.3.1.1 Calibragem da Temperatura Inicial . . . 56

5.3.1.2 Calibragem da Quantidade de Tarefas . . . 59

5.3.1.3 Calibragem do Fator de Reação . . . 62

5.3.2 Evolução da Qualidade das Soluções . . . 65

5.3.3 Demais Parâmetros . . . 66

5.3.4 Refinamento da Calibragem . . . 67

5.4 Introdução do Ruído . . . 75

5.4.1 Calibragem do Ruído . . . 75

5.5 Configurações Definidas . . . 77

5.6 Testes de Desempenho . . . 78

5.6.1 Análise e Comparação dos Resultados . . . 78

5.6.2 Estatística de Uso das Heurísticas . . . 85

5.7 Novos Dados de Entrada . . . 88

6 CONCLUSÕES E TRABALHOS FUTUROS . . . 92

A RESULTADOS COMPLEMENTARES . . . 96

A.1 Testes com Dados de Entrada da Empresa G00 . . . 96

A.1.1 Testes de Calibragem . . . 96

A.1.2 Testes deKruskal-Wallis e Dunn . . . 96

B PUBLICAÇÕES . . . 101

(16)

1 Introdução

A operação do Sistema de Transporte Público apresenta diversas situações nas quais surgem problemas de otimização de natureza combinatória. Uma empresa de ônibus urbano, por exemplo, normalmente deve realizar um conjunto de viagens, com horários pré-determinados, associadas às diferentes linhas sob sua responsabilidade. O planejamento e a operação deste sistema é um processo complexo e dividido em etapas, que envolve tanto a empresa responsável pela prestação do serviço de transporte público quanto os governos municipais, e é composto, geralmente, por cinco etapas, que são:

1. Definição das linhas, os seus traçados e os pontos de embarque/desembarque;

2. Criação dos quadros de horários de cada linha para os diferentes tipos de dia: dia útil, sábado e domingo/feriado;

3. Programação de veículos para cada tipo de dia;

4. Programação de tripulações para cada tipo de dia; e

5. Escala mensal de trabalho de cada tripulação, ou o rodízio de tripulações.

Na primeira e segunda etapas do planejamento devem ser definidas as características das linhas de operação e seus traçados, bem como a criação do quadro de horário das linhas para os dias úteis, sábados e domingos/feriados. Nessas etapas são definidas as rotas das linhas necessárias para cobrir a demanda de uma determinada região, os pontos de parada de cada rota, assim como o horário de partida das viagens de cada linha, ao longo do dia.

Na terceira etapa do planejamento é realizada a alocação dos veículos que realizarão as viagens das linhas sob a responsabilidade de uma dada empresa. Este problema, conhecido como Problema de Programação de Veículos (PPV), consiste em definir a quantidade mínima de veículos necessária para que todas as viagens previstas no quadro de horários das linhas sejam realizadas, e ainda reduzir as viagens ociosas e o tempo ocioso dos veículos nos terminais.

(17)

Capítulo 1. Introdução 16

seja, de duplas de motoristas e cobradores, quando for o caso, e também minimizar o total de horas extras contidas na solução.

Por fim, a última etapa do planejamento do Sistema de Transporte Público Urbano consiste em definir as escalas mensais das tripulações, de modo que todas as jornadas de trabalho sejam cobertas e que as regras operacionais e trabalhistas sejam satisfeitas. Ao resolver esse problema, denominadoProblema de Rodízio de Tripulações(PRT), pretende-se diminuir o número total de tripulantes, assim como compensar horas extras com horas ociosas da escala mensal, com a utilização do Banco de Horas, previsto em lei.

Dentre as etapas do planejamento, ficam sob a responsabilidade das empresas a programação de veículos, a programação de tripulações e o rodízio de tripulações, enquanto a definição das linhas e dos quadros de horários, normalmente, é de responsabilidade do poder público. Neste contexto, as empresas de transporte público devem executar, regularmente, um conjunto de viagens contidas no quadro de horários das linhas. Devido à variação da demanda diária por viagens, é definido um quadro de viagens para os dias úteis, um para os sábados e outro para os domingos/feriados (MAYRINK; SILVA, 2013). A Figura 1 apresenta as etapas do planejamento, assim como o órgão responsável pela definição de cada uma delas.

Figura 1 – Etapas do Planejamento e Operação do Sistema de Transporte Público Urbano

(18)

de controle quanto resolver problemas de alocação de seus recursos (EVANGELISTA et al., 2014).

Os problemas envolvidos no planejamento e operação do Sistema de Transporte Público afetam diretamente uma grande parcela da população brasileira que reside nos centros urbanos, uma vez que é intensa a utilização do transporte coletivo por ônibus urbanos no Brasil. Assim, uma melhoria na eficiência desse serviço pode acarretar menores custos e, consequentemente, diminuir a pressão sobre o aumento das tarifas, beneficiando tanto os usuários desse serviço quanto o poder público. Nesse contexto é que se realça a importância de resolver eficientemente os problemas de otimização da frota e principalmente da escala diária e mensal das tripulações.

A importância de otimizar a frota se deve não apenas pela redução dos custos operacionais, mas também pela redução na emissão de gases poluentes com a queima de combustíveis fósseis. Por sua vez, a otimização da escala se deve ao fato de que a parcela de maior peso nos custos das empresas é composta pela remuneração da mão-de-obra operacional (motoristas e cobradores). Sendo assim, torna-se de extrema importância o estudo destes problemas e a difusão/utilização destas ferramentas na prática.

Este problema tem sido muito estudado e os modelos de otimização são utilizados por empresas em países mais desenvolvidos, sobretudo no Reino Unido (WREN, 2004). No entanto, a literatura mostra que o problema proposto é pouco explorado para casos brasileiros, embora este setor seja de fundamental importância no dia a dia de milhões de usuários. Desta forma, fica clara a importância de se estudar e divulgar os trabalhos desenvolvidos para auxiliar as empresas, os funcionários e, em última análise, os usuários do sistema de transporte público brasileiro.

1.1

Objetivos Gerais

(19)

Capítulo 1. Introdução 18

proporcionado, além da redução dos custos fixos e variáveis com a folha de pagamentos da empresa.

1.2

Objetivos Específicos

Os objetivos específicos desse trabalho são:

• Desenvolver a heurística Adaptive Large Neighborhood Search para resolver de forma eficiente o Problema de Programação de Tripulações;

• Implementar a heurística adaptada às características do PPT;

• Propor contribuições no desenvolvimento e aplicação da heurística ao problema

tratado;

• Calibrar os parâmetros de forma que a heurística seja capaz de encontrar boas soluções;

• Resolver problemas com dados e regras operacionais reais; e

• Avaliar os resultados obtidos e compará-los aos resultados gerados por diferentes

métodos da literatura e à solução adotada pelas empresas.

1.3

Organização do Trabalho

(20)

2 Problema de Programação de Tripulações

O Problema de Programação de Tripulações consiste em determinar o número mínimo de tripulações (motorista e cobradores) e atribuir todas as viagens que devem ser executadas por uma empresa, em um determinado dia, às respectivas jornadas de trabalho. Essa atribuição é realizada de modo que: i) cada viagem seja atribuída a uma única jornada, ii) cada jornada respeite as regras impostas à sua definição, e iii) o total de horas extras seja minimizado.

O PPT tem como dados de entrada a programação dos veículos, previamente definida, para um determinado tipo de dia, que pode ser um dia útil, um sábado ou um domingo/feriado. A programação dos veículos define os blocos dos veículos, ou seja, o conjunto das viagens a serem executadas por cada veículo da frota. Os blocos são divididos em tarefas, que são um conjunto de viagens consecutivas que devem ser executadas pela mesma tripulação, visto que não há condições suficientes entre essas viagens para que haja a troca da tripulação. As condições necessárias para a troca de duas tripulações definem uma oportunidade de troca (OT), que consiste em um intervalo de tempo mínimo entre duas viagens (tempo de troca), o qual deve ocorrer em um local apropriado para a realização da troca (ponto de troca) (SILVA; SOUZA; ATZINGEN, 2006). As tarefas são caracterizadas por um local inicial e final, e um horário de início e de término, que representam onde e quando as tarefas devem ser inicializadas e finalizadas. Além disso, as tarefas são caracterizadas por um veículo de operação e sua duração é dada pela diferença entre seu horário final e inicial. As tarefas também são identificadas pelo seu identificador único (ID). O local inicial e final, o veículo de operação e o identificador das tarefas são representados por um número inteiro. Na Figura 2 é apresentada a estrutura adotada para representar uma tarefa no contexto do PPT.

Figura 2 – Estrutura de uma tarefa para o PPT

(21)

Capítulo 2. Problema de Programação de Tripulações 20

de veículo, duração, quantidade de horas extras e ociosas, e se a jornada é simples ou do tipo dupla pegada. Ao contrário da jornada simples, uma jornada do tipo dupla pegada é aquela em que o trabalho é dividido, com intervalo superior a duas horas, entre a primeira e a segunda etapa de trabalho. Cada etapa é denominada pegada. Isso ocorre, geralmente, devido aos horários de pico de demanda por viagens, comuns no início e no final dos dias úteis. O intervalo superior a duas horas não é considerado como hora trabalhada e portanto não faz parte da remuneração. A duração de uma jornada simples é dada pela diferença entre seu horário de término e seu horário de início, enquanto a duração de uma jornada do tipo dupla pegada é dada pela diferença entre seu horário de término e seu horário de início subtraindo ainda o intervalo superior a duas horas que caracteriza a jornada de dupla pegada. Independente do tipo de jornada, as horas extras correspondem ao tempo trabalhado que excede seu tempo de duração normal. A Figura 3 apresenta a estrutura adotada para representar uma jornada no contexto do PPT e a Figura 4 representa seu modelo de composição.

Figura 3 – Estrutura de uma jornada para o PPT

Figura 4 – Modelo de composição de uma jornada

(22)

extras e ociosas, assim como a quantidade de jornadas do tipo dupla pegada. Como uma tripulação executa uma jornada, e uma jornada é executada por uma tripulação, existe uma equivalência entre os termos “jornada” e “tripulação” no contexto do PPT.

Figura 5 – Estrutura de uma solução para o PPT

2.1

Restrições do Problema

A construção das jornadas deve satisfazer um conjunto de restrições legais e operacionais, o que torna o PPT um problema de difícil solução. Na resolução do PPT, para o caso estudado, foram consideradas as seguintes restrições operacionais e trabalhistas:

• Todas as tarefas diárias devem ser cobertas pelas jornadas de trabalho. Cada tarefa deve pertencer a uma e somente uma jornada;

• As jornadas possuem remuneração fixa por seis horas e quarenta minutos de trabalho,

ou seja, o tempo normal de trabalho é de seis horas e quarenta minutos;

• As jornadas não podem ter mais que duas horas extras de trabalho por dia;

• O intervalo de tempo entre o fim de uma jornada e o seu início no dia seguinte deve ser de, pelo menos, onze horas. Esta situação permite a realização da mesma jornada em dias consecutivos de trabalho com um descanso mínimo, de um dia para o outro;

• A mudança de veículos, feita por uma tripulação durante a operação, pode acontecer somente em locais pré-determinados;

• O número de trocas de veículos em uma jornada é limitado e informado previamente;

e

• A troca de terminal é permitida quando, entre duas tarefas consecutivas, ocorre um

intervalo de tempo superior a 2 horas, caracterizando o regime de dupla pegada.

(23)

Capítulo 2. Problema de Programação de Tripulações 22

quantidade de jornadas, menor a quantidade de tripulações que deve ser contratada para a execução das tarefas, e quanto menor a quantidade de horas extras, menores serão os gastos extras com a mão-de-obra contratada.

2.2

Função Objetivo

Uma Função Objetivo (FO) associa a cada solução um valor real que representa a qualidade ou aptidão da solução. Considere ji, i= 1, ..., n, as jornadas de um conjunto

solução s, a serem realizadas durante um determinado dia. Então, o custo diário de

execução das jornadas é calculado pela expressão:

custo(s) = n X

i=1

CustoF ixo+whe×HEji +wdp×DPji (2.1)

O parâmetro CustoF ixo é um valor associado à manutenção de uma dupla no

quadro de funcionários da empresa, HEji é o tempo total (em minutos) de horas extras

da jornada de trabalho ji e DPji = 1 se a jornada ji for do regime de dupla pegada,

caso contrário DPji = 0. Os parâmetros CustoF ixo, whe e wdp são ajustados de tal

forma a adequar as soluções obtidas aos interesses operacionais das empresas. Assim, foi considerado um peso para as tripulações que realizam dupla pegada, como forma de controlar o número de jornadas deste tipo na solução. Este requisito deve-se à prática das empresas do setor, as quais afirmam que o número de jornadas do tipo dupla pegada não deve ultrapassar uma porcentagem do total de jornadas do dia. Tal restrição se deve ao fato de que as tripulações que fazem dupla pegada tem o direito de folgar aos domingos na etapa posterior do planejamento do Sistema de Transporte Público Urbano, denominado Rodízio das Tripulações.

O custo de uma solução do PPT, descrito da equação (2.1), foi avaliado considerando os seguintes valores para os parâmetros: CustoF ixo= 10.000, coeficiente de horas extras whe = 4 e, para o coeficiente de duplas pegadas, foram considerados os valoreswdp = 600 e wdp = 5.000, de modo que o método desenvolvido possa ser comparado com outros autores

(24)

2.3

Modelos Matemáticos

O processo de criação das jornadas de trabalho para resolver o PPT pode ser modelado como um Problema de Particionamento de Conjunto(PPC) ou um Problema de Cobertura de Conjunto (PCC), como é feito em abordagens clássicas. A escolha da modelagem a ser utilizada leva em consideração se uma viagem pode ou não ser executada (coberta) por mais de uma jornada. Tais modelos possibilitam a resolução de diversos problemas de alocação de funcionários por meio de técnicas de solução exata, como geração de colunas (DESROCHERS; SOUMIS, 1989) e branch and bound (SMITH; WREN, 1988).

2.3.1

Problema de Particionamento de Conjunto

Dado um conjunto de tarefas que devem ser executadas em um determinado dia, as jornadas são criadas de forma que cada tarefa pertença a uma e somente uma jornada, com o menor custo operacional possível. A seleção do subconjunto de jornadas que cubra todas as tarefas, modelada como um Problema de Particionamento de Conjunto, é apresentada abaixo:

M in n X

j=1

cjxj (2.2)

n X

j=1

aijxj = 1 ∀i= 1, ..., m (2.3)

xj ∈ {0,1} ∀j = 1,2, ..., n (2.4)

No modelo apresentado, o parâmetro n corresponde a quantidade de jornadas

consideradas no problema e o parâmetro m representa a quantidade de tarefas que devem

ser executadas. Cada jornada j tem um custo fixocj correspondente e a variável de decisão

binária xj tem valor igual a 1 se a jornada j faz parte da solução ou valor igual a 0, caso

contrário. As linhas da matriz representam as tarefas, enquanto as colunas representam o total de jornadas considerado. O elemento aij tem o valor 1 se a tarefa ifaz parte da

jornada j ou o valor igual 0, caso contrário, para i = 1, ..., m e j = 1, ..., n. A Função

Objetivo (2.2) minimiza o custo total das jornadas. As Restrições (2.3) garantem que cada tarefa pertença a uma única jornada na solução, e dessa forma, que seja executada uma única vez. E, por fim, as Restrições (2.4) definem o domínio das variáveis de decisão.

Ao permitir que uma tarefa seja coberta por mais de uma jornada, caracterizando a múltipla cobertura das tarefas, as Restrições (2.3) deve possibilitar que uma tarefa seja incluída em mais de uma jornada, garantida pela substituição do sinal de igualdade (=) pela desigualdade maior ou igual (≥). Dessa forma, o problema passa a ser modelado como

(25)

Capítulo 2. Problema de Programação de Tripulações 24

jornadas em relação a alguma tarefa, basta fazer a escolha da jornada que vai realizar a tarefa efetivamente.

2.3.2

Modelo Compacto

O PPC também é um problema NP-Completo e se torna inviável ao ser aplicado a instâncias reais, visto que possuem o conjunto de jornadas possíveis demasiadamente grande, o que impossibilita sua geração em tempo hábil. Um outro modelo de programação Matemática foi proposto por Souza (2014) para resolver o PPT. Neste modelo, apresentado nas Seções 2.3.2.1, 2.3.2.2 e 2.3.2.3, as jornadas são geradas durante sua execução, a partir das tarefas a serem alocadas e do conjunto de restrições que devem ser satisfeitas. Este modelo também tem sua eficiência comprometida para problemas de grande porte. Portanto, os autores propuseram uma Matheurística que combina o modelo matemático com a Metaheurística Late Acceptance Hill Climbing (LAHC) para resolver problemas de grande porte.

2.3.2.1 Parâmetros e Conjuntos

Dada a quantidade qt de tarefas a ser considerada no problema, ao resolver o PPT tem-se o conjunto de tarefas T, onde |T| = qt. O parâmetro qj define o número

máximo de jornadas na solução, que gera o conjunto de possíveis jornadas J, sendo

|J| =qj. Uma constante suficientemente grande M (big M) é utilizada na modelagem

de algumas restrições. A duração máxima de uma jornada de trabalho é representada pelo parâmetro T emp_M ax_J e a quantidade máxima de horas extras permitida em

uma jornada é representada pelo parâmetro T emp_M ax_HE. Os parâmetros Custo_J, Custo_HE e Custo_OC, e Custo_DP representam o custo fixo de uma jornada, os

custos variáveis referentes às horas extras e ociosas da jornada, e o custo de uma jornada caracterizada pelo regime de dupla pegada, respectivamente. A quantidade máxima de trocas de veículos realizadas em cada jornada e a quantidade máxima de jornadas de dupla pegada contidas na solução são controladas pelos parâmetros Quant_M ax_T V e Quant_M ax_DP, respectivamente. Os parâmetros Inter_M in_DP eInter_M in_T

representam o tempo de intervalo mínimo entre duas tarefas que caracteriza uma jornada de dupla pegada e o tempo mínimo de descanso/alimentação da tripulação durante a realização da jornada, respectivamente. Esse tempo de descanso mínimo é necessário apenas para jornadas do tipo pegada simples. Ressalta-se que os parâmetros descritos acima são valores inteiros e positivos.

Para cada tarefatT, tem-se seu horário de iníciostt e seu horário de términoett,

seu terminal de saída slt e seu terminal de chegadaelt, além de seu veículo de operaçãovct.

Dadas duas tarefast1et2 ∈T, a variável bináriaP os_T Vt1t2 identifica se é possível realizar

(26)

vct1 6= vct2, elt1 = slt2 e stt2 −ett1 > 0, ou P os_T Vt1t2 = 0, caso contrário. A variável

bináriaP os_DPt1t2 identifica se entre as duas tarefas consideradas existe um intervalo que

caracteriza a ocorrência de uma jornada do tipo dupla pegada. Assim, P os_DPt1t2 = 1 se

stt2 −ett1 > Inter_M in_DP, ou P os_DPt1t2 = 0, caso contrário.

2.3.2.2 Variáveis de Decisão

Ao modelar matematicamente o PPT, são necessárias as variáveis de alocação das tarefas às jornadas e algumas variáveis auxiliares para que sejam geradas soluções viáveis para o problema. As soluções viáveis devem satisfazer um conjunto de restrições, que são utilizadas para modelar as regras impostas às soluções do problema.

Seja jJ,tT e pP, onde J, T e P são os conjuntos de jornadas, tarefas e

posições das tarefas nas jornadas, respectivamente. A variável binária xjtp, que representa

a solução do problema, assume valor 1 se a tarefa tT for alocada na jornadajJ na

posição pP, caso contrário xjtp = 0. A variável yj é utilizada para identificar se existe

alguma tarefa alocada à jornada jJ. Assim, se yj = 1, a jornada jJ possui pelo

menos uma tarefa, ou yj = 0, caso contrário. A variável inij receberá o horário inicial da

jornada jJ e a variável f imj receberá o horário final da jornadajJ. A ociosidade

interna de uma jornada jJ, dada pela soma dos intervalos ociosos entre as tarefas alocadas, será atribuída à variável OC_intj e a variável OC_extj receberá a ociosidade

externa, que é dada pela quantidade de tempo necessária para completar a duração normal de uma jornada de trabalho. A variável Qnt_HEj receberá a quantidade de horas extras

da jornada jJ.

Considerando jJ, t1 e t2 ∈T, e p1 ep2 ∈P, a variávelT roca_Vjt1t2p1p2 verifica

se é efetuada uma troca de veículo entre as tarefas t1 e t2, localizadas nas posições p1 e p2 da jornada j. A variável DPjt1t2p1p2 verifica se o intervalo de tempo entre as tarefas t1 e

t2, localizadas nas posições p1 e p2 da jornada j, caracterizam o regime de dupla pegada, e a variável Duplaj define se uma jornada é do tipo dupla pegada ou não. A variável Desc_DPj recebe a duração do intervalo não remunerado que caracteriza o regime de

dupla pegada.

2.3.2.3 Conjunto de Restrições

As restrições legais e operacionais que devem ser satisfeitas também foram mo-deladas por Souza (2014). Elas estão definidas em blocos, conforme suas respectivas similaridades.

X

tT

(27)

Capítulo 2. Problema de Programação de Tripulações 26

X

jJ,pP

xjtp = 1,tT (2.6)

X

t1∈T

xjt1(p+1) ≤

X

t2∈T

xjt2p,jJ, pP − {1} (2.7)

yjxjtp,jJ, tT, pP (2.8)

As Restrições (2.5) garantem que em cada posição de uma jornada seja alocada uma única tarefa; as Restrições (2.6) garantem que cada tarefa seja alocada somente a uma jornada; as Restrições (2.7) garantem que as tarefas sejam alocadas às jornadas em posições contíguas, exceto a primeira posição; as Restrições (2.8) verificam se a jornada esta sendo utilizada ou não, definindo a variável yj = 1 se alguma tarefa for alocada a j, ouyj = 0 caso contrário. Os quatro conjuntos de restrições apresentadas garantem a

alocação das tarefas de maneira coerente, gerando soluções factíveis e que cubram todas as tarefas que devem ser executadas.

inij = X

tT

sttxjt1,jJ (2.9)

f imjettM(1−xjtp),jJ, tT, pP (2.10)

P os_DPt1t2 +xjt1p

+xjt2(p+1)−DPjt1t2p(p+1) ≤ 2,jJ, t1, t2 ∈T, pP −1 (2.11)

DPjt1t2p(p+1) ≤ xjt1p,jJ, t1, t2 ∈T, pP −1, t2 > t1 (2.12)

DPjt1t2p(p+1) ≤ xjt2(p+1),jJ, t1, t2 ∈T, pP −1, t2 > t1 (2.13)

DPjt1t2p(p+1) = 0,jJ, t1, t2 ∈T, pP −1, P os_DPt1t2 = 0(2.14)

X

t1,t2∈T,pP−1

DPjt1t2p(p+1) ≤ 1,jJ (2.15)

Duplaj =

X

t1,t2∈T,pP−1

DPjt1t2p(p+1),jJ (2.16)

X

jJ

DuplajQnt_M ax_DP (2.17)

Desc_DPj =

X

t1,t2∈T,pP−1

DPjt1t2p(p+1)×(stt2 −ett1),jJ (2.18)

f imjinijDesc_DPjT emp_M ax_J+T emp_M ax_HE,jJ (2.19)

f imjinij ≤ 780,jJ (2.20)

As Restrições (2.9) e (2.10) são responsáveis por definir o horário de início e de término das jornadas, utilizados em outras restrições de forma a garantir a consistência temporal das soluções. As Restrições (2.11)–(2.18) identificam e calculam o intervalo das jornadas do tipo dupla pegada, sendo que as Restrições (2.11) verificam se duas tarefas são executadas em ordem consecutiva, e se entre elas ocorre uma dupla pegada. Em caso afirmativo, a variável DPjt1t2p(p+1) recebe o valor 1 indicando que a jornada j possui uma

(28)

As Restrições (2.12) e (2.13) garantem queDP = 1 se as tarefas t1 e t2 foram alocadas àquela jornada. O conjunto de Restrições (2.14) garante que se duas tarefast1 et2 não são candidatas a dupla pegada, então a variável DPjt1t2p(p+1) nunca receberá valor 1 para estas

tarefas. As Restrições (2.15) garantem que cada jornada pode ter, no máximo, um intervalo de tempo que caracterize a jornada como do tipo dupla pegada. As Restrições (2.16) verificam se existe dupla pegada em uma jornada, atribuindo o valor 1 à variável Duplaj,

ou 0 caso contrário. Em (2.17) o número total de jornadas de dupla pegada na solução é limitado pelo parâmetro Qnt_M ax_DP, e em (2.18) é atribuído o valor do intervalo da

dupla pegada à variável Desc_DPj, de modo que seja desconsiderado na duração e no

cálculo da remuneração da jornada. As Restrições (2.19) garantem que nenhuma jornada pode ultrapassar o tempo máximo de trabalho permitido, acrescido das horas extras. As Restrições (2.20) garantem que o tempo entre o final da jornada e seu início no dia seguinte seja superior a 11 horas.

OC_extjyj×T emp_M ax_J−(f imjinijDesc_DPj),jJ (2.21)

OC_intj ≥ (f imjinijDesc_DPj)− X

tT,pP

(ettstt)xjtp,jJ (2.22)

OC_intj ≥ (1−DuplajInter_M in_T,jJ (2.23)

Qnt_HEj ≥ (f imjinijDesc_DPj)−T emp_M ax_J,jJ (2.24)

As Restrições (2.21) e (2.22) calculam a ociosidade externa e interna de uma jornada. O intervalo de descanso da tripulação durante a realização das tarefas é garantido pelas Restrições (2.23). O cálculo da quantidade de horas extras é realizado conforme a Restrição (2.24).

xjt1p+xjt2(p+1) ≤ 1,jJ, t1, t2 ∈T, pP − {1} (2.25)

xjt1p+xjt2(p+1)

DPjt1t2p(p+1) ≤ 1,jJ, t1, t2 ∈T, pP − {1}, slt2 6=elt1 (2.26)

xjt1p+xjt2(p+1)

T Vjt1t2p(p+1) ≤ 1,jJ, t1, t2 ∈T, pP − {1}, P os_T Vt1t2 (2.27)

T Vjt1t2p(p+1) ≤ xjt1p,jJ, t1, t2 ∈T, pP − {1}, t2 > t1 (2.28)

T Vjt1t2p(p+1) ≤ xjt2(p+1),jJ, t1, t2 ∈T, pP − {1}, t2 > t1 (2.29)

X

t1,t2∈T,pP−1

T Vjt1t2p(p+1) ≤ Qnt_M ax_T V,jJ (2.30)

(29)

Capítulo 2. Problema de Programação de Tripulações 28

Restrições (2.27), (2.28), (2.29) e (2.30) são responsáveis por garantir as regras de possíveis trocas de veículos.

O modelo apresentado, proposto por Souza (2014), é caracterizado por um grande número de restrições, visto que é por meio delas que as soluções são criadas. Porém, quanto maior o problema a ser resolvido, maior é o conjunto de restrições e variáveis, o que inviabiliza a obtenção da solução ótima.

2.3.2.4 Funções Objetivo

Duas Funções Objetivo foram propostas por Souza (2014). A primeira FO, dada pela Equação (2.31), tem o objetivo de minimizar o número de jornadas de dupla pegada sem utilizar a Restrição (2.17), responsável por limitar o número máximo deste tipo de jornadas na solução. Por sua vez, a segunda FO, dada pela Equação (2.32), ao invés de minimizar o número de duplas pegadas, limita a quantidade destas jornadas por meio da Restrição (2.17).

f o1 =

X

jJ

yj ×Custo_J+ (OC_extj+OC_intjCusto_OC +

Qnt_HEj ×Custo_HE+Duplaj ×Custo_DP (2.31)

f o2 =

X

jJ

yj ×Custo_J+ (OC_extj+OC_intjCusto_OC +

Qnt_HEj timesCusto_HE (2.32)

Em ambas as expressões, o Custo_J se refere ao custo fixo de cada jornada, o Custo_OC é o custo das horas ociosas, Custo_HE é o custo das horas extras e, por fim, o Custo_DP é o custo associado a cada jornada de dupla pegada, quando considerada na FO. Minimiza-se, então, os custos fixos, as horas extras e ociosas, além das duplas pegadas, quando considerada.

2.4

Considerações Finais

(30)
(31)

30

3 Revisão Bibliográfica

O Problema de Programação de Tripulações é um problema clássico e tem sido largamente estudado por pesquisadores da área. Diversas abordagens exatas e heurísticas foram e vem sido utilizadas e propostas para resolver o problema, apresentando resultados bastante satisfatórios.

3.1

Métodos Exatos para Resolver o PPT

A abordagem exata mais explorada para resolver o PPT é aquela que formula o problema como um Problema de Cobertura de Conjunto (Set Covering Problem - SCP) ou de Particionamento de Conjunto (Set Partitioning Problem - SPP) e utiliza a técnica de geração de colunas para resolvê-lo. A variedade de trabalhos deriva das diferentes possibilidades de se encontrar uma solução inteira a partir da solução do Problema de Programação Linear. As técnicas mais exploradas são o branch-and-bound, branch-and-price e a relaxaçãoLagrangeana, as quais permitem formas alternativas de implementação, tendo em vista as características do problema.

Smith e Wren (1988) formularam o PPT como um Problema de Cobertura de Conjunto. Na proposta dos autores, o problema é resolvido primeiramente pela relaxação das restrições que impõem a integralidade dos valores das variáveis de decisão. O problema de programação linear resultante é resolvido e, a menos que a solução seja inteira, o que raramente acontece, uma solução viável é encontrada através do algoritmo branch-and-bound. Como o número total de possíveis combinações que geram jornadas viáveis pode ser muito grande para problemas reais, dois métodos para a redução de jornadas foram propostos. Ambos os métodos verificam tarefas que foram recobertas por outras jornadas. O primeiro método remove as jornadas que estão incluídas em outras jornadas, ou seja, aquelas que todas suas tarefas já estão cobertas por uma segunda jornada. O segundo método apaga as jornadas que possuem tarefas que foram cobertas por uma quantidade específica de jornadas distintas. Esses mecanismos reduzem significativamente o espaço de busca de soluções e permite a resolução do problema em tempo computacional razoável. Os autores resolveram problemas de 165 a 477 tarefas, encontrando suas respectivas soluções ótimas em até 4 minutos de processamento.

(32)

de forma incremental ao invés de utilizar o conjunto de todas as colunas. O problema mestre é resolvido como um Problema de Cobertura de Conjunto, e o subproblema é resolvido como um Problema de Caminho Mínimo com Restrição de Recursos ( Resource-Constrained Shortest Path Problem - RCSPP) (IRNICH; DESAULNIERS, 2005). No Problema de Cobertura de Conjunto, as colunas representam as jornadas de trabalho e as linhas representam as tarefas que são executadas em cada jornada. O RCSPP é resolvido utilizando-se um algoritmo de programação dinâmica. Cada caminho viável gerado pelo subproblema representa uma jornada de trabalho para o PPT, ou seja, uma coluna para o problema mestre. Enquanto no problema mestre são selecionadas as jornadas de trabalho viáveis para compor a solução, de modo que todas as tarefas sejam cobertas pelas jornadas escolhidas, no subproblema são geradas as novas jornadas que possam melhorar a solução atual obtida pelo problema mestre. O método proposto foi capaz de gerar resultados satisfatórios para problemas pequenos, compostos de 167 a 235 tarefas. Para problemas maiores, os autores reiteram a necessidade de modificações no método.

Friberg e Haase (1996) propuseram um algoritmo exato para resolver o PPT integrado ao Problema de Programação de Veículos, etapa anterior ao PPT. Os autores também resolvem os problemas através da técnica de geração de colunas. No entanto, o problema mestre é modelado como um Problema de Particionamento de Conjuntos e o subproblema como um problema de caminho mínimo, também resolvido através de um algoritmo de programação dinâmica. A solução inteira do problema de programação linear é obtida pelo algoritmo de branch-and-bound com geração de cortes. A metodologia proposta foi testada com problemas que consideravam de 10 a 30 viagens. Apesar das instâncias serem pequenas, os autores afirmam que o método proposto garante apenas a resolução de instâncias que contenham, no máximo, 10 viagens. Instâncias maiores não são resolvidas em tempo aceitável, sendo essas resolvidas, em alguns casos, apenas através de sua relaxação linear.

(33)

Capítulo 3. Revisão Bibliográfica 32

o problema de particionamento. As metodologias apresentadas são capazes de encontrar soluções de qualidade para o PPT.

Chen e Shen (2013) apresentaram uma nova estratégia de geração de colunas para tratar o PPT. Nos algoritmos tradicionais de geração de colunas, as colunas a serem adicionadas ao problema mestre são determinadas pela resolução de subproblemas, tais como o Problema de Caminho Mínimo com Restrição de Recursos, geralmente muito demorado. Por essa razão, a ideia principal da abordagem proposta é que um conjunto razoavelmente grande de jornadas potenciais (ou seja, colunas), chamado shift-pool, é pré-compilado utilizando características específicas do problema. Dentre as características analisadas, consideram-se fatores que aumentam o tempo de trabalho e reduzam o tempo ocioso. Durante o processo de geração de colunas, o RCSPP é resolvido até que não existam mais colunas com reduções de custo na shift-pool. Esta ideia permite reduzir o tempo de processamento para resolver o PPT. Nos experimentos são consideradas instâncias de até 701 viagens, 55 blocos de veículos, e duas garagens. Os resultados mostram que o algoritmo proposto supera a geração de colunas tradicional.

3.2

Metaheurísticas para Resolver o PPT

Lourenço, Paixão e Portugal (2001) formularam o PPT como um Problema de Cobertura de Conjunto, considerando várias funções objetivo. Esta formulação independe dos contratos de trabalho e das regras específicas da empresa. Os autores apresentam metaheurísticas multi-objetivas para resolver o PPT, visto que na prática, vários objetivos devem ser considerados, muitos deles conflitantes entre si. As metaheurísticas propostas são baseadas em Busca Tabu e Algoritmos Genéticos (AG), e ambas tem como procedimento interno o Greedy Randomized Adaptive Search Procedure (GRASP) (FEO; RESENDE, 1995), uma metaheurística mono-objetivo. Para todos os problemas considerados, a Busca Tabu multi-objetivo e os Algoritmos Genéticos multi-objetivo geraram bons resultados dentro de um tempo razoável, competitivos com um método de programação linear inteira que obtém a solução ótima para a maioria dos casos, exceto para problemas muito grandes.

(34)

ciclo válido, que é um ciclo negativo e representa a realização de trocas de tarefas entre as jornadas que leva à redução do custo da solução. Ao encontrar um ciclo válido, são realizadas as trocas representadas pelo ciclo e o grafo de melhoria é atualizado para que uma nova busca por um ciclo válido seja iniciada. Caso nenhum ciclo seja encontrado, o procedimento de busca é encerrado. Três cenários de testes foram estudados, diferindo-se o número máximo de trocas que cada tripulação pode realizar durante a operação. Ambos os cenários apresentaram melhorias em comparação à solução adotada pela empresa.

Reis e Silva (2012) exploram diferentes métodos de Busca Local associados à metaheurística Variable Neighborhood Search (VNS) para resolver o PPT. As soluções vizinhas da solução corrente são obtidas através da realocação e/ou trocas de tarefas entre duas tripulações e os métodos de Busca Local adotados foram o Variable Neighborhood Descent (VND) e o VLNS, cuja exploração da vizinhança é realizada eficientemente utilizando um grafo de melhoria (SILVA; CUNHA, 2010). No VLNS, a partir da solução inicial s, gerada de forma gulosa, uma nova solução é encontrada através do grafo de

melhoria. No VND, a busca local adjacente utilizada foi o método da Primeira Solução de Melhora (First Improvement Method), e as soluções vizinhas são geradas pelos movimentos de realocações e trocas de tarefas entre duas tripulações. A exploração da vizinhança é interrompida quando um vizinho melhor é encontrado, e o processo se repete até que nenhuma melhora seja possível. O critério de aceitação de uma solução é satisfeito quando o custo da solução analisada é melhor que o custo da melhor solução conhecida até então. Foram considerados cenários que permitem uma ou, no máximo, duas trocas de veículos por jornada e ainda cenários onde as duplas pegadas são mais caras, de modo que sua redução possa ser controlada. Com base na análise dos resultados, ambas as técnicas superaram a solução adotada por uma empresa e a técnica VNS-VLNS superou o VNS clássico implementado.

Silva e Silva (2015) aplicaram a metaheurística Guided Local Search (GLS) para resolver o PPT. A GLS é caracterizada pela construção de uma sequência de soluções, realizando uma busca local na solução atual, e se diferencia das demais metaheurísticas por penalizar as características indesejáveis na solução corrente, como forma de escapar de ótimos locais. Desta forma, ao encontrar um ótimo local, a metaheurística seleciona alguns atributos da solução encontrada e os penalizam, fazendo que a solução deixe de ser um ótimo local e que a busca possa mover-se para outro ponto de ótimo local. Esse processo se repete até que algum critério de parada seja satisfeito. Quatro métodos de busca local foram testados separadamente: i) best improvement; ii)first improvement,iii) VND combinado com o best improvement; e iv) VND combinado com o first improvement. O VND com first improvement obteve os melhores resultados e os resultados obtidos pelos autores são similares aos encontrados por outros métodos na literatura.

(35)

Capítulo 3. Revisão Bibliográfica 34

de genes. A recombinação de genes é responsável pela reconstrução de jornadas, sendo capaz de reduzir significativamente seu número na solução. Os autores utilizam listas tabu e não tabu para a construção das soluções iniciais, que indicam se as tarefas já foram ou não alocadas a alguma jornada. O método padrão da roleta foi adotado para selecionar os indivíduos promissores para o crossover, caracterizado por dois pontos de corte. Como a operação de crossover pode resultar em cromossomos com tarefas repetidas, as mesmas devem ser removidas. Assim, as tarefas duplicadas de uma jornada são removidas e reinseridas no final do novo cromossomo, construindo uma nova jornada. O processo de mutação consiste na reconstrução de n jornadas escolhidas aleatoriamente, ou seja, são

divididas em segmentos que são reconstruídos e substituídos. Os autores mostraram que o método proposto foi capaz de reduzir mais de 30 jornadas quando tem-se um grande número de tarefas, caracterizando-se como um algoritmo de performance computacional muito boa.

Ma et al. (2015) resolveram um PPT com janelas de tempo por meio da me-taheurística VNS. As janelas de tempo são definidas como o tempo entre a chegada e a partida dos veículos em um terminal, dados pelos horários de fim e início de duas tarefas consecutivas. Os autores reproduziram a variante mais simples da VNS, que executa vários métodos de descida com diferentes estruturas de vizinhança até que um ótimo local seja alcançado para todas as vizinhanças consideradas. A solução inicial é realizada de modo que as jornadas possuam o mesmo número de tarefas. As tarefas são ordenadas pelo tempo de início e são agrupadas desde que o tempo de partida de uma tarefa anterior seja inferior ao tempo de início da tarefa subsequente. As soluções vizinhas são geradas por movimentos de troca ou realocação de tarefas entre duas jornadas. Para lidar com as inviabilidades causadas pelos movimentos, uma função de penalidade é aplicada. São consideradas inviabilidades de tempo trabalhado, tempo gasto pelo motorista desde a saída da garagem até o retorno e, por fim, inviabilidades em relação a sobreposição de tarefas na mesma jornada. A abordagem implementada foi aplicada a uma das maiores empresas de transporte do mundo, a Beijing Public Transport Group, e mostrou-se ser uma boa abordagem de resolução do PPT, alcançando uma redução de até 18,1% dos custos relacionados à mão de obra operacional das tripulações.

(36)

das soluções na PESA-II. Uma solução é representada como um vetor binário de dimensão

n, sendo n o número de colunas (jornadas) do problema. Se uma coluna tem valor 1, ela

faz parte da solução, caso contrário ela está fora da solução. A população inicial é gerada pela fase construtiva do GRASP, o que garante a viabilidade das soluções criadas. Cada solução é avaliada por duas funções objetivo, que maximiza o número de tarefas cobertas e minimiza o tempo de ociosidade entre duas viagens consecutivas. A seleção dos pais, para realizarem o cruzamento, é feita pelo método de torneio binário, aplicado aos hipercubos do plano. Os hipercubos mais aptos são aqueles que possuem menores valores de densidade, caracterizados por seus respectivos números de soluções não dominadas. Após a seleção de um hipercubo, uma solução pertencente a ele é escolhida aleatoriamente. Foi utilizado operador de crossover uniforme e o operador de mutação inverte o valor de um gene aleatoriamente escolhido. As inviabilidades possivelmente geradas por essas operações são corrigidas pelos procedimentos de melhora DROP e ADD, adaptados ao problema, propostos para o set partitioning problem por Chu e Beasley (1998). Ainda no intuito de melhorar a qualidade da fronteira de Pareto, o autor propôs a hibridização do método com o método exato de Programação Inteira Mista, inserido na população inicial, levando em consideração o primeiro objetivo. Os resultados obtidos mostraram que a abordagem tem potencial para reduzir custos e ganhar tempo necessário no planejamento.

3.3

Métodos Híbridos para Resolver o PPT

(37)

Capítulo 3. Revisão Bibliográfica 36

Souza (2014) apresentou um modelo híbrido de Programação Linear Inteira em conjunto com a metaheurísticaLate Acceptance Hill Climbing (LAHC) para resolver o PPT. O problema é modelado como um problema de cobertura mas, ao contrário dos modelos clássicos de particionamento ou de cobertura de conjuntos, onde jornadas promissoras dentre um conjunto infinito de possibilidades devem ser geradas e informadas a priori, o modelo proposto é composto por uma série de restrições que permite a geração de soluções viáveis e a resolução do PPT a partir das tarefas a serem realizadas, obtidas diretamente dos dados de entrada. A LAHC é utilizada com o objetivo de resolver problemas de maiores dimensões. Nestes casos, partindo de uma solução viável gerada pela metaheurística, os componentes da solução são particionados em conjuntos menores, ou seja, subproblemas de dimensões menores que podem ser resolvidos pelo método exato. O modelo foi testado com problemas baseados em dados reais e se mostraram eficientes na geração das soluções, mas em um tempo elevado de processamento.

3.4

Algumas Aplicações da Heurística ALNS

Ropke e Pisinger (2006a) propuseram uma nova heurística denominadaAdaptive Large Neighborhood Search (ALNS), para resolver o Problema de Coleta e Entrega com Janelas de Tempo (Pickup and Delivery Problem with Time Windows - PDPTW). A ALNS é uma extensão da Large Neighborhood Search (LNS) e funciona com a aplicação de diferentes métodos de remoção e inserção dos elementos de uma solução. Os diferentes métodos são escolhidos com base em estatísticas que refletem o sucesso deles durante o processo de busca.

O número de pedidos e o total de veículos são conhecidos no PDPTW. As mer-cadorias, referentes aos pedidos, devem ser coletadas em um local e entregues em outro, respeitando as restrições de janela de tempo impostas na coleta e na entrega, além de restrições da característica dos veículos viáveis para realizar a operação, a capacidade dos mesmos, entre outras. As janelas de tempo consistem em um intervalo de tempo limitado para que a coleta/distribuição das mercadorias seja realizada. O LNS parte de uma solução inicial, que pode ser gerada de forma gulosa, e tem como função principal a remoção e reinserção de pedidos na solução, que definem a robustez e performance da heurística. No ALNS, as heurísticas de remoção e inserção são escolhidas a partir das estatísticas recolhidas durante o processo de busca.

Ropke e Pisinger (2006a) apresentaram três heurísticas de remoção de pedidos:

(38)

recentemente e é atualizado a cada segmento. Um segmento é composto, geralmente, por 100 iterações ou por tempo de processamento. Em cada iteração, uma heurística de remoção e uma de inserção são escolhidas independentemente e aplicadas conjuntamente. Quando maior a pontuação, mais bem sucedida é a heurística. A metodologia proposta foi capaz de melhorar as melhores soluções conhecidas na literatura para mais de 50% dos problemas, indicando a vantagem de utilizar várias heurísticas de remoção e inserção concorrentemente ao invés de apenas um par de heurísticas. Tal procedimento representa a capacidade de adaptação às características de cada instância. Os mesmos autores integraram posteriormente novas heurísticas de remoção ao ALNS. Três novas heurísticas de remoção: Cluster, Neighbor Graph e Request Graph foram propostas e o problema passou a cobrir uma classe de Problemas de Roteamento de Veículos (ROPKE; PISINGER, 2006b). Mais tarde, os autores propuseram três novas heurísticas de remoção:time-oriented,

node-pair removal ehistorical request-pair, abrangendo diferentes variações do Problema de Roteamento de Veículos, tais como problemas com janelas de tempo, capacidade restrita, número variável de depósitos, entre outras variações (PISINGER; ROPKE, 2007).

Pepin et al. (2009) compararam a performance de cinco heurísticas na resolução do Problema de Programação de Veículos com Múltiplos Depósitos (Multiple Depot Vehicle Scheduling Problem - MDVSP). Dado um conjunto de viagens e uma frota de veículos posicionados em um conjunto de depósitos, deve-se encontrar escalas de custo mínimo onde cada viagem é realizada apenas uma vez por cada veículo e o número de veículos por depósito não seja excedido. As heurísticas propostas são: o método branch-and-cut, heurística Lagrangiana, Geração de Colunas, LNS e a Busca Tabu. Para utilizar o LNS no MDVSP, r blocos de veículos da solução corrente são destruídos a cada iteração, e

posteriormente são reotimizados utilizando uma heurística de geração de colunas. A seleção desses rblocos de veículo é realizada por três estratégias:Random Schedules,Less Frequent Schedules e Closest Schedules, utilizadas para diversificar a busca. Tais estratégias são escolhidas aleatoriamente, de acordo com seus respectivos pesos, ajustados dinamicamente durante o processamento. Os resultados computacionais aplicados a instâncias geradas aleatoriamente, mostram que a heurística de geração de colunas tem o melhor desempenho quando tem-se tempo computacional suficiente. Por outro lado, o LNS é a melhor alternativa quando espera-se por soluções de boa qualidade em tempo computacional relativamente curto.

Kovacs et al. (2012) resolveram o Problema de Roteamento e Programação de Técnicos de Serviço e Manutenção (Service Technician Routing and Scheduling Problem

Imagem

Figura 1 – Etapas do Planejamento e Operação do Sistema de Transporte Público Urbano
Figura 8 – FO Média e melhor FO obtidas para cada peso de t 0 no dia útil
Figura 10 – FO Média e melhor FO obtidas para cada valor de ξ na segunda-feira e terça-feira
Figura 13 – FO Média e melhor FO obtidas para cada valor de ξ no sábado e domingo
+7

Referências

Documentos relacionados

Uma maneira viável para compreender uma reação química é através da conservação das massas, isso porque numa abordagem mais ampla, como demonstra no livro

Mesmo com suas ativas participações na luta política, as mulheres militantes carregavam consigo o signo do preconceito existente para com elas por parte não somente dos militares,

Como o predomínio de consumo energético está no processo de fabricação dos módulos fotovoltaicos, sendo os impactos da ordem de 50 a 80% nesta etapa (WEISSER,

Realizar a manipulação, o armazenamento e o processamento dessa massa enorme de dados utilizando os bancos de dados relacionais se mostrou ineficiente, pois o

Tendo em conta os objetivos que se pretendem atingir com este estudo, começa-se por conduzir uma revisão de literatura no âmbito do comportamento organizacional, mais

Para eficiência biológica, de forma geral, utiliza-se a comparação de produtividades entre sistemas (monocultivo e cultivo consorciado), sendo avaliados a partir de

MECANISMOS E INCENTIVOS FINANCEIROS AO MFS LINHAS DE FINANCIAMENTO FOMENTO FLORESTAL FUNDOS de APOIO à CONSERVAÇÃO INSTRUMENTOS LEGAIS MECANISMOS FINANCEIROS DIVERSOS E

Our contributions are: a set of guidelines that provide meaning to the different modelling elements of SysML used during the design of systems; the individual formal semantics for