Acessibilidade / Reportar erro

Problema do carteiro chinês: escolha de métodos de solução e análise de tempos computacionais

Chinese Postman Problem: solution methods choice and computational time analysis

Resumos

O presente trabalho trata do problema do carteiro chinês (CPP). Primeiramente, por meio da estruturação e análise de uma revisão bibliográfica, propõe-se um algoritmo para auxiliar na escolha de métodos adequados a fim de se resolver o CPP. Em seguida, o algoritmo desenvolvido é utilizado na escolha de métodos para resolução do CPP em dois casos reais. O trabalho também verifica se, nos problemas práticos de logística urbana estudados, é válida uma premissa citada na literatura de que a complexidade do CPP com uma única entidade em problemas mistos é muito maior do que para problemas direcionados e não direcionados. Para isto, são selecionados casos reais de coleta de lixo e correios em uma cidade do interior paulista. Este trabalho conclui que, para problemas extraídos de situações logísticas reais, inexistem significativas diferenças entre o tempo computacional para a resolução dos modelos matemáticos com vistas à obtenção de grafos eulerianos não direcionados, direcionados e mistos.

Logística; problema do carteiro chinês; escolha de método de solução; tempo computacional


This work deals with Chinese Postman Problem (CPP). First, this paper, based on structuring and analyzing a CPP literature review, proposes an algorithm to help choosing suitable methods to solve CPP. The proposed algorithm is used on two real-world cases. This paper also verifies if in real urban logistics cases it is valid the assumption that the obtaining the optimal solution for the mixed 1 vehicle CPP is more difficult than directed and undirected cases. To accomplish this goal real-world cases are selected (household refuse collection and postal service). This work concludes that for real-world situations there are no significant differences on computational time between directed, undirected and mixed CPP.

Logistics; Chinese Postman Problem; solution procedure choice; computational time


Problema do carteiro chinês: escolha de métodos de solução e análise de tempos computacionais

Chinese Postman Problem: solution methods choice and computational time analysis

Moacir Godinho FilhoI; Rogério de Ávila Ribeiro JunqueiraII

IUFSCar

IILogtrac Consultores Associados S/C

RESUMO

O presente trabalho trata do problema do carteiro chinês (CPP). Primeiramente, por meio da estruturação e análise de uma revisão bibliográfica, propõe-se um algoritmo para auxiliar na escolha de métodos adequados a fim de se resolver o CPP. Em seguida, o algoritmo desenvolvido é utilizado na escolha de métodos para resolução do CPP em dois casos reais. O trabalho também verifica se, nos problemas práticos de logística urbana estudados, é válida uma premissa citada na literatura de que a complexidade do CPP com uma única entidade em problemas mistos é muito maior do que para problemas direcionados e não direcionados. Para isto, são selecionados casos reais de coleta de lixo e correios em uma cidade do interior paulista. Este trabalho conclui que, para problemas extraídos de situações logísticas reais, inexistem significativas diferenças entre o tempo computacional para a resolução dos modelos matemáticos com vistas à obtenção de grafos eulerianos não direcionados, direcionados e mistos.

Palavras-chave: Logística, problema do carteiro chinês, escolha de método de solução, tempo computacional.

ABSTRACT

This work deals with Chinese Postman Problem (CPP). First, this paper, based on structuring and analyzing a CPP literature review, proposes an algorithm to help choosing suitable methods to solve CPP. The proposed algorithm is used on two real-world cases. This paper also verifies if in real urban logistics cases it is valid the assumption that the obtaining the optimal solution for the mixed 1 vehicle CPP is more difficult than directed and undirected cases. To accomplish this goal real-world cases are selected (household refuse collection and postal service). This work concludes that for real-world situations there are no significant differences on computational time between directed, undirected and mixed CPP.

Key words: Logistics, Chinese Postman Problem, solution procedure choice, computational time.

INTRODUÇÃO

Rede ou grafo é definido por Larson & Odoni (1981) como uma estrutura G (N,A) que consiste de um conjunto finito de N nós (ou vértices) e de um conjunto finito de A arcos (ou arestas) que conectam pares de nós, onde (i,j) Î A, i Î N e j Î N. Dentro do escopo da teoria de grafos, o problema do carteiro chinês (CPP) é um problema no qual, dado um grafo G (N,A) cujos arcos (i,j) têm um comprimento não negativo lij, deseja-se identificar um caminho de mínimo comprimento que se inicie em algum nó, passe por todos os arcos da rede pelo menos uma vez e retorne ao nó inicial (AHUJA et al., 1993). Desde a sua aparição na moderna literatura em Kwan (1962), o problema do carteiro chinês vem ganhando muita atenção de pesquisadores que tratam de logística, principalmente logística urbana.

Na literatura, os problemas do carteiro chinês se dividem basicamente conforme o tipo de orientação da rede que se propõe a resolver. Existem basicamente três tipos de orientação de redes possíveis para este problema: redes direcionadas, não direcionadas e mistas. De acordo com Ahuja et al. (1993), um grafo ou rede direcionada G (N,A) consiste de um conjunto de N nós e um conjunto de A arcos cujos elementos são pares ordenados de nós distintos. Ainda de acordo com estes autores, um grafo ou rede não direcionada G (N,A) pode ser definido do mesmo modo que um grafo direcionado, com a exceção de que os arcos são pares não ordenados de nós distintos. As redes mistas são aquelas nas quais alguns arcos são pares ordenados e outros são pares não ordenados de nós distintos (LARSON & ODONI, 1981).

O presente trabalho tem por objetivo tratar deste importante assunto logístico. Primeiramente, é realizada uma revisão da literatura sobre o tema CPP. Baseado na estruturação e análise da revisão bibliográfica, é proposto um algoritmo para auxiliar na escolha de métodos adequados a fim de se resolver o CPP. Esta escolha é baseada nas características do problema e dos métodos de solução, a saber: orientação do grafo, conectividade do grafo, grafo ser ou não Euleriano, porte do problema e complexidade e objetivo das soluções. O algoritmo desenvolvido é ilustrado por meio de sua utilização na escolha de métodos para resolução do CPP em problemas reais em uma cidade de médio porte brasileira.

