PROBLEMA DO CARTEIRO CHINÊS



Documentos relacionados
Teoria dos Grafos. Edson Prestes

Roteamentos AULA ... META. Introduzir alguns problemas de roteamento. OBJETIVOS. Ao final da aula o aluno deverá ser capaz de:

GRAFOS ORIENTADOS. PSfrag replacements. Figura 1: Exemplo de um grafo orientado.

Teoria dos Grafos. Aulas 3 e 4. Profa. Alessandra Martins Coelho

Teoria dos Grafos. Edson Prestes

Introdução a Grafos Letícia Rodrigues Bueno

1 Módulo ou norma de um vetor

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

Construção de tabelas verdades

Pesquisa Operacional Programação em Redes

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

Algumas Aplicações da Teoria dos Grafos

Problema do Carteiro Chinês

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v /15

PESQUISA OPERACIONAL TEORIA DOS GRAFOS

UM TEOREMA QUE PODE SER USADO NA

Passeios de Euler e as pontes de Königsberg

Grafos. Problema Abstração Modelo Solução

Não há 3 sem 2: O Teorema de Sharkovskii

CAPÍTULO 2. Grafos e Redes

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

Grafos. Redes Sociais e Econômicas. Prof. André Vignatti

BCC204 - Teoria dos Grafos

REFLEXÃO DA LUZ: ESPELHOS 412EE TEORIA

Exercícios de Fixação Pseudocódigo e Estruturas Básicas de Controle

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

O B. Podemos decompor a pirâmide ABCDE em quatro tetraedros congruentes ao tetraedro BCEO. ABCDE tem volume igual a V = a2.oe

Objetivos. Apresentar as superfícies regradas e superfícies de revolução. Analisar as propriedades que caracterizam as superfícies regradas e

LISTA SOBRE MODELAGEM DE PROBLEMAS DE PROGRAMAÇÃO INTEIRA

Grafo: Algoritmos e Aplicações

Grafos Eulerianos e o Problema do Carteiro Chinês

Soluções Nível 1 5 a e 6 a séries (6º e 7º anos) do Ensino Fundamental

Análise e Complexidade de Algoritmos

BCC204 - Teoria dos Grafos

1. ROTEIRO DE USO DO CORISCO Para usar o CoRisco, e gerar os seus próprios modelos de risco, você deve seguir o roteiro:

Dadas a base e a altura de um triangulo, determinar sua área.

Resumo. O Problema da Atribuição de Tarefas pode ser traduzido para a Teoria dos Grafos da seguinte

Conceitos e fórmulas

Solução da prova da 1 a fase OBMEP 2008 Nível 1

Qual é Mesmo a Definição de Polígono Convexo?

01/05/2016. Danillo Tourinho Sancho da Silva, MSc ROTEIRIZAÇÃO TEORIA DOS GRAFOS MOTIVAÇÃO

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

MÓDULO 4 DISTRIBUIÇÃO DE FREQÜÊNCIAS

9. Derivadas de ordem superior

Contagem. Prof. Dr. Leandro Balby Marinho. Matemática Discreta. Fundamentos Inclusão/Exclusão Princípio da Casa dos Pombos Permutações Combinações

Lição 1 - Criação de campos calculados em consultas

a 1 x a n x n = b,

x y Grafo Euleriano Figura 1

COMPUTAÇÃO GRÁFICA. Rasterização e Preenchimento de Regiões. MARCO ANTONIO GARCIA DE CARVALHO Fevereiro de Computação Gráfica

5COP096 TeoriadaComputação

8 8 (mod 17) e 3 34 = (3 17 ) 2 9 (mod 17). Daí que (mod 17), o que significa que é múltiplo de 17.

Estruturas Discretas INF 1631

Teoria dos Conjuntos. Prof Elizeu Junior

Entendendo como funciona o NAT

Autorização de Intercâmbio pela Web

Corte total. Qualquer pessoa que já tenha visto um regis- A U L A

CAP. I ERROS EM CÁLCULO NUMÉRICO

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Análise e Resolução da prova de Auditor Fiscal da Fazenda Estadual do Piauí Disciplina: Matemática Financeira Professor: Custódio Nascimento

