UNIVERSIDADE FEDERAL DE OURO PRETO Uma Abordagem Hı́brida para Resolver o Problema da Escala de Motoristas de Ônibus Urbano Danilo Santos Souza Universidade Federal de Ouro Preto Orientador: Gustavo Peixoto Silva Coorientador: Haroldo Gambini Santos Dissertação submetida ao Instituto de Ciências Exatas e Biológicas da Universidade Federal de Ouro Preto para obtenção do tı́tulo de Mestre em Ciência da Computação Ouro Preto, Julho de 2014 Uma Abordagem Hı́brida para Resolver o Problema da Escala de Motoristas de Ônibus Urbano Danilo Santos Souza Universidade Federal de Ouro Preto Orientador: Gustavo Peixoto Silva Coorientador: Haroldo Gambini Santos S729a Souza, Danilo Santos. Uma abordagem híbrida para resolver o problema da escala de motoristas de ônibus urbano [manuscrito] / Danilo Santos Souza. – 2014. 83 f.: il. color., grafs., tabs. Orientadores: Prof. Dr. Gustavo Peixoto Silva e Haroldo Gambini Santos. Dissertação (Mestrado) - Universidade Federal de Ouro Preto. Instituto de Ciências Exatas e Biológicas. Departamento de Computação. Área de concentração: Otimização e inteligência computacional. 1. Metaheurísticas - Teses. 2. Inteligência artificial - Teses. I. Silva, Gustavo Peixoto. II. Santos, Haroldo Gambini. III. Universidade Federal de Ouro Preto. IV. Título. CDU: 681.3.091 Catalogação: [email protected] CDU: 669.162.16 Dedico este trabalho a você que sempre me fez acreditar na realização dos meus sonhos e trabalhou muito para que eu pudesse realizá-los, Mãe. A minha famı́lia e amigos que sempre me apoiaram nas horas difı́ceis. Ao meu pai, que mesmo distante influenciou para que pudesse chegar até aqui. ii iii Uma Abordagem Hı́brida para Resolver o Problema da Escala de Motoristas de Ônibus Urbano Resumo A alocação da tripulação (motoristas e cobradores) é uma etapa muito importante no planejamento operacional do Sistema de Transporte Público visto que custo operacional representado pelas escalas de trabalho compõe uma parcela significativa nos custos totais de uma empresa de transporte público. A redução dos custos das escalas de trabalho afetam não só as empresas operadoras, mas também os usuários deste serviço, pois com esta redução há a possibilidade de um maior investimento na qualidade do transporte público e a redução dos preços dos bilhetes. Estes custos, estão estritamente relacionados as normas operacionais impostas pelas empresas e legislações trabalhistas que se refletem na definição das jornadas de trabalho dos motoristas e cobradores. Esse trabalho tem a finalidade de propor um novo método computacional capaz de auxiliar o processo da programação da tripulação em empresas de transporte público de ônibus urbano. Os métodos apresentados nesta pesquisa são baseados no uso de um modelo de programação linear inteira, ainda inédito na literatura, se diferindo dos demais pelo fato de que cada jornada é gerada diretamente a partir das tarefas a serem alocadas. Uma metaheurı́stica Late Acceptance Hill Climbing (LAHC) também foi utilizada com o objetivo de resolver problemas de maiores dimensões. Um método hı́brido, utilizando o método exato e a metaheurı́stica LAHC, é proposto com o objetivo de obter um refinamento das soluções obtidas pela metaheurı́stica, de modo a reduzir os custos das jornadas geradas. Para avaliar as abordagens apresentadas foram utilizadas instâncias geradas a partir de dados reais de uma empresa do setor de transporte público da cidade de Belo Horizonte/MG. Os modelos computacionais propostos apresentaram resultados satisfatórios, sendo que os custos finais foram reduzidos para a maioria dos testes realizados. Por outro lado, há a necessidade de novos estudos sobre os métodos apresentados, a fim de que os mesmos se tornem mais eficientes. Palavras-chave: Matheurı́stica, Problema de Programação de Tripulações, Metaheurı́stica. iv A Hybrid Approach to Solve the Problem of Scale for Urban Bus Drivers Abstract The allocation of crew (drivers and collectors) is a quite important stage of operational planning of Public Transit System once the operational cost represented by the work schedules consist in a significant portion of total costs in a public transit company. Cost reduction of work schedules affects not only the operating company but also the users of this service since there is chance of higher investments in transit quality and reduction of ticket prices because of this cost-cutting. These costs are strictly related to the operational rules established by companies and work laws which reflects themselves in the transit drivers and collectors work schedule definition. The goal of this work is to propose a new computational method able to assist the crew planning process in urban bus public transit companies. The methods presented in this work are based on use of an integer linear programming method even unpublished in literature, being different from others due the fact that each schedule is created directly from tasks to be allocated. A metaheuristic Late Acceptance Hill Climbing (LAHC) was also utilized with the purpose of solving bigger problems. A hybrid method using the exact method and the metaheuristic LAHC is proposed with the goal of refining solutions gotten through metaheuristic, reducing created schedule costs. To evaluate the presented approaches, problems generated from real data from a public transit company from Belo Horizonte/MG city were used. The proposed computational methods presented satisfactory results and final costs were reduced for most tests performed. On the other hand, other researches about the presented methods are necessary in order that they become more efficient. Keywords: Matheuristic, Crew Scheduling Problem, Metaheuristic. v Declaração Esta dissertação é resultado de meu próprio trabalho, exceto onde referência explı́cita é feita ao trabalho de outros, e não foi submetida para outra qualificação nesta nem em outra universidade. Danilo Santos Souza vi Agradecimentos Primeiramente agradeço à Deus por me amparar nos momentos difı́ceis e me dar força para superar as dificuldades. Aos meus pais, Gilsa e Denildo, e a meu irmão Diego, pelo incentivo, apoio e afeto. A minha avó Carmelita, pelo exemplo de dedicação e por ser uma mãe pra mim. Ao meu Tio Denilson, por sempre acreditar em mim quando alguns não acreditavam, e por ser um exemplo de pai e homem. À toda minha famı́lia, pelo carinho e força. Agradeço ao meu orientador Gustavo Peixoto Silva pela oportunidade concedida, pela impecável orientação e pelo apoio no desenvolvimento do trabalho. Agradeço ainda ao meu Coorientador Haroldo Gambini Santos pelas valiosas contribuições para o presente trabalho. Aos meus amigos Bruna, Priscilla, Gabriela, Thayane, Lorran, Aristides, Alisson, Pereira, Lucas, Marco, Emilia, Danielle e Flavio pela ajuda, pelas longas horas de estudo, amizade, carinho e força, fundamentais para que eu conseguisse chegar até aqui. À República Navio Pirata, Moradores e Ex-alunos, por me acolherem, pelo companheirismo e amizade, tornando esta minha segunda casa. Ao CNPq, à FAPEMIG, à CAPES e à UFOP pelo apoio recebido no desenvolvimento deste trabalho. Ao PPGCC - UFOP, professores e técnicos, em especial aos professores Fabrı́cio, Gustavo e Haroldo, e a Mariana pela ajuda sempre que fez-se necessário. Enfim, agradeço a todos que, de alguma forma, acreditaram e torceram por mim, participaram de minha vida e ajudaram na realização deste trabalho. Sumário Lista de Figuras ix Lista de Tabelas x Lista de Algoritmos xiii Nomenclatura 1 1 Introdução 2 1.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 Objetivos Especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Revisão Bibliográfica 6 2.1 Métodos Exatos para Resolver o PPT . . . . . . . . . . . . . . . . . . . . 7 2.2 Metaheurı́sticas para Resolver o PPT . . . . . . . . . . . . . . . . . . . . 9 2.3 Métodos Hı́bridos para resolver o PPT . . . . . . . . . . . . . . . . . . . 12 3 Problema de Programação da Tripulação de Ônibus Urbano 3.1 Restrições do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Métodos Propostos 14 15 17 4.1 Estruturas para a Representação do Problema . . . . . . . . . . . . . . . 17 4.2 Modelo Matemático Proposto . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.1 19 Parâmetros e Conjuntos . . . . . . . . . . . . . . . . . . . . . . . vii viii 4.3 4.4 SUMÁRIO 4.2.2 Variáveis de Decisão . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.2.3 Função Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.2.4 Conjunto de Restrições . . . . . . . . . . . . . . . . . . . . . . . . 21 A Metaheurı́stica LAHC . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.3.1 Função Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.3.2 Geração da Solução Inicial . . . . . . . . . . . . . . . . . . . . . . 26 4.3.3 Estrutura de Vizinhança Realoca-Troca . . . . . . . . . . . . . . . 27 Matheurı́stica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.4.1 29 Particionamento da Solução . . . . . . . . . . . . . . . . . . . . . 5 Resultados e Discussão 31 5.1 Resultados Obtidos pelo Modelo Exato . . . . . . . . . . . . . . . . . . . 31 5.2 Resultados Obtidos pelo LAHC e a Matheurı́stica . . . . . . . . . . . . . 37 5.2.1 Calibração da Metaheurı́stica . . . . . . . . . . . . . . . . . . . . 37 5.2.2 Comparação entre a Matheurı́stica, LAHC e demais Metaheurı́sticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 6 Conclusões e Trabalhos Futuros 59 A Apêndices 62 A.1 Publicações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Referências Bibliográficas 62 63 Lista de Figuras 4.1 4.2 Movimentos de realocação e troca de uma tarefa da jornada j para a jornada k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Representação da Matheurı́stica implementada para o Problema de Programação da Tripulação . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 ix Lista de Tabelas 4.1 Estrutura de uma tarefa . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2 Estrutura de uma jornada . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5.1 Caracterı́sticas dos problemas gerados para o caso 1 . . . . . . . . . . . . 33 5.2 Resultados do modelo exato para os problemas para o caso 1 . . . . . . . 33 5.3 Caracterı́sticas dos problemas gerados para o caso 2 . . . . . . . . . . . . 34 5.4 Resultados do modelo exato para os problemas do caso 2 . . . . . . . . . 34 5.5 Caracterı́sticas dos problemas gerados para o caso 3 . . . . . . . . . . . . 35 5.6 Resultados do modelo exato para os problemas para o caso 3 . . . . . . . 35 5.7 Caracterı́sticas dos problemas gerados para o caso 4 . . . . . . . . . . . . 36 5.8 Resultados do modelo exato para os problemas para o caso 4 . . . . . . . 36 5.9 Tabela com as informações de cada instância, contendo a quantidade de tarefas a serem realizadas e quantos veı́culos são utilizados. . . . . . . . . 37 5.10 Resultados do primeiro teste de calibração da Metaheurı́stica LAHC para os valores de tamanho de lista: 10, 20, 30, 40, 50, 100 e 150 . . . . . . . . 38 5.11 Resultados do primeiro teste de calibração da Metaheurı́stica LAHC para os valores de tamanho de lista: 200, 250, 300, 350, 400, 450 e 500 . . . . 39 5.12 Resultados do segundo teste de calibração da Metaheurı́stica LAHC para os valores de tamanho de lista: 40, 50, 100 e 300 . . . . . . . . . . . . . . 40 5.13 Caracterı́sticas dos melhores resultados para a instância 01 com custo 600 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . 42 5.14 Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS, VNSVLNS, ILS e ILS - VLNS para a instância 01 com custo 600 para jornadas do tipo dupla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 x LISTA DE TABELAS xi 5.15 Caracterı́sticas dos melhores resultados para a instância 02 com custo 600 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . 43 5.16 Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS, VNSVLNS, ILS e ILS-VLNS para a instância 02 com custo 600 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.17 Caracterı́sticas dos melhores resultados para a instância 03 com custo 600 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . 44 5.18 Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS, VNSVLNS, ILS e ILS-VLNS para a instância 03 com custo 600 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.19 Caracterı́sticas dos melhores resultados para a instância 04 com custo 600 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . 45 5.20 Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS, VNSVLNS, ILS e ILS-VLNS para a instância 04 com custo 600 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.21 Caracterı́sticas dos melhores resultados para a instância 05 com custo 600 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . 46 5.22 Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS, VNSVLNS, ILS e ILS-VLNS para a instância 05 com custo 600 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.23 Caracterı́sticas dos melhores resultados para a instância 06 com custo 600 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . 47 5.24 Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS, VNSVLNS, ILS e ILS-VLNS para a instância 06 com custo 600 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.25 Caracterı́sticas dos melhores resultados para a instância 07 com custo 600 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . 48 5.26 Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS, VNSVLNS, ILS e ILS-VLNS para a instância 07 com custo 600 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.27 Valores da função objetivo para os melhores resultados obtidos para todas as instâncias e com peso 600 para as jornadas do tipo dupla pegada . . . 49 5.28 Caracterı́sticas dos melhores resultados para a instância 01 com custo 5.000 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . 50 xii LISTA DE TABELAS 5.29 Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS e VNSVLNS para a instância 01 com custo 5.000 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.30 Caracterı́sticas dos melhores resultados para a instância 02 com custo 5.000 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . 51 5.31 Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS e VNSVLNS para a instância 02 com custo 5.000 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.32 Caracterı́sticas dos melhores resultados para a instância 03 com custo 5.000 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . 53 5.33 Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS e VNSVLNS para a instância 03 com custo 5.000 para jornadas do tipo dupla . 53 5.34 Caracterı́sticas dos melhores resultados para a instância 04 com custo 5.000 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . 54 5.35 Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS e VNSVLNS para a instância 04 com custo 5.000 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.36 Caracterı́sticas dos melhores resultados para a instância 05 com custo 5.000 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . 55 5.37 Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS e VNSVLNS para a instância 05 com custo 5.000 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.38 Caracterı́sticas dos melhores resultados para a instância 06 com custo 5.000 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . 56 5.39 Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS e VNSVLNS para a instância 06 com custo 5.000 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.40 Caracterı́sticas dos melhores resultados para a instância 07 com custo 5.000 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . 57 5.41 Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS e VNSVLNS para a instância 07 com custo 5.000 para jornadas do tipo dupla pegada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.42 Melhores resultados obtidos da função objetivo para todas as instâncias com peso 5.000 para as jornadas do tipo dupla pegada . . . . . . . . . . 58 Lista de Algoritmos 4.1 Implementação do LAHC para um problema de minimização . . . . . . . 26 4.2 Particionamento da solução . . . . . . . . . . . . . . . . . . . . . . . . . . 30 xiii “Talvez não tenha conseguido fazer o melhor, mas lutei para que o melhor fosse feito. Não sou o que deveria ser, mas Graças a Deus, não sou o que era antes.” — Marthin Luther King xiv Nomenclatura GRASP Greedy Randomized Adaptive Search Procedure ILS Iterated Local Search LAHC Late Acceptance Hill Climbing MPL Mathematical Programming Language PPT Problema de Programação de Tripulações VND Variable Neighborhood Descent VNS Variable Neighborhood Search VLNS Very Large-Scale Neighborhood Search 1 Capı́tulo 1 Introdução Atualmente no ramo empresarial há uma necessidade cada vez maior pela utilização de ferramentas computacionais para auxiliar no processo de tomada de decisões. Tal fato acontece devido à possibilidade de redução nos custos da empresa, seja no nı́vel estratégico, tático ou operacional. No setor de logı́stica, são exemplos de decisões operacionais: i ) a definição de rotas de transporte para entrega de cargas, ii ) a quantidade de matéria prima a ser utilizada no processo de produção, iii ) a alocação e programação das máquinas no processo de produção, entre outros (Novaes 2001). Nas empresas de transporte publı́co, a utilização de ferramentas computacionais para dimensionar suas frotas ainda é pequena, assim como para alocar seus motoristas e cobradores de maneira econômica e equilibrada (Silva 2001). Desta forma, surge a importância de estudar e aplicar métodos de otimização, nesta fase do processo de planejamento das empresas de transporte público, para permitir a redução dos seus custos operacionais. O ônibus ainda é o meio de transporte público de passageiros mais utilizado nas cidades, sendo que em algumas delas ele é o único meio de transporte público. Assim, o planejamento da operação das empresas deste ramo deve ser muito preciso para que a demanda dos usuários seja atendida prontamente e com o menor custo possı́vel. A redução dos custos, decorrente de um melhor planejamento, é de fundamental importância para as empresas. Além de um fator de sobrevivência, essa economia pode ser reinvestida em outras áreas, como na qualificação dos seus funcionários, na manutenção da frota, entre outros. Desta forma, a qualidade do serviço pode ser melhorada, assim como o retorno à empresa. Logo, a utilização de técnicas e ferramentas computacionais podem trazer benefı́cios para as empresas deste setor (Wren 2004). 2 Introdução 3 O desenvolvimento e a utilização de sof twares para auxiliar o processo de tomada de decisão, em empresas de transporte público brasileiro, tem um histórico de pouca utilização (Silva 2001). Isso ocorre por que tais métodos requerem a obtenção de dados precisos da operação das frotas, o cumprimento de regras especı́ficas, o treinamento do pessoal, entre outros outros fatores que geram custos adicionais e requerem a mudança na forma de operação das empresas. Mesmo com essas dificuldades, é importante que métodos de otimização adequados à realidade brasileira sejam elaborados e sua utilização disseminada entre as empresas de transportes público, propiciando benefı́cios tanto para as empresas como para os usuários do sistema. O planejamento de transporte público urbano é uma tarefa muito delicada pois o mesmo envolve tanto o poder público quanto as empresas de prestação de serviço. Uma série de decisões operacionais devem ser tomadas neste planejamento. Primeiramente, deve-se definir quais as linhas de transporte que irão operar, ou seja, definir quais serão as rotas das linhas necessárias para cobrir todas as regiões desejadas de uma determinada cidade, definindo também os pontos de parada de cada rota. Com a definição da trajetória das linhas a serem operadas, deve-se então definir o horário de partida de cada viagem em cada linha sob a responsabilidade da empresa. Isto é, deve-se definir o quadro de horários das linhas para os dias úteis, os sábados e os domingos/feriados. A variação no quadro de horários se deve pela variação na demanda nos diferentes dias da semana. Numa segunda etapa deve-se fazer a alocação dos veı́culos que realizarão as viagens de cada linha. Este problema é conhecido na literatura como Problema de Programação dos Veı́culos. Nesta etapa procura-se definir a quantidade mı́nima de veı́culos necessários para realizar todas as viagens previstas no quadro de horários de cada linha, gerado na etapa anterior, e especificar o veı́culo que realizará cada viagem. A resolução deste problema procura minimizar não apenas o número de veı́culos, mas também as viagens ociosas e o tempo ocioso dos veı́culos nos terminais. Na etapa seguinte deve ser definida a quantidade mı́nima de tripulantes (motorista e cobrador) e como estes serão alocados de modo a cobrir todas as viagens dos veı́culos em operação. Desta forma são definidas as jornadas que cada tripulação da empresa deverá cumprir em um dia de trabalho. Este problema é denominado Problema de Programação da Tripulação e tem como objetivo minimizar o total de tripulantes e o custo com horas extras e ociosas contidas na escala diária. A última etapa consiste em definir o rodı́zio das tripulações. Esta etapa tem como 4 Introdução objetivo gerar as escalas mensais das tripulações de modo a cobrir todas as jornadas respeitando as regras especificas para a atividade, como por exemplo as folgas da tripulação, o número máximo de dias trabalhados consecutivamente, entre outras. Este problema é conhecido na literatura como Problema do Rodı́zio das Tripulações. Nesta etapa é possı́vel realizar a compensação de horas extras com horas ociosas, realizadas no mesmo mês, por uma determinada tripulação. A definição das linhas e do quadro de horários é de responsabilidade do poder público, enquanto a programação dos veı́culos e tripulações e o rodı́zio das tripulações ficam a cargo das empresas de transporte público. O processo de planejamento operacional descrito acima é geralmente realizado na ordem apresentada e a solução de cada etapa é usada como dado de entrada da etapa seguinte. A abordagem de todos os problemas do sistema de transporte em um único modelo pode ser uma tarefa computacionalmente impossı́vel. Logo, este trabalho dedica-se exclusivamente ao tratamento do Problema de Programação da Tripulação (PPT). Devido às restrições operacionais vigentes, restrições das empresas e das leis trabalhistas, este problema especificamente torna-se de grande complexidade. O problema pode ser modelado como um problema de particionamento ou de recobrimento com variáveis binárias, o que o torna NP-hard, para o qual não existe algoritmo de complexidade polinomial que obtenha a solução ótima (Fischetti et al. 1987). Este problema vem sendo estudado desde a década de 60, tendo Elias (1964) como trabalho pioneiro. Devido às constantes mudanças no sistema de transporte público, várias pesquisas são realizadas ainda hoje para representar e resolver o problema de forma mais precisa e eficiente. Devido à complexidade deste problema, a utilização de métodos exatos fica restrita, impossibilitando a resolução de problemas reais, que normalmente são de grandes dimensões. Assim, os métodos heurı́sticos se tornam uma alternativa e são amplamente utilizados para resolver o problema (Ernst et al. 2004b). O presente trabalho apresenta um modelo de programação linear inteira ainda inédito na literatura. Para agilizar a resolução de problemas de grande porte, foi utilizada uma abordagem hı́brida que combina a heurı́stica Late Acceptance Hill Climbing (LAHC) com o modelo exato proposto. O modelo exato consiste em gerar jornadas de trabalho a partir das viagens a serem realizadas. Desta forma, o modelo não utiliza a formulação de particionamento de conjuntos. Este modelo é inédito e não necessita gerar as jornadas previamente, como acontece no modelo de particionamento. Introdução 1.1 5 Objetivo Geral Este trabalho tem como objetivo resolver o Problema da Programação de Tripulação de Ônibus Urbano de modo a reduzir o máximo possı́vel os custos operacionais na atribuição das viagens às tripulações, utilizando técnicas exatas e heurı́sticas. Assim foi implementado um modelo exato de programação linear inteira, uma metaheurı́stica e a combinação de ambos, resultando em um modelo do tipo Matheurı́stica. Os métodos foram avaliados quanto às vantagens e desvantagens destas abordagens na resolução de problemas reais. 1.2 Objetivos Especı́ficos • Resolver o PPT utilizando um modelo exato e verificar a dimensão máxima do problema que o método é capaz de resolver; • Resolver o PPT utilizando a metaheurı́stica Late Acceptance Hill Climbing LAHC; • Resolver o PPT utilizando uma abordagem hı́brida, que é a combinação da metaheurı́stica LAHC e do modelo exato; • Avaliar os resultados obtidos com resultados da literatura e das soluções apresentadas pela empresa. 1.3 Organização do Trabalho Os demais capı́tulos deste trabalho estão organizados da seguinte forma: No Capı́tulo 2 é apresentada uma revisão bibliográfica do problema, abordando alguns métodos de fundamental importância para este trabalho. No Capı́tulo 3 é descrito o Problema de Programação da Tripulação para Ônibus de Transporte Público Urbano. No Capı́tulo 4 são apresentadas as metodologias implementadas para resolver o problema trabalhado. No Capı́tulo 5 são apresentados os resultados e suas considerações para o problema. No Capı́tulo 6 são apresentadas as conclusões finais e propostas de trabalhos futuros. Capı́tulo 2 Revisão Bibliográfica O PPT é um problema clássico, sobre o qual existem diversos trabalhos que exploram diferentes técnicas de programação linear inteira para resolvê-lo. Entre estas técnicas são destacadas o Branch-and-Bound (Fores et al. 1999, Smith and Wren 1988), Branch-andPrice (Barnhart et al. 1998, Desrochers and Soumis 1989) e Branch-and-Cut (Friberg and Haase 1999). Por outro lado, diversas metaheurı́sticas foram implementadas para resolver problemas de grande porte. Dentre essas pode-se destacar: Algoritmos Genéticos, GRASP, Busca Tabu, Simulated Annealing, entre outros (Lourenço et al. 2001, Shen and Kwan 2001, Silva and da Cunha 2010, Souza et al. 2004). Com o emprego destas meta-heurı́sticas foi possı́vel obter resultados muito satisfatórios para o problema, embora a otimalidade das soluções não sejam garantidas. O trabalho de Ernst et al. (2004a) apresenta uma série de problemas relacionados à alocação de pessoal em diversas áreas, incluindo motoristas e cobradores de sistemas de transportes. Neste contexto, os autores descrevem problemas de alocação de funcionários em seus diferentes modais de transportes, ou seja, no aeroviário, ferroviário, transporte urbano e no transporte interurbano. No trabalho é apresentada uma revisão sobre as principais pesquisas tanto para o problema de programação da tripulação, como para o problema do rodı́zio das tripulações. No trabalho é mencionado também que a complexidade dos problemas dependem do tipo de transporte, da categoria da tripulação, dos tipos de frotas, das regras e regulamentações, da regularidade das viagens e dos custos a serem considerados. Segundo Ernst et al. (2004a), uma das abordagens mais utilizadas para resolver os problemas de programação das tripulações é aquela que o decompõe nas seguintes etapas: geração das jornadas, otimização das jornadas e definição do rodizio da tripulação. Desta forma, a complexidade do problema é reduzida, permitindo sua 6 Revisão Bibliográfica 7 resolução de forma satisfatória. Algumas destas técnicas de otimização são utilizadas em pacotes comerciais voltadas para a área de programação de veı́culos e tripulações. Uma metaheurı́stica do tipo runcutting foi utilizada para resolver o problema no pacote RUCUS (Luedtke 1985, Wilhelm 1975), desenvolvido nos Estados Unidos da América a partir da década de 70, e um algoritmo desenvolvido por Parker and e Smith (1981) foi utilizado no sistema TRACS, o qual simulava o processo manual de alocação da tripulação. A formulação de recobrimento de conjuntos foi usada no pacote IMPACS do sistema BUSMAN e no pacote Crew-opt, que posteriormente foi utilizado na versão inicial do HASTUS que substituiu o TRACS (Wren 2004). A empresa brasileira Wplex, desenvolvedora de sistemas no âmbito de transporte, desenvolveu um sistema WplexON (Fournier 2009) para tratar problemas de alocação de tripulação. Neste trabalho a empresa utiliza a abordagem de Branch-and-Price para solucionar o problema modelado como particionamento de conjuntos, sendo que o conjunto de Jornada de Trabalho é gerada a partir do movimento de inserção de tarefas. Estas soluções obtidas pela Wplex são utilizadas em empresas no estado de Santa Catarina. Nas subseções a seguir são apresentados alguns trabalhos que utilizam abordagens Exatas, Metaheurı́sticas e Heurı́sticas Hı́bridas. 2.1 Métodos Exatos para Resolver o PPT Os métodos exatos se mostram mais eficiente quando utilizados para resolução de problemas de otimização combinatória quando os problema são de pequena dimensão ou não são NP-Completo. No entanto, estes métodos podem ser ineficientes para problemas NP-Completos de grande dimensão, uma vez que o tempo de execução aumenta exponencialmente à medida que as instâncias aumentam. Ainda assim, existem várias abordagens exatas descritas na literatura para resolver o problema. Entre elas podemos citar a Programação Dinâmica, a Programação Linear e Inteira, Relaxação Lagrangeana, Programação por Restrições, entre outros. Muitas destas técnicas são flexı́veis e independentes de domı́nio, e podem ser aplicadas à maioria dos problemas práticos (Stefanello 2011). Em Desrochers and Soumis (1989) é proposta uma abordagem de geração de colunas para resolver o Problema de Programação da Tripulação. Nesta abordagem o problema 8 Revisão Bibliográfica é dividido em dois: um problema de cobertura de conjunto e um problema de caminho mı́nimo com limitação de recurso. O problema de cobertura de conjuntos escolhe uma escala de trabalho viável já conhecida. O problema de caminho mı́nimo é usado para propor novas escalas de trabalho para melhorar a solução obtida pelo problema de cobertura de conjuntos. Para o problema de cobertura de conjuntos, o método de geração de colunas é representado por linhas e colunas, onde as colunas representam uma escala viável e as linhas as tarefas a serem realizadas. O modelo deve selecionar as melhores escalas de modo que todas as tarefas de um dia de trabalho sejam cobertas. Porém as novas escalas são geradas usando um algoritmo de caminho mı́nimo com restrição de recursos. Cada caminho viável, da origem ao consumidor, representa uma jornada de trabalho viável, ou seja, uma nova coluna para o problema de cobertura de conjuntos. O método proposto apresenta resultados satisfatório para resolver problemas considerados pequenos, compostos de 167 e 235 tarefas. Fores et al. (1999) apresentam um sistema baseado em programação linear inteira, como melhoria do sistema TRACS II desenvolvido pela Universidade de Leeds, Inglaterra. Diferente da abordagem utilizada no TRACS II, que utilizava duas funções objetivos para calcular as penalidades impostas na solução, o modelo proposto por Fores et al. (1999) utiliza uma função objetivo composta, e o método de geração de colunas para obter a sua solução final. Os testes computacionais mostram que o modelo proposto consegue resultados melhores do que o modelo utilizado pelo sistema TRACS II, e obteve uma redução média de 41% no tempo de processamento para o mesmo conjunto de dados. A abordagem branch-and-price é utilizada por Freling et al. (2004) para resolver tanto o problema de alocação quando o problema do rodı́zio de tripulação. Para resolver o problema, os autores utilizaram uma abordagem do tipo Geração de Colunas onde inicialmente é escolhido um conjunto de jornadas (colunas) e então é resolvido o problema relaxando a condição de integralidade da solução. Em seguida são geradas novas colunas que podem ser inseridas no conjunto, substituindo outra, caso esta inserção consiga reduzir o custo da solução. Esta operação se repete até que nenhuma jornada que reduza o custo seja encontrada. Se na etapa de geração de novas colunas não for encontrada nenhuma jornada que reduza o custo, a operação branch-and-bound é realizada. No inicio, uma solução (nó) é gerada para realizar o branch, calculando novos limites inferiores das duas soluções, a primeira gerada na resolução do problema com conjunto de jornadas e a outra após o processo de geração de colunas. Logo após, verifica-se se o novo custo é menor do que o melhor custo. Então o método verifica se Revisão Bibliográfica 9 todas as restrições estão sendo atendidas e o processo de branch-and-bound é iniciado novamente até que a condição de parada seja atendida. Os testes foram realizado em problemas de alocação de tripulações de aeronaves para instâncias pequenas. O modelo teve como objetivo minimizar o número de tarefas descobertas e o número de tripulantes. Santos and Mateus (2007) utilizam uma abordagem exata de Geração de Colunas combinada com a metaheurı́stica populacional Algoritmos Genéticos para resolver o PPT. Na geração de colunas, o problema é subdividido em dois: problema mestre e subproblema. O problema mestre seleciona as jornadas que serão realizadas pela tripulação em um conjunto de jornadas viáveis, de modo a conseguir cobrir todas as viagens necessárias. Já o subproblema é responsável por gerar novas jornadas (colunas). Estas jornadas são adicionadas ao problema mestre se possibilitarem a melhoria da solução. Para a resolução do subproblema é utilizado um Algoritmo Genético. Os resultados obtidos mostram que a utilização do Algoritmo Genético, em comparação com outras metaheurı́sticas, destaca-se pelo fato da possibilidade de geração de um conjunto maior de jornadas viáveis para a inclusão no problema mestre e consequentemente possibilita reduzir o tempo de processamento quando lida com grandes instâncias. 2.2 Metaheurı́sticas para Resolver o PPT Lourenço et al. (2001) utilizam duas metaheurı́sticas multiobjetivos para solucionar o PPT, a Busca Tabu e um Algoritmo Genético. Na abordagem apresentada, são consideradas duas funções objetivo, uma com os custos operacionais do problema ao que se refere a quantidade de tripulantes e tempo operacional, e custos por quebra de restrições operacionais, por exemplo exceder o máximo de trocas de veı́culos. Na Busca Tabu, os autores consideram duas listas tabu, uma de inserção e outra de remoção de jornadas. A primeira contém a lista de jornadas que foram removidas e não podem ser inseridas e a segunda lista contém as jornadas incluı́das que não podem ser removidas. A Busca Tabu é realizada para cada função objetivo e posteriormente é aplicada com a função de soma ponderada das duas funções objetivos. Um processo para otimizar a solução é proposto, onde a Busca Tabu é realizada com varias iterações com objetivo de encontrar soluções viáveis, utilizando somente de inserção de tarefas, e a metaheurı́stica GRASP é utilizada para selecionar as melhores jornadas geradas no processo de Busca Tabu. No algoritmo genético, a criação de novas populações se baseia na escolha aleatória de uma das funções objetivo para conseguir uma diversificação maior da população. A utilização 10 Revisão Bibliográfica de um método de cruzamento entre duas populações é proposto, utilizando GRASP para tentar resolver este cruzamento como um subproblema e encontrar uma população dita perfeita. Os teste foram comparados com dados utilizados em uma empresa de Portugal e um método de programação linear proposto por Beasley (1987). Um Algoritmo Genético Hı́brido para resolver o problema de programação da tripulação foi proposto por Li and Kwan (2003). Em sua abordagem os testes foram realizados tanto com instâncias de problemas de ônibus urbano quanto de linhas de trem, com dados reais de empresas inglesas. Uma heurı́stica gulosa é utilizada para construir uma escala, onde as jornadas são selecionados sequencialmente de um conjunto grande de potenciais jornadas viáveis geradas previamente. As jornadas individuais e a escala devem ser avaliadas como um único processo. A teoria do conjunto fuzzy é aplicada sobre tais avaliações. Para jornadas individuais a sua viabilidade é avaliada por critérios identificados a partir do conhecimento prático do problema. O Algoritmo Genético é usado para gerar uma distribuição de pesos quase ótimos entre os critérios, onde uma avaliação ponderada de um único valor pode ser computada para cada jornada. A programação construı́da a partir da distribuição dos pesos gerados é avaliada pela função de aptidão do Algoritmo Genético. Para essa função, são utilizados os objetivos de minimizar jornadas e minimizar o custo total formulados como uma meta fuzzy. Este apresentou um algoritmo inédito baseado na teoria dos conjuntos fuzzy para resolver o Problema de Programação da Tripulação. A partir dos resultados apresentados o algoritmo proposto consegue resolver problemas de tamanho reais. Uma utilização da metaheurı́stica Busca Tabu para resolver o PPT da realidade brasileira foi apresentada em Marinho et al. (2004). Nesta implementação foram utilizadas duas estruturada de vizinhança, uma de realocação e outra de troca de tarefas entre jornadas. Esta mesma estrutura foi adotada no presente trabalho. A Lista Tabu tem como finalidade evitar que a heurı́stica entre em um ciclo durante a busca do melhor vizinho. A lista é utilizada para armazenar as últimas soluções avaliadas, de modo a não permitir que o método volte para uma solução anteriormente avaliada. Três implementação da Busca Tabu foram abordadas no trabalho: a Busca Tabu com o primeiro vizinho de melhora em uma porcentagem da vizinhança; a Busca Tabu com o melhor vizinho em uma vizinhança variável e a Busca Tabu com o primeiro vizinho de melhora em uma porcentagem da vizinhança com diversificação, onde após executar um certo número de iterações sem encontrar uma solução viável, o procedimento é reiniciado. Os testes realizados com os três tipos de busca obtiveram resultados relevantes ao serem comparados com outra heurı́stica abordada na literatura e com dados de um empresa. Revisão Bibliográfica 11 Em Silva and da Cunha (2010) o PPT é resolvido pela combinação da metaheurı́stica GRASP (Greedy Randomized Adaptive Search Procedure) com o método de busca em vizinhança de grande porte, o VLNS (Very Large-Scale Neighborhood Search). Esta abordagem permite que sejam resolvidos problemas reais em empresas de grande porte, em um tempo considerável e com bom resultados, devido a possibilidade de explorar vizinhanças com um número muito grande de soluções adjacentes. Os resultados apresentados referem-se à resolução de problemas reais de uma empresa de Belo Horizonte-MG. Para todos os testes realizados, a abordagem utilizada consegue melhorias significativas na programação da tripulação em relação à solução adotada pela empresa. Gonçalves (2010) propõe um estudo comparativo entre as metaheurı́sticas Busca Tabu e Iterated Local Search (ILS) e uma metodologia exata de programação matemática. Para a utilização das metaheurı́sticas foi necessário a geração de uma solução inicial, onde esta foi gerada de forma sequencial. A cada iteração, uma tarefa é escolhida sequencialmente e alocada à jornada existente, desde que a jornada permaneça viável. Como estrutura de vizinhança foram utilizados os movimentos de troca e realocação de tarefas, os mesmo utilizados no presente trabalho. Na Buca Tabu, a lista tabu é definida como uma fila circular, onde os vizinhos mais antigos são eliminados à medida em que os novos são adicionados e a fila está cheia. A metaheurı́stica ILS é combinada com a metaheurı́stica Variable Neighborhood Descent (VND), onde o VND é utilizado como método de busca local do ILS. Na utilização do ILS um processo de pertubação é apresentado, onde sucessivos movimentos aleatórios baseados na estrutura de vizinhança são empregados. Como critério de aceitação, uma nova solução é aceita se ela for melhor do que a melhor solução encontrada. Para as metaheurı́sticas a função de avaliação proposta leva em consideração soluções viáveis e inviáveis. As soluções inviáveis são penalizadas de forma a privilegiar a eliminação destas da solução final. A metodologia exata proposta utiliza a abordagem de geração de colunas onde as colunas são geradas a partir de Enumeração Exaustiva. No modelo exato só são aceitas soluções que atendam todas as restrições, ou seja soluções viáveis. Os resultados apresentados mostram que os métodos propostos obtêm soluções muito próximas e provou-se otimalidade em 93, 75% dos casos de teste considerados. No trabalho de Reis and Silva (2011) é apresentada a utilização da metaheurı́stica VNS (Variable Neighborhood Search) combinada com dois métodos de busca distintos, o método clássico VND (Variable Neighborhood Descent) e o método de busca em vizinhança de grande porte VLNS (Very Large-scale Neighborhood Search). A metaheurı́stica VNS é iniciada com uma solução factı́vel (solução corrente) e um conjunto 12 Revisão Bibliográfica de estruturas de vizinhança é definido sequencialmente. Com a primeira estrutura de vizinhança, é gerado um vizinho da solução corrente. Em seguida é realizada uma busca local a partir deste vizinho. Se ao final da busca local for encontrado um valor melhor do que o da solução corrente então a solução é atualizada e o procedimento se repete considerando a estrutura de vizinhança inicial. Caso o valor da solução encontrada na busca local seja pior do que o valor atual, um novo vizinho é gerado considerando a próxima estrutura de vizinhança, e o procedimento de busca local é novamente realizado. O procedimento se repete até que a condição de parada seja atingida. Como procedimento de busca local foram utilizados o VND e o VLNS. Ambas as implementações foram testadas considerando que as tripulações podem realizar no máximo uma troca e duas trocas de veı́culos durante a jornada. Os custos para jornadas do tipo dupla pegada também foram variados na realização dos testes, assumindo os valores de 500 e 6000. Os mesmos pesos também foram utilizados no presente trabalho. Ambos os métodos utilizados obtiveram melhores resultados quando comparados com os custos adotados pela empresa da cidade de Belo Horizonte-MG que forneceu os dados. Estes resultados serão utilizados como base de comparação para os métodos propostos neste trabalho. 2.3 Métodos Hı́bridos para resolver o PPT Uma abordagem hı́brida é apresentada em Yunes et al. (2005) para resolver tanto o problema de programação da tripulação como o problema de rodı́zio das tripulações. Os autores utilizam as seguintes técnicas para resolver os problemas: programação inteira, programação por restrição e geração de colunas, utilizando a abordagem de caminho mı́nimo com restrição em um grafo acı́clico dirigido. Este subproblema é resolvido com um algoritmo de programação dinâmica. Devido ao tamanho das instâncias abordadas, a utilização destas técnicas, de forma única, se torna inviável. Logo, a combinação entre elas é considerada para resolver instâncias de grande porte. Para resolver o PPT, inicialmente foi utilizada a técnica de relaxação linear para encontrar bons limites inferiores. Esses limites são utilizados na geração de colunas com o objetivo de gerar novas jornadas viáveis com custo reduzido negativo. Ao encontrar um novo conjunto de jornadas o problema de escalonamento é resolvido por programação linear. Este processo é repetido até que uma condição de parada seja alcançada ou o processo de geração de colunas não encontre nenhuma jornada com custo reduzido negativo. Neste último caso, a otimalidade da solução está provada. Os resultados apresentados mostram que foi possı́vel encontrar a otimalidade em um tempo razoável com instâncias de até 100 Revisão Bibliográfica 13 viagens. Mauri and Lorena (2007) apresentam um método hı́brido utilizando algoritmo de treinamento populacional e programação linear para gerar os horários dos motoristas em um sistema de transporte público. O método utiliza o modelo clássico de particionamento, onde os custos que compõem a função objetivo levam em consideração o total de condutores, de horas extras e de horas ociosas. No algoritmo de treinamento foi utilizada uma busca local, de modo a avaliar vários tamanhos de vizinhança, gerando assim um grande número de jornadas de modo a cobrir todas as tarefas. Em seguida é utilizado um modelo de programação linear para reduzir os custos das jornadas de modo que todas as tarefas sejam realizadas. De acordo com os autores os resultados apresentados são considerados bons e em tempo de execução razoável se comparado com Simulated Annealing apresentados em Mauri and Souza (2003). No trabalho de Gonçalves et al. (2008) é proposta uma metodologia para resolver o PPT utilizando a metaheurı́stica Busca Tabu combinada com Programação Matemática. Nesta implementação uma solução inicial é gerada utilizando um algoritmo guloso, de modo a criar jornadas que operem sempre com os mesmos veı́culos. Após essa fase, é definida uma estrutura de vizinhança onde o conjunto de vizinhos são jornadas que possam ter suas tarefas realocadas ou trocadas entre elas. Após a geração da vizinhança, com tamanho predeterminado, a Busca Tabu é executada para melhorar a solução atual. Se esta melhora não acontecer em um número predeterminado de iterações um procedimento remove algumas tarefas alocadas de modo a gerar um subproblema que é resolvido de forma exata. As tarefas são removidas das jornadas que possuem os maiores tempos de trabalho. Os resultados apresentados mostram que o método hı́brido consegue reduzir os custos das horas extras consideravelmente quando comparando com outros métodos que utilizam somente a abordagem heurı́stica. Capı́tulo 3 Problema de Programação da Tripulação de Ônibus Urbano Neste trabalho é abordado o Problema de Programação das Tripulações de Ônibus Urbano (PPT), também conhecido na literatura como Crew Scheduling Problem. O PPT tem como dados de entrada a solução do Problema de Programação dos Veı́culos, que corresponde ao sequenciamento das viagens a serem realizadas por cada ônibus em operação, de uma empresa, num determinado dia da semana. Cada viagem a ser realizada apresenta um horário de inı́cio e de fim, além do seu ponto inicial e ponto final. O conjunto de todas as viagens realizadas por um veı́culo constitui seu bloco de viagens. Desta forma é possı́vel prever o horário de partida do veı́culo da garagem e o seu retorno ao final do dia, assim como o detalhamento de todas as viagens e eventuais pausas realizadas pelo veı́culo ao longo da operação. As viagens de cada veı́culo são agrupadas em tarefas. Uma tarefa é a sequência de viagens consecutivas que deve ser executada por um único condutor, uma vez que entre estas viagens não existe tempo suficiente para que ocorra a troca da tripulação. Cada jornada corresponde a um conjunto de tarefas que serão realizadas por uma tripulação ao longo de um dia. As jornadas são formadas a partir da atribuição das tarefas, a composição destas jornadas devem respeitar o pontos de trocas, a utilização dos veı́culos, o tempo máximo de trabalho,entre outros. Desta forma, podemos identificar uma jornada como uma tripulação e vice-versa, pois cada tripulante receberá uma jornada a ser realizada durante um dia útil de trabalho. As jornadas também devem respeitar as restrições impostas pela empresa, pelas leis trabalhistas e convenções coletivas. No problema abordado, são considerados dois tipos de jornadas. A dupla pegada 14 Problema de Programação da Tripulação de Ônibus Urbano 15 é uma jornada caracterizada por um conjunto de tarefas que têm um intervalo, entre duas tarefas, maior ou igual a um valor estipulado, no caso de duas horas. Este tipo de jornada é utilizado para a condução dos veı́culos que só operam durante os horários de pico, o que ocorre principalmente no inı́cio da manhã e no final da tarde. O intervalo entre os dois pedaços de jornada não é contabilizado como hora trabalhada. Em uma jornada do tipo pegada simples os intervalos entre as tarefas são menores do que o valor estipulado para a dupla pegada. Independentemente do tipo de jornada, as horas extras correspondem ao tempo trabalhado além do tempo normal, que no caso é de seis horas e quarenta minutos. Por outro lado, se uma jornada durar menos do que o tempo normal de trabalho, então a diferença entre o tempo normal de trabalho e a duração da jornada é o tempo ocioso ou a ociosidade da jornada. A resolução do PPT tem como objetivo atribuir as tarefas às tripulações de modo que cada tarefa seja realizada por uma única tripulação, as restrições do problema sejam atendidas e que o custo total composto pelo número de tripulações e a quantidade de horas extras seja minimizado. Além das restrições mencionadas, as jornadas devem obedecer as restrições impostas pelas empresas, as leis trabalhistas e os acordos contidos nas convenções coletivas de trabalho. Entre essas regras podem se citadas: a carga horária máxima de trabalho de cada tripulante, o tempo mı́nimo de descanso de cada tripulação, o tempo mı́nimo para a realização da troca da tripulação, a possibilidade de troca de veı́culos durante a jornada, entre outras. Nas subseções seguintes são apresentadas as restrições consideradas neste trabalho e uma abordagem matemática clássica de particionamento de conjuntos normalmente utilizada para resolver o problema. 3.1 Restrições do Problema Para a construção das jornadas de trabalho foram levadas em consideração as seguintes restrições operacionais e trabalhistas: • Sobreposição: Dada duas tarefas, i e j realizadas consecutivamente por uma mesma tripulação, então o horário de inı́cio do tarefa j deve ser posterior ao final da tarefa i ; 16 Problema de Programação da Tripulação de Ônibus Urbano • Hora Extra: A duração de uma jornada deve conter no máximo 2 horas a mais da duração de trabalho regular, sendo este tempo de excesso contabilizado como hora extra; • Intervalo de Descanso: Cada tripulação tem direito a no mı́nimo 30 minutos particionado ou não de folga (descanso, almoço, etc.). Esse tempo não é aplicado quando a jornada for do tipo dupla pegada; • Troca de Terminal: Dada duas tarefas, i e j realizadas consecutivamente por uma tripulação, então o ponto final da tarefa i deve ser igual ao ponto inicial da tarefa j. Para as jornadas do tipo dupla pegada esta troca é permitida se o intervalo de tempo entre o término da tarefa i e o inı́cio da tarefa j for superior a 2 horas; • Intervalo de Descanso Diário: Considerando que uma jornada pode ser executada pela mesma tripulação em dias consecutivos, então o intervalo entre o fim da jornada e o seu inı́cio no dia seguinte deve ser superior a 11 horas. • Troca de Veı́culo: Em uma jornada de trabalho, dependendo das regras empresariais, pode ter como restrição um número limitado de troca de veı́culos; • Minimização de Hora Extra: O tempo excedente da hora de trabalho normal será contabilizado em horas extras e o mesmo deve ser minimizado; • Minimização do Número de Duplas Pegadas: Deve ser minimizado o número de jornadas do tipo dupla pegada o tanto quanto possı́vel; • Número de Jornadas: A quantidade de jornadas de trabalho deve ser mı́nimo, cobrindo todas as tarefas as diárias; • Tempo Ocioso: Deve ser minimizado, tanto quanto possı́vel, o tempo total ocioso das tripulações; Capı́tulo 4 Métodos Propostos Neste capı́tulo são apresentados os métodos utilizados para a resolução do PPT. A resolução do PPT consiste em encontrar um conjunto de jornadas de tal forma que todas as tarefas sejam realizadas com o menor custo possı́vel e que sejam atendidas todas as restrições consideradas para o problema (3.1). Inicialmente é apresentado o Modelo de Programação Inteira proposto neste trabalho, o qual modela o problema por meio de uma série de restrições lineares. Posteriormente é apresentado como a metaheurı́stica LAHC foi implementada para resolver o problema, e finalmente segue a descrição da implementação da Matheurı́stica que combina a LAHC com o modelo exato. Para tanto, a seguir são descritas as estruturas utilizadas para representar os principais elementos que compõem uma solução do PPT. 4.1 Estruturas para a Representação do Problema Tarefa Identificador Horário de Inı́cio Horário de Fim Terminal de Inı́cio Terminal de Fim Número do Veı́culo Tabela 4.1: Estrutura de uma tarefa A Tabela 4.1 apresenta os dados de cada tarefa a ser alocada. O campo Identificador 17 18 Métodos Propostos recebe um inteiro que identifica unicamente cada tarefa. Os campos Horário de Inı́cio e Horário de Fim correspondem ao instante estimado em que a tarefa se inicia e se encerra, respectivamente. No campo Terminal de Inı́cio é atribuı́do um número inteiro para identificar o terminal onde a tarefa se inicia, e no campo Terminal de Fim um número inteiro para identificar o terminal onde a tarefa se encerra. O campo Veı́culo recebe um número inteiro que identifica qual veı́culo realiza a tarefa. Estes campos são as caracterı́sticas relevantes de uma tarefa para a resolução do PPT. Jornada Identificador Horário de Inı́cio Horário de Fim Horas Extras Horas Ociosas Dupla Pegada Troca de Veı́culos Lista das Tarefas Tabela 4.2: Estrutura de uma jornada Na Tabela 4.2 é apresentada a estrutura de uma jornada, sendo que para cada jornada é atribuı́do um número inteiro único ao campo Identificador. Os campos Horário de Inı́cio e Horário de Fim recebem o instante estimado em que a jornada se inicia e instante que ele termina, respectivamente. No campo Horas Ociosas é atribuı́da a soma do tempo de Ociosidade Interna e Ociosidade Externa. Onde a ociosidade interna é a soma das ociosidade entre duas tarefas consecutivas. A ociosidade externa contém a ociosidade que ocorre quando uma jornada tem duração inferior ao tempo normal de trabalho. Portanto, a ociosidade externa é igual ao tempo normal de trabalho menos a duração da jornada. No campo Hora Extra é atribuı́do o valor do tempo de trabalho superior ao tempo normal de trabalho, ou seja, a duração da jornada menos o tempo normal de trabalho, quando houver. No campo Dupla Pegada é indicado se a jornada é do tipo dupla pegada ou não. A Troca de Veı́culos corresponde ao número de vezes que a tripulação deve trocar de veı́culo durante a jornada. O conjunto das tarefas a serem realizadas na jornada é armazenado na Lista de Tarefas. Métodos Propostos 4.2 19 Modelo Matemático Proposto Nesta seção é apresentado o modelo matemático proposto para a resolução do Problema de Programação da Tripulação. Este modelo, ainda inédito na literatura, difere dos demais pelo fato de que as jornadas são geradas a partir das tarefas a serem alocadas. Nos modelos matemáticos apresentados na literatura, a solução do problema é alcançada selecionando as melhores jornadas dentro de um conjunto de jornadas previamente geradas, sendo que as jornadas selecionadas devem cobrir todas as tarefas. No método proposto neste trabalho, as jornadas são geradas durante a resolução do modelo, a partir do conjunto de tarefas a ser designado e o conjunto de restrições que devem ser atendidas. Desta forma não é necessário gerar jornadas previamente. Para modelar o problema de forma exata foi utilizada a linguagem Mathematical Programming Language (Fourer et al. 1990) no ambiente de desenvolvimento Gusek. O modelo final foi resolvido pelo Cplex 12.5. A modelagem é apresentada nas subseções 4.2.1 a 4.2.4, onde são descritos os parâmetros e conjuntos utilizados, as variáveis de decisão, as restrições e as duas funções objetivo consideradas. 4.2.1 Parâmetros e Conjuntos Seja qt o parâmetro de entrada que corresponde à quantidade de tarefas do problema, logo tem-se o conjunto de tarefas T , onde |T | = qt. O parâmetro qj se refere ao número máximo de jornadas na solução, que gera o conjunto de possı́veis jornadas J, com |J| ≤ qj. O número máximo de tarefas alocadas a uma jornada é dado pelo valor M ax T ar. Uma constante suficientemente grande M (Big M ) é utilizada na modelagem de algumas restrições. Os parâmetros T emp M ax J e T emp M ax HE correspondem respectivamente à duração máxima de uma jornada de trabalho e ao tempo máximo de horas extras que uma jornada pode conter. Os parâmetros Custo J, Custo HE, Custo OC e Custo DP representam o custo fixo de uma jornada e os custos variávies devido às horas extras, ao tempo ocioso e ao fato da jornada ser do tipo dupla pegada, respectivamente. Quant M ax DP e Quant M ax T V são parâmetros que correspondem à quantidade máxima de duplas pegadas contidas na solução e de trocas de veı́culos realizadas em cada jornada. O parâmetro Inter M in DP é o tempo de intervalo mı́nimo entre duas tarefas que caracterizam uma jornada do tipo dupla pegada, e Inter M in T corresponde ao tempo mı́nimo de descanso/alimentação da tripulação durante a realização da jornada. Este tempo só é necessário para jornadas do tipo pegada simples. 20 Métodos Propostos Vale ressaltar que os parâmetros acima são valores inteiros e positivos. Para cada tarefa t ∈ T , temos stt o horário de inı́cio da tarefa, ett o horário de término, slt o terminal de saı́da, elt o terminal de chegada e vct o veı́culo que realiza a tarefa. Dadas duas tarefas t1 e t2 ∈ T , P os T Vt1 t2 identifica se entre as duas tarefas existe a possibilidade da tripulação realizar a troca entre os respectivos veı́culos, ou seja, P os T Vt1 t2 = 1 se vct1 6= vct2 , elt1 = slt2 e stt2 − ett1 > 0, caso contrário P os T Vt1 t2 = 0. E P os DPt1 t2 identifica se entre as duas tarefas existe um intervalo que possibilita a ocorrência de uma jornada do tipo dupla pegada. Desta forma P os DPt1 t2 = 1 se stt2 − ett1 > Inter M in DP , caso contrário P os DPt1 t2 = 0. 4.2.2 Variáveis de Decisão Para modelar o PPT, além das variáveis de alocação das tarefas às jornadas, são necessárias algumas variáveis auxiliares para que sejam geradas soluções viáveis para o problema. As soluções viáveis devem satisfazer ao conjunto das restrições implementas que serão apresentadas nas próximas subseções. Tais restrições matemáticas são utilizadas para modelar as regras impostas para que uma jornada de trabalho seja viável. Seja j ∈ J ,onde |J| é aproximadamente 30% do total de tarefas , t ∈ T e p ∈ P , |P | = 8 , onde J, T e P são os conjuntos de jornadas, tarefas e posições (corresponde a ordem que cada tarefa esta alocada, onde para cada jornada, uma tarefa será alocada a uma posição, sempre em ordem crescente) das tarefas nas jornadas respectivamente, então a variável binária xjtp assume valor 1 se a tarefa t for alocada à jornada j na posição p. Vale ressaltar que esta é a variável que apresentará a solução do problema. A variável yj é utilizada para identificar se a jornada j tem alguma tarefa alocada a ela, recebendo o valor 1, caso contrário seu valor será 0. A variável inij receberá o valor do horário de inı́cio da jornada j, f imj receberá o valor do horário de término da jornada j e OC intj terá o valor do tempo total de ociosidade interna, ou seja, a soma dos intervalos ociosos entre as tarefas atribuı́das à jornada j. A variável auxiliar OC extj receberá o tempo de ociosidade externa quando houver, que é dado pelo intervalo que falta para concluir a carga horária normal de uma jornada de trabalho, e Qnt HEj receberá a quantidade de horas extras da jornada, quando houver. Considerando j ∈ J, t1 , t2 ∈ T e p1 , p2 ∈ P , então a variável T roca Vjt1 t2 p1 p2 tem como objetivo verificar se existe uma troca de veı́culo entre as tarefas t1 e t2 localizadas nas posições p1 e p2 da jornada j. As variáveis DPjt1 t2 p1 p2 e Duplaj são utilizadas, Métodos Propostos 21 respectivamente, para verificar as posições e marcar se uma jornada é do tipo dupla pegada ou não. A variável Desc DPj contém a amplitude do intervalo não remunerado para as jornadas do tipo dupla pegada. Esse valor é descontado da remuneração da jornada. 4.2.3 Função Objetivo Duas funções objetivo são propostas neste trabalho, sendo que a primeira, dada pela expressão (4.1), minimiza o número de duplas pegadas e não utilizando a restrição (4.15) para limitar o número máximo de jornadas do tipo dupla pegada. A segunda função objetivo, expressa em (4.2), não minimiza o número de duplas pegadas, porém limita o número de jornadas deste tipo considerando a restrição (4.15). Ambas são apresentadas abaixo e foram testadas separadamente. f o1 = X (Custo J ∗ yj + Custo OC ∗ (OC extj + OC intj ) (4.1) j∈J +Custo HE ∗ Qnt HEj + Custo DP ∗ Duplaj ) f o2 = X (Custo J ∗ yj + Custo OC ∗ (OC extj + OC intj ) (4.2) j∈J +Custo HE ∗ Qnt HEj ) Nas expressões (4.1) e (4.2) o Custo J se refere ao custo fixo de cada jornada, Custo OC é o custo de cada hora ociosa, Custo HE é o custo de cada hora extra e Custo DP é o custo associado a cada jornada do tipo dupla pegada, quando esta componente fizer parte da função objetivo. Desta forma são minimizados os custos fixos, as horas extras, as horas ociosas e as duplas pegadas, quando considerada, de uma solução. 4.2.4 Conjunto de Restrições As restrições foram consideradas e implementadas de acordo com as caracterı́sticas descritas anteriormente para o PPT estudado. Devido ao grande número de restrições, estas são apresentadas em blocos, respeitando suas similaridades. 22 Métodos Propostos X xjtp ≤ 1, ∀j ∈ J, p ∈ P (4.3) xjtp = 1, ∀t ∈ T (4.4) t∈T X j∈J,p∈P X xjt1 (p+1) ≤ t1 ∈T X xjt2 p , ∀j ∈ J, p ∈ P − {1} (4.5) t2 ∈T yj ≥ xjtp , ∀j ∈ J, t ∈ T, p ∈ P (4.6) A restrição (4.3) garante que em cada posição de cada jornada só sera alocada uma única tarefa; (4.4) garante que cada tarefa seja alocada somente a uma jornada. A restrição (4.5) garante que as tarefas sejam alocadas às jornadas em posições contı́guas, salvo a primeira posição. A restrição (4.6) verifica se a jornada esta sendo utilizada ou não, fazendo com que o valor da variável yj assuma o valor 1 se alguma tarefa for alocada à jornada j, e 0 caso contrário. As cinco restrições apresentadas estão relacionadas à alocação das tarefas, garantindo assim que estas sejam designadas de forma coerente, gerando soluções factı́veis e que cobrem todas as tarefas informadas. inij = X stt xjt1 , ∀j ∈ J (4.7) t∈T f imj ≥ ett − M (1 − xjtp ), ∀j ∈ J, t ∈ T, p ∈ P P os DPt1 t2 + xjt1 p (4.8) (4.9) +xjt2 (p+1) − DPj t1 t2 p(p+1) ≤ 2, ∀j ∈ J, t1 , t2 ∈ T, p ∈ P − 1 DPj t1 t2 p(p+1) ≤ xjt1 p , ∀j ∈ J, t1 , t2 ∈ T, p ∈ P − 1, t2 > t1 (4.10) DPj t1 t2 p(p+1) ≤ xjt2 (p+1) , ∀j ∈ J, t1 , t2 ∈ T, p ∈ P − 1, t2 > t1 (4.11) Métodos Propostos 23 DPj t1 t2 p(p+1) = 0, ∀j ∈ J, t1 , t2 ∈ T, p ∈ P − 1, P os DPt1 t2 = 0 (4.12) X DPj t1 t2 p(p+1) ≤ 1, ∀j ∈ J (4.13) t1 ,t2 ∈T,p∈P −1 Duplaj = X DPj t1 t2 p(p+1) , ∀j ∈ J (4.14) t1 ,t2 ∈T,p∈P −1 X Duplaj ≤ Qnt M ax DP (4.15) j∈J Desc DPj = X DPj t1 t2 p(p+1) ∗ (stt2 − ett1 ), ∀j ∈ J (4.16) t1 ,t2 ∈T,p∈P −1 f imj − inij − Desc DPj ≤ T emp M ax J + T emp M ax HE, ∀j ∈ J f imj − inij ≤ 780, ∀j ∈ J (4.17) (4.18) As restrições (4.7) e (4.8) são responsáveis por atribuir os valores de inij , inı́cio da jornada e f imj , fim da jornada, para cada jornada j. Estas informações são utilizados nas outras restrições para garantir a consistência temporal das soluções. As restrições apresentadas de (4.9) a (4.16) são utilizadas para identificar e calcular o intervalo das jornadas do tipo dupla pegada, sendo que em (4.9) é verificado se duas tarefas são executadas em ordem consecutiva, e se entre elas ocorre uma dupla pegada. Em caso afirmativo, a variável DPj t1 t2 p(p+1) recebe o valor 1, indicando assim que naquela jornada haverá dupla pegada entre as tarefas t1 e t2 , que se localizam entre as posições p e p + 1. As restrições (4.10) e (4.11) garantem que a variável DP receba valor um se as duas tarefas t1 e t2 foram alocadas àquela jornada . O conjunto de restrições em (4.12) garante que se duas tarefas t1 e t2 não forem candidatas a dupla pegada então a variável DPj t1 t2 p(p+1) nunca receberá valor 1 para estas tarefas. As restrições em (4.13) garantem que cada jornada pode ter no máximo um intervalo de tempo do tipo dupla pegada. As restrições em (4.14) verificam se existe dupla pegada em uma jornada, atribuindo o valor 1 à variável Duplaj e 0 caso contrário. Em (4.15) é limitado o número total de duplas pegadas pelo parâmetro Qnt M ax DP , e em (4.16) é atribuı́do, como desconto de tempo, o valor do intervalo da dupla pegada à variável Desc DPj para que possa ser descontado no cálculo da remuneração da jornada. As restrições em (4.17) garantem que nenhuma jornada pode ultrapassar o tempo máximo de trabalho acrescido das horas extras. Em (4.18) é garantido que o tempo entre o final da jornada e seu inı́cio no dia seguinte seja superior a 11 horas. As tarefas que são terminadas em um dia posterior, é considerado o tempo posterior o dia na constagem das horas de descanso diário. 24 Métodos Propostos OC extj ≥ yj ∗ T emp M ax J − (f imj − inij − Desc DPj ), ∀j ∈ J (4.19) X (ett − stt )xjtp , ∀j ∈ J (4.20) OC intj ≥ (f imj − inij − Desc DPj ) − t∈T,p∈P OC intj ≥ (1 − Duplaj ) ∗ Inter M in T, ∀j ∈ J Qnt HEj ≥ (f imj − inij − Desc DPj ) − T emp M ax J, ∀j ∈ J (4.21) (4.22) As restrições (4.19) e (4.20) calculam a ociosidade externa e interna de uma jornada. O intervalo de descanso da tripulação durante a realização das tarefas é garantido pela restrição (4.21). O cálculo da quantidade de horas extras é realizado em (4.22). xjt1 p + xjt2 (p+1) ≤ 1, ∀j ∈ J, t1 , t2 ∈ T, p ∈ P − {1} (4.23) xjt1 p + xjt2 (p+1) (4.24) −DPj t1 t2 p(p+1) ≤ 1, ∀j ∈ J, t1 , t2 ∈ T, p ∈ P − {1}, slt2 6= elt1 xjt1 p + xjt2 (p+1) (4.25) −T Vj t1 t2 p(p+1) ≤ 1, ∀j ∈ J, t1 , t2 ∈ T, p ∈ P − {1}, P os T Vt1 t2 T Vj t1 t2 p(p+1) ≤ xjt1 p , ∀j ∈ J, t1 , t2 ∈ T, p ∈ P − {1}, t2 > t1 (4.26) T Vj t1 t2 p(p+1) ≤ xjt2 (p+1) , ∀j ∈ J, t1 , t2 ∈ T, p ∈ P − {1}, t2 > t1 (4.27) X T Vj t1 t2 p(p+1) ≤ Qnt M ax T V, ∀j ∈ J (4.28) t1 ,t2 ∈T,p∈P −1 A (4.23) é responsável por garantir que nenhuma tarefa possa ser iniciada antes que a anterior tenha terminado, em uma mesma jornada. Para permitir que haja troca de terminal somente em jornadas do tipo dupla pegada, foi implementada a restrição (4.24). As restrições (4.25), (4.26), (4.27) e (4.28) são responsáveis por garantir as regras de possı́veis trocas de veı́culos. Este modelo tem como caracterı́stica um grande número de restrições pois é por meio delas que as soluções são montadas de acordo com as caracterı́sticas desejadas. Portanto, quanto maior for o problema a ser resolvido, maior será o número de restrições e variáveis, tornando assim ineficiente computacionalmente para problemas práticos de grande porte. Para superar esta limitação foi considerada a implementação de uma metaheurı́stica e sua combinação com o modelo proposto acima. Métodos Propostos 4.3 25 A Metaheurı́stica LAHC A metaheurı́stica Late Acceptance Hill Climbing-LAHC, proposta por Burke and Bykov (2008), trata-se de uma adequação do método Hill Climbing Clássico (Russell and Norvig 2002). Segundo Burke and Bykov (2012), essa metaheurı́stica foi criada tendo em mente três objetivos: ser um procedimento de busca local que não exige um processo de resfriamento artificial, como acontece no Simulated Annealing; usar eficientemente a informação coletada durante iterações anteriores da busca, e; aplicar um novo mecanismo simplificado de aceitação de soluções candidatas. O objetivo desta metaheurı́stica é comparar o valor da função objetivo (fitness) de uma solução candidata com o fitness de uma solução armazenada em uma lista de soluções encontradas em iterações anteriores. Desta forma, a solução não é comparada necessariamente com a melhor solução conhecida, mas com uma solução que foi armazenada em uma certa posição da lista em uma determinada iteração anterior. Vale ressaltar que existe a possibilidade de uma solução candidata ser aceita mesmo não sendo a melhor solução encontrada até a sua iteração. Isto pode ocorrer uma vez que a comparação não é feita com a melhor solução conhecida, e sim com a solução armazenada numa determinada posição da lista. Esta metaheurı́stica tem como único parâmetro o tamanho da lista onde serão armazenados os valores de função objetivo de diferentes soluções encontradas. Esta lista, denotada por f , tem comprimento Lf a. Seja a lista f = {f1 , f2 , ..., fLf a }, onde, inicialmente, todas as suas posições são preenchidas com o custo da solução inicial C(s), ou seja, fk ← C(s), ∀k ∈ {1, 2,..., Lf a}. A cada iteração i, uma solução candidata s0 é gerada na vizinhança de s. Uma solução candidata é aceita se o seu fitness for melhor ou igual ao fitness armazenado na posição v da lista f , onde v = i mod Lf a. Em caso 0 afirmativo, a posição v da lista f é atualizada: fv ← f (s ). Além disso, se essa solução 0 for melhor do que a melhor solução encontrada s∗ , s∗ é atualizada, ou seja, s∗ ← s . Esse procedimento continua até que a condição de parada seja alcançada. Como pode ser visto no Algoritmo 4.1, o LAHC é de fácil implementação, porém algumas fases do algoritmo são de fundamental importância para o bom desempenho do mesmo. Estas fases são apresentadas nas próximas seções. 26 Métodos Propostos Algoritmo 4.1: Implementação do LAHC para um problema de minimização Entrada: Solução inicial s e o parâmetro Lf a. Saı́da: Melhor solução s∗ encontrada. 1 fk ← C(s) ∀k ∈ {1, 2,..., Lf a}; ∗ 2 s ← s; 3 i ← 0; 4 enquanto Condição de parada não atendida faça 0 5 Gere um candidato s na vizinhança de s; 6 v ← i mod Lf a; 0 7 se f (s ) ≤ fv então 0 8 s←s; 9 se f (s) < f (s∗ ) então 10 s∗ ← s; fv ← f (s); i ← i + 1; 11 12 13 retorna s∗ ; 4.3.1 Função Objetivo Como função objetivo da metaheurı́stica LAHC, foi utilizada a mesma função objetivo apresentada em 4.2.3 que minimiza o número de duplas pegadas. Esta é apresentada abaixo. f olahc = X (Custo J ∗ yj + Custo OC ∗ (OC extj + OC intj )+ (4.29) j∈J Custo HE ∗ Qnt HEj + Custo DP ∗ Duplaj ) Na expressão (4.29) o Custo J se refere ao custo fixo de cada jornada, Custo OC é o custo de cada hora ociosa, Custo HE é o custo de cada hora extra e Custo DP é o custo associado a cada jornada do tipo dupla pegada. Desta forma são minimizados os custos fixos, as horas extras, as horas ociosas e as duplas pegadas. 4.3.2 Geração da Solução Inicial Conforme exposto na seção 4.3, um fase importante da metaheurı́stica LAHC é a geração da solução inicial. Para se obter uma solução inicial, foi utilizado um método construtivo Métodos Propostos 27 guloso, onde o critério adotado é a ordem das tarefas, estas ordenadas a partir do tempo de inicio. Os dados de entrada, ou seja, as tarefas a serem programadas, são armazenadas na ordem crescente de seus horários de inı́cio, e em caso de empate, pelo horário de fim. A construção da solução é iniciada com uma jornada vazia, dita jornada corrente. A primeira tarefa k ainda não alocada é inserida nessa jornada. A partir de então, enquanto for possı́vel, são inseridas as próximas tarefas ainda não alocadas, que pertencem ao mesmo veı́culo da tarefa k e que não geram inviabilidade na jornada corrente. Quando não for possı́vel inserir qualquer tarefa na jornada corrente, uma nova jornada vazia é inicializada e o processo se repete até que todas as tarefas tenham sido alocadas a alguma jornada. 4.3.3 Estrutura de Vizinhança Realoca-Troca Os dois tipos de movimentos que caracterizam a estrutura de vizinhança adotada foram a realocação ou a troca de uma tarefa entre duas jornadas, sem gerar inviabilidade. Estes movimentos são realizados para encontrar um vizinho de uma solução corrente. Exemplificando, considere duas jornadas i e j, escolhidas aleatoriamente. Então é sorteada uma tarefa a ser retirada da jornada i e introduzida na jornada j. Logo, pode ocorrer uma das seguintes situações: 1. A tarefa retirada de i pode ser introduzida em j sem a necessidade de remover qualquer tarefa da jornada j. Neste caso é realizado um movimento de realocação, e a nova solução será avaliada. 2. A introdução da tarefa em j exige a retirada de uma ou mais tarefas desta jornada. Neste caso, se a(s) tarefa(s) removida(s) de j puder(em) ser inserida(s) na jornada i, sem haver qualquer sobreposição com as tarefas remanescentes em i, então o movimento é aceito, caso contrário ele é descartado. Este é um movimento de troca. Em ambos os casos, as modificações são aceitas se e somente se as jornadas resultantes respeitarem todas as restrições do problema. Uma representação gráfica do movimento é apresentada na figura 4.1. 28 Métodos Propostos Figura 4.1: Movimentos de realocação e troca de uma tarefa da jornada j para a jornada k 4.4 Matheurı́stica A utilização de métodos exatos em conjuntos com as heurı́sticas vem sendo uma crescente tendência em otimização. Este processo de hibridização de métodos é também conhecido como Matheurı́stica (Maniezzo et al. 2009). Os modelos apresentados nas seções 4.2 e 4.3 fazem parte da abordagem do tipo Matheurı́stica proposta neste trabalho para a resolução do PPT. A Matheurı́stica desenvolvida neste trabalho parte de uma solução viável gerada pela metaheurı́stica LAHC e particiona os componentes da solução em subconjuntos menores de tal forma que gera subproblemas de dimensões menores do que o probema original. Assim, cada partição está associada a um problema menor e apresenta uma solução inicial, a qual pode ser melhorada utilizando o modelo exato. Devido ao tamanho reduzido dos subproblemas, é possı́vel encontrar a solução ótima para cada partição. Neste trabalho, a solução otimizada inicial é produzida a partir da execução da metaheurı́stica LAHC apresentada na seção 4.3. Esta solução é particionada em problemas com no máximo seis jornadas de trabalho. O procedimento adotado para realizar o par- Métodos Propostos 29 ticionamento da solução é apresentado com maiores detalhes na próxima seção. Após o particionamento, cada partição ou subproblema é resolvido pelo modelo exato descrito na seção 4.2, onde tenta-se melhorar a solução inicial para cada partição ou demonstrar a sua otimilidade. Na Figura 4.2 é apresentado um diagrama com os métodos que compõe a abordagem proposta neste trabalho. Figura 4.2: Representação da Matheurı́stica implementada para o Problema de Programação da Tripulação 4.4.1 Particionamento da Solução A seguir é apresentado o procedimento adotado para realizar o particionamento da solução em subproblemas, de tal forma que seja possı́vel empregar o modelo exato e obter a solução ótima. Para escolher as jornadas pertencentes a cada partição foram utilizadas como atributos a quantidade de horas extras, quantidade de horas ociosas e os veı́culos utilizados nas jornadas envolvidas. Para cada partição do problema, foram selecionadas no máximo seis jornadas. Uma primeira partição vazia é criada, e esta partição recebe a jornada com maior número de horas extras e que ainda não foi incluı́da em nenhuma partição. Em seguida, é verificado qual é o veı́culo utilizado na primeira tarefa da jornada inserida. Assim, será inserida na partição a jornada com o maior número de horas ociosas que inicie com o mesmo 30 Métodos Propostos veı́culo da jornada já inserida na partição. Quando não houver nenhuma jornada que utilize o mesmo veı́culo, será inserida a jornada com o maior número de horas ociosas independente do veı́culo utilizado na primeira jornada. Esse processo é realizado até que cada partição receba no máximo seis jornadas e que todas as jornadas sejam alocadas em uma única partição. O fato de escolher jornadas que conduzem o mesmo veı́culo se deve à possibilidade de realocação das tarefas, visto que desta forma as tarefas estarão associadas aos mesmos terminais. Algoritmo 4.2: Particionamento da solução Entrada: Lista de Jornadas Ordenadas por Horas Extras LHe Entrada: Lista de Jornadas Ordenadas por Horas Ociosas LHo Saı́da: Conjunto de partições P 1 Pk ← ∀k; 2 i ← 0; 3 n ← 1; 4 enquanto LHe 6= e LHo 6= faça 5 enquanto (n <= 6)&&(n <= Tamanho de LHe + Tamanho de LHo) faça 6 Pi ← LHe1 ; 7 n ← n + 1; 8 remove a jornada LHe1 das Listas LHe e LHo; 9 se V eı́culoLHe1 = V eı́culoLhok ∀k então 10 Pi ← LHok ; 11 n ← n + 1; 12 remove a jornada LHok das Listas LHe e LHo; 13 14 15 16 17 18 senão Pi ← LHo1 ; n ← n + 1; remove a jornada LHo1 das Listas LHe e LHo; i ← i + 1; retorna s∗ ; Capı́tulo 5 Resultados e Discussão Inicialmente foram realizados testes com o Modelo Exato para medir a dimensão dos problemas que este pode resolver. Para estes testes, foram geradas instâncias a partir de dados reais de uma empresa de transporte público que opera na região metropolitana de Belo Horizonte MG. As caracterı́sticas destes problemas e os resultados obtidos são apresentados na seção 5.1. Cada problema foi resolvido pelo solver do pacote computacional CPLEX 12.5. Na segunda fase de experimentos, a metaheurı́stica LAHC e a Matheurı́stica foram testada em um conjunto de sete instâncias referentes a uma semana de operação de uma empresa que atua na cidade de Belo Horizonte-MG. A metaheurı́stica LAHC e o processo de particionamento das jornadas foram implementados na linguagem C/C++. Após o particionamento das jornadas, cada subproblema foi resolvido pelo solver do pacote computacional CPLEX 12.5. Todos os testes foram executados em um microcomputador com processador Intel(R) Core(TM) i7-2600, com clock de 3.40GHz, 8 GB de memória RAM, sob plataforma Windows Seven Professional. Neste Capı́tulo são apresentados os resultados obtido pelo modelo exato, pela metaheurı́stica LAHC e pela Matheurı́stica. Na seção 5.1 são apresentadas os resultados obtidos pelo método exato. Em 5.2 é mostrado os resultados do LAHC, incluindo a fase de calibração, os resultados da matheurı́stica e uma comparação com outras metaheurı́sticas abordadas na literatura. 5.1 Resultados Obtidos pelo Modelo Exato Para testar o modelo foram gerados 4 casos com caracterı́sticas particulares. Os problemas resolvidos têm as seguintes caracterı́sticas: • Caso 1: modelo completo com todas as restrições e a função objetivo 4.1. Dados 31 32 Resultados e Discussão de entrada: veı́culos com e sem dupla pegada; • Caso 2: modelo sem restrições de dupla pegada e a função objetivo 4.2. Dados de entrada: veı́culos com e sem dupla pegada; • Caso 3: modelo sem restrições de dupla pegada e de troca de terminal e função objetivo 4.2. Dados de entrada: veı́culos com e sem dupla pegada e que operam no mesmo terminal; • Caso 4: modelo completo com todas as restrições e a função objetivo 4.1. Dados de entrada: veı́culos somente do tipo dupla pegada e que operam no mesmo terminal. Nos experimentos com o Modelo Exato, foram utilizados, devido dos resultados encontrados na maioria das literatura, os seguintes valores para seus parâmetros: • Custo por jornada de trabalho: 10.000 • Custo da dupla pegada: 600 • Custo da hora extra expressa em minutos: 4 • Custo da hora ociosa expressa em minutos: 1 Para cada caso foram gerados 5 problemas. Estes foram resolvidos pelo CPLEX por um tempo limite de 8 horas. Porém, para os casos nos quais foram encontradas as soluções ótimas, esse tempo foi inferior. As tabelas abaixo apresentam os problemas e os resultados obtidos. É importante ressaltar que para melhor análise, foram tomadas linhas de ônibus com o mesmo número de tarefas, porém estas tarefas não são coincidentes. As Tabelas 5.1, 5.3, 5.5 e 5.7 contêm as caracterı́sticas dos problemas testes gerados em cada caso. Na coluna “Número de tarefas” é apresentado o valor total de tarefas a serem alocadas em cada problema. A coluna “Número de veı́culos” apresenta a quantidade de veı́culos utilizados para cumprir todas as tarefas. Na coluna “Número de variáveis” é apresentada a quantidade de variáveis geradas pelo modelo exato para resolver o problema. A coluna “Número de restrições” mostra a quantidade de restrições geradas pelo modelo para a representação do problema. Os dados que caracterizam estes problemas gerados para o caso 1 são apresentados na Tabela 5.1. Resultados e Discussão Problema 33 Número Número Número Número de tarefas de veı́culos de variáveis de restrições 1 24 2 41.320 69.355 2 33 3 124.144 224.074 3 40 4 227.280 422.331 4 45 5 344.616 658.278 5 52 6 765.600 1.462.053 Tabela 5.1: Caracterı́sticas dos problemas gerados para o caso 1 Os valores apresentados para cada problema refere-se à melhor solução obtida pelo CPLEX até o tempo limite. Nas Tabelas 5.2, 5.4, 5.6 e 5.8, que contém as caracterı́sticas das soluções, a coluna “Total de jornadas” representa a quantidade de jornadas contidas na solução. As coluna “Total de horas extras” e “Total de horas ociosas” mostram a quantidade de horas extras e quantidade de horas ociosas da solução, expressas em horas e minutos no formato hh:mm. Na coluna “Gap em %” é apresentada uma estimativa da diferença para solução ótima em porcentagem. Quando o Gap é igual a zero, então a solução é ótima, caso contrário, a otimalidade não foi provada pelo solver. Esta estimativa é calculada automaticamente pelo CPLEX. Na coluna “Total de duplas pegada” é apresentada a quantidade de jornadas do tipo dupla pegada nas soluções encontradas. Esta coluna não figura nas Tabelas 5.4 e 5.6 pois as restrições utilizadas não considera jornadas do tipo dupla pegada ou ela não faz parte da função objetivo. A coluna “Fo” apresenta o valor da função objetivo da melhor solução encontrada para cada problema. A Tabela 5.2 apresenta os resultados dos cinco problemas para o caso 1. No problema 1 foi encontrada a solução ótima em aproximadamente 101 minutos. Porém só com cerca de 305 minutos ele foi capaz de provar a otimalidade da solução. Problema 1 2 3 4 5 Total de jornadas Total de horas extras Total de horas ociosas Gap em % Total de dupla pegada Fo Tempo de processamento 5 7 10 13 16 146 151 98 454 257 225 403 451 1046 1989 0 38,84 54,87 52,62 67,78 1 1 2 2 3 51.409 71.607 102.043 134.062 164.817 305 480 480 480 480 Tabela 5.2: Resultados do modelo exato para os problemas para o caso 1 34 Resultados e Discussão Na Tabela 5.3 são apresentados os dados que caracterizam os problemas referentes ao caso 2. Problema Número Número Número Número de tarefas de veı́culos de variáveis de restrições 1 24 2 32.580 71.076 2 33 3 71.037 172.914 3 40 4 138.312 353.692 4 45 5 218.115 572.535 5 52 6 348.300 932.236 Tabela 5.3: Caracterı́sticas dos problemas gerados para o caso 2 Os resultado relativos aos cinco problemas de caso 2, apresentados na Tabela 5.4, mostram que para o problema 1, foram gastos 293 minutos para provar a otimalidade da solução,porém a solução ótima foi encontrada em aproximadamente 39 minutos. Para esse caso a coluna quantidade de duplas pegadas foi omitida, pois esta caracterı́stica não é considerada na função objetivo. Problema Total de Total de Total de Gap Fo Tempo de jornadas horas extras horas ociosas em % 1 6 37 377 0 60.525 293 2 7 231 364 30,79 71.288 480 3 10 101 472 50,22 100.876 480 4 12 198 1016 51,12 121.808 480 5 13 290 917 45,79 132.077 480 processamento Tabela 5.4: Resultados do modelo exato para os problemas do caso 2 Resultados e Discussão 35 Os dados que caracterizam os 5 problemas do caso 3 são apresentados na Tabela 5.5. Problema Número Número Número Número de tarefas de veı́culos de variáveis de restrições 1 24 2 25.380 43.800 2 33 3 71.037 139.650 3 40 4 138.312 288.172 4 45 5 218.115 468.585 5 52 6 348.300 768.184 Tabela 5.5: Caracterı́sticas dos problemas gerados para o caso 3 Na Tabela 5.6 são apresentados os resultados para os cinco problemas de caso 3. Novamente, para o problema 1, que é o de menor dimensão, foi encontrada a solução ótima. Isto se deu em aproximadamente 2 minutos. Após 18 minutos foi provada a otimalidade da solução. Para este caso o número de restrições foi reduzido, o que levou o CPLEX a encontrar as soluções mais rapidamente. Problema Total Total de Total de Gap Fo Tempo de de jornadas horas extras horas ociosas em % 1 4 354 251 0 41.667 18 2 6 369 444 18,28 61.920 480 3 9 155 530 44,96 91.150 480 4 11 251 928 49,62 111.932 480 5 15 199 1547 45,82 152.343 480 processamento Tabela 5.6: Resultados do modelo exato para os problemas para o caso 3 Os dados que caracterizam os problemas gerados para o caso 4 são apresentados na Tabela 5.7. 36 Resultados e Discussão Problema Número Número Número Número de tarefas de veı́culos de variáveis de restrições 1 24 3 57.848 104.002 2 33 4 232.770 435.978 3 40 5 363.648 694.200 4 45 6 631.796 1.219.109 5 52 7 842.160 1.640.768 Tabela 5.7: Caracterı́sticas dos problemas gerados para o caso 4 Conforme pode ser observado na Tabela 5.8, que apresenta os resultados para os cinco problemas do caso 4, não foi possı́vel provar a otimalidade para nenhum dos problemas, pois existem veı́culos caracterı́sticos de dupla pegada e foram consideradas todas as restrições. Desta forma, torna-se um caso mais difı́cil de ser resolvido. O custo de dupla pegada foi incluı́do neste problema. Assim, a solução tentar diminuir ao máximo o total de jornadas deste tipo. Também se observa que o número de veı́culos para cada problema é maior. Problema 1 2 3 4 5 Total de jornadas Total de horas extras Total de horas ociosas Gap em % Total de dupla pegada Fo Tempo de processamento 6 8 10 12 16 23 32 33 70 41 392 513 657 988 1535 26,83 48,83 50,36 52,62 59,39 4 3 6 4 7 62.884 82.441 104.389 123.668 165.899 480 480 480 480 480 Tabela 5.8: Resultados do modelo exato para os problemas para o caso 4 Realizando a análise dos resultados apresentados, percebe-se que o modelo exato consegue encontrar e provar a ótimalidade somente para os problemas com 24 tarefas, com exceção no caso 4. Nestas soluções, o total de jornadas varia entre 4 e 6. Além do número de tarefas, quando essas possuem caracteristica de dupla pegada, é perceptivel o aumento no tempo de processamento e no gap encontrada. Na Matheurı́stica apresentada em 4.4, a definição do método de particionamento e do número de jornadas contidas em cada partição da solução foi baseada na conclusão destes testes. Desta forma, cada partição recebeu no máximo 6 jornadas. Resultados e Discussão 5.2 37 Resultados Obtidos pelo LAHC e a Matheurı́stica Os resultados apresentados nessa seção foram divididos em duas categorias: Calibração da Metaheurı́stica LAHC e Comparação da Matheurı́stica, LAHC e demais metaheurı́sticas. A calibração de uma metaheurı́stica serve para encontrar os melhores valores dos parâmetros de entrada do algoritmo. A comparação é apresentada para avaliar os resultados gerados pelo LAHC e pela Matheurı́stica em relação a algumas metaheurı́sticas apresentadas na literatura. Vale ressaltar que o tempo de execução da Matheurı́stica é limitado a 60 minutos por partição da solução inicial encontrada pelo LAHC. 5.2.1 Calibração da Metaheurı́stica A metaheurı́stica LAHC conta com apenas um parâmetro a ser calibrado. Entretanto, esta definição pode não ser simples pela amplitude do intervalo a ser considerado para este parâmetro. Para a realização dessa fase foram utilizadas 7 instâncias. Para cada instância foram realizadas 10 execuções com um determinado tamanho da lista Lf a, tendo como condição de parada o tempo de processamento limitado a 60 minutos. Foram considerados os seguintes valores para o tamanho da lista: 10, 20, 30, 40, 50, 100, 150, 200, 250, 300, 350, 400, 450 e 500. O custo para cada jornada do tipo dupla pegada foi fixado em 5.000 para essa etapa, este valor foi determinado empirı́camente. Na Tabela 5.9 são apresentadas as informações de cada instância utilizada para a realização dos testes da calibragem. Instancia Total de tarefas Total de veı́culos 1 - Segunda 705 61 2 - Terça 674 58 3 - Quarta 814 68 4 - Quinta 872 76 5 - Sexta 787 71 6 - Sábado 644 56 7 - Domingo 345 34 Tabela 5.9: Tabela com as informações de cada instância, contendo a quantidade de tarefas a serem realizadas e quantos veı́culos são utilizados. 620.547,20 Média: 598.932 1.192.748 1.207.988,80 Média: Menor: 1.566.860 Menor: 1.658.044 1.674.716,80 1.532.864 1.543.342,80 1.312.836 1.329.808,40 1.363.352 1.374.668,40 615.856 624.715,20 1.193.200 1.207.491,20 1.571.112 1.581.490,00 1.579.223,20 Menor: Média: 1.659.352 1.673.385,20 Média: Menor: 1.531.316 1.547.521,60 Média: Menor: 1.307.848 1.330.962,80 Média: Menor: 1.348.068 1.372.661,20 Menor: Média: LFA 20 610.148 625.411,20 1.194.484 1.207.802,00 1.575.488 1.583.796,40 1.664.144 1.677.892,40 1.527.984 1.549.053,20 1.321.140 1.331.471,20 1.354.596 1.367.260,00 LFA 30 618.640 626.914,80 1.189.000 1.208.764,40 1.582.796 1.589.783,20 1.664.272 1.678.872,40 1.527.728 1.539.884,80 1.313.488 1.333.684,80 1.367.996 1.374.164,40 LFA 40 608.140 619.630,40 1.185.520 1.207.836,80 1.566.184 1.582.949,20 1.668.412 1.675.436,40 1.538.384 1.549.700,40 1.316.984 1.331.575,20 1.368.040 1.374.804,80 LFA 50 610.568 627.802,00 1.198.840 1.210.340,00 1.576.628 1.588.925,20 1.664.136 1.681.080,80 1.522.508 1.543.948,80 1.317.616 1.331.466,00 1.354.396 1.373.267,20 LFA 100 LFA 150 606.920 624.246,00 1.197.400 1.212.529,60 1.568.576 1.587.460,40 1.663.208 1.678.390,80 1.528.200 1.546.897,60 1.299.280 1.326.621,60 1.367.392 1.376.253,20 Tabela 5.10: Resultados do primeiro teste de calibração da Metaheurı́stica LAHC para os valores de tamanho de lista: 10, 20, 30, 40, 50, 100 e 150 Instância 7 Instância 6 Instância 5 Instância 4 Instância 3 Instância 2 Instância 1 LFA 10 38 Resultados e Discussão 624.256,40 Média: 612.664 1.184.476 Menor: 1.571.484 1.584.374,80 1.660.896 1.676.116,80 1.533.400 1.543.274,00 1.321.468 1.332.518,40 1.350.404 1.368.108,00 606.908 624.612,00 1.193.084 1.203.968,40 1.207.675,20 Menor: Média: 1.575.884 1.586.724,40 Média: Menor: 1.650.620 1.677.325,20 Média: Menor: 1.538.456 1.549.056,80 Média: Menor: 1.317.992 1.333.122,80 Média: Menor: 1.360.972 1.376.335,20 Menor: Média: LFA 250 603.216 623.655,60 1.195.844 1.212.913,20 1.566.896 1.585.825,20 1.659.656 1.678.506,40 1.523.152 1.543.625,60 1.326.272 1.334.909,60 1.364.032 1.378.724,80 LFA 300 602.360 624.960,80 1.198.352 1.209.876,40 1.576.128 1.585.695,60 1.663.976 1.680.278,40 1.528.732 1.546.080,40 1.321.076 1.336.621,20 1.368.112 1.377.102,00 LFA 350 617.908 626.255,60 1.194.208 1.207.131,60 1.570.756 1.585.237,20 1.664.572 1.675.226,40 1.538.352 1.551.978,80 1.317.044 1.329.849,60 1.354.328 1.369.679,60 LFA 400 613.220 629.812,40 1.188.964 1.208.432,00 1.575.296 1.587.726,80 1.673.156 1.681.326,40 1.532.436 1.543.576,00 1.319.448 1.334.827,60 1.362.484 1.373.172,00 LFA 450 611.516 625.364,80 1.199.276 1.211.213,20 1.572.108 1.583.106,00 1.658.980 1.674.926,40 1.528.172 1.545.206,80 1.317.112 1.334.266,80 1.362.144 1.373.014,40 LFA 500 Tabela 5.11: Resultados do primeiro teste de calibração da Metaheurı́stica LAHC para os valores de tamanho de lista: 200, 250, 300, 350, 400, 450 e 500 Instância 7 Instância 6 Instância 5 Instância 4 Instância 3 Instância 2 Instância 1 LFA 200 Resultados e Discussão 39 40 Resultados e Discussão Os resultados da primeira calibração são apresentados nas Tabelas 5.10 e 5.11, onde verificou-se que as melhores soluções foram obtidas para os seguintes tamanhos da lista: 40, 50, 100 e 300. Assim, foi necessário realizar novos testes de calibração, levando em conta somente os quatro tamanhos de lista com as melhores soluções. Cada uma das 7 instâncias foram utilizadas, porém foram realizadas apenas três execuções para cada valor atribuı́do ao tamanho da lista Lf a. Os resultados para a segunda etapa de testes de calibração são apresentados na Tabela 5.12, onde os testes com tamanho de lista 50 obtiveram os melhores resultado em 3 instâncias. Para as outras instâncias, foram obtidos resultados muito próximos às melhores soluções encontradas. Logo, como resultado de calibração, foi considerado o tamanho de lista ideal igual a 50. Assim, para os experimentos restantes foi adotado o parâmetro Lf a = 50. Instância 1 Instância 2 Instância 3 Instância 4 Instância 5 Instância 6 Instância 7 Lfa 40 Lfa 50 Lfa 100 Lfa 300 Média: 1.344.330,67 1.336.676,00 1.352.716,00 1.346.317,33 Menor: 1.336.704 1.331.732 1.332.692 1.337.192 Média: 1.290.684,00 1.299.412,00 1.300.594,67 1.303.334,67 Menor: 1.277.220 1.288.016 1.295.488 1.295.492 Média: 1.513.765,33 1.508.077,33 1.525.436,00 1.520.089,33 Menor: 1.504.524 1.488.040 1.507.424 1.509.720 Média: 1.649.356,00 1.640.852,00 1.662.602,67 1.651.034,67 Menor: 1.639.844 1.620.672 1.660.384 1.642.584 Média: 1.568.070,67 1.561.241,33 1.553.341,33 1.560.121,33 Menor: 1.562.696 Média: 1.192.054,67 Menor: 1.182.216 1.181.472 1.180.640 1.180.540 Média: 611.296,00 615.502,67 618.793,33 618.522,67 Menor: 606.068,00 607.196,00 612.184,00 615.512,00 1.551.600 1.545.056 1.186.600,00 1.183.202,67 1.543.392 1.184.726,67 Tabela 5.12: Resultados do segundo teste de calibração da Metaheurı́stica LAHC para os valores de tamanho de lista: 40, 50, 100 e 300 5.2.2 Comparação entre a Matheurı́stica, LAHC e demais Metaheurı́sticas Nos experimentos, foram adotados os seguintes valores para os respectivos parâmetros: Resultados e Discussão 41 • Custo por jornada de trabalho: 10.000 • Custo da dupla pegada: 5.000 e 600 • Custo da hora extra expressa em minutos: 4 • Máximo de trocas de veı́culos por jornada: 1 Para cada instância, foram realizadas 10 execuções da metaheurı́stica tendo como condição de parada o tempo em execução limitado a 60 minutos. Em relação à Matheurı́stica, cada subproblema foi executado em um tempo máximo de 60 minutos no CPLEX, em busca da solução ótima. As instâncias de testes foram as mesmas instâncias utilizadas na fase de calibração da metaheurı́stica LAHC. As caracterı́sticas destas instâncias estão apresentadas na Tabela 5.9. As Tabelas apresentadas a seguir mostram uma comparação dos resultados obtidos pela LAHC, pela matheurı́stica e aqueles produzidos pelas metaheurı́sticas VNS clássico, VNS combinado com VLNS e ILS clássico e ILS combinado com VLNS, do trabalho de Silva and Reis (2014). Também são apresentadas as soluções adotadas pela empresa para os problemas. Os resultados apresentados nesta seção estão divididos em dois grupos, considerando os diferentes valores para o custo das jornadas do tipo dupla pegada. Dado que as empresas geralmente operam com no máximo 20% de jornadas com dupla pegada é importante avaliar o impacto resultante da variação no custo destas jornadas e a consequencia no número de jornadas deste tipo nas soluções finais. Na primeira etapa dos testes, foram comparados os resultados gerados pela Matheurı́stica e as metaheurı́sticas LAHC, VNS Clássico (VNS), VNS combinado com VLNS (VNS-VLNS), ILS Clássico (ILS), ILS combinado com VLNS (ILS-VLNS), considerando o custo da dupla pegada igual a 600. Na segunda etapa foram avaliados os resultados da Matheurı́stica e das metaheurı́sticas LAHC, VNS, VNS-VLNS considerando um custo de 5.000 para as jornadas do tipo dupla pegada. 5.2.2.1 Resultados com Custo 600 para as Jornadas do Tipo Dupla Pegada A Tabela 5.13 contêm as caracterı́sticas das melhores soluções obtidos pela Matheurı́stica, LAHC, VNS, VNS-VLNS, ILS e ILS-VLNS para a primeira instância, que se refere à operação de uma segunda-feira na empresa. A coluna “Fo” apresenta o valor da função objetivo da melhor solução encontrada por cada método. A coluna “Total de jornadas” apresenta a quantidade de jornadas contidas na solução de cada método. A coluna “Total de horas extras” mostra a quantidade de horas extras das soluções, expressa em horas e minutos no formato hh:mm. Na coluna “Total de duplas pegadas” é apresentada a quantidade de jornadas do tipo dupla pegada nas soluções. Esta mesma estrutura é utilizada para apresentar os resultados das outras instâncias contidos nas Tabelas 5.15, 5.17, 5.19, 5.21, 5.23 e 5.25. 42 Resultados e Discussão Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas Matheurı́stica 1.163.884 108 112:01 95 LAHC 1.163.904 108 109:36 96 VNS Clássico 1.218.316 120 54:46 23 VNS-VLNS 1.217.024 119 67:36 18 ILS Clássico 1.234.612 121 52:33 20 ILS - VLNS 1.216.256 119 64:24 18 Tabela 5.13: Caracterı́sticas dos melhores resultados para a instância 01 com custo 600 para jornadas do tipo dupla pegada A Tabela 5.14 apresenta uma comparação entre o melhor resultado obtido pela Matheurı́stica e os melhores resultados encontrados pelas metaheurı́stica LAHC, VNS, VNS-VLNS, ILS e ILS-VNLS para a instância 01. As porcentagens desta tabela foram obtidas utilizando a seguinte expressão: Pij = (V alorij − V alorM ath )/V alorij , ∀i ∈ I, j ∈ J, onde I é o conjunto de atributos da solução (Fo, Total de jornadas, Total de horas extras e Total de duplas pegadas) e J é o conjunto das metaheurı́sticas (LAHC, VNS, VNS-VLNS, ILS e ILS-VNLS). Para cada i ∈ I e j ∈ J, se Pij > 0 então a Matheurı́stica obteve uma redução sobre o V alorij obtido pela metaheurı́stica j, ou seja, há uma vantagem da Matheurı́stica sobre a metaheurı́stica j. Se Pij < 0 a Matheurı́stica obteve um acréscimo sobre o valor de V alorij da metaheurı́stica j, ou seja, ocorre uma desvantagem da Matheurı́stica em relação à metaheurı́stica j. E se Pij = 0 a Matheurı́stica obteve o mesmo V alorji da metaheurı́stica j, então não houve modificação para o atributo i. A mesma estrutura é utilizada para comparar os resultados obtidos pela Matheurı́stica para as outras instâncias. Estas comparações são apresentadas nas Tabelas 5.16, 5.18, 5.20, 5.22, 5.24 e 5.26. Resultados e Discussão Métodos 43 Total de Total de Total de jornadas horas extras duplas pegadas 0,0017% 0,00% -2,20% 1,04% VNS Clássico 4,47% 10,00% -104,53% -313,04% VNS-VLNS 4,37% 9,24% -65,71% -427,78% ILS Clássico 5,73% 10,74% -113,16% -375,00% ILS -VLNS 4,31% 9,24% -73,94% -427,78% LAHC Fo Tabela 5.14: Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS, VNS-VLNS, ILS e ILS - VLNS para a instância 01 com custo 600 para jornadas do tipo dupla Analisando as Tabelas 5.13 e 5.14 é possı́vel concluir que a combinação do modelo exato com o LAHC (Matheuristica), produziu, para a instância 1, soluções com menores custo de F o, conseguindo reduzir o número de jornadas em torno de 10%, exceto quando comparado com a metaheurı́stica LAHC. Por outro lado, percebe-se um aumento significativo no total de horas extras e no total de duplas pegadas. Comparando o número de duplas pegadas da Matheurı́stica com a metaheurı́stica VNS-VLSNS, este valor chega a aumentar em cerca de 427%, tornando a solução indesejável para a empresa, uma vez que é adotado em média 20% de jornadas do tipo duplas pegadas na prática. Comparando a Matheurı́stica com o LAHC, o ganho é mı́nimo, considerando o tempo de processamento de 1080 minutos (18 partições com limite de 60 minutos) levado para obter a redução de somente 0, 0017%. Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas Matheurı́stica 1.110.504 104 111:16 74 LAHC 1.112.008 104 110:02 76 VNS Clássico 1.167.748 116 60:24 15 VNS-VLNS 1.183.108 116 63:47 13 ILS Clássico 1.187.020 116 62:35 20 ILS - VLNS 1.177.048 115 65:12 19 Tabela 5.15: Caracterı́sticas dos melhores resultados para a instância 02 com custo 600 para jornadas do tipo dupla pegada 44 Resultados e Discussão Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas LAHC 0,14% 0,00% -1,12% 2,63% VNS Clássico 4,90% 10,34% -84,22% -393,33% VNS-VLNS 6,14% 10,34% -74,44% -469,23% ILS Clássico 6,45% 10,34% -77,79% -270,00% ILS-VLNS 5,65% 9,57% -70,65% -289,47% Tabela 5.16: Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS, VNS-VLNS, ILS e ILS-VLNS para a instância 02 com custo 600 para jornadas do tipo dupla pegada Para a segunda instância é possı́vel perceber, a partir das Tabelas 5.15 e 5.16, que a combinação do modelo exato com o LAHC , produz soluções com menores valores para a F o e o número de jornadas. O número total de horas extras e total de duplas pegadas aumenta bruscamente, chegando a cerca de 469% de acréscimo quando comparado com a solução obtida pela metaheurı́stica VNS-VLNS. Porém o ganho da Matheurı́stica em relação às metaheurı́sticas, variando entre 0, 14% e 6, 45% para a função objetivo e entre 0, 0% e 10, 34% para o total de jornadas. Comparando a Matheurı́stica e o LAHC, houve uma redução de 0, 14% na F o e de 76 para 74 no número de duplas pegadas. Entretanto, esta quantidade de duplas pegadas ainda ultrapassa o número aceitável para a empresa. Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas Matheurı́stica 1.331.296 124 130:22 100 LAHC 1.331.872 124 127:48 102 VNS Clássico 1.396.164 137 63:57 22 VNS-VLNS 1.409.336 138 64:44 23 ILS Clássico 1.408.672 138 61:58 23 ILS-VLNS 1.406.892 138 62:03 20 Tabela 5.17: Caracterı́sticas dos melhores resultados para a instância 03 com custo 600 para jornadas do tipo dupla pegada Resultados e Discussão Métodos 45 Fo Total de Total de Total de jornadas horas extras duplas pegadas LAHC 0,04% 0,00% -2,01% 1,96% VNS Clássico 4,65% 9,49% -103,86% -354,55% VNS-VLNS 5,54% 10,14% -101,39% -334,78% ILS Clássico 5,49% 10,14% -110,38% -334,78% ILS-VLNS 5,37% 10,14% -110,10% -400,00% Tabela 5.18: Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS, VNS-VLNS, ILS e ILS-VLNS para a instância 03 com custo 600 para jornadas do tipo dupla pegada Os resultados para a instância 03 são apresentados nas Tabelas 5.17 e 5.18. Como nas instâncias anteriores, o modelo exato combinado com a metaheurı́stica LACH reduz os custo de F o e o número de jornadas, e conta com um aumento no total de horas extras e de duplas pegadas. O total de duplas pegadas passou de 20 para 100, quando comparado com a metaheurı́stica ILS-VLNS, caracterizando assim um aumento de cerca de 400%. A Matheurı́stica comparada com LAHC apresenta, para a terceira instância, uma redução de 0, 04% na função objetivo e cerca de 2% no número de duplas pegadas. Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas Matheurı́stica 1.429.740 133 148:05 107 LAHC 1.429.868 133 148:37 107 VNS Clássico 1.515.728 150 61:09 34 VNS-VLNS 1.522.524 149 73:01 25 ILS Clássico 1.538.640 151 59:20 24 ILS-VLNS 1.534.792 151 60:48 17 Tabela 5.19: Caracterı́sticas dos melhores resultados para a instância 04 com custo 600 para jornadas do tipo dupla pegada 46 Resultados e Discussão Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas LAHC 0,01% 0,00% 0,36% 0,00% VNS Clássico 5,67% 11,33% -142,16% -214,71% VNS-VLNS 6,09% 10,74% -102,81% -328,00% ILS Clássico 7,08% 11,92% -149,58% -345,83% ILS-VLNS 6,84% 11,92% -143,56% -529,41% Tabela 5.20: Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS, VNS-VLNS, ILS e ILS-VLNS para a instância 04 com custo 600 para jornadas do tipo dupla pegada Nas Tabelas 5.19 e 5.20 são apresentados os resultados obtidos para o quarto dia operacional. Os custos de F o são reduzidos pela Matheurı́stica em até 7, 08% e o número de jornadas é reduzido, chegando em até 11, 92% quando comparado com ILS e o ILSVNLS. Porém o número de duplas pegadas, quando comparado com Matheurı́stica, tem um acréscimo de até 529, 41%, com um total de 107 jornadas do tipo dupla pegada de um total de 133 jornadas, o que corresponde a cerca 80% do total de jornadas. A Matheurı́stica consegue reduzir o custo da função objetivo da metaheurı́stica LAHC em 0, 01%, custo este relacionado à redução no número de horas extras. Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas Matheurı́stica 1.368.232 127 144:18 106 LAHC 1.368.232 127 144:18 106 VNS Clássico 1.426.732 140 74:55 30 VNS-VLNS 1.446.964 142 69:05 17 ILS Clássico 1.447.112 142 67:58 18 ILS-VLNS 1.437.300 141 73:45 16 Tabela 5.21: Caracterı́sticas dos melhores resultados para a instância 05 com custo 600 para jornadas do tipo dupla pegada Resultados e Discussão Métodos 47 Fo Total de Total de Total de jornadas horas extras duplas pegadas LAHC 0,00% 0,00% 0,00% 0,00% VNS Clássico 4,10% 9,29% -92,61% -253,33% VNS-VLNS 5,44% 10,56% -108,88% -523,53% ILS Clássico 5,45% 10,56% -112,31% -488,89% ILS-VLNS 4,81% 9,93% -95,66% -562,50% Tabela 5.22: Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS, VNS-VLNS, ILS e ILS-VLNS para a instância 05 com custo 600 para jornadas do tipo dupla pegada A instância 05 tem seus resultados apresentados na Tabela 5.21 e 5.22. A Matheurı́stica se mostra ineficiente ao tentar melhorar a solução obtida pelo LAHC para esta instância. Porém a metaheurı́stica LAHC obtém melhores resultados de F o e número total de jornadas quando comparada às outras metaheurı́sticas, conseguindo reduções do custo total que variam entre 4, 10% e 5, 45%. O número de duplas pegadas na solução encontrada pela metaheurı́stica LAHC é muito alto, sendo que das 127 jornadas totais, 106 são jornadas do tipo dupla pegada. Se for comparada com a solução que gera o menor número de jornadas deste tipo, tem-se um aumento de 562, 5%. Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas Matheurı́stica 996.912 92 127:58 73 LAHC 997.460 92 127:45 78 VNS Clássico 1.063.544 106 60:22 17 VNS-VLNS 1.101.428 108 51:47 15 ILS Clássico 1.084.620 106 62:35 16 ILS-VLNS 1.099.440 108 58:30 9 Tabela 5.23: Caracterı́sticas dos melhores resultados para a instância 06 com custo 600 para jornadas do tipo dupla pegada 48 Resultados e Discussão Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas LAHC 0,05% 0,00% -0,17% 6,41% VNS Clássico 6,27% 13,21% -111,98% -329,41% VNS-VLNS 9,49% 14,81% -147,12% -386,67% ILS Clássico 8,09% 13,21% -104,47% -356,25% Tabela 5.24: Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS, VNS-VLNS, ILS e ILS-VLNS para a instância 06 com custo 600 para jornadas do tipo dupla pegada Para a sexta instância, referente a um dia de sábado, caracterizado por um número reduzido de tarefas, os resultados obtidos são apresentados nas Tabelas 5.23 e 5.24. A Matheurı́stica consegue melhorar a solução encontrada pela metaheurı́stica LAHC para esta instância, com uma redução de 0, 05% no custo total e uma redução de 6, 41% no número de duplas pegadas. Apesar da Matheurı́stica reduzir o número de jornadas do tipo dupla pegada em relação ao LAHC, este número ainda é indesejável para utilização das empresas, pois das 92 jornadas na solução, 73 são deste tipo. Quando comparada a Matheurı́stica com o VNS -VLSN, o aumento no número do total de duplas pegadas chega a 386, 67%. Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas Matheurı́stica 528.308 49 64:37 38 LAHC 528.308 49 64:37 38 VNS Clássico 563.512 55 33:24 10 VNS-VLNS 563.472 55 36:08 8 ILS Clássico 580.548 57 23:57 8 ILS-VLNS 579.728 57 23:02 7 Tabela 5.25: Caracterı́sticas dos melhores resultados para a instância 07 com custo 600 para jornadas do tipo dupla pegada Resultados e Discussão Métodos 49 Fo Total de Total de Total de jornadas horas extras duplas pegadas LAHC 0,00% 0,00% 0,00% 0,00% VNS Clássico 6,25% 10,91% -93,46% -280,00% VNS-VLNS 6,24% 10,91% -78,83% -375,00% ILS Clássico 9,00% 14,04% -169,80% -375,00% ILS-VLNS 8,87% 14,04% -180,54% -442,86% Tabela 5.26: Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS, VNS-VLNS, ILS e ILS-VLNS para a instância 07 com custo 600 para jornadas do tipo dupla pegada Os resultados para última instância, correspondente a um dia de domingo, são apresentados nas Tabelas 5.25 e 5.26. Como para a instância 05, a Matheurı́stica se mostrou ineficiente ao tentar melhorar a solução encontrada pela metaheurı́stica LAHC. Comparando as heurı́sticas apresentadas, é possı́vel perceber que o LAHC consegue obter uma solução com melhor custo final. Porém, como nas outras, o aumento de jornadas do tipo dupla pegada chega a 443, 86%, quando comparado com a solução que gerou o menor número de duplas pegadas. Sendo que a metaheurı́stica LAHC obteve em sua melhor solução 49 jornadas, com 38 do tipo dupla pegada. Métodos Matheurı́stica LAHC VNS Clássico VNS-VLNS ILS Clássico ILS-VLNS Segunda Terça Quarta Quinta Sexta Sábado Domingo 1.163.884 1.163.904 1.218.316 1.217.024 1.234.612 1.216.256 1.110.504 1.112.008 1.167.748 1.183.108 1.187.020 1.177.048 1.331.296 1.331.872 1.396.164 1.409.336 1.408.672 1.406.892 1.429.740 1.429.868 1.515.728 1.522.524 1.538.640 1.543.792 1.368.232 1.368.232 1.426.732 1.446.964 1.447.112 1.437.300 996.912 997.460 1.093.544 1.101.428 1.084.620 1.099.440 528.308 528.308 563.512 563.472 580.548 570.728 Tabela 5.27: Valores da função objetivo para os melhores resultados obtidos para todas as instâncias e com peso 600 para as jornadas do tipo dupla pegada Na Tabela 5.27 são apresentados os valores da função objetivo da melhor solução encontrada para cada um dos métodos e cada instância. Os valores apresentam o custo final da F o da melhor solução obtida pelas metaheurı́sticas. Os resultados destacados em negrito correspondem aos melhores resultados para cada instância. A partir desta tabela pode-se concluir que a Matheurı́stica obteve os melhores resultados em 5 das 7 instâncias testadas. Somente em 2 instâncias a Matheurı́stica não conseguiu melhorar a solução encontrada pela metaheurı́stica LAHC, finalizando sua execução com o mesmo resultado obtido no LAHC. 50 Resultados e Discussão 5.2.2.2 Resultados com Custo 5.000 para as jornadas do tipo Dupla Pegada Para realizar os testes apresentados nessa seção, foi utilizado o mesmo conjunto de instâncias dos testes apresentados na seção 5.2.2.1. A diferença está no custo adotado na função objetivo para as jornadas do tipo dupla pegada, que neste caso foi de 5.000. Para esse conjunto de teste, devido o custo da dupla pegada ser maior, espera-se que o número de jornadas deste tipo seja reduzido consideravelmente, atendendo às caracterı́sticas desejadas na prática. A Tabela 5.28 contêm as caracterı́sticas das melhores soluções obtidas pela Matheurı́stica, LAHC, VNS e VNS-VLNS para a primeira instância. A coluna “Fo” mostra o valor da função objetivo, da melhor solução encontrada por cada método. A coluna “Total de jornadas” apresenta a quantidade de jornadas contidas na solução de cada método. A coluna “Total de horas extras” mostra a quantidade de horas extras da solução, expressa em horas e minutos no formato hh:mm. Na coluna “Total de duplas pegadas” é apresentada a quantidade de jornadas deste tipo nas soluções encontradas. Esta mesma estrutura é utilizada para apresentar os resultados das outras instâncias contidos nas Tabelas 5.30, 5.32, 5.34, 5.36, 5.38 e 5.40. Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas Matheurı́stica 1.332.316 118 92:59 26 LAHC 1.332.408 118 93:22 26 VNS Clássico 1.368.520 120 98:00 29 VNS-VLNS 1.270.628 120 65:07 11 Tabela 5.28: Caracterı́sticas dos melhores resultados para a instância 01 com custo 5.000 para jornadas do tipo dupla pegada Uma comparação entre o melhor resultado obtido pela Matheurı́stica e os melhores resultados encontrados pelas metaheurı́sticas LAHC, VNS e VNS-VLNS, para a instância 01, são apresentados na Tabela 5.29. As porcentagens desta tabela foram obtidas utilizando a seguinte expressão: Pij = (V alorij − V alorM ath )/V alorij , ∀i ∈ I, j ∈ J. Onde I é o conjunto de atributos da solução (Fo, Total de jornadas, Total de horas extras e Total de duplas pegadas) e J é o conjunto das metaheurı́sticas avaliadas (LAHC, VNS e VNS-VLNS). Para cada i ∈ I e j ∈ J, se Pij > 0 então a Matheurı́stica obteve uma redução sobre o V alorij da metaheurı́stica j, ou seja, há uma vantagem sobre a metaheurı́stica j. Se Pij < 0, então a Matheurı́stica apresenta o valor da F o maior do que o V alorij da metaheurı́stica j, ou seja, ocorre uma desvantagem da Matheurı́stica em relação à metaheurı́stica j. E se Pij = 0 a Matheurı́stica obteve o mesmo V alorji da metaheurı́stica j, então não houve modificação para o atributo i. Esta estrutura é Resultados e Discussão 51 utilizada para mostrar as melhorias obtidas das outras intâncias, estas apresentadas nas Tabelas 5.31, 5.33, 5.35, 5.37, 5.39 e 5.41. Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas LAHC 0,01% 0,00% 0,41% 0,00% VNS Clássico 2,65% 1,67% 5,12% 10,34% VNS-VLNS -4,85% 1,67% -42,79% -136,36% Tabela 5.29: Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS e VNS-VLNS para a instância 01 com custo 5.000 para jornadas do tipo dupla pegada Analisando os dados apresentados nas Tabelas 5.28 e 5.29 pode-se concluir que a Matheurı́stica produziu uma solução mais aceitável em relação à quantidade de duplas pegadas, gerando em média 22% do total de jornadas da solução encontrada. Porém, em sua melhor solução, há um acréscimo de 4, 85% no custo final, quando comparado com a melhor solução encontrada pela metaheurı́stica VNS-VLNS. A Matheurı́stica reduz o custo total, o número de jornadas e o número de duplas pegadas quando comparado com o VNS Clássico, conseguindo uma redução de 2, 65% no valor da função objetivo. Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas Matheurı́stica 1.267.380 114 93:15 21 LAHC 1.267.380 114 93:15 21 VNS Clássico 1.318.200 114 96:40 31 VNS-VLNS 1.213.176 114 75:44 11 Tabela 5.30: Caracterı́sticas dos melhores resultados para a instância 02 com custo 5.000 para jornadas do tipo dupla pegada Os resultados para a instância 02 são apresentados nas Tabelas 5.30 e 5.31. A Matheurı́stica não consegue reduzir o custo final encontrado pela metaheurı́stica LAHC. A metaheurı́stica LAHC encontrou uma solução melhor do que a solução encontrada pelo VNS clássico, reduzindo tanto o número de duplas pegadas quanto a quantidade de horas extras. Esta redução foi de 3, 53% para a total de horas extras e 32, 26% para a quantidade de duplas pegadas. Por outro lado, o VNS-VLNS apresenta a melhor solução 52 Resultados e Discussão Métodos Fo Total Total de Total de de jornadas horas extras duplas pegadas LAHC 0,00% 0,00% 0,00% 0,00% VNS Clássico 3,86% 0,00% 3,53% 32,26% VNS-VLNS -4,47% 0,00% -23,13% -90,91% Tabela 5.31: Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS e VNS-VLNS para a instância 02 com custo 5.000 para jornadas do tipo dupla pegada entre os métodos, tendo uma diferença de função objetivo de 4, 47% comparando com a solução do LAHC. A solução encontrada pela metaheurı́stica LAHC possui 21 duplas pegada das 114 jornadas, se enquadrando nas métricas aceitas pelas empresas para este tipo de jornada. Resultados e Discussão Métodos 53 Fo Total de Total de Total de jornadas horas extras duplas pegadas Matheurı́stica 1.497.240 133 113:30 28 LAHC 1.497.536 133 114:44 28 VNS Clássico 1.527.904 135 116:16 30 VNS VLNS 1.471.176 140 67:24 11 Tabela 5.32: Caracterı́sticas dos melhores resultados para a instância 03 com custo 5.000 para jornadas do tipo dupla pegada Métodos Fo Total Total de Total de de jornadas horas extras duplas pegadas LAHC 0,02% 0,00% 1,07% 0,00% VNS Clássico 2,01% 1,48% 2,38% 6,67% VNS-VLNS -1,77% 5,00% -68,40% -154,55% Tabela 5.33: Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS e VNS-VLNS para a instância 03 com custo 5.000 para jornadas do tipo dupla As Tabelas 5.32 e 5.33 apresentam os resultados obtidos para a terceira instância, uma quarta-feira. Os custos de F o são reduzidos pela Matheurı́stica quando comparados com as metaheurı́sticas LAHC e VNS clássico, sendo que esta redução chega a 2, 01%. O número de jornadas com duplas pegadas na solução obtida pela Matheurı́stica é de 28, de um total de 133 jornadas, representando 21, 05% da solução. Pode-se perceber também que a metaheurı́stica VNS-VLNS apresenta os melhores resultados tendo um custo final de 1.471.176, enquanto a Matheurı́stica obteve um custo de 1.497.240. 54 Resultados e Discussão Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas Matheurı́stica 1.612.644 146 115:11 25 LAHC 1.612.912 146 116:18 25 VNS Clássico 1.684.272 152 121:58 27 VNS-VLNS 1.583.644 148 77:41 17 Tabela 5.34: Caracterı́sticas dos melhores resultados para a instância 04 com custo 5.000 para jornadas do tipo dupla pegada Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas LAHC 0,02% 0,00% 0,96% 0,00% VNS Clássico 4,25% 3,95% 5,56% 7,41% VNS-VLNS -1,83% 1,35% -48,27% -47,06% Tabela 5.35: Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS e VNS-VLNS para a instância 04 com custo 5.000 para jornadas do tipo dupla pegada Os resultados para a quarta instância são apresentados nas Tabelas 5.34 e 5.35. A solução com o menor custo final foi encontrada pela metaheurı́stica VNS-VLNS. Porém a Matheurı́stica obteve melhores resultados que as metaheurı́sticas LAHC e VNS clássico, conseguindo reduzir o custo da F o em 4, 25%. Além disso, a Matheurı́stica apresenta a solução com menor número de jornadas, esta igual a do LAHC, e com um número de jornadas do tipo dupla pegada aceitável pelas empresas. Resultados e Discussão Métodos 55 Fo Total de Total de Total de jornadas horas extras duplas pegadas Matheurı́stica 1.535.660 140 106:55 22 LAHC 1.535.876 140 107:49 22 VNS Clássico 1.562.864 142 116:06 23 VNS-VLNS 1.471.100 139 87:55 12 Tabela 5.36: Caracterı́sticas dos melhores resultados para a instância 05 com custo 5.000 para jornadas do tipo dupla pegada Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas LAHC 0,01% 0,00% 0,83% 0,00% VNS Clássico 1,74% 1,41% 7,91% 4,35% VNS-VLNS -4,39% -0,72% -21,61% -83,33% Tabela 5.37: Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS e VNS-VLNS para a instância 05 com custo 5.000 para jornadas do tipo dupla pegada Para a quinto instância, os resultados obtidos com o maior custo de duplas pegadas são apresentados nas tabelas 5.36 e 5.37. Pode-se concluir que a Matheurı́stica obteve melhor solução que as metaheurı́sticas LAHC e VNS Clássico. Porém, quando comparado com o VNS-VLNS, a solução obtida apresenta um aumento em todos os atributos avaliados. Entretanto, Pode-se concluir também que a Matheurı́stica obteve um número de jornadas do tipo dupla pegada aceitável pelas empresas de transporte publico, sendo que, das 140 jornadas, somente 22 são do tipo dupla pegada. 56 Resultados e Discussão Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas Matheurı́stica 1.156.484 99 110:21 28 LAHC 1.156.672 98 111:08 30 VNS Clássico 1.182.808 104 95:02 24 VNS-VLNS 1.152.552 109 52:18 10 Tabela 5.38: Caracterı́sticas dos melhores resultados para a instância 06 com custo 5.000 para jornadas do tipo dupla pegada Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas LAHC 0,02% -1,02% 0,70% 6,67% VNS Clássico 2,23% 4,81% -16,12% -16,67% VNS-VLNS -0,34% 9,17% -110,99% -180,00% Tabela 5.39: Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS e VNS-VLNS para a instância 06 com custo 5.000 para jornadas do tipo dupla pegada Nas Tabelas 5.38 e 5.39 são apresentados os resultados das melhores soluções obtidas para a instância 6, correspondente a um dia de sábado. Para este problema, a Matheurı́stica, apesar de não apresentar a melhor solução, é perceptı́vel que ela reduz o número de jornadas, exceto quando comparado com o LAHC, que para reduzir o número de duplas pegadas foi necessário aumentar o número de jornadas. Novamente, a metaheurı́stica VNS-VLNS apresenta a solução com o menor custo de “Fo”, porém a diferença entre esta metaheurı́stica e a Matheurı́stica é de aproximadamente 0, 34%. Também pode-se concluir que, para a instância 6, com o menos número de tarefas, a Matheurı́tica gerou um número elevado de duplas pegada chegando a cerca de 28% do total de jornadas. Resultados e Discussão Métodos 57 Fo Total de Total de Total de jornadas horas extras duplas pegadas Matheurı́stica 605.312 54 42:58 11 LAHC 605.312 54 42:58 11 VNS Clássico 596.088 54 46:12 9 VNS-VLNS 601.296 57 27:35 5 Tabela 5.40: Caracterı́sticas dos melhores resultados para a instância 07 com custo 5.000 para jornadas do tipo dupla pegada Métodos Fo Total de Total de Total de jornadas horas extras duplas pegadas LAHC 0,00% 0,00% 0,00% 0,00% VNS Clássico -1,55% 0,00% 7,00% -22,22% VNS-VLNS -0,67% 5,26% -55,77% -120,00% Tabela 5.41: Melhorias da Matheurı́stica em relação aos métodos LAHC, VNS e VNS-VLNS para a instância 07 com custo 5.000 para jornadas do tipo dupla pegada Para a última instância, as melhores soluções encontradas por cada método são apresentadas nas Tabelas 5.40 e 5.41. Mais uma vez, a Matheurı́stica não conseguiu melhorar o resultado obtido pela metaheurı́stica LAHC. Por outro, o LAHC obteve uma solução com o valor da “Fo” próximo ao resultados obtidos pelas outras metaheurı́sticas, chegando a um aumento de somente 1, 55% sobre a melhor solução encontrada. Vale também ressaltar que a metaheurı́stica LAHC obteve a solução o número de jornadas igual ao VNS Clássico que possui a melhor solução. Uma visão geral dos custos finais, obtidos por cada método para cada instância, é apresentada na Tabela 5.42. Através dos dados apresentados, pode-se verificar que a metaheurı́stica VNS-VLNS obteve a melhor solução para a maior parte das instâncias testadas, exceto para a última. Porém, a Matheurı́stica apresenta um bom desempenho chegando a obter melhores resultados que o VNS clássico, se mostrando uma abordagem bastante competitiva. 58 Resultados e Discussão Segunda Métodos Matheurı́stica LAHC VNS Clássico VNS-VLNS Terça Quarta Quinta Sexta Sábado Domingo Fo Fo Fo Fo Fo Fo Fo 1.332.316 1.332.408 1.368.520 1.270.628 1.267.380 1.267.380 1.318.200 1.213.176 1.497.240 1.497.536 1.527.904 1.471.176 1.612.644 1.612.912 1.684.272 1.583.644 1.535.660 1.535.876 1.562.864 1.471.100 1.156.484 1.156.672 1.182.808 1.152.552 605.312 605.312 596.088 601.296 Tabela 5.42: Melhores resultados obtidos da função objetivo para todas as instâncias com peso 5.000 para as jornadas do tipo dupla pegada Capı́tulo 6 Conclusões e Trabalhos Futuros A resolução do Problema de Programação da Tripulação (PPT) é de grande importância para o planejamento operacional de empresas de transporte público por consumir uma porcentagem significativa dos seus recursos. Algumas empresas do setor de transporte ainda utilizam meios manuais para gerar as jornadas de trabalho de suas tripulações. Devido a esse fato existe a necessidade de se desenvolver ferramentas computacionais que facilitem a geração das escalas diárias (jornadas), como abordada nesse trabalho, especificamente para tripulação de ônibus urbano. Neste trabalho foram propostas as seguintes técnicas para resolver o Problema de Programação da Tripulação: um Modelo de Programação Linear Inteira, uma versão da metaheurı́stica LAHC e uma Matheurı́stica composta pelo modelo exato e a metaheurı́stica. A utilização desta abordagem é justificada uma vez que o modelo exato só é capaz de resolver problemas pequenos, e a solução de uma metaheurı́stica pode ser melhorada com a utilização de modelos exatos. Além disso, a utilização de métodos hı́bridos em diversos problemas tem produzido resultados promissores. A escolha do método exato abordado vem a ser justificada pela necessidade de se estudar novas técnicas exatas para resolver este problema. Neste sentido, o modelo apresentado neste trabalho, apesar de suas limitações, é inédito na literatura. A metaheurı́stica LAHC foi escolhida por ser uma abordagem nova e que apresentou resultados satisfatórios quando utilizadas em outros problemas de difı́cil resolução, além do fato de possuir um único parâmetro de calibração o que facilita sua utilização. Os testes realizados para a abordagem exata tiveram como objetivo verificar a dimensão dos problemas que este modelo é capaz de resolver. A partir destes testes foi possı́vel observar que os modelo exato tem um melhor desempenho com problemas que geram até 6 jornadas, visto que para essa quantidade de jornadas o modelo consegue geralmente obter e provar a solução ótima. Também foi possı́vel concluir que problemas com mais que 50 jornadas são impossı́veies de serem resolvidos pelo método exato, devido à necessidade de gerar um número muito elevado de variáveis e restrições pelo modelo. 59 60 Conclusões e Trabalhos Futuros Os resultados obtidos pela Matheurı́stica apresentam soluções sempre melhores ou iguais às soluções encontradas pela metaheurı́stica LAHC. Isto se deve pelo fato da solução do LAHC ser o dado de entrada para a Matheurı́stica. Também, pode-se concluir que a redução dos custos da Matheurı́stica em relação aos resultados da LAHC é pequena, chegando a no máximo 0, 14% no melhor caso. O que pode ser explicado pelo fato das partições utilizadas serem pequenas e restritas. O tamanho das partições foi escolhido devido ao fato de que o modelo matématico so conseguia resolver problemas desta dimensão em um tempo inferior as 8 horas. Foi observado que em quatro dos testes realizados, a Matheurı́stica se mostrou ineficiente na tentativa de reduzir o custo da solução obtida pelo LAHC. Para os testes realizados com a Matheurı́stica e a metaheurı́stica LAHC, foram utilizados 2 valores diferentes para o custo das jornadas com dupla pegada, com o objetivo de reduzir o total de jornadas deste tipo. Isto se deve pelo fato de que a adoção de jornadas do tipo dupla pegada deve ser limitada na utilização prática. Geralmente, as empresas atuam com uma quantidade máxima de cerca de 20% de jornadas deste tipo. Logo, o controle desta caracterı́stica foi realizado, na metaheurı́sica, aumentando o seu custo e verificando o impacto nas soluções obtidas. Empregando um custo menor para as jornadas do tipo dupla pegada, no caso igual a 600, a metaheurı́stica LAHC e a Matheurı́stica apresentaram soluções com menores custos finais do que todos os resultados apresentados por (Silva and Reis 2014), na mesmas condições. No melhor dos casos, a Matheurı́stica conseguiu uma redução de até 9, 49% no custo da função objetivo quando comparado com o VNS-VLNS. Porém, o número de jornadas do tipo dupla pegada nas soluções obtidas é muito alto, chegando a contar com 87% deste tipo do total de jornadas, para a primeira instância. Logo, as soluções obtidas tanto pela metaheurı́stica LAHC como para Matheurı́stica, apresentam soluções não aceitas na prática. A geração deste número elevado de duplas pegadas se deve ao baixo custo para jornadas deste tipo e nenhuma restrição foi implementada para que as soluções não ultrapassassem a margem desejada. Nos resultados obtidos considerando um custo de 5.000 para cada dupla pegada, as melhores soluções encontradas pela Matheurı́stica e metaheurı́stica LAHC apresentaram uma quantidade de duplas pegadas dentro das limitações práticas da solução. Comparando os resultados obtidos nestes testes, observa-se que a Matheurı́stica obteve resultados melhores em 6 das 7 solução obtida pelo VNS clássico, chegando a uma redução de custo de função objetivo de até 4, 25% no melhor caso. Por outro lado, a Matheurı́stica não obteve resultados melhores que as soluções encontradas pela metaheurı́stica VNSVLNS. Pode-se concluir também que tanto a Matheurı́stica como o LAHC obtém, na maioria dos testes realizados, soluções com um menor número de jornadas, ou seja, necessitando de um número menor de tripulações para a realização das tarefas. De modo geral, pode-se concluir que a utilização de métodos hı́bridos para resolução do Problema de Programação da Tripulação é uma abordagem nova, que mostrou resultados satisfatórios quando comparados com os melhores resultados obtidos anteriormente por métodos heurı́sticos. A utilização da metaheurı́stica LAHC se mostrou eficiente, de Conclusões e Trabalhos Futuros 61 modo a gerar soluções muito boas. Para o custo menor das duplas pegadas, suas soluções são as melhores. O modelo exato proposto, apesar de resolver problemas pequenos, foi uma abordagem inédita, por considerar as restrições das jornadas a partir das tarefas, que são os dados de entrada. Desta maneira não é necessário gerar as jornadas previamente ou durante o processo de otimização, como ocorre nos modelos de geração de colunas. Como possı́veis trabalhos futuros, pode-se apontar a utilização de novas estratégias de particionamento da solução na Matheurı́stica. Desta forma podem ser utilizados critérios diferentes para o particionamento, criando maiores possibilidades de otimização da solução produzida pela metaheurı́stica. Como critérios de particionamento, pode-se utilizar do número de duplas pegadas, partições por estado temporal, manhã, tarde e noite ou ainda utilizar mais de uma combinação, ou mais de uma fase de particionamento. Apêndice A Apêndices A.1 Publicações Neste apêndice são listados os trabalhos publicados em eventos cientı́ficos desenvolvidos durante o perı́odo de realização da presente pesquisa. 1. SOUZA, D. S. ; SILVA, G. P. . UM MODELO EXATO PARA RESOLVER O PROBLEMA DA ESCALA DE MOTORISTAS DE ÔNIBUS URBANO. In: XLV Simpósio Brasileiro de Pesquisa Operacional, 2013, Natal, Brazil. 2. SOUZA, D. S. ; SILVA, G. P. ; SANTOS, H. G. . UMA ABORDAGEM EXATA PARA RESOLVER O PROBLEMA DA ESCALA DE MOTORISTAS DE ÔNIBUS URBANO. In: XXVII ANPET - Congresso de Pesquisa e Ensino em Transportes, 2013, Belém, Brazil. O trabalho a seguir foi submetido e aceito para publicação em eventos cientı́fico. 1. SILVA, G. P. ; SOUZA, D. S. . A MATHEURISTIC APPROACH TO SOLVE THE CREW SCHEDULING PROBLEM FOR MASS TRANSIT SYSTEMS. In: XVIII Pan-American Conference of Traffic and Transportation Engeneering and Logistics, 2014, Santander, Spain. 62 Referências Bibliográficas Barnhart, C., Johnson, E. L., Nemhauser, G. L., Savelsbergh, M. W. e Vance, P. H.: 1998, Branch-and-price: Column generation for solving huge integer programs, Operations research 46(3), 316–329. Beasley, J. E.: 1987, An algorithm for set covering problem, European Journal of Operational Research 31(1), 85–93. Burke, E. K. e Bykov, Y.: 2008, A Late Acceptance Strategy in Hill-Climbing for Exam Timetabling Problems, PATAT ’08 Proceedings of the 7th International Conference on the Practice and Theory of Automated Timetabling, Montreal, Canadá. Burke, E. K. e Bykov, Y.: 2012, The late acceptance hill-climbing heuristic, Department of Computing Science and Mathematics, University of Stirling, number CSM-192. Desrochers, M. e Soumis, F.: 1989, A column generation approach to the urban transit crew scheduling problem, Transportation Science 23(1), 1–13. Elias, S.: 1964, The use of digital computers in the economic scheduling for both man and machine in public transport, Kansas, EUA: Technical Report 49. Ernst, A. T., Jiang, H., Krishnamoorthy, M., Owens, B. e Sier, D.: 2004b, An annotated bibliography of personnel scheduling and rostering, Annals of Operations Research 127(1-4), 21–144. Ernst, A. T., Jiang, H., Krishnamoorthy, M. e Sier, D.: 2004a, Staff scheduling and rostering: A review of applications, methods and models, European journal of operational research 153(1), 3–27. Fischetti, M., Martello, S. e Toth, P.: 1987, The fixed job schedule problem with spreadtime constraints, Operations Research 35(6), 849–858. 63 64 REFERÊNCIAS BIBLIOGRÁFICAS Fores, S., Proll, L. e Wren, A.: 1999, An improved ilp system for driver scheduling, in N. H. M. Wilson (ed.), Computer-Aided Transit Scheduling, Springer, pp. 43–61. Fourer, R., Gay, D. M. e Kernighan, B. W.: 1990, A modeling language for mathematical programming, Management Science 36(5), 519–554. Fournier, S.: 2009, Branch-and-price algorithm for a real-life bus crew scheduling problem, ERPOSul . Freling, R., Lentink, R. M. e Wagelmans, A. P.: 2004, A decision support system for crew planning in passenger transportation using a flexible branch-and-price algorithm, Annals of Operations Research 127(1-4), 203–222. Friberg, C. e Haase, K.: 1999, An exact branch and cut algorithm for the vehicle and crew scheduling problem, in N. H. M. Wilson (ed.), Computer-Aided Transit Scheduling, Springer, pp. 63–80. Gonçalves, T. L.: 2010, Meta-heurı́sticas para o problema de programação de tripulações, Master’s thesis, Programa de Engenharia de Sistemas e Computação, Universidade Federal do Rio de Janeiro. Gonçalves, T. L., Fampa, M. H. C., dos Santos, A. G. e Ochi, L. S.: 2008, Metaheurıstica busca tabu e programaçao matemática uma abordagem hıbrida aplicada ao problema de programaçao de tripulaçoes, Anais XXXI CNMAC-Congresso Nacional de Matemática Aplicada e Computacional. Li, J. e Kwan, R. S.: 2003, A fuzzy genetic algorithm for driver scheduling, European Journal of Operational Research 147(2), 334–344. Lourenço, H. R., Paixão, J. P. e Portugal, R.: 2001, Multiobjective metaheuristics for the bus driver scheduling problem, Transportation Science 35(3), 331–343. Luedtke, L. K.: 1985, Rucus ii: a review of system capabilities, Computer Scheduling of Public Transport 2, 61–116. Maniezzo, V., Stützle, T. e Voß, S.: 2009, Hybridizing metaheuristics and mathematical programming, Annals of information systems pp. 19–21. Marinho, E. H., Ochi, L. S., Drummond, L. M., Souza, M. J. F. e Silva, G. P.: 2004, Busca tabu aplicada ao problema de programação de tripulações de ônibus urbano, Simpósio Brasileiro de Pesquisa Operacional, XXXVI pp. 1471–1482. REFERÊNCIAS BIBLIOGRÁFICAS 65 Mauri, G. R. e Lorena, L. A. N.: 2007, A new hybrid heuristic for driver scheduling, International Journal of Hybrid Intelligent Systems 4(1), 39–47. Mauri, G. e Souza, M.: 2003, Resolução do problema de programação de tripulações de um sistema de transporte público via simulated annealing, Relatório Técnico 02/2003, Departamento de Ciência da Computação-Universidade Federal de Ouro Preto . Novaes, A.: 2001, Logı́stica e gerenciamento da cadeia de distribuição, Vol. 3, Elsevier Brasil. Parker, M. e e Smith, B. M.: 1981, Two approaches to computer crew scheduling, Computer Scheduling of Public Transport. Amsterdam: North-Holland pp. 193–222. Reis, A. F. d. S. e Silva, G. P.: 2011, Um estudo de diferentes métodos de busca ea metaheurı́stica vns para otimizar a escala de motoristas de ônibus urbano, XXV ANPET - Congresso de Pesquisa e Ensino em Transportes 1, 2374–2385. Russell, S. J. e Norvig, P.: 2002, Artificial Intelligence: A Modern Approach (2nd Edition), Prentice Hall, pp. 111–114. Santos, A. G. e Mateus, G. R.: 2007, Crew scheduling urban problem: an exact column generation approach improved by a genetic algorithm, Evolutionary Computation, 2007. CEC 2007. IEEE Congress on, IEEE, pp. 1725–1731. Shen, Y. e Kwan, R. S.: 2001, Tabu search for driver scheduling, in S. Voß e J. R. Daduna (eds), Computer-Aided Transit Scheduling, Springer, pp. 121–135. Silva, G.: 2001, Uma metodologia baseada na técnica de geração de arcos para o problema de programação de veı́culos, PhD thesis, Tese de doutorado. Escola Politécnica da USP, São Paulo. Silva, G. P. e da Cunha, C. B.: 2010, Uso da técnica de busca em vizinhança de grande porte para a programação da escala de motoristas de ônibus urbano, Transportes 18(2), 37–45. Silva, G. P. e Reis, A. F. d. S.: 2014, A study of different metaheuristics to solve the urban transit crew scheduling problem, Journal of Transport Literature 8, 227–251. Smith, B. M. e Wren, A.: 1988, A bus crew scheduling system using a set covering formulation, Transportation Research Part A: General 22(2), 97–108. 66 REFERÊNCIAS BIBLIOGRÁFICAS Souza, M. J. F., Cardoso, L. X. T., Silva, G. P., Rodrigues, M. M. S. e Mapa, S. M. S.: 2004, Metaheurı́sticas aplicadas ao problema de programação de tripulações no sistema de transporte público. Stefanello, F.: 2011, Hibridização de métodos exatos e heurı́sticos para resolução de problemas de otimização combinatória, Master’s thesis, Programa de Pós-Graduação em Informática, Universidade Federal de Santa Maria, Santa Catarina. Wilhelm, E.: 1975, Overview of the rucus package driver run cutting program (runs), Transportation Science Section, Operations Research Society of America, etc., Workshop on Automated Techniques for Scheduling of Vehicle Operators for Urban Public Transportation Services. Preprints, Chicago. Wren, A.: 2004, Scheduling vehicles and their drivers-forty yearsâ experience, 9th International Conference on Computer-Aided Scheduling of Public Transport (CASPT), San Diego, California. Yunes, T. H., Moura, A. V. e De Souza, C. C.: 2005, Hybrid column generation approaches for urban transit crew management problems, Transportation Science 39(2), 273– 288.