XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO ESCALONAMENTO INTEGRADO PARA O TRANSPORTE COLETIVO UTILIZANDO GRASP, PATH-RELINKING E PARALELISMO Thiago Serra GOA: Grupo de Otimização Aplicada – Instituto de Computação, UNICAMP Avenida Albert Einstein, 1251 – 13084-971 – Campinas, SP [email protected] Arnaldo Vieira Moura GOA: Grupo de Otimização Aplicada – Instituto de Computação, UNICAMP Avenida Albert Einstein, 1251 – 13084-971 – Campinas, SP [email protected] RESUMO O Problema de Programação de Viagens (PPV) visa gerir, da forma mais econômica possível, linhas de transporte urbano pré-estabelecidas e de características conhecidas. Uma solução para o PPV consiste na escala de veículos e tripulações para atenderem à demanda diária de passageiros. Este trabalho envolveu a implementação de um módulo resolvedor utilizando GRASP para a geração de soluções, aliado às estratégias de busca local e ligação de caminho na fase de intensificação, juntamente com programação paralela para o estabelecimento de estratégias colaborativas. Foram realizados testes com dados reais da região metropolitana de São Paulo, nos quais a qualidade das soluções obtidas pôde ser atestada pela comparação com outros trabalhos realizados com as mesmas instâncias. PALAVRAS CHAVE. GRASP Paralelo. Ligação de Caminho. Problema de Programação de Viagens. LGT – Logística e Transportes. ABSTRACT The Urban Transportation Problem (UTP) aims to manage, in the most economic possible way, urban transportation lines already established and with known operational characteristics. A solution to the UTP consists of a scheduling of vehicles and crew to satisfy the daily passengers demand. This work involves the implementation of a solver module using a GRASP heuristic to generate solutions, coupled with local search and path-relinking strategies in the intensification phase, together with parallel programming for the establishment of collaborative strategies.The implementation was tested using real data from the metropolitan region of São Paulo, in which the solutions' quality could be attested by the comparison with other works using the same instances. KEYWORDS. Parallel GRASP. Path-Relinking. Urban Transportation Problem. LGT – Logistics and Transportation. XXXVIII SBPO [ 963 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO 1. Introdução Desde a década de 1970 foram realizados muitos estudos acerca da realização de atividades operacionais e de planejamento em transporte urbano com o auxílio de ferramentas computacionais. Essas ferramentas vêm sendo utilizadas para atividades que vão desde o roteamento de veículos para o estabelecimento de linhas de ônibus, até a determinação de horários de partida para as viagens, e a designação de veículos e tripulação para sua realização. Entre algumas das cidades nas quais foram aplicadas técnicas desenvolvidas em estudos acadêmicos para o planejamento de transporte urbano, pode-se destacar São Paulo, Fortaleza, Sorocaba e Belo Horizonte (Yunes (2000), Rodrigues (2001) e Vaz (2003)). O Problema de Programação de Viagens (PPV) visa resolver parte do problema de operação do transporte coletivo urbano, realizando o escalonamento diário de veículos e de tripulação para o atendimento em uma linha de ônibus pré-estabelecida e com demanda de atendimento conhecida. Esse atendimento deve preservar um nível de qualidade de serviço exigido pelos órgãos gestores do transporte público na região, além de satisfazer restrições trabalhistas relacionadas à duração da jornada diária, períodos de descanso e limites de horaextra da tripulação. Este problema é classificado como NP-Difícil por Wren (1998). Dessa forma, o emprego de técnicas heurísticas para a obtenção de soluções de boa qualidade em tempo razoável provou-se muito atraente ao longo dos anos (Lourenço et. al. (2001), Souza et. al. (2003) e Ciré et. al. (2005)). O objetivo deste trabalho consiste na resolução integrada dos problemas de atribuição de veículos e de alocação de tripulação para o atendimento da demanda de passageiros, e na análise das técnicas empregadas para tanto. A principal ferramenta de resolução foi a meta-heurística GRASP, empregada com grande sucesso há 17 anos em muitos problemas de otimização combinatória - com resultados superiores a outras técnicas em problemas como o de recobrimento de conjuntos (Feo e Resende (1995) e Goldbarg e Luna (2000)), que se assemelha bastante ao PPV pela forma como o mesmo será abordado neste trabalho. Adicionalmente, foram utilizadas estratégias gulosas de busca local e de ligação de caminho, além da paralelização do módulo resolvedor tanto como forma para aumentar a quantidade de soluções obtidas quanto como meio de explorar a colaboração entre processos de resolução simultâneos. O resultado do trabalho consistiu em um módulo resolvedor que gerava rapidamente soluções viáveis e de boa qualidade. Foram realizados testes com instâncias reais da região metropolitana de São Paulo, já utilizadas em outros trabalhos (Rodrigues (2001), Vaz (2003) e Ciré et. al. (2005)), sendo possível comparar o desempenho das técnicas empregadas com relação às soluções obtidas manualmente, ou por meio de programação matemática, ou programação por restrições, além de outras meta-heurísticas paralelizadas. Os resultados foram muitos animadores, havendo várias instâncias nas quais foram obtidas soluções melhores, além de um padrão geral de qualidade uniforme com relação às outras abordagens. Esse desempenho contrariou resultados pessimistas sobre a meta-heurística neste problema apresentados por Souza et. al. (2003). Por fim, foram realizados estudos acerca do desempenho do módulo fixando valores para seus parâmetros, o que produziu alguns comportamentos interessantes acerca da ligação de caminho e do paralelismo colaborativo. A organização deste documento é descrita a seguir. A seção 2 trata da definição formal do problema, contendo sua descrição, a definição da solução e sua formulação matemática. A seção 3 apresenta mais detalhadamente as técnicas empregadas na resolução do problema e a forma como foram utilizadas. A seção seguinte apresenta os resultados - tanto uma análise comparativa quanto alguns estudos sobre o desempenho do módulo resolvedor. A seção 5 traz as conclusões e perspectivas de trabalhos futuros. 2. Definição do problema 2.1. Descrição do Problema de Programação de Viagens As jornadas de tripulação são constituídas por tarefas, que podem ser de um dos três tipos: viagens de atendimento à demanda, viagens envolvendo a garagem como destino ou partida, e períodos de descanso. Na situação abordada, existe apenas uma garagem. Cada XXXVIII SBPO [ 964 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO instância dispõe de um ou dois Pontos de Controle (ou PCs) distintos. As viagens de atendimento à demanda são realizadas entre os PCs, nos quais ocorrem também o descanso da tripulação. A permuta de tripulações de um veículo pode ser realizada no PC, a não ser quando envolvam intervalos maiores entre as jornadas e que impliquem no retorno do carro à garagem para evitar o empilhamento de veículos no PC. O dia é dividido em faixas horárias (ou FHs), que possibilitam tanto uma especificação mais adequada da demanda, como uma melhor estimativa sobre as características de trânsito nas faixas. Cada instância apresenta tabelas com o tempo de viagem entre a garagem e cada PC em cada FH do dia, o tempo de viagem entre um PC e outro por FH, e a demanda de passageiros para as viagens partindo de um PC para o outro e vice-e-versa de acordo com a FH. A qualidade de serviço é determinada pela quantidade máxima de passageiros que um ônibus pode atender em uma viagem. Existe também um número máximo de veículos que podem ser utilizados em cada instância. Para as instâncias utilizadas da região metropolitana de São Paulo, existe uma série de restrições relativas à qualidade de serviço, à utilização de frota e às jornadas de tripulação, descritas a seguir. – A quantidade de viagens partindo de cada PC em cada FH deve ser suficiente para atender à demanda de passageiros. – Não devem ser utilizados mais veículos do que a quantidade disponível. – Nenhum veículo pode ter mais de duas jornadas de tripulação associadas. – Uma jornada de tripulação deve ser realizada integralmente em um veículo. – Deve haver algum espaçamento entre viagens consecutivas de uma jornada. – O tamanho máximo de uma jornada é de 7 horas e 20 minutos, sendo que devem ser alocados 30 minutos de descanso entre a segunda e a sexta horas; ou, se não há descanso, a jornada terá um limite de 6 horas e 50 minutos. – Existe um limite máximo de horas-extra que cada tripulação pode realizar em sua jornada. – Evitar situações nas quais a jornada é interrompida (períodos de inatividade superiores a 2 horas). – A troca de motoristas implica, para sua realização, em um intervalo de 20 minutos computados no final tanto da jornada da tripulação que está encerrando quanto da que está iniciando suas atividades. O PVV pode ser fracionado em três problemas interdependentes (Rodrigues (2001)), descritos a seguir. O primeiro deles seria o Problema de Montagem de Horários, no qual a demanda representada pela quantidade de passageiros que utilizam a linha de transporte por FH é utilizada para o estabelecimento de um conjunto de horários de partida de cada PC com relativa uniformidade nos horários. O segundo seria o Problema de Escalonamento de Veículos, que se baseia nos horários de partida para alocar a quantidade mínima possível de carros de forma que todas as viagens sejam executadas por exatamente um veículo. Por fim, temos o Problema de Escalonamento de Tripulação, que visa associar uma tripulação para os veículos, com o intuito de minimizar a quantidade de jornadas e de horas-extras necessárias, além de procurar reduzir a quantidade de tempo na qual a tripulação fica ociosa. A Abordagem Seqüencial Tradicional consistiria na resolução separada de cada um desses problemas. Neste trabalho, entretanto, foi adotada a Abordagem Integrada, que visa a resolução conjunta dos três problemas, evitando o foco excessivo em um único aspecto e objetivando um ganho em qualidade devido a essa integração na resolução. 2.2. Definição do conjunto de elementos Quanto tratamos problemas de otimização combinatória, uma questão de suma importância consiste no estabelecimento das unidades elementares para a construção das soluções. Unidades muito pequenas podem trazer simplicidade ao processo decisório imediato, mas acarretam em conjuntos representando uma solução com tamanho muito grande e de manipulação complexa. Tendo em vista que grande parte das restrições envolvendo jornadas de tripulação não dependem das interações das mesmas entre si, foi utilizado neste trabalho uma XXXVIII SBPO [ 965 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO abordagem de enumeração prévia de jornadas para a resolução posterior do problema (Lourenço et. al. (2001) e Ciré et. al. (2005)). Com a finalidade de evitar enumerações exaustivas de jornadas muito semelhantes, foi estabelecido um conjunto de propriedades para indexação das jornadas que serão posteriormente manipuladas pelo módulo resolvedor. Em seqüência, essas 8 dimensões seriam as seguintes: (1) FH da tarefa inicial, (2) tempo de duração, (3) quantidade de tarefas, (4) PC da primeira tarefa, (5) PC da última tarefa, (6) FH de descanso, (7) tempo ocioso em serviço e (8) para que possa ser gerada mais de uma jornada com todos os outros índices idênticos. A enumeração de jornadas atentou às características de jornadas sabidamente pertencentes a soluções de boa qualidade: a folga entre tarefas é sempre pequena, o que possibilita um número maior de tarefas por jornada de tripulação e - por conseqüência - uma quantidade menor de horas-extra e de jornadas requeridas. As soluções para o PPV passam então a serem descritas por uma estrutura de dados consistindo em um vetor de veículos contendo conjuntos de jornadas de motoristas, conforme visto na figura 1 (Ciré et. al. (2005)). Figura 1: Estrutura de dados utilizada para uma solução do PPV. 2.3. Formulação por restrições do PPV A formulação apresentada a seguir foi extraída de Ciré et. al. (2005). Partindo de uma enumeração de jornadas E, o PPV pode ser formulado abstraindo-se restrições relativas à tripulação. É definida alguma notação prévia relativa a parâmetros e variáveis para melhor compreensão da formulação, especificada na tabela 1. As FHs são numeradas de 1 a 24, os PCs de 0 e 1, o tipo de tarefa 0 associado a viagens e o tipo 1 a descanso. A função objetivo define a minimização do total de veículos, tripulação, horas-extra e ociosas dos motoristas. Para a abordagem deste trabalho, definimos ca>>cb>>cc , cd =0. A primeira restrição refere-se à quantidade máxima de veículos. A segunda restrição define o veículo como uma dupla de jornadas que deve se suceder no tempo. As duas últimas restrições referem-se à necessidade de atendimento integral da demanda, assemelhando-se àquelas relativas ao problema de cobertura de conjuntos. 3. Abordagem de resolução A construção e modificação das soluções baseou-se na descrição das mesmas como um conjunto de jornadas de tripulação. A associação dessas jornadas a veículos foi feita utilizando XXXVIII SBPO [ 966 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO uma modelagem sobre grafos, na qual as jornadas seriam os vértices e são estabelecidas arestas entre jornadas que podem ser inseridas em um mesmo veículo (i.e., que não apresentam sobreposição de tarefas). Usando o algoritmo de pareamento máximo de complexidade quadrática no número de vértices de Gabow (1976), cada conjunto de pares de jornada casados bem como as jornadas não casadas - constituem veículos para a solução. Com essa decomposição de parte da construção da solução para um problema polinomial, o processo de construção de soluções foi bastante simplificado. Parâmetros Variáveis ca , cb , cc , cd Custos de cada variável da solução, definidos pelo planejador S Solução formada pelo conjunto de veículos V Demanda na faixa horária f e no PC p V Veículo definido por, no máximo, uma dupla consecutiva de jornadas J df,p E Ti ti , PCIi , Hi Conjunto de jornadas J, sendo cada n (V) Tripulação total do veículo V m uma um conjunto de tarefas T (valor inferido) i-ésima tarefa de uma jornada Tipo, PC inicial e minuto de início da i-ésima tarefa Df,p Total de tarefas na faixa horária f e iniciando no PC p (valor inferido) he(J) Total de horas extras da jornada J (valor inferido) Quantidade e capacidade dos Total de horas ociosas da ho(J) veículos utilizados na linha jornada J (valor inferido) Tabela 1: Parâmetros e variáveis utilizados na formulação do PPV. nv , capv Toda solução construída é avaliada para determinar sua inserção, ou não, em um conjunto de soluções de elite, que consistiriam nas melhores soluções obtidas até o momento. Este conjunto é utilizado tanto para reter a melhor solução encontrada quanto para a realização do procedimento de ligação de caminho descrito a seguir. Muitas decisões de implementação são justificadas por testes realizados durante o desenvolvimento do módulo resolvedor, com resultados apresentados apenas textualmente. 3.1. A meta-heurística GRASP A meta-heurística GRASP (de Greedy Randomized Adaptive Search Procedures) foi proposta em 1989 por Feo e Resende (1989 e 1995). Consiste em um procedimento iterativo de inclusão de elementos na solução em construção ponderando entre uma avaliação adaptativa do benefício de escolha e um certo grau de aleatoriedade na decisão. Após obtida uma solução, realiza-se uma busca local para melhorá-la. A cada iteração, os elementos passíveis de inclusão são considerados mediante uma função gulosa que avalia o ganho resultante da inserção deste elemento na solução parcialmente construída. Os melhores elementos são inseridos em uma lista chamada RCL (de Restricted Candidates List), que pode ter um tamanho fixo ou variável. Em caso de tamanho variável, utiliza-se um parâmetro α que determina a razão mínima entre as diferenças do elemento avaliado e do melhor elemento encontrado com o pior elemento encontrado, de acordo com a função gulosa, para aceitação na RCL. Objetivando uma boa exploração do espaço de soluções, as gerações de soluções devem ser rápidas, acompanhadas de uma busca local de poucos passos para a obtenção de ótimos locais. Para o PPV, a função gulosa utilizada foi o somatório da demanda de passageiros ainda por atender na faixa horária de cada viagem de atendimento à demanda (se ainda houver demanda pendente na FH). A utilização dessa função gulosa se baseou na meta de uniformizar as demandas das FHs conforme os elementos fossem sendo incluídos. XXXVIII SBPO [ 967 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO As RCLs de tamanho fixo só mostraram bons resultados quando seu tamanho representava algum percentual do total de elementos, e mesmo assim com alguma degeneração ao final do processo iterativo, pois a quantidade de elementos com um bom atendimento relativo da demanda passa a ser cada vez menor. Dessa forma, optou-se pela utilização do parâmetro α ao invés das RCLs de tamanho fixo. Outra vantagem dessa escolha consistiu no fim da necessidade de se ordenar todos os elementos avaliados, em troca de um processo de seleção qualitativa de elementos, de complexidade linear. 3.2. Busca local A estratégia de busca local se baseou em um procedimento iterativo guloso. Cada iteração consiste em uma aplicação do operador de remoção de viagens ou do operador de fusão de jornadas. A remoção de viagens pode envolver o conjunto das primeiras ou das últimas tarefas da jornada (podendo mesmo remover completamente a jornada), com o objetivo de reduzir a quantidade de horas-extra e de jornadas. A fusão é realizada inserindo em uma jornada todas as viagens de outra jornada que podem ser realizadas antes do início ou após o fim da primeira. A escolha da próxima operação a ser realizada envolve a avaliação do ganho resultante e a viabilidade de remoção de viagens de atendimento à demanda (i.e., que as mesmas sejam redundantes para o atendimento). São avaliadas todas as remoções possíveis de viagens do início ou do fim de cada jornada, bem como a fusão de todas as jornadas entre si. A principal meta definida foi a redução de jornadas, sendo secundária a diminuição da quantidade total de horasextra. Como critério de desempate, foi escolhida sempre a operação que removesse menos viagens de atendimento à demanda. Dessa forma, o melhor benefício é obtido mantendo o maior número possível de viagens de atendimento redundantes para serem utilizadas em etapas posteriores da busca local. Uma das grande vantagens da utilização desses operadores foi que tornou possível a obtenção de soluções fora do espaço gerado pela prévia enumeração de jornadas, garantido uma diversidade adicional não prevista em outros trabalhos envolvendo a abordagem por enumeração antecipada. 3.3. Ligação de caminho A ligação de caminho (ou Path Relinking, na literatura em inglês) é uma espécie de busca local guiada, i.e., partindo de uma solução origem, as operações de modificação da solução devem ser tais que a mesma se transforme progressivamente em uma solução destino préestabelecida. A estratégia foi proposta como uma forma de intensificação da exploração das regiões adjacentes a boas soluções (Glover e Laguna (1997) e Resende e Ribeiro (2003-2)), sendo aplicada ao GRASP em Laguna e Marti (1999). É sugerido na literatura (Resende e Ribeiro (2003-1)) que uma forma de economizar tempo com esse procedimento seja realizando o mesmo apenas a partir da melhor entre as duas soluções envolvidas e truncando a busca quando a qualidade da solução intermediária deixar a desejar. Entretanto, alguns resultados apresentados a seguir sugerem fortemente o caminho contrário para a abordagem gulosa de ligação de caminho. A implementação no módulo resolvedor envolveu um processo de remoção de jornadas da solução origem associado à inserção de jornadas pertencentes à solução destino. As jornadas foram ordenadas de acordo com sua quantidade de horas-extra. As jornadas da solução destino foram sendo inseridas uma a uma, em ordem crescente de horas-extra. Para cada jornada inserida, era avaliada a possibilidade de remoção de cada uma das jornadas restante da solução origem, partindo daquela com maior quantidade de horas-extra. O procedimento inverso procurar aumentar a quantidade de horas-extra visando diminuir a quantidade de jornadas - não obteve melhores resultados em nenhum dos testes durante a implementação. Cada solução gerada pelo GRASP e tratada pela busca local foi utilizada para ligação de caminho com todas as soluções presentes no conjunto de elite, tanto como origem quanto como destino do caminho traçado, sendo então avaliado se a melhor solução obtida pelo caminho realizado poderia ser inserida no conjunto de elite. 3.4. Paralelismo em dois níveis O procedimento de geração de soluções foi paralelizado através da utilização de um XXXVIII SBPO [ 968 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO protocolo de passagem de mensagens. Conforme testes realizados durante a implementação do módulo resolvedor, o principal gargalo de execução consistia no processo de geração de soluções iniciais pelo GRASP. Dessa forma, a estratégia inicial de paralelismo focou principalmente um aumento na criação de soluções através da geração simultânea. O módulo inicializa uma quantidade N de processos, sendo que um deles se comporta como mestre, e os demais como escravos. A tarefa dos escravos é gerar soluções e submetê-las ao mestre, onde é realizada a busca local e é mantido um conjunto de elite para a realização da ligação de caminho. Como não havia sido aplicada busca local às soluções transmitidas, a comunicação entre escravo e mestre podia ser resumida à transmissão dos índices das jornadas utilizadas numa enumeração compartilhada de elementos. A segunda etapa da implementação de paralelismo consistiu no estabelecimento de uma estratégia de colaboração entre os processos visando um ganho em qualidade, além do ganho em tempo. Um parâmetro adicional M foi estabelecido: os N processos inicializados são divididos em sub-blocos de M processos cada. Cada sub-bloco possui um mestre, e o conjunto de mestres é interligado através de uma topologia na forma de anel. Quando a solução gerada pelo escravo de um mestre é boa o suficiente para ser inserida no conjunto de elite local, essa solução é transmitida pelo mestre a seus dois vizinhos. Foi tomada a precaução de que a semente de geração aleatória de cada processo fosse diferente, de forma que o paralelismo pudesse atingir uma melhor exploração do espaço de soluções através da geração independente de soluções em pontos distintos do mesmo. Não foi tentada uma paralelização visando a redução no tempo de geração das soluções individuais, pois isso implicaria em uma carga alta de comunicação para a resolução de dependências durante o processo de construção, tendo em vista o caráter adaptativo da meta-heurística, que torna inviável qualquer paralelismo genérico no nível de geração de soluções. 4. Resultados O módulo resolvedor foi programado em C++ e o paralelismo foi implementado utilizando a biblioteca LAM-MPI. Os códigos foram compilados utilizando o compilador GNUGCC. Todos os testes foram realizados utilizando máquinas dual core Intel Xeon 2.4 GHz com 1 GB de RAM cada. Cada um desses dois processadores por máquina emulava dois processadores virtuais distintos. No testes envolvendo paralelismo, foram utilizadas 4 dessas máquinas conectadas por meio de uma rede local e fechadas a acesso para a execução de outras tarefas. Todas as máquinas envolvidas operavam o sistema operacional Fedora Core 4. Foram realizados testes sem paralelismo utilizando, para cada instância, 11 sementes aleatórias e o conjunto de valores {0.60, 0.65, 0.70, 0.75, 0.80, 0.85, 0.90} para o parâmetro α, com 5000 iterações por rodada. Os testes com paralelismo cooperativo envolveram 1 semente aleatória geral e o conjunto de valores {0.60, 0.70, 0.80, 0.90} para α, com N=16 processos, M=2 processos para cada conjunto mestre e escravos, e 4000 iterações distribuídas (500 por bloco). Outros testes utilizando ligação de caminho e paralelismo para análise de comportamento dos métodos são descritos nas respectivas seções a seguir. 4.1. Análise comparativa Os melhores resultados obtidos pelo módulo resolvedor são apresentados na tabela 2, de acordo com as instâncias oriundas das cidades de São Paulo e de São Bernardo do Campo, e comparados com as soluções manuais, as obtidas por meio de Programação Linear Inteira (PLI) em Rodrigues (2001), Programação por Restrições associada a Programação Linear Inteira (PRPLI) em Vaz (2003) e Programação por Restrições associada a Busca Tabu e Algoritmo Genético Paralelizado (BTP e AGP) em Ciré et. al. (2005). Os parâmetros utilizados para a comparação das soluções foram o número de ônibus (NO), número de motoristas (NM) e total de horas-extra (HE), além do tempo médio de execução dos módulos (TE). A geração da enumeração, realizada apenas uma vez por instância, não foi computada nesse tempo de execução por esse mesmo motivo. O tempo de geração para cada instância é de cerca de 5 a 10 minutos. O tempo considerado no caso do GRASP foi do módulo não paralelizado, como forma de comparação mais justa com as demais abordagens. XXXVIII SBPO [ 969 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Constatamos que a solução obtida pelo GRASP foi melhor em 4 das 6 instâncias. O tempo de execução excedeu em alguns casos aquele apresentado por outras meta-heurísticas devido ao tamanho do conjunto de elementos constituintes da solução, que se provou um gargalo muito evidente na implementação do resolvedor GRASP para o PPV. De uma maneira geral, a qualidade das soluções se manteve uniforme no conjunto de instâncias quando comparada com a dos outros métodos, e o tempo de execução foi muito bom – considerando que esse tempo é para o módulo não paralelizado. Instância Parâmetro Manual 2280 376 702 476 5758 2210 PLI PR-PLI BTP AGP GRASP NO - 31 19 17 16 17 NM - 42 33 31 31 31 HE - 15:48 38:34 15:55 23:40 19:46 TE - - 03:31:31 00:08:12 00:10:26 00:09:05 NO 19 20 13 10 10 10 NM 30 28 24 18 18 18 HE 11:44 18:01 02:58 05:36 08:00 01:53 TE - - 01:17:06 00:06:10 00:07:54 00:04:34 NO 32 35 23 20 20 20 NM 52 51 40 39 40 37 HE 34:25 02:15 03:26 03:36 09:13 06:58 TE - - 04:26:50 00:11:03 00:13:41 00:13:11 NO - 12 11 9 9 9 NM - 22 21 18 18 17 HE - 08:05 03:49 01:23 02:15 00:00 TE - - 02:13:26 00:05:34 00:05:15 00:11:46 NO - 10 8 7 8 7 NM - 14 14 14 15 13 HE - 13:13 12:10 03:27 02:24 00:24 TE - - 01:03:53 00:05:23 00:05:48 00:06:04 NO - 33 26 21 21 21 NM - 47 42 36 37 36 HE - 21:42 35:34 19:38 14:38 41:50 08:24:43 00:09:37 00:11:12 00:18:07 TE Tabela 2: Melhores soluções obtidas para o PPV através do método manual e de 4 outras abordagens além do GRASP. 4.2. Análise das técnicas empregadas 4.2.1. Obtenção de soluções por ligação de caminho A análise que se segue procurou avaliar a relação entre o parâmetro α da geração de soluções do GRASP com a quantidade e a distribuição das melhores soluções obtidas em cada aplicação da ligação de caminho. Uma implementação especial do módulo computou informações sobre a proximidade da melhor solução do caminho com a solução origem e destino, XXXVIII SBPO [ 970 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO separando os casos em que a origem é a melhor entre as duas soluções e o destino é a melhor. Essa proximidade foi calculada pela razão entre a quantidade de operações utilizadas para atingir a melhor solução do caminho com relação à solução destino, havendo uma discretização em intervalos de 1%. A tabela 3 apresenta o percentual de ligações de caminho nas quais foi encontrada uma solução melhor do que os extremos do caminho, sendo a solução origem a melhor ou a pior entre as duas soluções, para cada valor de α no conjunto {0.60, 0.70, 0.80, 0.90}. As figuras 2 e 3 apresentam, respectivamente, a distribuição dessas soluções encontradas no caminho para ligações de caminho partindo da melhor e da pior entre as duas soluções. α Partido da melhor solução Partindo da pior solução 0.60 09,9 % 49,0 % 0.70 05,2 % 36,1 % 0.80 07,7 % 35,2 % 06,5 % 32,6 % 0.90 Tabela 3: Percentual de execuções da ligação de caminho que obtiveram soluções intermediárias melhores que os extremos, de acordo com a qualidade do extremo de origem e o valor do parâmetro α da geração. Figura 2: Distribuição das soluções encontradas pela ligação de caminho (percentual das operações de transformação realizadas quando a melhor solução foi encontrada) partindo da melhor solução entre as duas envolvidas, com (a) α=0.60, (b) α=0.70, (c) α=0.80 e (d) α=0.90. Podemos observar pelos resultados que a ligação de caminho executada com origem na pior entre as duas soluções apresenta uma distribuição um pouco menos tímida nas proximidades da pior solução e uma menor exploração do espaço em torno da melhor solução, mas com um aumento na incidência de soluções encontradas de cerca de cinco vezes. Quanto menor o valor do parâmetro α, maior a variabilidade das soluções e - conseqüentemente - maior a quantidade de XXXVIII SBPO [ 971 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO soluções encontradas no caminho. 4.2.2. Aceleração do resolvedor pelo paralelismo Foram realizados dois testes envolvendo paralelismo. O primeiro deles procurou estabelecer a aceleração quantitativa proporcionada pela implementação. Foram realizados testes sobre tempo de execução para 1600 iterações na instância 2280 com α=0.70, executando 5 vezes cada versão do módulo resolvedor utilizada: não-paralela (NP), paralela em primeiro nível (P1) e paralela colaborativa (P2). O tempo médio de execução para cada configuração testada de cada abordagem são apresentados na tabela 4, junto com a medida de aceleração para as versões paralelas com relação à NP (Acel. paralela) e do ganho entre testes envolvendo P1 e P2 para um mesmo número de processadores (Acel. Colaborativa). Figura 3: Distribuição das soluções encontradas pela ligação de caminho (percentual das operações de transformação realizadas quando a melhor solução foi encontrada) partindo da pior solução entre as duas envolvidas, com (a) α=0.60, (b) α=0.70, (c) α=0.80 e (d) α=0.90. Observamos que a prática mais eficiente consiste na utilização de blocos pequenos, com praticamente um mestre por escravo. Por esse motivo, os ganhos com o aumento no número de processos só foram sentidos com a abordagem colaborativa. Esses testes indicaram que a melhor configuração para a abordagem colaborativa seria N=16 e M=2 para uma configuração como a descrita para esses testes, tendo a mesma sido utilizada no segundo teste sobre convergência. O teste sobre convergência se baseou na métrica utilizada por Aiex et. al. (2003): para cada instância, foi estabelecida uma qualidade mínima da solução, de forma que o programa só pararia quando atingisse essa meta. Cada instância foi rodada com o módulo não-paralelizado e com o paralelo colaborativo, sendo α=0.70, utilizando 10 sementes diferentes e computando o tempo médio de execução, ignorando o tempo mais rápido e o mais lento. Essa medida foi tomada para evitar arbitrariedades devidas à escolha da semente (execuções muito rápidas ou demoradas, deslocando muito o média com relação à mediana do conjunto de valores). Os resultados são apresentados na tabela 5. Conforme pode ser observado, os ganhos em desempenho qualitativo da abordagem colaborativa foram muito superiores ao quantitativo em geração de soluções. Para todas as XXXVIII SBPO [ 972 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO instâncias o ganho foi superior ao número de máquinas, chegando a superar o número de processadores reais em uma delas. Versão N M Execução NP - - 381,0 s - - P1 2 - 324,0 s 1,18 - P1 4 - 314,6 s 1,21 - P1 8 - 311,4 s 1,22 - P1 16 - 360,8 s 1,06 - P2 4 2 153,8 s 2,48 2,04 P2 8 2 134,2 s 2,84 2,32 P2 8 4 183,0 s 2,08 1,70 P2 16 2 088,0 s 4,33 4,10 P2 16 4 162,0 s 2,35 2,23 Acel. paralela Acel. colaborativa Tabela 4: Tempo de execução e aceleração relativa para cada configuração aplicada nas três versões do módulo testadas. Instância Solução alvo Tempo médio Tempo médio Aceleraçã não paralelo colaborativo o 2280 18 veículos 32 motoristas 232,25 s 40,25 s 5,77 376 10 veículos 19 motoristas 010,88 s 02,12 s 5,11 702 21 veículos 40 motoristas 061,75 s 09,12 s 6,77 476 10 veículos 18 motoristas 062,88 s 10,88 s 5,78 5758 7 veículos 14 motoristas 067,75 s 07,25 s 9,34 2210 22 veículos 39 motoristas 044,12 s 06,00 s 7,35 Tabela 5: Tempo de execução médio para atingir a solução alvo de cada instância e aceleração relativa à utilização de paralelismo. 5. Conclusões e trabalhos futuros A qualidade das soluções e o tempo de execução do módulo resolvedor foram tão bons quanto, ou em certos casos um pouco melhores, do que aqueles obtidos por outras abordagens utilizando meta-heurísticas paralelas. A utilização do GRASP para o PPV provou-se tanto viável quanto altamente interessante, sendo esta contribuição valiosa para o incentivo ao surgimento de outros trabalhos envolvendo o emprego dessa técnica, não só em problemas na área de transportes. A abordagem paralela colaborativa atingiu um ganho considerável em eficiência, e os resultados dos estudos envolvendo ligação de caminho constituem um material promissor para a realização de estudos futuros que explorem mais a fundo as características do método. Com relação ao PPV, espera-se realizar a integração desse módulo resolvedor com outras XXXVIII SBPO [ 973 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO meta-heurísticas em uma abodagem paralela hibridizada. A obtenção de instâncias adicionais sujeitas a restrições semelhantes seria de grande valia para atestar que a qualidade apresentada nas instâncias trabalhadas pode ser estendida ao caso geral. 6. Agradecimentos Este trabalho contou com aporte financeiro da Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP) através do processo 04/13159-9. 7. Bibliografia Aarts, E. e Lenstra, J. Local Search in Combinatorial Optimization. Willey & Sons, 1st edition, 1996. Aiex, R.M., Binato, S. e Resende, M.G.C. (2003), Parallel GRASP with path-relinking for job shop scheduling. Parallel Computing, 29:393-430. Ciré, A.A., Lopes, T.M.T. e Moura, A.V. (2005), Hibridização de programação por restrições e metaheurísticas paralelas para o escalonamento integrado de veículos e tripulação. Anais do XXXVII SBPO. Duni, S., Pardalos, P.M., e Resende, M.G.C. Parallel metaheuristics for combinatorial optimization. In Models for Parallel and Distributed Computation – Theory, Algorithmic Techniques and Applications, pages 179-206. Kluwer Academic Publishers, 2002. Feo, T.A. e Resende, M.G.C. (1989), A probabilistic heuristic for a computationally difficult set covering problem. Operations Research Letters, 8:67–71. Feo, T.A. e Resende, M.G.C. (1995), Greedy randomized adaptive search procedures. J. of Global Optimization, 6:109–133. Festa, P. e Resende, M.G.C. (2002), GRASP: An annoted bibliography. Essays and Surveys on Metaheuristics, pages 325-367. Kluwer Academic Publishers. Gabow, H.N. (1976), An efficient implementation of Edmond's algorithm for maximum matching on graphs. JACM, 23:221–234. Glover , F. e Laguna, M. Tabu Search. Kluwer Academic Publishers, Boston, 1997. Goldbarg, M. e Luna, H. Otimização Combinatória e Programação Linear: Modelos e Algoritmos. Editora Campus, 1a edição, 2000. Laguna, M. e Marti, R. (1999), GRASP and Path Relinking for 2-Layer Straight Line Crossing Minimization. Journal on Computing, 11(11);44-52. Lourenço, H.R., Paixão, J.P. e Portugal, R. (2001), Multiobjective metaheuristics for the busdriver scheduling problem. Transportation Science, 35(3):331–343. Resende, M.G.C. Greedy randomized adaptive search procedures (GRASP). In Encyclopedia of Optimization, volume 2, pages 373-382. Kluwer Academic Publishers, 2001. Resende, M.G.C. e Ribeiro, C.C. (2003), A GRASP with path-relinking for private virtual circuit routing. Networks, 41(1):104–114. Resende, M.G.C. e Ribeiro, C.C. (2003), GRASP and path-relinking: Recent advances and applications. Proceedings of the Fifth Metaheuristics International Conference (MIC2003), pages T6-1 - T6-6. Resende, M.G.C. e Ribeiro, C.C.. Greedy randomized adaptive search procedures. In Handbook of Metaheuristics, pages 219-249. Kluwer Academic Publishers, 2002. Rodrigues, M.M. Problema de planejamento de viagens no transporte coletivo. Dissertação de mestrado, Instituto de Computação – Unicamp. 2001. Souza, M., Cardoso, L. e Silva, G. (2003), Programação de tripulações de ônibus urbano: uma abordagem heurística. Anais do XXXV SBPO, 1285–1294. Vaz, G.J. Uma abordagem alternativa para o escalonamento de ônibus e motoristas. Dissertação de mestrado, Instituto de Computação – Unicamp. 2003. Wren, A. (1998), Heuristics ancient and modern: Transport scheduling through the ages. Journey of Heuristics, (4):87–100. Yunes, T.H. Problemas de escalonamento no transporte coletivo : programação por restrições e outras tecnicas. Dissertação de mestrado, Instituto de Computação – Unicamp. 2000. XXXVIII SBPO [ 974 ]