Algoritmos de aproximação - Problema do caixeiro viajante

Documentos relacionados
Algoritmos de Aproximação para o Problema do Caixeiro Viajante

Algoritmos de aproximação - Problema de cobertura por conjuntos

Complexidade computacional

Problemas NP-completos

Algoritmos de aproximação - Método primal-dual

Interpolação polinomial: Diferenças divididas de Newton

Ciclos hamiltonianos e o problema do caixeiro viajante

Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko. Capítulo 3

Percursos em um grafo

Como saber se um problema está em NP e não está em P?

76) 1.1 Sim 1.2 Não 1.3 Não

Instituto de Computação Universidade Federal Fluminense. Notas de Aula de Teoria dos Grafos. Prof. Fábio Protti Niterói, agosto de 2015.

Interpolação polinomial: Diferenças divididas de Newton

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

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 16: Grafos Planares. Departamento de Matemática Aplicada

Interpolação polinomial: Polinômio de Lagrange

Noções da Teoria dos Grafos

Percursos em um grafo

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

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

Introdução à Teoria dos Grafos

Árvores Árvores Geradoras de Custo Mínimo 0/16

Circuitos Hamiltorianos

15 - Coloração Considere cada um dos grafos abaixo:

CONCEITOS BÁSICOS EM GRAFOS

Noções da Teoria dos Grafos. André Arbex Hallack

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Coloração de Vértices

Parte B Teoria dos Grafos

Grafos: componentes fortemente conexos, árvores geradoras mínimas

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47

Teoria dos Grafos. Grafos Planares

Problema do Caixeiro Viajante (The Travelling Salesman Problem-TSP) (Problema Del viajante)

Problema do Caixeiro Viajante

Comunicação e redes. Aula 2: Teoria dos Grafos Conceitos básicos. Professor: Guilherme Oliveira Mota.

04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II

Pontos extremos, vértices e soluções básicas viáveis

Noções da Teoria dos Grafos. André Arbex Hallack

Melhores momentos AULA 24. Algoritmos p.906/953

Análise de Algoritmos. Slides de Paulo Feofiloff

Lista de Exercícios 9 (Extra): Soluções Grafos

CI065 CI755 Algoritmos e Teoria dos Grafos

Análise e Síntese de Algoritmos

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 5: Grafos Conexos. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II

x y Grafo Euleriano Figura 1

Redução polinomial. Permite comparar o grau de complexidade de problemas diferentes.

Capítulo 2- Modelos de grafos.

PERCURSOS. André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré

Resolução de sistemas de equações lineares: Método de eliminação de Gauss - estratégias de pivotamento

Circuitos Eulerianos Ciclos Hamiltonianos O Problema do Caixeiro Viajante CAMINHAMENTOS BASEADO EM TOWNSEND (1987), CAP. 7.

Grafos Eulerianos e o Problema do Carteiro Chinês

CI065 CI755 Algoritmos e Teoria dos Grafos

GRAFOS E ALGORITMOS TEORIA DE GRAFOS

Teorema 1 - Todo corte de arestas de um grafo conexo G contém pelo menos uma aresta em comum com qualquer árvore geradora de G. Exemplo 2 - Seja T:

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Edson Prestes

Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos

1.3 Isomorfismo 12 CAP. 1 CONCEITOS BÁSICOS

Teoria dos Grafos. Edson Prestes

GRAFOS Aula 04 Caminhos, Conexidade e Distância Max Pereira

CAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo:

O Problema da 3- Coloração de Grafos

Matemática Discreta Capítulo 3 Versão preliminar

Degenerescência. Marina Andretta ICMC-USP. 19 de outubro de 2016

Teoria dos Grafos. Árvores

Problemas de otimização

Introdução à Teoria dos Grafos. Isomorfismo

Grafos: árvores geradoras mínimas. Graça Nunes

Algoritmos em Grafos COM11087-Tópicos Especiais em Programação I

Representação de poliedros

Resolução de sistemas de equações lineares: Fatorações de matrizes

Teoria dos Grafos AULA 3

Regras para evitar ciclagem

Problema do Caixeiro Viajante (The Travelling Salesman Problem-TSP) (Problema Del viajante)

Otimização em Grafos

Transcrição:

Algoritmos de aproximação - Problema do caixeiro viajante Marina Andretta ICMC-USP 30 de setembro de 2015 Baseado no livro Uma introdução sucinta a Algoritmos de Aproximação, de M. H. Carvalho, M. R. Cerioli, R. Dahab, P. Feofiloff, C. G. Fernandes, C. E. Ferreira, K. S. Guimarães, F. K. Miyazawa, J. C. Piña Jr., J. A. R. Soares e Y. Wakabayashi. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 1 / 61