Também a partir de uma revisão bibliográfica sobre o problema do CPP, notou-se que diversos autores citam que os problemas envolvendo redes não direcionadas e direcionadas são de fácil resolução, com tempo de execução polinomial, enquanto para redes mistas o problema é NP-Completo (PEARN & CHOU, 1999). Este trabalho também pretende auxiliar a responder a esta questão. Acreditamos que em cidades de médio e grande porte, a rede pode ser caracterizada como sendo grande, possuindo milhares de nós e arcos, os quais devem ser percorridos por um número maior do que um de entidades (caminhões, pessoas, etc.). Porém, tratar o CPP em redes grandes envolve mais de uma entidade. Se o problema for simplificado para se trabalhar com apenas uma entidade, existirão restrições de distância máxima percorrida que impedirão a entidade de percorrer uma rede muito grande no dia. Isto fará com que o problema real para uma entidade dificilmente seja uma rede de enormes proporções. Restará, então, determinar se este tamanho real de rede para uma entidade é passível de ser resolvido com um esforço computacional aceitável.

Portanto, além da proposição de um algoritmo para auxiliar na escolha de métodos de solução para o CPP, este trabalho também estuda a influência de características da rede no tempo de resolução do modelo no pacote computacional. Foi testada e comprovada a hipótese de que estes tempos computacionais para os grafos não direcionados, direcionados e mistos, em grafos que representam o problema real em muitas cidades brasileiras, não apresentam grandes diferenças. Em outras palavras, mostramos que a afirmação de Pearn & Chou (1999) não é válida para problemas que na maioria das vezes refletem a realidade. Desta forma, soluções exatas para o CPP, mesmo em redes mistas, são possíveis para casos reais em cidades brasileiras. Utilizamos em todos estes testes modelos matemáticos propostos na literatura revisada e o software GAMS, de amplo conhecimento na área de Gestão da Produção. Além disso, dados reais coletados em uma cidade brasileira de aproximadamente 200.000 habitantes são utilizados para testar esta hipótese.

A estrutura do presente trabalho é a que segue: na próxima seção, é estruturada uma revisão da literatura sobre CPP; a seguir o algoritmo para auxiliar na escolha de métodos adequados para a resolução do CPP é apresentado; seguem-se apresentados dois estudos de caso em uma cidade de médio porte do interior paulista, onde são sugeridos métodos de solução para exemplos de problemas reais utilizando o algoritmo desenvolvido, bem como são realizados os testes computacionais para verificar a complexidade dos problemas não direcionados, direcionados e mistos, dando maior ênfase aos grafos mistos, que apresentam maior complexidade computacional; por último, tecemos algumas conclusões.

Antes de entrarmos na seção seguinte, apresentamos algumas definições importantes em teoria de grafos (baseadas em LARSON & ODONI, 1981), bem como a notação matemática utilizada no trabalho. Isto facilitará o entendimento e a aplicação do trabalho.

Algumas definições importantes na teoria de grafos

  • Grau de um nó => num grafo não direcionado, é o número de arcos incidentes nele; num grafo direcionado, tem-se o grau de entrada e o grau de saída de um nó.

  • Caminho (ou cadeia) => é uma seqüência de arcos adjacentes e nós; nos grafos direcionados, os caminhos também são direcionados.

  • Ciclo (ou circuito) => é um caminho cujos nós inicial e final coincidem.

  • Grafo não direcionado conectado => é um grafo no qual existe um caminho entre todos os pares de nós i, j Î N.

  • Grafo direcionado conectado => um grafo direcionado é conectado se o seu grafo não direcionado associado (isto é, o grafo que resulta se a orientação é removida de seus arcos) for conectado.

  • Grafo direcionado fortemente conectado => um grafo direcionado é fortemente conectado se existir um caminho entre todos os pares de nós i, j Î N.

Notação utilizada nos modelos matemáticos:

n => número de nós na rede

m => número de arcos na rede

xij => número de vezes que o carteiro percorre o arco (i,j)

A ESTRUTURAÇÃO DE UMA REVISÃO BIBLIOGRÁFICA SOBRE CPP

Nesta seção, são tratados os principais métodos propostos na literatura para a resolução do CPP. Estes métodos servem-se basicamente de algoritmos e de modelos de programação matemática. Não são focadas neste trabalho novas abordagens para o CPP que estão surgindo recentemente, como, por exemplo, a utilização de algoritmos genéticos (JIANG & KANG, 2003), de DNA Computing (YIN et al., 2002), da heurística GRASP (CORBERAN et al., 2002), de busca tabu (AHR & REINELT, 2006), dentre alguns outros métodos de solução.

Basicamente, a literatura sobre CPP se divide em três grandes grupos, conforme o problema seja voltado à resolução de problemas em grafos não direcionados, direcionados e mistos. Portanto, esta seção é dividida exatamente de acordo com estas três classes de problemas.

O CPP para redes não direcionadas

O primeiro resultado conhecido referente ao CPP para redes não direcionadas é devido a Euler (1736) apud Eiselt et al. (1995a), o qual mostrou que um grafo conectado não direcionado G (N,A) tem um circuito que passa exatamente uma vez por todos os seus arcos, se, e somente se, todos os nós deste grafo tiverem exatamente zero nós de grau ímpar (em outras palavras, se todos os nós forem de grau par). Esta importante relação é conhecida na literatura e faz parte do Teorema de Euler. Os grafos nos quais existem roteiros que passam exatamente uma única vez por todos os arcos são denominados grafos Eulerianos. Complementarmente, os roteiros formados dentro destes grafos são denominados: circuito ou ciclo Euleriano.

Uma vez determinado que um grafo é Euleriano, a solução para se encontrar os circuitos Eulerianos neste grafo é trivial. Uma série de algoritmos, dentre eles o algoritmo de Fleury, mostrado em Kauffman (1967), o algoritmo de Larson & Odoni (1981), o algoritmo de Edmonds & Johnson, 1973 (complexidade O(n)), além de outros algoritmos que se encontram no trabalho de Fleischner (1991) apud Eiselt et al. (1995a) tratam desta questão. Neste trabalho, mostramos o algoritmo apresentado por Larson & Odoni (1981). Este algoritmo é muito simples e se resume a um único passo, mostrado a seguir. Para mantermos uma notação única ao longo do trabalho, ele será denominado algoritmo 1 (complexidade O(n)).

Algoritmo 1: Obtenção de um circuito Euleriano em um grafo não direcionado