Este material traz a teoria necessária à resolução das questões propostas.

Complexidade de Algoritmos. Edson Prestes

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura Exemplo de um grafo linear.

9xy yx9 = (9 100+x 10+y) (y 100+x 10+9) = (8 y) (y+1)

Recursos. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou Solicitar o recurso: esperar pelo recurso, até obtê-lo.

¹CPTL/UFMS, Três Lagoas, MS,Brasil, ²CPTL/UFMS, Três Lagoas, MS, Brasil.

O mundo à nossa volta é povoado de formas as mais variadas tanto nos elementos da natureza como nos de objetos construídos pelo homem.

Existe, mas não sei exibir!

PASSEIOS ALEATÓRIOS E CIRCUITOS ELÉTRICOS

Prof. Bruno Holanda - Semana Oĺımpica Nível 1. Teoria dos Grafos

Somatórias e produtórias

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 5 a Lista de Exercícios

O Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48

PROPOSTA DE RESOLUÇÃO DO EXAME NACIONAL DE MACS (PROVA 835) 2ªFASE

Disciplina: Unidade III: Prof.: Período:

Algoritmos e Estrutura de Dados III. Árvores

Resíduos Quadráticos e Fatoração: uma aplicação à criptoanálise do RSA

o conjunto das coberturas de dominós de uma superfície quadriculada S. Um caminho v 0 v 1...v n

Busca em Árvores ou Grafos

Projeção ortográfica de modelos com elementos paralelos e oblíquos

Grafos Msc. Daniele Carvalho Oliveira. Doutoranda em Computação UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios

Prof. Vinícius C. Patrizzi ESTRADAS E AEROPORTOS

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DA FRONTEIRA SUL COMISSÃO PERMANENTE DO PROCESSO SELETIVO DÚVIDAS FREQUENTES

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET

GEOMETRIA LÚDICA: DESCOBRINDO A ÁREA DE FIGURAS PLANAS

QUADRADO MÁGICO - ORDEM 4

1. Introdução ao uso da calculadora

Neste método o cálculo é efetuado de maneira exponencial, ou seja, juros são computados sobre os juros anteriormente calculados.

MD Teoria dos Conjuntos 1

Introdução Processamento Paralelo

Capítulo 1. x > y ou x < y ou x = y

RESOLUÇÃO DAS QUESTÕES DE MATEMÁTICA

Árvores Binárias Balanceadas

Sistemas Distribuídos: Conceitos e Projeto Eleição de Coordenador

Curso: Ensino Fundamental II Disciplina: MATEMÁTICA Professor: Álvaro / Leandro

Transcrição:

Introdução à Teoria dos Grafos Bacharelado em Ciência da Computação UFMS, 005 PROBLEMA DO CARTEIRO CHINÊS Resumo A teoria dos grafos teve seu início há cerca de 50 anos e aplicações datadas daquela época ainda são encontradas e fazem parte do histórico da área. Quando estudamos grafos eulerianos, vimos uma introdução a estes conceitos e resultados. Veremos aqui uma aplicação clássica da teoria dos grafos eulerianos: o Problema do Carteiro Chinês. 1 Motivação Suponha que um carteiro deva entregar correspondências em todas as casas de uma pequena cidade. O carteiro gostaria de realizar seu percurso da forma mais eficiente e então retornar ao correio. Conseqüentemente, o carteiro deve planejar um percurso que atravessa toda seção de uma rua entre duas esquinas consecutivas pelo menos uma vez, minimizando o número total de vezes em que ele atravessa uma rua. O problema de encontrar um percurso como este é chamado o Problema do Carteiro Chinês, e este nome se deve ao matemático chinês Guan [8] que o formulou pela primeira vez. Modelagem do Problema em Teoria dos Grafos Podemos molelar a situação descrita acima em um grafo, onde os cruzamentos entre as ruas correspondem aos vértices do grafo e dois vértices são adjacentes se uma seção da rua passa pelos dois cruzamentos correspondentes. O Problema do Carteiro Chinês pode ser reformulado agora em termos da Teoria dos Grafos. Problema PCC(G): dado um grafo conexo G, determinar um passeio fechado de menor comprimento que passa por todas as arestas de G. Chamamos tal passeio fechado de G, que contém todas suas arestas e tem menor comprimento, de um passeio fechado euleriano de G. Note que se G é um grafo euleriano, então um passeio euleriano de G é uma trilha fechada euleriana. Caso contrário, temos um passeio fechado: algumas arestas serão repetidas no passeio fechado euleriano. Observe também que o grafo conexo G em questão não tem custos nas suas arestas. Ficará claro a seguir que, mesmo para um grafo conexo G com custos nas arestas, teremos em mãos um algoritmo que receberá um grafo conexo G, com ou sem custos nas arestas, e devolverá um passeio fechado euleriano de G. 1