Problema do caixeiro viajante Lembre-se que um circuito hamiltoniano é um circuito que contém todos os vértices do grafo. O problema do caixeiro viajante (traveling salesman problem), denotado por TSP, é definido da seguinte maneira: Problema TSP(G, c): Dados um grafo G e um custo c e em Q para cada aresta e, determinar um circuito hamiltoniano C que minimize c(c). Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 2 / 61

Problema do caixeiro viajante Esse é talvez o mais famoso problema de otimização combinatória, em parte graças às conexões com vários outros problemas de otimização. Ele é NP-difícil mesmo se c e {1, 2} para toda aresta e. Além disso, não se conhece um algoritmo de aproximação com razão constante para o problema. Nos restringimos a um caso particular do TSP que admite algoritmo de aproximação com razão constante. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 3 / 61

Caixeiro viajante métrico Suponha que o grafo G é completo e temos um custo c ij associado a cada par ij de vértices. Dizemos que os custos satisfazem a desigualdade triangular se para quaisquer três vértices i, j e k. c ik c ij + c jk Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 4 / 61

Caixeiro viajante métrico O TSP restrito ao conjunto de instâncias (G, c) em que G é completo e c satisfaz a desigualdade triangular é conhecido como problema do caixeiro viajante métrico e será denotado aqui por TSPM. Este problema também é NP-difícil. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 5 / 61

Preliminares Antes de apresentarmos dois algoritmos de aproximação para o TSPM, precisamos de algoritmos polinomiais para resolver três problemas importantes: árvore geradora de custo mínimo; ciclo euleriano; emparelhamento perfeito. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 6 / 61

Problema da árvore geradora de custo mínimo Problema MST(G, c): Dados um grafo G e um custo c e em Q para cada aresta e, encontrar uma árvore geradora de custo mínimo. Existem algoritmos simples e eficientes para construir uma árvore geradora de custo mínimo em um grafo conexo. Vamos designar por MST um algoritmo qualquer desse tipo. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 7 / 61

Problema da árvore geradora de custo mínimo Um algoritmo para resolver este problema, com G = (V, E) um grafo conexo, é o algoritmo de Kruskal, proposto em 1956. Algoritmo MST-Kruskal(G, c): 1 Faça T ; 2 faça A E; 3 enquanto A e T não é uma árvore geradora, faça: 4 seja e uma aresta de A com menor custo c e ; 5 faça A A \ {e}; 6 se T {e} não contém um ciclo 7 então T T {e}; 8 devolva T. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 8 / 61

Problema da árvore geradora de custo mínimo Claramente, este algoritmo é polinomial no número de vértices e arestas de G. Vejamos como ele funciona através de um exemplo. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 9 / 61

Problema da árvore geradora de custo mínimo a b f c e d a b c d e f a - 1 2 1 7 2 b 1-7 1 4 3 c 2 7-3 5 1 d 1 1 3-8 5 e 7 4 5 8-2 f 2 3 1 5 2 - Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 10 / 61

Problema da árvore geradora de custo mínimo a b f c e d a b c d e f a - 1 2 1 7 2 b 1-7 1 4 3 c 2 7-3 5 1 d 1 1 3-8 5 e 7 4 5 8-2 f 2 3 1 5 2 - Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 11 / 61

Problema da árvore geradora de custo mínimo a b f c e d a b c d e f a - 1 2 1 7 2 b 1-7 1 4 3 c 2 7-3 5 1 d 1 1 3-8 5 e 7 4 5 8-2 f 2 3 1 5 2 - Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 12 / 61

Problema da árvore geradora de custo mínimo a b f c e d a b c d e f a - 1 2 1 7 2 b 1-7 1 4 3 c 2 7-3 5 1 d 1 1 3-8 5 e 7 4 5 8-2 f 2 3 1 5 2 - Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 13 / 61

Problema da árvore geradora de custo mínimo a b f c e d a b c d e f a - 1 2 1 7 2 b 1-7 1 4 3 c 2 7-3 5 1 d 1 1 3-8 5 e 7 4 5 8-2 f 2 3 1 5 2 - Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 14 / 61