Seja G(N,A) um grafo conectado com zero nós de grau ímpar (circuito Euleriano). Comece com qualquer nó de G e percorra sucessivamente os arcos de G, apagando cada arco percorrido; nunca percorra um arco que seja um isthmus (este termo na literatura também é denominado ponte e pode ser definido como um arco que, ao ser eliminado, divide o grafo restante em dois grafos conexos separados). Continue este procedimento até que todos os nós de G tenham sido apagados – neste ponto, o "roteiro percorrido" é um circuito Euleriano (a metodologia leva ao nó inicial). Para os casos de grafos não conectados, o algoritmo é semelhante, com algumas modificações: o grafo G(N,A) tem inicialmente exatamente dois nós de grau ímpares, o algoritmo deve ser iniciado exatamente por um destes nós ímpar e no final do algoritmo se encontra o caminho Euleriano (a metodologia leva ao outro nó de grau ímpar).

O algoritmo 1 serve para as situações nas quais o grafo é Euleriano. Porém, muitas vezes um grafo não apresenta inicialmente um circuito de Euler. Para estes casos específicos, Guan (1962) apud Eiselt et al. (1995a) observou que um grafo não direcionado e conectado G(N,A) tem sempre um número par de nós de grau ímpar e que, portanto, o grafo G(N,A) pode ser transformado em um grafo G’(N,A’) através da inclusão de arcos artificiais duplicados, que transformem G(N,A) em um grafo Euleriano. Na literatura, muitos algoritmos trabalham exatamente com esta idéia. É o caso do algoritmo mostrado em Larson & Odoni (1981). Este algoritmo é resumido abaixo e será denominado algoritmo 2 (complexidade O(n3)).

Algoritmo 2: Encontrar circuito Euleriano em grafo inicialmente não Euleriano

PASSO 1: Identifique os m nós de grau ímpar de G(N,A). O valor de m é sempre par.

PASSO 2: Encontre o "casamento de pares com a mínima distância" (chamado na literatura de minimun-lenght pairwise matching) desses m nós e identifique os m/2 caminhos mínimos deste "casamento" ótimo.

PASSO 3: Adicione estes m/2 caminhos mínimos como arcos ligando os nós do "casamento" ótimo. O novo grafo G’(N,A’) contém zero nó de grau ímpar.

PASSO 4: Encontre um circuito Euleriano em G’(N,A’). Este circuito é a solução ótima do CPP no grafo original G(N,A) e o seu comprimento é igual ao comprimento total dos arcos em A, mais o comprimento total dos m/2 caminhos mínimos.

A respeito do algoritmo 2, devemos tecer algumas considerações especiais sobre os passos 4 e 2. O passo 4, encontrar o circuito Euleriano, significa aplicar o algoritmo 1 mostrado anteriormente. Com relação ao passo 2, nota-se que este é crucial. Neste passo, deve-se encontrar o "casamento de pares com a mínima distância". Isto significa encontrar, dentre um número par de nós que possuem grau ímpar, a combinação dois a dois que fornece a menor distância total entre eles. Para se resolver este problema, pode-se empregar um método manual, o qual, segundo Larson & Odoni (1981), num contexto geográfico, fornece excelentes soluções, ou então um método exato baseado em programação matemática. Larson & Odoni (1981) citam dois algoritmos que realizam o "casamento" ótimo do Passo 2; o algoritmo de Edmonds & Johnson (1973), que tem complexidade O(n3) e o algoritmo de Christofides (1975). Também uma versão modificada do modelo de Baker (1983) para grafos conectados, mostrada em Wang & Wen (2002), pode ser utilizada. Além destes, existe uma série de outros algoritmos para resolver o problema do "casamento", como, por exemplo, o modelo de programação inteira mostrado em Eiselt et al. (1995a), o modelo de Lawler (1976), com complexidade O(n3), o modelo proposto por Galil et al. (1986) e o modelo de Derigs & Metz (1991). Neste trabalho, é utilizada uma versão modificada (voltada para grafos não orientados) do modelo proposto por Baker (1983). Denomina-se este modelo de modelo matemático 1.

Modelo matemático 1: Determinação de um grafo Euleriano para redes não direcionadas.

Sujeito a:

Para a resolução em grafos não orientados deve ser utilizado um dos métodos exatos citados, uma vez que métodos manuais se tornam inviáveis para problemas maiores. De acordo com Larson & Odoni (1981), a combinação de casamentos no passo 2 do algoritmo 2 cresce muito rapidamente, conforme mostra a Tabela 1.

Ainda dentro desta discussão sobre a resolução do CPP em grafos não orientados, existe na literatura um número grande de variantes, como, por exemplo, Frederickson et al. (1978), os quais trabalham com o CPP para o caso de múltiplos veículos.

O CPP para redes direcionadas

Para o caso de grafos direcionados, diferentemente dos grafos não direcionados, existe uma condição de extrema importância para que o CPP tenha solução. Esta condição é que o grafo deve ser fortemente conectado, ou seja, deve haver um caminho direcionado ligando todos os nós do grafo (WANG & WEN, 2002). Nas palavras de Morabito (2003): "todo nó deve ser alcançável de qualquer outro nó".

Assim como nos grafos não direcionados, o primeiro passo para se resolver o problema CPP em redes direcionadas é a verificação se o grafo possui um circuito Euleriano. Para isto, pode-se utilizar uma versão modificada do teorema de Euler, apresentado em Eiselt et al. (1995a). Um grafo fortemente conectado orientado G (N,A) possui um circuito de Euler se, e somente se, contiver todos os nós com grau de entrada igual ao grau de saída (balanceado).

Caso o grafo possua um circuito de Euler, o problema passa a ser determiná-lo. Para se realizar isto, a literatura traz vários algoritmos. Dentre eles, podemos citar uma adaptação do algoritmo de Fleury para grafos direcionados encontrado em Christofides (1975), o algoritmo sugerido por Van Aardenne-Ehrenfest & De Bruijn (1951), ou mesmo o algoritmo mostrado em Ahuja et al. (1993). Neste trabalho, apresenta-se este último algoritmo, que passa a ser denominado algoritmo 3.

Algoritmo 3: Determinação do circuito direcionado de Euler

