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

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

05 Grafos: ordenação topológica SCC0503 Algoritmos e Estruturas de Dados II

03 Grafos: percurso, ponderação e caminhos SCC0503 Algoritmos e Estruturas de Dados II

Teoria e Algoritmos em Grafos

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

06 Grafos: Caminhos Mínimos SCC0503 Algoritmos e Estruturas de Dados II

Alguns probleminhas...

Teoria da Complexidade Computacional

Árvore de Suporte de Comprimento Mínimo Minimal Spanning Tree

Aula 12: Programação Inteira

Teoria da Computação. Complexidade computacional classes de problemas

Ciclos hamiltonianos e o problema do caixeiro viajante

01 Análise de Algoritmos (parte 2) SCC201/501 - Introdução à Ciência de Computação II

Noções da Teoria dos Grafos

Algoritmos de aproximação - Problema do caixeiro viajante

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

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

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

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

Teoria dos Grafos AULA 1

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

BCC204 - Teoria dos Grafos

Teoria dos Grafos AULA 1

Introdução à Teoria do Grafos Notas de aula. Socorro Rangel últimas atualizações: (2009), (2012)

APLICAÇÕES DE BUSCA EM GRAFOS

Grafos: caminhos mínimos

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

Teoria dos Grafos. Profa. Alessandra Martins Coelho

As Pontes de Königsberg

BCC204 - Teoria dos Grafos

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

x y Grafo Euleriano Figura 1

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Algoritmos Combinatórios: Introdução

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá

Uma forma de classificação

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos

Grafos IFRN. Prof. Robinson Alves

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

Problemas de otimização

1 Trajeto Euleriano. > Trajeto Euleriano 0/20

BCC204 - Teoria dos Grafos

5COP096 TeoriadaComputação

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

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

Teoria dos Grafos. Edson Prestes

Problema do Caminho Mais Curto. Problema do Caminho Mais Curto

Algoritmos de Aproximação Segundo Semestre de 2012

Teoria dos grafos. Caminho euleriano e Hamiltoniano. Prof. Jesuliana N. Ulysses

Capítulo 2- Modelos de grafos.

Trabalho final de Teoria dos Grafos: O problema de coloração de vértices de grafos. Alessander Botti Benevides.

Circuitos Hamiltorianos

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

Técnicas de Desenho de Algoritmos

Técnicas de Desenho de Algoritmos

Complexidade computacional

Problemas Intratáveis ou computação eficiente X computação ineficiente

GRAFOS E ALGORITMOS TEORIA DE GRAFOS

Algoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Problema do Caixeiro Viajante

13 Hashing (parte 2) SCC201/501 - Introdução à Ciência de Computação II

Teoria da Complexidade Computacional

Estudo e Implementação de Algoritmos de Roteamento sobre Grafos em um Sistema de Informações Geográficas

Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17)

Teoria dos Grafos Introdu c ao

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

Ciência da Computação Engenharia de Computação Mestrado em Informática. Teoria dos Grafos. Maria Claudia Silva Boeres.

GRAFOS Aula 09 Coloração de Grafos Max Pereira

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

Teoria dos Grafos. Motivação

Teoria dos Grafos Aula 14

Aula 19: Lifting e matrizes ideais

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

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 8 Grafos. Estrutura de Dados 1

Estruturas de Dados II. Caixeiro Viajante

Grafos IFRN. Prof.Robinson Alves

01 Análise de Algoritmos (parte 1) SCC201/501 - Introdução à Ciência de Computação II

Redes. ADSA António Câmara

03 Análise de Algoritmos (parte 3) SCC201/501 - Introdução à Ciência de Computação II

GRAFOS: UMA INTRODUÇÃO

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.

Caixeiro Viajante. Estruturas de Dados II. Prof. a Mariella Berger. 1. Objetivo

Pesquisa Operacional II. Professor João Soares de Mello

Análise de Algoritmos. Slides de Paulo Feofiloff

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

TEORIA DOS GRAFOS UMA APLICAÇÃO DE LOGÍSTICA PARA O ENSINO MÉDIO. Profº M. Sc. Marcelo Mazetto Moala