Problema da árvore geradora de custo mínimo a b f c e d a b c d e f a - 1 2 1 7 2 b 1-7 1 4 3 c 2 7-3 5 1 d 1 1 3-8 5 e 7 4 5 8-2 f 2 3 1 5 2 - Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 15 / 61

Problema da árvore geradora de custo mínimo a b f c e d a b c d e f a - 1 2 1 7 2 b 1-7 1 4 3 c 2 7-3 5 1 d 1 1 3-8 5 e 7 4 5 8-2 f 2 3 1 5 2 - Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 16 / 61

Problema da árvore geradora de custo mínimo a b f c e d a b c d e f a - 1 2 1 7 2 b 1-7 1 4 3 c 2 7-3 5 1 d 1 1 3-8 5 e 7 4 5 8-2 f 2 3 1 5 2 - Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 17 / 61

Problema da árvore geradora de custo mínimo a b f c e d a b c d e f a - 1 2 1 7 2 b 1-7 1 4 3 c 2 7-3 5 1 d 1 1 3-8 5 e 7 4 5 8-2 f 2 3 1 5 2 - Temos que c(t ) = 7. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 18 / 61

Problema do ciclo euleriano Um ciclo euleriano em um grafo ou multigrafo G é qualquer ciclo que contém todas as arestas de G. Um multigrafo conexo G tem um ciclo euleriano se e somente se cada um de seus vértices tem grau par. São bem conhecidos os algoritmos que constroem um ciclo euleriano em um multigrafo conexo sem vértices de grau ímpar. Vamos designar por Euler um algoritmo qualquer desse tipo. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 19 / 61

Problema do ciclo euleriano Um algoritmo para resolver este problema para um grafo G conexo, com todos os vértices com grau par, é o proposto por Hierholzer, em 1873. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 20 / 61

Problema do ciclo euleriano Algoritmo Euler-Hierholzer(G): 1 Faça C e A E; 2 seja v um vértice qualquer de G; 3 acrescente v à sequência de vértices C; 4 enquanto A, faça: 5 se não existe nenhuma aresta vw em A, 6 então escolha um vértice v de C tal que exista vw A; 7 escolha uma aresta vw de A; 7 acrescente w depois de v na sequência de vértices C; 8 faça v w; 9 faça A A \ {vw}; 10 devolva C. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 21 / 61

Problema do ciclo euleriano Claramente, o consumo de tempo do algoritmo Euler-Hierholzer é proporcional ao número de arestas do grafo G. Vejamos um exemplo da execução do algoritmo. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 22 / 61