Decompor o conjunto de arcos A num conjunto de ciclos direcionados. Começar o roteiro por algum nó de um dos ciclos, digamos W1, visitando os nós deste ciclo em ordem até retornar ao nó inicial ou encontrar um nó que também pertença a um outro ciclo ainda não visitado, digamos W2. No primeiro caso, o roteiro está completo; no segundo caso, visite o ciclo W2 antes de fechar o ciclo W1. Repita o mesmo procedimento para o ciclo W2 e assim por diante.

O algoritmo 3 ou as outras referências citadas podem ser usadas no caso em que se tem um grafo direcionado Euleriano. Nos casos em que a aplicação da versão orientada do Teorema de Euler não identificar um grafo Euleriano, então se deve utilizar uma metodologia para tornar o grafo Euleriano. A idéia aqui é a mesma dos grafos não orientados, ou seja, devem-se acrescentar arcos até tornar o grafo Euleriano. Para esta transformação do grafo, são propostos na literatura diversos modelos, a grande maioria deles baseados em problemas de fluxo de custo mínimo (minimum cost flow problem). Exemplos são encontrados nos trabalhos de Edmonds & Johnson, 1973 (complexidade O(n3)); Orloff (1974); Beltrami & Bodin, 1974 (complexidade O(mn2)); Baker (1983); Lin & Zhao, 1988 (complexidade O(kn2). O fator k citado está relacionado à estrutura da rede; para uma rede dispersa, k pode ser bem menor que m e n. Os modelos citados de Edmonds & Johnson (1973); Orloff (1974) e Beltrami & Bodin (1974) para resolução do problema de fluxo de custo mínimo trabalham com uma abordagem do clássico problema do transporte, o qual, segundo Rardin (1998), é um caso especial dos modelos de fluxo de custo mínimo.

Apresenta-se, a seguir, um modelo proposto por Baker (1983), o qual passa a ser denominado modelo matemático 2.

Modelo matemático 2: Determinação de um grafo Euleriano para redes direcionadas.

Sujeito a:

Cabe ressaltar que, no modelo matemático 2, a sua matriz dos coeficientes possui a propriedade da unimodularidade. Sendo assim, conforme é provado em Ahuja et al. (1993), na solução deste modelo, não é necessário considerar xij uma variável inteira. Dessa forma, podem-se utilizar métodos de programação linear como o simplex, os quais reduzem significativamente a complexidade do problema.

Uma vez obtido um grafo direcionado Euleriano, a tarefa passa a ser somente encontrar o circuito Euleriano deste grafo, o que pode ser feito utilizando-se o algoritmo 3 mostrado anteriormente.

Assim como no caso dos grafos não direcionados, também para grafos direcionados a literatura apresenta uma série de extensões do CPP básico. Por exemplo, Wang & Wen (2002) trabalham com o CPP para grafos orientados com restrições de tempo. Lin & Zhao (1988) desenvolvem um algoritmo para o CPP direcionado, o qual também pode ser utilizado para o caso de múltiplos veículos (m-CPP). O trabalho de Ghiani & Improta (2000) traz algoritmos para resolver o problema do CPP hierárquico, tanto para redes direcionadas como para não direcionadas.

O CPP para redes mistas

Uma rede mista contém tanto arcos orientados como não orientados. Assim como nas redes direcionadas, nas redes mistas o grafo também deve ser fortemente conectado para que o CPP tenha solução.

A condição para que uma rede mista fortemente conectada tenha um roteiro Euleriano é que todos os nós desta rede tenham grau par e sejam balanceados (EISELT et al., 1995a). Estas duas condições constituem na versão modificada do Teorema de Euler para redes mistas.

Caso o grafo misto seja Euleriano, o problema passa a ser determinar o circuito Euleriano neste grafo. Eiselt et al. (1995a) sugere um método em três etapas para se encontrar um roteiro Euleriano em um grafo misto Euleriano.

Método de Eiselt et al. (1995a) para determinar um roteiro Euleriano em um grafo misto

PASSO 1: atribuir direção aos arcos não direcionados de tal forma que o grafo se torne simétrico;

PASSO 2: atribuir direção aos arcos restantes;

PASSO 3: uma vez que o grafo esteja completamente direcionado, encontrar o circuito Euleriano utilizando um algoritmo para grafos direcionados, como os mostrados anteriormente (adaptação do algoritmo de Fleury para grafos direcionados, o algoritmo de Van Aardenne-Ehrenfest & De Bruijn (1951) ou o algoritmo 3).

Uma observação sobre este procedimento é que algoritmos para as etapas 1 e 2 são mostrados em Eiselt et al. (1995a). A etapa 1 é baseada em Ford & Fulkerson (1962) apud Eiselt et al. (1995a).

Caso o grafo não seja Euleriano, deve-se proceder a uma abordagem semelhante à descrita anteriormente para os casos não direcionados e direcionados: duplicar um número suficiente de arcos de tal forma que o grafo se torne Euleriano. De acordo com Eiselt et al. (1995a), muitos autores usam a programação inteira para determinar este aumento do grafo misto a um custo mínimo, porém os resultados computacionais são apenas esboçados e, portanto, comparações entre as abordagens são difíceis. A única conclusão a respeito de todos estes modelos é que eles são ineficientes computacionalmente e que somente problemas de pequeno e médio porte podem ser resolvidos (PEARN & LIU, 1995). Exemplos deste tipo de abordagem exata para a resolução do CPP misto podem ser encontrados em Grotschel & Win (1992), Christofides et al. (1983). Neste trabalho, foi utilizada a modificação sugerida por Ahuja et al. (1993). Este modelo inicialmente separa os arcos direcionados e não direcionados em dois conjuntos A e A’, respectivamente. Este modelo é denominado modelo matemático 3.

Modelo matemático 3: Modelo de fluxo de custo mínimo para grafos mistos

Sujeito a:

Como o CPP para redes mistas é um problema NP-Completo e, portanto, encontrar a solução ótima apresenta grande dificuldade, a literatura específica sobre o tema tem proposto soluções heurísticas a fim de se encontrar soluções aproximadas para o problema. As principais heurísticas são os chamados algoritmo misto 1 (EDMONDS & JOHNSON, 1973) e algoritmo misto 2 (FREDERICKSON, 1979). Pearn & Liu (1995) apresentou duas modificações para os algoritmos 1 e 2, denominando estes algoritmos algoritmo misto modificado 1 e algoritmo misto modificado 2. Estes novos algoritmos conseguiram alguns resultados computacionais melhores do que os algoritmos originais. Ainda sobre heurísticas para o CPP misto, Pearn & Chou (1999) apresentaram duas melhorias em relação aos quatro algoritmos mencionados. Estes autores denominaram estes novos algoritmos algoritmo misto melhorado 1 e algoritmo misto melhorado 2. De acordo com estes autores, resultados computacionais mostraram que estes dois algoritmos melhoraram significativamente as soluções propostas pelos quatro algoritmos anteriores.

Algumas particularidades de grafos mistos, como, por exemplo, o problema do retorno em U e a restrição de proibido contornar foram apresentados em Costa (1982).

UM ALGORITMO PARA AUXILIAR NA ESCOLHA DE MÉTODOS DE SOLUÇÃO PARA O CPP

A partir da revisão da literatura mostrada na seção anterior, nota-se que o método básico para a solução do CPP pode ser resumido em três passos básicos, independentemente da rede ser não direcionada, direcionada ou mista:

PASSO 1: Verificar se o grafo é Euleriano. Caso a resposta seja afirmativa, então, vá para o terceiro passo; caso contrário, vá para o segundo passo.

PASSO 2: Obter um grafo Euleriano. Após este passo, deve-se ir para o terceiro passo.

PASSO 3: Obter o circuito ou caminho Euleriano a partir do grafo Euleriano.

Nesta seção, é proposto o algoritmo para escolha na prática de uma abordagem de solução para o CPP. Este algoritmo é mostrado na Figura 1.


O algoritmo proposto se baseia em alguns pontos que são fundamentais para a escolha de um método de solução para o CPP, a saber:

  • Características do problema: podem ser resumidas em quatro pontos chave: i) orientação do grafo (não direcionado, direcionado ou misto); ii) conectividade do grafo (grafos conectados ou não conectados); iii) grafo ser ou não inicialmente

    Euleriano; e iv) porte do problema (número de nós e arcos).

  • Características dos métodos de solução (estão relacionados à complexidade e ao objetivo das soluções): as soluções podem ser i) algoritmos e teoremas para determinar se o grafo é ou não

    Euleriano; ii) soluções matemáticas simples e manuais para se encontrar o grafo

    Euleriano com mínimo custo; iii) algoritmos com complexidade até no máximo O(n

    3) para se encontrar o roteiro

    Euleriano; e iv) modelos matemáticos baseados em programação inteira para se encontrar o grafo

    Euleriano com mínimo custo. Como podemos verificar, os objetivos das soluções estão relacionados aos três passos de resolução do CPP identificados anteriormente. O item i) está relacionado ao passo 1, os itens ii) e iv) estão relacionados ao passo 2, e o item iii) está relacionado ao passo 3.