Departamento de Engenharia de Produção UFPR 57

TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO

Algoritmo Aproximado. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Grafo planar: Definição

04 Recursão SCC201/501 - Introdução à Ciência de Computação II

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos

Teoria dos Grafos Aula 16

Teoria dos Grafos Aula 17

PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos

3. Resolução de problemas por meio de busca

Conteúdo. Histórico. Notas. Teoria dos Grafos BCC204. Notas. Notas. 1736: Euler e as Pontes de Königsberg

Resolução de problemas difíceis de programação linear através da relaxação Lagrangeana

Transcrição:

04 Grafos: caminhos e coloração SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 1 / 27

Sumário 1 Caminhos Recordando Problema das Pontes de Königsberg e Caminho Euleriano Problema do Caixeiro Viajante e Caminho Hamiltoniano 2 Coloração k-coloração e Número Cromático Algoritmos e aplicações Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 2 / 27

Sumário 1 Caminhos Recordando Problema das Pontes de Königsberg e Caminho Euleriano Problema do Caixeiro Viajante e Caminho Hamiltoniano 2 Coloração k-coloração e Número Cromático Algoritmos e aplicações Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 3 / 27

Caminho (I) Caminho: sequência de vértices v 1, v 2,, v k tal que os vértices consecutivos v i e v i+1 são adjacentes Ao lado temos os caminhos: a, b, e, d, c, e b, e, d, c Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 4 / 27

Caminho (II) Caminho simples: caminho para o qual não há vértices repetidos Ciclo simples: caminho simples v 1, v 2,, v k, onde v k = v 1. Caminho simples b, e, c, d Ciclo simples a, b, e, c, a Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 5 / 27

Procurando um caminho Problema: dados um digrafo G e dois vértices s e t, decidir se existe um caminho de s a t. Exemplo: para s=0 e t=1, sim! adaptado do material do Prof. José Coelho Pina (IME/USP) Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 6 / 27

Procurando um caminho Problema: dados um digrafo G e dois vértices s e t, decidir se existe um caminho de s a t. Exemplo: para s=1 e t=0, não! adaptado do material do Prof. José Coelho Pina (IME/USP) Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 7 / 27

Problema das Pontes de Königsberg Problema baseado na cidade de Königsberg (Prússia até 1945, atual Kaliningrado, Rússia) que é cortada pelo Rio Pregolia. Há duas grandes ilhas que na época contavam com sete pontes. Problema: encontrar um caminho que passe por cada ponte uma vez, e apenas uma vez. as ilhas não podem ser alcançadas por outra rota que não as pontes cada ponte deve ser sempre cruzada completamente. Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 8 / 27

Problema das Pontes de Königsberg Leonard Euler, em 1735, resolveu o problema, escrevendo um teorema provando que o caminho não era possível. Acredita-se ser o primeiro uso de grafos da história. Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 9 / 27

Caminho e Grafo Euleriano O modelo requer arestas múltiplas no grafo. O teorema de Euler é considerado o resultado mais antigo da teoria dos grafos. Euler estabeleceu que um caminho que passe por todos as arestas uma única vez chamado caminho euleriano, depende do grau dos vértices do grafo. se o caminho iniciar e terminar no mesmo vértice, é chamado de circuito euleriano grafos que possuem esse circuito são chamados grafos eulerianos. Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 10 / 27

Caminho e Grafo Euleriano Para existir um circuito euleriano em um grafo, todos os vértices devem possuir grau par. Para haver um caminho euleriano, devem haver exatamente 2 vértices com grau ímpar. Grafos que possuem um caminho euleriano (mas não um circuito euleriano) são chamados atravessáveis ou semi-eulerianos. Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 11 / 27