Problema do ciclo euleriano b c a d f e C = (c Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 23 / 61

Problema do ciclo euleriano b c a d f e C = (c, a Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 24 / 61

Problema do ciclo euleriano b c a d f e C = (c, a, d Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 25 / 61

Problema do ciclo euleriano b c a d f e C = (c, a, d, f Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 26 / 61

Problema do ciclo euleriano b c a d f e C = (c, a, d, f, c) Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 27 / 61

Problema do ciclo euleriano b c a d f e C = (c,a,d, f, c) Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 28 / 61

Problema do ciclo euleriano b c a d f e C = (c,a, b,d, f, c) Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 29 / 61

Problema do ciclo euleriano b c a d f e C = (c,a, b, f,d, f, c) Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 30 / 61

Problema do ciclo euleriano b c a d f e C = (c,a, b, f, e,d, f, c) Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 31 / 61

Problema do ciclo euleriano b c a d f e C = (c,a, b, f, e, a,d, f, c) Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 32 / 61

Problema do emparelhamento perfeito Um emparelhamento em um grafo G é um conjunto de arestas sem extremos em comum, ou seja, cada vértice pertence a no máximo uma das arestas do emparelhamento. Um emparelhamento M é perfeito se todo vértice de G pertence a alguma aresta de M. O algoritmo de Edmonds, que denotaremos por Edmonds, encontra um emparelhamento perfeito de custo mínimo em tempo O(n 3 ), onde n é o número de vértices do grafo. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 33 / 61

Algoritmos de aproximação para o TSPM Agora que já vimos como resolver alguns problemas, vamos definir dois algoritmos de aproximação para o TSPM. A estratégia utilizada pelos dois algoritmos tem quatro passos: 1 construir uma árvore geradora T de G; 2 acrescentar novas arestas a T para obter um novo grafo T cujos vértices têm grau par; 3 obter um ciclo euleriano P em T ; 4 obter um circuito hamiltoniano em G a partir de P. A diferença entre os dois algoritmos está apenas na poĺıtica adotada para acrescentar novas arestas à árvore T. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 34 / 61

Algoritmos de aproximação para o TSPM Uma árvore geradora de custo mínimo, calculada no passo 1 da estratégia, dá uma boa delimitação inferior para o valor ótimo do problema TSPM(G, c): se removemos uma aresta de um circuito hamiltoniano temos uma árvore geradora de custo não superior ao do circuito. Portanto, opt(g, c) c(t ). Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 35 / 61

Algoritmos de aproximação para o TSPM O passo 2 da estratégia pode ser formalizado da seguinte maneira: para qualquer conjunto F de pares não-ordenados de vértices de T, seja T + F o multigrafo (V T, E T F ), onde E T F denota o multiconjunto que tem duas cópias de cada elemento de E T F. Como o grafo G, do qual T é uma árvore geradora, é completo, cada aresta do multigrafo T + F tem um custo bem definido. Após a execução do passo 2, temos a garantia que T tem algum ciclo euleriano. O passo 3 encontra um destes ciclos. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 36 / 61

Algoritmos de aproximação para o TSPM O passo 4 da estratégia transforma um ciclo gerador, ou seja, um ciclo que contém todos os vértices do multigrafo, em um circuito hamiltoniano. Para isso, basta extrair uma subsequência maximal sem vértices repetidos da sequência (v 0, v 1,..., v m ) de vértices do ciclo gerador. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 37 / 61

Algoritmos de aproximação para o TSPM Algoritmo Atalho(P): 1 Seja P = (v 0, v 1,..., v m, v 0 ); 2 w 0 v 0 3 n 0 4 para i de 1 a m, faça: 5 se v i {w 0,..., w n } 6 então n n + 1; 7 w n v i ; 8 faça C (w 0, w 1,..., w n, w 0 ); 9 devolva C. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 38 / 61

Algoritmos de aproximação para o TSPM b c a d f e P = (c, a, b, f, e, a, d, f, c) C = (c Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 39 / 61

Algoritmos de aproximação para o TSPM b c a d f e P = (c, a, b, f, e, a, d, f, c) C = (c, a Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 40 / 61

Algoritmos de aproximação para o TSPM b c a d f e P = (c, a, b, f, e, a, d, f, c) C = (c, a, b Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 41 / 61

Algoritmos de aproximação para o TSPM b c a d f e P = (c, a, b, f, e, a, d, f, c) C = (c, a, b, f Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 42 / 61

Algoritmos de aproximação para o TSPM b c a d f e P = (c, a, b, f, e, a, d, f, c) C = (c, a, b, f, e Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 43 / 61

Algoritmos de aproximação para o TSPM b c a d f e P = (c, a, b, f, e, a, d, f, c) C = (c, a, b, f, e Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 44 / 61

Algoritmos de aproximação para o TSPM b c a d f e P = (c, a, b, f, e, a, d, f, c) C = (c, a, b, f, e, d Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 45 / 61

Algoritmos de aproximação para o TSPM b c a d f e P = (c, a, b, f, e, a, d, f, c) C = (c, a, b, f, e, d Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 46 / 61

Algoritmos de aproximação para o TSPM b c a d f e P = (c, a, b, f, e, a, d, f, c) C = (c, a, b, f, e, d Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 47 / 61

Algoritmos de aproximação para o TSPM b c a d f e P = (c, a, b, f, e, a, d, f, c) C = (c, a, b, f, e, d, c) Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 48 / 61

Algoritmos de aproximação para o TSPM b c a d f e P = (c, a, b, f, e, a, d, f, c) C = (c, a, b, f, e, d, c) Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 49 / 61

Algoritmos de aproximação para o TSPM Como o grafo G é completo, a sequência C = (w 0, w 1,..., w n, w 0 ) define um circuito. O circuito C contém todos os vértices do grafo, pois o ciclo P contém todos os vértices. Cada par (w j, w j+1 ) de vértices consecutivos em C é ligado por um segmento (v i, v i+1,..., v i+p ) em P. Graças à desigualdade triangular, o custo da aresta w j w j+1 não é maior que o custo do segmento. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 50 / 61

Algoritmos de aproximação para o TSPM Portanto, o custo do circuito resultante C não é maior que o do ciclo dado P. Ou seja, c(c) c(p). O tempo gasto por Atalho é proporcional ao número de arestas do ciclo P, ou seja, ao número de arestas do grafo. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 51 / 61

Algoritmo de Rosenkrantz, Stearns e Lewis No algoritmo descrito a seguir, apresentado em um artigo de Rosenkrantz, Stearns e Lewis, o multigrafo T (passo 2 da estratégia) é obtido por meio da duplicação de cada uma das arestas da árvore geradora T. Algoritmo TSPM-RSL(G, c): 1 T MST(G, c); 2 T T + E T ; 3 P Euler(T ); 4 C Atalho(P); 5 devolva C. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 52 / 61

Algoritmo de Rosenkrantz, Stearns e Lewis Evidentemente, todo vértice de T tem grau par e, portanto, T tem um ciclo euleriano. O algoritmo Euler determina um tal ciclo. Como o conjunto de vértices de T é V G, o ciclo euleriano P é gerador. O circuito C devolvido por Atalho na linha 4 é, então, um circuito hamiltoniano de G. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 53 / 61

Algoritmo de Rosenkrantz, Stearns e Lewis Teorema 1: O algoritmo TSPM-RSL é uma 2-aproximação polinomial para o TSPM. Demonstração: Como P é um ciclo euleriano em T + E T, temos que c(p) = 2c(T ). Como opt(g, c) c(t ) e c(c) c(p), c(c) c(p) = 2c(T ) 2opt(G, c). A linha 1 do algoritmo consome tempo polinomial. As demais linhas consomem tempo O( V G ), pois o número de arestas de T é menor que 2 V G. Ou seja, o algoritmo TSPM-RSL é polinomial. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 54 / 61

Algoritmo de Christofides O algoritmo de Christofides acrescenta à árvore geradora um emparelhamento perfeito no subgrafo de G induzido pelos vértices que têm grau ímpar em T. Algoritmo TSPM-Christofides(G, c): 1 T MST(G, c); 2 Seja I o conjunto dos vértices de grau ímpar de T ; 3 M Edmonds(G[I ], c); 4 T T + M; 5 P Euler(T ); 6 C Atalho(P); 7 devolva C. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 55 / 61

Algoritmo de Christofides Como M é um emparelhamento perfeito em G[I ], todo vértice de T + M tem grau par e, portanto, o multigrafo T na linha 4 tem um ciclo euleriano. O ciclo é gerador pois T é geradora. Na linha 6 do algoritmo, C é um circuito hamiltoniano de G. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 56 / 61

Algoritmo de Christofides Teorema 2: O algoritmo TSPM-Christofides é uma 3 2 -aproximação polinomial para o TSPM. Demonstração: Precisamos mostrar que C tem custo no máximo opt(g, c). 3 2 Temos que c(c) c(p). Além disso, Como opt(g, c) c(t ), temos que c(p) = c(t ) = c(t ) + c(m). c(c) c(t ) + c(m) opt(g, c) + c(m). Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 57 / 61

Algoritmo de Christofides Precisamos mostrar agora que c(m) 1 opt(g, c) opt(g, c) 2c(M). 2 Seja C uma solução ótima para o TSPM. Note que, como I é o conjunto de vértices de grau ímpar de T, I é par. Sejam u 1, u 2,..., u 2k os vértices de I na ordem em que aparecem em C. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 58 / 61

Algoritmo de Christofides Como G é completo, a sequência D := (u 1, u 2,..., u 2k, u 1 ) é um circuito em G[I ]. Em outras palavras, D pode ser obtido de C pela substituição de cada segmento de C que liga u i a u i+1 pela aresta u i u i+1 de G. A desigualdade triangular garante que c(d) c(c ). Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 59 / 61

Algoritmo de Christofides Além disso, como D tem comprimento par, E D é a união de dois emparelhamentos perfeitos em G[I ] mutuamente disjuntos, digamos M e M. Como M é um emparelhamento perfeito de custo mínimo, Logo, 2c(M) c(m ) + c(m ). como gostaríamos. 2c(M) c(m ) + c(m ) = c(d) c(c ) = opt(g, c), Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 60 / 61

Algoritmo de Christofides A linha 3 consome tempo O( V G 3 ), enquanto que as demais linhas consomem tempo polinomial no número de vértices e arestas de G. Portanto, o algoritmo TSPM-Christofides é polinomial. Proposto em 1976, TSPM-Christofides é ainda o melhor algoritmo de aproximação conhecido para o TSPM. O algoritmo TSPM-RSL pode ser uma boa alternativa, já que ele consome menos tempo que o TSPM-Christofides e é bem mais simples, pois não envolve a determinação de um emparelhamento perfeito de custo mínimo. Marina Andretta (ICMC-USP) sme0216 e 5826 30 de setembro de 2015 61 / 61