ESTUDOS DE CASO EM PROBLEMAS DE ROTEIRIZAÇÃO EM UMA CIDADE DE PORTE MÉDIO DO INTERIOR PAULISTA: UTILIZAÇÃO DO ALGORITMO PROPOSTO E TESTES COMPUTACIONAIS

Método de Pesquisa

Para ao mesmo tempo ilustrar a utilização do algoritmo, bem como realizar os testes computacionais para os CPP direcionados, não direcionados e mistos, foram entrevistadas duas empresas de setores distintos, que confrontam com a necessidade de resolver problemas de cobertura de arcos em suas operações. Ambas as empresas situam-se no município de São Carlos, interior paulista. A primeira empresa atua na coleta de lixo do município; já a segunda trabalha na área de Correios.

Estudo de caso, nas palavras de Yin (1994), "... é uma forma de pesquisa empírica, que visa investigar fenômenos contemporâneos, considerando o contexto real do fenômeno estudado, geralmente quando as fronteiras entre o contexto e o fenômeno não estão bem definidas". Bryman (1989) relata o fato de este procedimento de pesquisa geralmente envolver o exame de um pequeno número de casos, não tendo por objetivo a generalização estatística, mas sim criar relações e entendimento sobre um fenômeno estudado. De acordo com Eisenhardt (1989), os estudos de caso podem ser usados para cumprir diversos objetivos: i) fornecer descrição sobre um tema; ii) testar a teoria; iii) gerar teoria. Neste trabalho, os estudos de caso desenvolvidos estão relacionados aos objetivos i) e ii), uma vez que pretende-se testar a teoria desenvolvida (algoritmo proposto), bem como fornecer uma descrição sobre o tempo computacional de métodos de solução ótima para o CPP.

O método utilizado para coleta das informações nas empresas foi o questionário com questões abertas. A principal vantagem das questões abertas é a liberdade dada ao entrevistado. Com isso, podemos obter suas idéias expressadas espontaneamente, o que é importante para que possamos formular novas hipóteses (OPPENHEIM, 2000). Basicamente, no questionário desenvolvido buscou-se responder às seguintes questões: i) Qual o tamanho do problema que as empresas tratam? ii) Qual o método para a geração de roteiros que elas utilizam? iii) Qual o tipo do grafo que a empresa trabalha (direcionado, não direcionado ou misto)? Estas respostas formam ao mesmo tempo a base para a aplicação do algoritmo proposto e possibilitam os testes computacionais para os métodos matemáticos otimizantes.

As características dos casos analisados

Coleta de lixo

A coleta de lixo de uma cidade utilizando caminhões pode ser considerada um problema de cobertura de arcos, pois as ruas representam os arcos, os cruzamentos de ruas, os nós e a área de influência seria o grafo completo. Os caminhões têm que percorrer todas as ruas (arcos) de sua área de influência, coletando o lixo das casas. Como esses veículos devem obedecer às regras de trânsito, e as ruas podem ter sentido único ou mão dupla, o grafo pode ser considerado misto. Devido à irregularidade no traçado das ruas e quadras, os grafos podem não ser Eulerianos. Sendo assim, na determinação dos roteiros dos caminhões está implícito encontrar uma rota Euleriana em um grafo misto.

Correios

Para os Correios, toma-se como unidade de análise o carteiro. O carteiro também defronta com a possibilidade de sua área de influência ser caracterizada por um grafo não Euleriano. No entanto, diferentemente do caso anterior, o carteiro não necessariamente precisa respeitar as regras de trânsito. Sendo assim, ele defronta com o problema de encontrar um circuito Euleriano em um grafo não direcionado.