Algoritmo de Fleury Se G é euleriano, então qualquer trilha fechada euleriana de G é uma trilha ótima, já que uma trilha fechada euleriana é uma trilha fechada que atravessa cada aresta exatamente uma vez. O Problema do Carteiro Chinês pode ser facilmente resolvido neste caso, já que existe um bom algoritmo para determinar uma trilha fechada euleriana em um grafo euleriano. O algoritmo, devido a Fleury (veja Lucas [9]), constrói uma trilha fechada euleriana pela escolha de uma aresta a cada passo, sujeita à condição de que uma aresta de corte, do subgrafo aresta-induzido pelas arestas que não estão nesta trilha, é escolhida somente se não há outra alternativa. FLEURY(G): recebe um grafo euleriano G e devolve uma trilha fechada euleriana de G. 1: Escolha um vérice arbitrário v 0 em V G, e faça W 0 = v 0. : Suponha que a trilha W i = v 0, e 1, v 1,..., e i, v i tenha sido construída. Então, escolha uma aresta e i+1 de E G \ {e 1, e,..., e i } de tal forma que (i) e i+1 é incidente em v i ; (ii) a menos que não haja alternativa, e i+1 não é uma aresta de corte de G i = G \ {e 1, e,..., e i }. : Pare quando o Passo não puder ser executado. Por sua descrição, o algoritmo de Fleury constrói uma trilha fechada euleriana de um grafo G, conforme mostra o teorema a seguir. TEOREMA.1 Se G é euleriano, então qualquer trilha fechada em G construída pelo algoritmo de Fleury é uma trilha fechada euleriana de G. Se G não é euleriano, então qualquer passeio fechado que contém todas as arestas de G, e em particular um de menor comprimento, atravessa algumas arestas mais que uma vez. 4 O Problema do Carteiro Chinês para Grafos Arbitrários Uma forma alternativa de resolver o Problema do Carteiro Chinês é determinar, para um dado grafo conexo G, um multigrafo euleriano H, com quantidade mínima de arestas e G é grafo base de H. Observe que se duplicarmos cada aresta de um grafo conexo G, isto é, se trocarmos cada aresta por um par de arestas paralelas, então o resultado é um multigrafo euleriano H, já que H é conexo e d H (v) = d G (v), para todo v V G. Além disso, G é um grafo