Problema do Carteiro Chinês ou da Inspeção de Rotas Problema e requisitos Imagine um carteiro que deve percorrer uma rota diariamente, e quer identicar um circuito que o permita minimizar a distância total percorrida. Esse problema pode ser modelado por um grafo onde as ruas são as arestas e os vértices são os cruzamentos, sendo preciso encontrar um caminho mais curto que visite cada aresta do grafo. Soluções Quando o grafo tem um circuito Euleriano, esse representa a solução ótima. E há algoritmos para encontrar esse circuito, por meio da decomposição do grafo em vários ciclos. Quando o grafo não possui o circuito Euleriano é preciso que tenha vértices de grau par (e número de vértices ímpar). transformar o grafo em um grafo euleriano duplicando as arestas que formam o caminho mais curto entre dois vértices de grau ímpar. Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 12 / 27

Problema do Carteiro Chinês ou da Inspeção de Rotas Classe de complexidade O problema pode ser resolvido em tempo polinomial para grafos e digrafos. No entanto, para grafos mistos G = (V, E, A), a solução para esse problema e algumas de suas variantes é NP-Completo. Assim, não existe um algoritmo eciente que encontra a solução ótima, sendo necessárias aproximações e heurísticas. Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 13 / 27

Sumário 1 Caminhos Recordando Problema das Pontes de Königsberg e Caminho Euleriano Problema do Caixeiro Viajante e Caminho Hamiltoniano 2 Coloração k-coloração e Número Cromático Algoritmos e aplicações Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 14 / 27

Problema do Caixeiro Viajante (PCV) Denição Geralmente chamado de TSP (Travelling Salesman Problem), é um problema de otimização que pode ser modelado por grafos. Consiste na procura por um circuito (começa e termina no mesmo vértice) que possua a menor distância, que, partindo de uma cidade, visita cada cidade precisamente umav ez e regresse à cidade inicial. Formulação combinatória Dado um conjunto de cidades C = {c 1,, c n } e uma matriz de distâncias P i,j de tamanho n n, encontrar a permutação entre os camínhos possíveis no qual a soma dos pesos seja a mínima. Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 15 / 27

Problema do Caixeiro Viajante (PCV) Complexidade O tamanho do espaço de procura aumenta exponencialmente com relação ao número de cidades, pois os circuitos possíveis são: (n 1)! 2 1 2 2π(n 2) ( n 1 e ) (n 1) Pertence à categoria NP-Completo, com complexidade exponencial. Não existe um algoritmo eciente que encontra a solução ótima, sendo necessárias aproximações e heurísticas, como os métodos de construção de circuitos. 1 Existem algoritmos rápidos que obtem solução próxima à ótima [11] 2 Um algoritmo baseado no comportamento de abelhas [10]. 3 Um computador bacterial também foi usado para reduzir a complexidade do problema [9]. Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 16 / 27

Caminho hamiltoniano Denição Um caminho que permite passar por todos os vértices de um grafo G, visitando cada vértice apenas uma vez. Caso esse caminho descreva um ciclo, esse é denominado circuito ou ciclo hamiltoniano. Um grafo que possua um caminho hamiltoniano é chamado grafo rastreável. Um grafo que possua um circuito hamiltoniano é chamado grafo hamiltoniano. Classe de complexidade Relacionado ao TSP, pertence à categoria NP-Completo, com complexidade exponencial. Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 17 / 27

Sumário 1 Caminhos Recordando Problema das Pontes de Königsberg e Caminho Euleriano Problema do Caixeiro Viajante e Caminho Hamiltoniano 2 Coloração k-coloração e Número Cromático Algoritmos e aplicações Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 18 / 27

Coloração Denição Seja G(V, A) um grafo, e C um conjunto de cores. Uma coloração de G é uma atribuição de alguma cor de C para cada vértice de V, de tal modo que a dois vértices adjacentes sejam atribuídas cores diferentes. Uma coloração de G é uma função f : V C tal que para cada par de vértices (v, w) A f (v) f (w). Uma k-coloração de G é uma coloração que utiliza um total de k cores. Número cromático Denomina-se número cromático X (G) ao menor número de cores k, para o qual existe uma k-coloração de G. Essa é a coloração ótima. Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 19 / 27