Os resultados das entrevistas

Coleta de lixo

A empresa possui uma frota de 12 caminhões coletores com capacidade de 11,5 toneladas que coletam o lixo da cidade de São Carlos e levam ao aterro local. Cada caminhão, coletando lixo, percorre em média de 35 a 40 km no período diurno. O caminhão percorre de 20 a 30 km até que esgote sua capacidade de armazenagem de lixo. Incluindo o trajeto até o aterro, os caminhões, em um turno, percorrem em média 110 km.

Segundo o entrevistado, a cidade é dividida em setores e os roteiros dos caminhões são, em geral, predefinidos; quando ocorrem mudanças são levados em consideração a distância a ser percorrida, o horário do dia e a densidade de lixo da área a ser coletada.

Correios

Os carteiros destinam 3,5 horas de seu turno à entrega de cartas, o restante das 8 horas do expediente é destinado à separação das cartas, dentre outras tarefas internas. A distância diária percorrida pelos carteiros varia de acordo com o tipo de área de entrega. Em áreas de alta densidade populacional, como é a área central de São Carlos, a distância percorrida por carteiro é menor (8 a 12 km percorridos por dia), pois há maior número de pontos de entrega. Já em áreas de baixa densidade, como os bairros, essa distância aumenta (20 a 23 km percorridos por dia).

Os carteiros são distribuídos na cidade de acordo com os CEPs e bairros dentro deste. Em geral, a área de cobertura de um carteiro é de um bairro, embora possa atender outro quando for conveniente. Definida sua área de cobertura, os carteiros traçam seu próprio roteiro.

Comparação dos casos analisados

Na Tabela 2, é mostrada uma comparação entre algumas características dos dois casos pesquisados.

A utilização do algoritmo proposto na escolha de métodos de solução do CPP para os casos analisados

O algoritmo proposto permite selecionar as soluções ideais para o CPP referente aos dois casos mostrados. As considerações abaixo são feitas baseadas no algoritmo mostrado na Figura 1. A Figura 2 mostra a aplicação do algoritmo proposto ao problema da coleta de lixo, e a Figura 3, ao problema de distribuição de cartas do Correio.



Para o caso da coleta de lixo, um grafo misto, temos que o grafo inicialmente não será Euleriano. Este problema é de pequeno porte (aproximadamente 350 a 400 arcos). De acordo com estas características, um modelo de programação matemática (como o modelo matemático 3 mostrado, por exemplo) deve ser utilizado para obter, a um mínimo custo, um grafo Euleriano. Tendo-se o grafo Euleriano, utiliza-se o método de Eiselt et al. (1995a) para se encontrar o circuito Euleriano.

Para tornar a modelagem mais afinada com a realidade, em situações em que a rota não está dimensionada, bem como os setores de atuação dos caminhões predefinidos, seria interessante adicionar múltiplos veículos e, conseqüentemente, inserir restrições de capacidade nos veículos. Nestes casos, o grafo analisado passa a ser a cidade como um todo.

O caso dos Correios é um grafo não direcionado e conectado. Inicialmente temos que o grafo não é Euleriano. Portanto, na solução para o problema dos Correios pode-se utilizar o algoritmo 2 apresentado anteriormente. Para encontrar o casamento ótimo, podem ser utilizados métodos manuais. Porém, devido ao número de nós ser de aproximadamente 200, também pode ser utilizado um método matemático para o "casamento".

Para ampliar a abrangência do problema estudado, quando não se tem as áreas de distribuição de cartas dos carteiros predefinidas, é importante inserir múltiplos agentes na modelagem matemática. Neste caso, o grafo analisado passa a ser a cidade como um todo.

Estudo de tempos computacionais de modelos matemáticos para CPP em grafos reais não direcionados, direcionados e mistos

Os estudos de tempos computacionais apresentados nesta seção utilizaram modelos matemáticos mostrados na seção que tratou da revisão bibliográfica sobre CPP, já que são a etapa crítica na resolução dos algoritmos. Para os grafos não direcionados foi utilizado o modelo matemático 1, para os grafos direcionados foi utilizado o modelo matemático 2 e para os grafos mistos foi utilizado o modelo matemático 3. O software empregado na solução deste modelo foi o GAMS, versão 19.2, com o solver Cplex 7.0. O computador utilizado possui um processador AMD-K6 400 MHz com 160 MB de memória RAM.

O estudo dos tempos computacionais foi realizado para os dois estudos de caso. Vê-se na Tabela 2 que um grafo misto de 350 a 400 arcos (coleta de lixo), bem como um grafo não direcionado de 230 arcos (Correios), representam tamanhos reais de problemas logísticos de roteirização. Estas ordens de grandeza serão utilizadas para os testes computacionais.

A Validação dos modelos matemáticos

Antes de realizar o estudo dos tempos computacionais propriamente dito, são utilizados três exemplos (um não direcionado, um direcionado e um misto) para os quais já se conhece a solução, para validar a modelagem no GAMS dos modelos matemáticos 1, 2 e 3.

Os tempos computacionais nos grafos não direcionados

Para os grafos não direcionados, avaliou-se o tempo computacional de um grafo com 200 nós e 361 arcos, compatível com os problemas reais, como vimos anteriormente. O tempo computacional deste grafo foi de 0,05 s, ou seja, bastante pequeno, como já era esperado a partir da literatura.

Os tempos computacionais nos grafos direcionados

Para facilitar comparações, foram utilizados para os grafos conectados o mesmo número de nós e arcos utilizados no problema não conectado. Na verdade, o grafo foi o mesmo utilizado para o caso não direcionado, apenas orientado e fortemente conectado. O tempo computacional para este caso foi 0,01 s, totalmente coerente com a literatura.

Os tempos computacionais nos grafos mistos

Para os grafos mistos, deu-se um maior foco aos estudos computacionais, uma vez que é neste tipo de grafo que a literatura reporta existirem problemas. Para verificar os tempos computacionais dos grafos mistos, foi feito um experimento baseado no grafo exibido na Figura 4. Nesta figura, os círculos representam os nós, as setas, os arcos direcionados e os segmentos de reta, os não direcionados. Este grafo ilustra basicamente o caso real da coleta de lixo (entre 350 e 400 arcos), apresentando uma parte mais irregular (do nó 1 ao 40) e outra mais regular (do nó 41 ao 200). Esta rede, originalmente com 200 nós, foi desmembrada em grafos menores de 20, 30, 40, 50, 60, 80, 100, 120, 140, 160 e 180 nós (os recortes seguem uma ordem numérica dos nós). Estes recortes também são mostrados na Figura 4.