base de H. Uma trilha fechada euleriana em H produz um passeio fechado em G que contém toda aresta de G. Portanto, todo grafo tem um passeio euleriano de comprimento pelo menos q, mas não maior que q. Se G é um grafo euleriano com q arestas, então o comprimento de uma trilha fechada euleriana de G é q, enquanto que, por exemplo, o comprimento de um passeio euleriano de uma árvore com q arestas é q. O teorema 4.1 descreve uma fórmula para o tamanho de um passeio euleriano de qualquer grafo conexo G. Mais que isso, este resultado formará a base para um algoritmo que produz um passeio euleriano em um grafo conexo. Antes de descrever o teorema 4.1, precisamos de algumas definições. Se G não é euleriano, então G contém um número par de vértices de grau ímpar. Seja VG 1 = {u 1, u,..., u n }, n 1, o conjunto de vértices de grau ímpar de G. Uma partição dupla de VG 1 é uma partição de V G 1 em n subconjuntos de tamanho. Para uma partição par π, dada por π = {{u 11, u 1 }, {u 1, u },..., {u n1, u n }}, definimos D(π) como e definimos D(π) = n dist G (u i1, u i ) i=1 m G = min{d(π)}, π onde o mínimo é obtido de todas as partições pares π de VG 1. Se G é euleriano temos que VG 1 =, e então definimos m G = 0. Por exemplo, se um grafo G tem quatro vértices de grau ímpar u 1, u, u, e, então VG 1 tem três partições duplas π 1 = {{u 1, u }, {u, }}, π = {{u 1, u }, {u, }} e π = {{u 1, }, {u, u }}. O teorema 4.1 a seguir apresenta um importante resultado. TEOREMA 4.1 [Goodman & Hedetniemi [7]] Se G é um grafo conexo de tamanho q, então um passeio fechado euleriano de G tem comprimento q+m G. Uma vez que encontramos uma partição dupla π = {{u 11, u 1 }, {u 1, u },..., {u n1, u n }} de V 1 G para a qual m G = D(π), podemos determinar um caminho Q i de u i1 para u i de comprimento mínimo dist G (u i1, u i ) em G, para i = 1,,..., n. Pela duplicação das arestas de G que estão em Q i, para cada i = 1,,..., n, obtemos um multigrafo euleriano H que tem G como grafo base. Uma trilha fechada euleriana de H pode então ser obtida com o algoritmo de Fleury, que gera um passeio fechado euleriano em G. O teorema 4.1 fornece uma possível solução para o Problema do Carteiro Chinês. Entretanto, esta solução necessita de determinar todas as partições pares π de VG 1, e então computa

m G = min{d(π)}. Este processo não é eficiente, já que o número de partições pares de V 1 G é O(n n ), onde n é o número de vértices de grau ímpar de G. Felizmente, existe uma forma eficiente de determinar uma partição par π de VG 1 para qual m G = D(π). Iniciamos nosso algoritmo construindo um grafo completo F = K n com custos nas arestas. Os vértices de F correspondem aos vértices de grau ímpar de G, e são rotulados com os mesmos nomes. O custo de uma aresta de F é definido como a distância, ou o comprimento do menor caminho, entre os vértices correspondentes em G. O algoritmo BFS 1, ou o algoritmo de Djikstra, podem ser utilizados para computar a distância entre todos os pares de vértices de grau ímpar de G. Então, o próximo passo é determinar um emparelhamento perfeito de F, cujo custo total é o menor possível. Seja µ o maior custo das arestas de F, e seja µ = µ + 1. Seja F o grafo completo com custos, com n vértices, obtido pela troca do custo de cada aresta e de F por µ c F (e), isto é, c F (e) = µ c F (e). Como Edmonds [4] desenvolveu um algoritmo eficiente para encontrar um emparelhamento de valor máximo em um grafo com custos nas arestas, podemos agora aplicá-lo ao grafo F para obter um emparelhamento perfeito de valor máximo M = {u 11 u 1, u 1 u,..., u n1 u n }. Então M é um emparelhamento perfeito de custo mínimo em F e assim, π = {{u 11, u 1 }, {u 1, u },..., {u n1, u n }} é uma partição dupla de VG 1 para qual m G = D(π). Em seguida, após termos determinado o menor caminho Q i de u i1 para u i, para todo i = 1,,..., n, duplicamos as arestas de G que aparecem em Q i. Este método produz um multigrafo euleriano H com G seu grafo base. Finalmente, devemos encontrar uma trilha fechada euleriana de H, utilizando o algoritmo de Fleury. Esta trilha fechada euleriana de H corresponde a um passeio fechado euleriano de G. Um exemplo de execução deste algoritmo é mostrado na figura 1. A figura 1(a) mostra um grafo G com quatro vértices de grau ímpar u 1, u, u e. As figuras 1(b) e 1(c) mostram os grafos completos com custos nas arestas F e F. Observe que M = {u 1 u, u } é um emparelhamento perfeito de valor máximo para F. Portanto, π = {{u 1, u }, {u, }} é uma partição dupla de V 1 G tal que D(π) = m G. Como dist G (u 1, u ) = 1 e dist G (u, ) =, segue que m G = 4. O multigrafo H pode ser obtido pela duplicação das arestas do menor caminho de u 1 para u, bem como do menor caminho de u para. Como u 1, e 1, u, e 10, v, e, v 4, e 1,, e, v 4, e 4, v, e 7, v, e 8, u, e 5, v, e 6, u, e 9, v 1, e 11, u, e 1, u 1 é uma trilha fechada euleriana para H, segue que é um passeio fechado euleriano de G. u 1, u, v, v 4,, v 4, v, v, u, v, u, v 1, u, u 1 1 Algoritmo de Moore. Considerando G um grafo com custos nas arestas, onde o custo c(e) = 1, para toda aresta e E G. 4