Coloração A coloração é um caso especial de rotulação de grafos. A coloração pode ser feita em vértices ou também em: arestas: arestas adjacentes não possuem a mesma cor. faces (grafos planares): faces adjacentes não possuem a mesma cor. 3-coloração do grafo de Petersen com X (G) = 3 esse grafo tem 12 possíveis 3-colorações Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 20 / 27

Coloração Atribuir cores distintas a vértices distintos sempre gera uma coloração correta, então podemos dizer que 1 X (G) n, onde n é o número de vértices. Os únicos grafos que podem possuir 1-coloração são aqueles que não possuem arestas.... e os grafos quer requerem n cores são os grafos completos K n. A coloração de vértices usando um algoritmo guloso mostra o número cromático de um grafo relacionado ao vértice de maior grau, mais especicamente: X (G) max(deg(g)) + 1 Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 21 / 27

Coloração Algoritmos Determinar se um grafo pode ser colorido com 2 cores é equivalente a determinar se o grafo é bipartido, e portanto computável em tempo linear usando busca em largura. Um algoritmo de força-bruta para uma k-coloração considera cada uma das k n atribuições de k cores a n vértices, e verica se é válida. Usando programação dinâmica uma k-coloração pode ser decidida em tempo O(2.455 n ). Um algoritmo guloso considera os vértices em uma ordem especíca v 1,, v n e atribui a v i a menor cor disponível não usada pelos vértices adjacentes, adicionando uma nova cor se necessário. Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 22 / 27

Coloração Aplicações Escalonamento ou agendamento: um vértice para cada tarefa e uma aresta para cada par de tarefas conitantes, sendo o número cromático o tempo ótimo para nalizar todas as tarefas sem conitos. Alocação de registros: os valores devem ser atribuídos a registros de forma que todos os valores sendo utilizados num dado instante possam estar armazenados em registros, aqui cada vértice é um registro e uma aresta conecta dois vértices (registros) se eles são requeridos em um mesmo instante. Se esse grafo possui uma k-coloração, então as variáveis podem ser armazenadas em k registros. Jogos: sudoku pode ser visto como completar uma 9-coloração, dado um grafo com 81 vértices Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 23 / 27

Bibliograa I SEDGEWICK, R. Algorithms in C: part 5, 3.ed., Addison-Wesley, 2002. Graph ADTAdjacency-Lists Representation (Seções 17.2, 17.3 e 17.4) ZIVIANI, N. Projeto de Algoritmos, 3.ed. Cengage, 2004. (Capítulo 7) TENEMBAUM, A.M. et al. Estruturas de Dados Usando C. Pearson Makron, 1995. Grafos e suas aplicações (Capítulo 8). CORMEN, T. H. et al. Algoritmos: teoria e prática. Campus-Elsevier, 2002. Algoritmos de Grafos (parte IV). Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 24 / 27

Bibliograa II KNUTH, D. The Art of Computer Programming: fundamental algorithms, v.1. Addison-Wesley, 1969. Basic Mathematical Properties of Trees (Seção 2.3.4) FEOFILOFF, P. Estruturas de Dados. http://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/ digraphdatastructs.html FEOFILOFF, P. Listas de adjacência. http://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/adjlists.html Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 25 / 27

Bibliograa III FEOFILOFF, P. Matrizes de adjacência. http: //www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/adjmatrix.html BAUMGARDNER, J. et al. Solving a Hamiltonian Path Problem with a bacterial computer. Journal of Biological Engineering, v.3, n.11, 2009. http://www.jbioleng.org/content/3/1/11 LIHOREAU, M.; CHITTKA, L; RAINE, N.E. Travel Optimization by Foraging Bumblebees through Readjustments of Traplines after Discovery of New Feeding Locations. The American Naturalist, v.176, n.6, 2010. http://www.jstor.org/stable/10.1086/657042 Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 26 / 27

Bibliograa IV APPLEGATE, D.L. et al The Traveling Salesman Problem: a computational study. Princeton, 2006. http://www.tsp.gatech.edu Moacir Ponti Jr. (ICMCUSP) 04 Grafos: parte 4 2011/1 27 / 27