Especialmente para programação inteira, observou-se que o tempo computacional apresentou variações entre as diferentes execuções do modelo no GAMS/CPLEX. Sendo assim, para cada rede foram tomadas 10 observações de tempo. Dessas observações, foram calculadas as médias e elaborada a Tabela 3. Esta tabela mostra o número de nós, o número de iterações, o tempo computacional médio e o valor da função objetivo para cada grafo analisado.

Por meio da Tabela 3, observa-se que o tempo de execução aumenta até o tamanho de rede de 40 nós. Entretanto, entre 50 e 200 nós, o tempo computacional permaneceu estável (com exceção da rede de 180 nós, a qual teve um número de iterações elevado). Este fato pode ser explicado pela irregularidade da rede até o nó 40, que é proporcionalmente menos balanceada que a rede do nó 40 ao nó 200. Dessa forma, é necessária a adição de um número proporcionalmente maior de arcos para transformar a primeira parte da rede em um grafo euleriano. Isto nos leva a supor que o tempo computacional não é somente dependente do tamanho de um grafo, mas também de sua geometria (se regular ou irregular). Porém, a maioria dos quarteirões em cidades brasileiras é mais regular do que irregular. Não se conseguiu chegar a uma razão para o número elevado de iterações necessárias nas redes com 140 e 180 nós. Porém, isto em nada impacta nas conclusões extraídas desta seção.

A partir dos tempos computacionais mostrados, vemos que problemas como este, de porte pequeno ou médio, são facilmente resolvidos com os solvers disponíveis no mercado.

Esta seção nos permite concluir que problemas de pequeno/médio porte, com as características analisadas (e que, como vimos, refletem casos reais), são computacionalmente tratáveis utilizando-se os solvers disponíveis no mercado.

CONSIDERAÇÕES FINAIS

O presente trabalho trata do problema logístico de roteirização. Dentro deste contexto, o problema do carteiro chinês (CPP) é um problema que busca encontrar a mínima distância que deve ser coberta por um elemento (caminhão de lixo, carteiro, jornaleiro, dentre outros), passando por todos os caminhos pelo menos uma vez e retornando até a origem.

Por meio de uma revisão da literatura sobre o tema, são identificados e estruturados métodos de solução para os três tipos de problemas CPP: grafos não direcionados, direcionados e mistos. Baseando-se na análise da revisão bibliográfica (pesquisa teórico-conceitual), foi proposto um algoritmo que visa auxiliar na escolha de um método adequado de solução do CPP. Este algoritmo foi ilustrado através de sua utilização em dois casos em problemas logísticos em uma cidade brasileira com aproximadamente 200.000 habitantes. Estes problemas são o da coleta de lixo e o de distribuição de cartas efetuada pelos Correios, ressaltando-se que a comparação das soluções dos estudos de caso com a obtida pelo algoritmo foge do escopo deste trabalho e consiste em proposta de trabalhos futuros.

Além disso, no presente trabalho também foi realizado um estudo computacional dos problemas CPP conforme estes sejam destinados a grafos não direcionados, direcionados ou mistos. Este trabalho mostra que para problemas reais (no caso estudado 200 nós) inexistem diferenças significativas entre o tempo computacional para soluções matemáticas para os problemas não direcionados, direcionados e mistos. Portanto, mesmo em grafos mistos, que muitas vezes representam situações reais, são possíveis soluções matemáticas otimizantes.

Ainda com relação aos grafos mistos, este trabalho mostra que o tempo de execução computacional não somente está relacionado ao número de nós, mas também ao número de iterações para a resolução numérica do problema, a qual, por sua vez, é função da geometria do grafo.

Acreditamos que as principais contribuições deste trabalho à área de roteirização logística são: i) apresentar um algoritmo simples e de fácil utilização (foi ilustrada sua utilização prática) que se presta à escolha de modelos de resolução para o CPP; ii) auxiliar no ensino a respeito de abordagens e métodos para a resolução do CPP; iii) mostrar que os métodos de solução que a literatura recomenda para resolver "problemas pequenos" são, na verdade, aplicáveis a problemas reais (embora de escopo limitado) e, portanto, estes problemas podem ser resolvidos por modelos matemáticos exatos.

Referências citadas por meio de apud

Referências complementares

Artigo recebido em 03/05/2006

Aprovado para publicação em 11/12/2006

Sobre os autores

Moacir Godinho Filho

Doutor em Engenharia de Produção pela Universidade Federal de São Carlos (UFSCar)

Mestre em Engenharia de Produção pela Universidade Federal de São Carlos (UFSCar) – Professor Adjunto nível I – Universidade Federal de São Carlos – Departamento de Engenharia de Produção

End.: Via Washington Luiz, km 235 – Caixa Postal 676 – CEP 13565-905 – São Carlos – SP

E-mail: moacir@dep.ufscar.br

Rogério de Ávila Ribeiro Junqueira

Logtrac Consultores Associados S/C.

End.: Rua Episcopal, 1675, ap. 101 – 13560-570 – São Carlos – SP

Tel.: (16) 3372-1539 Fax: (16) 3307-6424