PSfrag replacements G u 1 F u u 1 1 u v 4 v 1 4 v u u v (a) (b) F H u 1 u u 1 u 4 1 v 4 v 1 u v u v (c) (d) Figura 1: Resolvendo o problema do carteiro chinês. PCC(G): recebe um grafo G e devolve um passeio fechado euleriano de G. 1: Seja V 1 G = {u 1, u,..., u n }, n 1, o conjunto de vértices de grau ímpar do grafo G. Execute o BFS(G, u k ), para algum k, 1 k n. Obtenha, dessa forma, o menor caminho e seus comprimentos, para cada par de vértices de grau ímpar de G; : Construa um grafo completo com custos nas arestas F = K n, tal que seus vértices correspondem aos vértices de grau ímpar de G e o custo de uma aresta de F é definido como a distância entre os vértices correspondentes em G; : Seja µ o maior custo das arestas de F e seja µ = µ + 1. Construa F o grafo completo com custos nas arestas, com n vértices, através da troca do custo de cada aresta e de F por µ c F (e), isto é, c F (e) = µ c F (e); 4: Encontre um emparelhamento perfeito de valor máximo M = {u 11 u 1, u 1 u,..., u n1 u n } em F. Então M é um emparelhamento perfeito de custo mínimo em F e assim, π = {{u 11, u 1 }, {u 1, u },..., {u n1, u n }} é uma partição dupla de V 1 G para qual m G = D(π); 5: Para o menor caminho Q i de u i1 para u i, com i = 1,,..., n, duplique as arestas de G que aparecem em Q i. Seja H o multigrafo euleriano produzido neste processo; 6: Utilize o algoritmo de Fleury para encontrar uma trilha fechada euleriana de H. Esta trilha fechada euleriana de H corresponde a um passeio fechado euleriano de G. 5

Referências Este texto foi produzido com a consulta às referências [] e []. A Teoria dos Grafos Eulerianos, e a Teoria dos Grafos como um todo, teve seu início com o artigo de L. Euler [5] e a história desta teoria foi documentada por Biggs, Lloyd e Wilson em [1]. O livro de Fleischner [6] é inteiramente destinado a esta teoria. O Problema do Carteiro Chinês foi proposto por Guan em [8] e o algoritmo de Fleury para solução deste problema se encontra em [9]. O algoritmo de Edmonds [4] deve ser utilizado quando trabalhamos sobre grafos não eulerianos. [1] N. L. Biggs, E. K. Lloyd, and R. J. Wilson, Graph Theory 176-196, Claredon Press, Oxford, 1976. [] J. A. Bondy and U. S. R. Murty, Graph Theory with Applications, North-Holland, 1976. [] G. Chartrand and O. R. Oellermann, Applied and Algorithmic Graph Theory, McGraw-Hill, Inc., 199. [4] J. Edmonds, Maximum matching and a polyhedron with 0,1 vertices, J. Res. Nat. Bur. Standards, 69 B, pp. 15-10, 1965. [5] L. Euler, Solutio problematis ad geometriam situs pertinentis, Comment. Acad. Sci. Petropolitanae, 8, pp. 18-140, 176. [6] H. Fleischner, Eulerian Graphs and Related Topics (Part 1, Volume 1), North-Holland, 1990. [7] S. E. Goodman and S. T. Hedetniemi, Eulerian walks in graphs, SIAM J. Comput.,, pp. 16-7, 197. [8] M. Guan, Graphic programming using odd or even points, Acta Math. Sinica, 10, pp. 6-66, 1960; Chinese Math., 1, pp. 7-77, 196. [9] E. Lucas, Récréations Mathématiques IV, Paris, 191. 6