E-mail: rogerio@logtrac.com.br

  • AHR, D.; REINELT, G. A tabu search algorithm for the min-max k-Chinese postman problem. Computers and Operations Research, v. 33, issue 12, p. 3403-3422, 2006.
  • AHUJA, R. K.; MAGNANTI, T. L.; ORLIN, J. B. Network Flows Theory, Algorithms and Applications Prentice Hall, Upper Saddle River, New Jersey, 1993.
  • BAKER, E. K. An exact algorithm for the time constrained travelling salesman problem. Operations Research, v. 31, n. 5, p. 938-945, 1983.
  • BELTRAMI, E.; BODIN, L. Networks and vehicle routing for municipal waste collection. Networks, v. 4, p. 65-94, 1974.
  • BRYMAN, A. Research methods and organization studies Uniwin Hyman. London, 1989.
  • CHRISTOFIDES, N. Graph Theory An Algorithmic Approach Academic Press, London, 1975.
  • CHRISTOFIDES, N.; BENAVENT, E.; CAMPOS, A.; CORBRAN, A.; MOTA, E. An optimal method for the mixed postman problem. Proceedings of the 11th IFIP Conference, Copenhagen, Denmark, p. 641-649, 1983.
  • CORBERAN, A.; MARTI, R.; SANCHIS, J. M. A GRASP heuristic for the mixed Chinese Postman Problem. European Journal of Operational Research, v. 142, issue 1, p. 70-80, October 2002.
  • COSTA, M. A. B. Métodos para construção de rotas Eulerianas em grafos mistos com aplicação na distribuição de bens e serviços. Dissertação de Mestrado. Campina Grande, Paraíba, 1982.
  • DERIGS, U. & METZ, A. Solving (Large Scale) Matching Problems. Mathematical Programming, v. 50, p. 113-121, 1991.
  • EDMONDS, J. & JOHNSON, E. Matching, Euler Tours and the Chinese Postman Problem. Mathematical Programming, v. 5, p. 88-124, 1973.
  • EISELT, H. A.; GENDREAU, M.; LAPORTE, G. Arc Routing Problems, Part I: The Chinese Postman Problem. Operations Research, v. 43, n. 2, March-April, 1995a.
  • EISENHARDT, K. M. Building theories form case study research. Academy of Management Review, v. 14, n. 4, 532-550, 1989.
  • GALIL, Z.; MICALI, S.; GABOW, H. An O(EV log V) Algorithm for Finding a Maximal Weighted Matching in General Graphs. SIAM J. Comp., v. 15, p. 120-130, 1986.
  • GHIANI, G.; IMPROTA, G.; Algorithm for the hierarchical Chinese Postman Problem. Operations Research Letters, v. 26, n.1, p. 27-32, 2000.
  • GROTSCHEL, M.; WIN, Z. A Cutting plane algorithm for the Windy Postman Problem. Math. Prog., v. 55, p. 339-358, 1992.
  • JIANG, H.; KANG, L. Genetic Algorithm for Chinese Postman Problems. Wuhan University Journal of Natural Sciences, v. 8, n. 1B, p. 316-318, 2003
  • KAUFFMAN, A. Graphs, Dynamic Programming and Finite Games Academic Press, New York, 1967.
  • KWAN, M. Graphic Programming using odd or even points. Chinese Math, 1, p. 273-277, 1962.
  • LARSON, R. C. & ODONI, A. R. Urban Operations Research Prentice-Hall, Englewood Cliffs, New Jersey, 1981.
  • LAWLER, E. L. Combinatorial Optimization: Networks and Matroids Holt, Rinehart & Winston, New York, 1976.
  • LIN, Y. & ZHAO, Y. A New Algorithm for the directed Chinese Postman Problem. Computers & Operations Research, v. 15, n. 6, p. 577-584, 1988.
  • MORABITO, R.N. Notas de Aula de Pesquisa Operacional Aplicada à Logística. DEP, UfSCar, 2003.
  • OPPENHEIM, A. N. Questionaire Design, Inverviewing and Attitude Measurement Second Edition, London and New York: Pinter Publishers, 2000.
  • ORLOFF, C.S. A fundamental problem in vehicle routing. Networks, v. 4, p. 35-64, 1974.
  • PEARN, W.L. & CHOU, J.B. Improved Solutions for the Chinese postman problem on mixed networks. Computers & Operations Research, v. 26, p. 819-827, 1999.
  • PEARN, W.L.; LIU, C.M. Algorithms for the Chinese postman problem on mixed networks. Computers Ops Res, v. 22, n. 5, p. 479-489, 1995.
  • RARDIN, R. L. Optimization in Operations Research Prentice Hall, Upper Saddle River, New Jersey, 1998.
  • VAN AARDENNE-EHRENFEST, T.; BRUIJN, N.G. Circuits and Trees in Oriented Linear graphs. Simon Stevin, v. 28, p. 293-217, 1951.
  • WANG, H.; WEN, Y. Time constrained Chinese Postman Problems. Computers and mathematics with Applications, v. 44, n. 3-4, p. 375-387, 2002.
  • YIN, R. K. Case study research - design and methods Sage Publications, 2nd Ed., 1994.
  • YIN, Z.; ZHANG, F.; XU, J. A Chinese Postman Problem based on DNA computing. Journal of Chemical Information and Computer Sciences, v. 42, n. 2, p. 222-224, 2002.
  • EULER, L.; Solutio Problematis ad Geometrian Situs Pertinentis. Commentarii academiae scientarum Petropolitanae, 8, p. 128-140, 1736.
  • FLEISCHNER, H.; Eulerian Graphs and Related Topics (Part 1, Volume 1). Annals of Discrete Mathematics, v. 45, North-Holland, Amsterdan, 1990.
  • FORD, L. R.; FULKERSON, D. R. Flows in Network Princeton University Press, Princeton N. J., 1962.
  • GUAN, M. Graphic Programming Using Odd and Even Points. Chinese Mat. 1, p. 273-277, 1962.
  • BUDNICK, F. S.; MCLEAVEY, D. W.; MOJENA, R. Principles of Operations Research for Management IRWIN, Homewood, Illinois, 2nd Edition, 1988.
  • EISELT, H. A.; GENDREAU, M.; LAPORTE, G. Arc Routing Problems, Part II: The Rural Postman Problem. Operations Research, v. 43, n. 2, March-April, 1995b.
  • NOBERT, Y; PICARD, J. C. An Optimal Algorithm for the Mixed Chinese Postman Problem Publication # 799. Centre de Recherche sur les transports. Montreal, Canadá, 1991.
  • PEARN, W. L. & CHOU, J. B. Algorithms for the Chinese Postman problem on Mixed Networks. Computers & Operations Research, v. 22, n. 5, p. 479-489, 1995.

Datas de Publicação

  • Publicação nesta coleção
    13 Fev 2007
  • Data do Fascículo
    Dez 2006

Histórico

  • Recebido
    03 Maio 2006
  • Aceito
    11 Dez 2006
Associação Brasileira de Engenharia de Produção Av. Prof. Almeida Prado, Travessa 2, 128 - 2º andar - Room 231, 05508-900 São Paulo - SP - São Paulo - SP - Brazil
E-mail: production@editoracubo.com.br