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

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

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

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

GRAFOS Conceitos Básicos (Parte 1)

Grafos - Motivação. Grafos - Motivação. Algoritmos e Estruturas de Dados II Introdução a Grafos

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

CONCEITOS BÁSICOS EM GRAFOS

SCC Modelagem Computacional em Grafos Introdução a Grafos

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

GRAFOS Aula 02 Formalização: definições Max Pereira

GRAFOS: UMA INTRODUÇÃO

Alg l ori r t i m t os e E str t u r tu t ra r s d e D ados I I Intr t o r duçã ç o ã a a Gr G a r f a o f s P of o a. M. C r C ist s ina n a /

Algoritmos e Estruturas de Dados II Introdução a Grafos. Divisão do arquivo

Teoria dos Grafos. Motivação

Teoria dos Grafos Introdu c ao

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

Teoria dos Grafos. Edson Prestes

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado

Algoritmos e Estruturas de Dados II Grafos conceitos gerais. Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M.

Teoria dos Grafos. Profa. Alessandra Martins Coelho

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

Introdução a Grafos Letícia Rodrigues Bueno

Definição e Conceitos Básicos

Matemática discreta e Lógica Matemática

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

GRAFOS. Introdução Conceitos Fundamentais

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

Capítulo 1 Conceitos e Resultados Básicos

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45

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

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

Departamento de Engenharia de Produção UFPR 57

Parte B Teoria dos Grafos

Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa

INF 1010 Estruturas de Dados Avançadas

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

Algoritmos e Estruturas de Dados II Grafos conceitos gerais. Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M.

INF 1010 Estruturas de Dados Avançadas

Introdução à Teoria dos Grafos

Noções da Teoria dos Grafos

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

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

GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira

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

Estruturas de Dados Grafos

Teoria dos Grafos Aula 2

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

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches

Matemática Discreta 10

Teoria dos Grafos AULA 1

Matemática Discreta. Aula 06: Teoria dos Grafos. Tópico 01: Grafos e suas Representações. Observação

Teoria dos Grafos. Teoria dos Grafos. Profa. Sheila Morais de Almeida DAINF-UTFPR-PG. agosto

Teoria dos Grafos Aula 1 - Introdução

Teoria dos Grafos Aula 2

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

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

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

Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST)

GRAFOS E ALGORITMOS TEORIA DE GRAFOS

SCC603 Algoritmos e Estruturas de Dados II Prof.a Rosane Minghim 1o sem. 2013

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32

Teoria dos Grafos AULA 1

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA

As Pontes de Königsberg

MODELAGEM MATEMÁTICA E A CONTEXTUALIZAÇÃO DO ESTUDO DE GRAFOS E MATRIZES NO ENSINO MÉDIO

Grafos. Rafael Kazuhiro Miyazaki - 21 de Janeiro de 2019

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

Cap. 2 Conceitos Básicos em Teoria dos Grafos

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.

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

2 Definição do Problema

Aula 2 Definições, Conceitos Básicos e Representação Interna de Grafos. Teoria dos Grafos Prof.

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

Grafos Orientados (digrafos)

IFRN. Introdução à Teoria dos Grafos. Prof. Edmilson Campos

CAL ( ) MIEIC/FEUP Grafos: Introdução (Março, 2011)

Matemática Discreta. Aula nº 22 Francisco Restivo

Grafos IFRN. Robinson Alves

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

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

MATEMÁTICA DISCRETA GRAFOS (1/4) Carlos Luz. EST Setúbal / IPS. 28 Maio - 3 Junho 2012

Algoritimos e Estruturas de Dados III CIC210

Teoria dos grafos. FATEC Carapicuíba Augusto de Toledo Cruz Junior

grafo nós vértices arcos arestas

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

Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ

Teoria da Computação. Clique de um Grafo. Alexandre Renato Rodrigues de Souza 1

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

Conceitos Básicos da Teoria de Grafos

Conceito Básicos da Teoria de Grafos

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

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

Centro de Informática UFPE

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

Escola Secundária Garcia de Orta

Definições Básicas para Grafos

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

Subgrafos. Se G é um grafo e F A(G) então o subgrafo de G induzido (ou gerado) por F é o

Teoria dos Grafos Aula 5

Capítulo 1. Aula Caminhos de Euler e Hamilton Caminhos de Euler e Circuitos

Transcrição:

01 Grafos: parte 1 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) 01 Grafos: parte 1 2011/1 1 / 44

Sumário 1 Introdução e Problemas 2 Digrafos Como especicar um digrafo? 3 Grafos Tipos de Grafos 4 Denições 5 Propriedades 6 Problema das Pontes de Königsberg Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 2 / 44

Introdução e Problemas Itens e relacionamento Muitas aplicações tem uma natureza que envolve não apenas um conjunto de itens, mas também um conjunto de conexões entre pares de items. Os items passam a ter uma relação estabelecida pelas conexões. Já viram alguma estrutura de dados que permita modelar itens e relacionamento entre eles? Árvores provêem apenas uma forma de modelar relacionamento hierárquico. Grafos Grafos são objetos abstratos que modelam itens e a relação entre eles. Teoria dos Grafos é uma grande área de matemática combinatória e envolve uma série de resultados importantes obtidos principalmente a partir do século XVII. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 3 / 44

Alguns problemas Mapas Uma pessoa que sai em uma viagem geralmente quer saber qual o caminho mais curto ou qual o caminho mais barato para ir de uma cidade a outra. Essas questões podem ser respondidas processando informações sobre conexões (estradas e ruas) entre itens (cidades). Hypertexto Quando surfamos na Web, documentos fazem referências a outros documentos por meio de links. A Web é um grafo, onde os itens são documentos e as conexões são os links. Algoritmos baseados em grafos são essenciais para motores de busca, por exemplo. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 4 / 44

Alguns problemas Estrutura de um programa um compilador monta grafos para representar a estrutura de um sistema grande Os itens são as várias funções e módulos que compoem o sistema e as conexões estão associadas por exemplo com a possibilidade de uma função chamar outra função. Redes sociais Há diversas redes sociais: familiares, de trabalho, de amizades que podem ser modeladas por um grafo. As pessoas são os items e o relacionamento entre duas pessoas representada por uma conexão. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 5 / 44

Aplicações 1 Redes Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 6 / 44

Aplicações 1 Estradas Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 7 / 44

Aplicações 1 Vôos Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 8 / 44

Aplicações 1 Redes Sociais... 2 small world network (rede de mundo pequeno) Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 9 / 44

Sumário 1 Introdução e Problemas 2 Digrafos Como especicar um digrafo? 3 Grafos Tipos de Grafos 4 Denições 5 Propriedades 6 Problema das Pontes de Königsberg Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 10 / 44

Digrafos Directed graph, ou digrafo é um conjunto de vértices (bolas) e um conjunto de arcos (echas) Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 11 / 44

Arcos e Vértices Um arco, é um par ordenado de vértices Exemplo: v e w são vértices e v-w é um arco. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 12 / 44

Examinando um arco O primeiro vértice do par ordenado é a ponta inicial do arco, e o segundo a ponta nal. A presença de um arco v-w é independente da existência de w-v. Dizemos que o vértice w é vizinho de um vértice v, que w é adjacente a v, ou ainda que v domina w. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 13 / 44

Digrafos Simétricos Um digrafo é simétrico se cada um de seus arcos é anti-paralelo a outro. Dois arcos são anti-paralelos se a ponta inicial de um é a ponta nal do outro Os arcos v-w e w-v são anti-paralelos. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 14 / 44

Graus Grau de entrada: de um vértice v é o número de arcos com ponta nal v Grau de saída: de um vértice v é o número de arcos com ponta inicial v No exemplo abaixo, b tem grau de entrada 1 e grau de saída 2. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 15 / 44

Como especicar um digrafo? Uma especicação possível é exibir o conjunto de seus arcos: Exemplo: 0-1, 0-5, 1-0, 1-5, 2-4, 3-1, 5-3. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 16 / 44

Sumário 1 Introdução e Problemas 2 Digrafos Como especicar um digrafo? 3 Grafos Tipos de Grafos 4 Denições 5 Propriedades 6 Problema das Pontes de Königsberg Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 17 / 44

Grafos Um grafo (graph) é um tipo especial de digrafo: grafo não dirigido, grafo não orientado. Um grafo é um digrafo simétrico. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 18 / 44

Grafos Um grafo é um digrafo simétrico. Um par de arcos antiparalelos é uma aresta (edge). Não há ponta nal ou inicial e portanto uma aresta v-w = w-v Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 19 / 44

Denição Um grafo G = (V, E) é composto de: V : conjunto de vértices E : conjunto de arestas Se α = {v, w} é uma aresta de um grafo, dizemos que α liga os vértices v e w, ou que incide em v (e em w). V = {a, b, c, d, e} E = {(a, b), (a, c), (a, d), (b, e), (c, d), (c, e), (d, e)} Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 20 / 44

Adjacência e Grau Vértices adjacentes: vértices conectados por uma aresta. as arestas são incidentes em um vértice. Grau de um vértice: número de arestas incidentes. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 21 / 44

Grafos: laços e arestas múltiplas Um laço (loop) é uma aresta que conecta um vértice a ele mesmo. No exemplo abaixo temos um laço na cor azul. Arestas múltiplas ocorrem quando existe a possibilidade de mais de uma aresta conectar o mesmo par de vértices. Abaixo um exemplo de arestas múltiplas em vermelho. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 22 / 44

Sumário 1 Introdução e Problemas 2 Digrafos Como especicar um digrafo? 3 Grafos Tipos de Grafos 4 Denições 5 Propriedades 6 Problema das Pontes de Königsberg Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 23 / 44

Tipos de Grafos Sejam: V (G) o conjunto de vértices, em G, de tamanho n, e E(G) o conjunto de arestas, em G, de tamanho m. Podemos classicar os grafos em alguns tipos Simples: grafo sem laços nem arestas múltiplas. Vazio: um grafo G é vazio se V (G) = E(G) =. Trivial: um grafo com apenas um vértice e nenhuma aresta. Completo: grafo simples em que qualquer dois de seus vértices distintos são adjacentes. Existe um único grafo completo com n vértices, denotado K n. O grafo K 3 é também chamado de triângulo. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 24 / 44

Grafo acíclico e árvore Grafo acíclico: grafo sem ciclos. O exemplo abaixo à esquerda é um grafo acíclico. Árvore: grafo acíclico conexo. O exemplo à direita é uma árvore. Em uma árvore, m = n 1 (todo vértice tem grau 2). Se m < n 1, então G é um grafo não conexo. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 25 / 44

Floresta Floresta: conjunto de árvores Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 26 / 44

Sumário 1 Introdução e Problemas 2 Digrafos Como especicar um digrafo? 3 Grafos Tipos de Grafos 4 Denições 5 Propriedades 6 Problema das Pontes de Königsberg Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 27 / 44

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) 01 Grafos: parte 1 2011/1 28 / 44

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) 01 Grafos: parte 1 2011/1 29 / 44

Conectividade Grafo conexo: para todo par de vértices distintos u, v no grafo, existe um caminho de u a v. Um grafo que não é conexo é dito não conexo. Conexo Não conexo Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 30 / 44

Subgrafos (I) Subgrafo: subconjunto de vértices e arestas que formam um grafo Grafo G Subgrafo de G Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 31 / 44

Subgrafos (II) Subgrafo gerador (spanning subgraph) de G: é um subgrafo que contém todos os vértices de G Grafo G Subgrafo gerador de G Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 32 / 44

Árvore Geradora (spanning tree) Uma árvore geradora de G é um subgrafo que é uma árvore e que contém todos os vértices de G. Abaixo, à esquerda, um grafo G e à direita uma árvore geradora de G. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 33 / 44

Componente conexo maximal Componente conexo: subgrafo conexo maximal. Se H é um subgrafo conexo maximal de G, não existe nenhum supergrafo de H que é um subgrafo conexo de G. Obs: nada impede que G tenha outro subgrafo conexo. O grafo abaixo possui 3 componentes conexos Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 34 / 44

Complemento O complemento Ḡ de um grafo G é o grafo obtido a partir do mesmo conjunto de vértices de G conectado com as todas as arestas não existentes em G. O que é G Ḡ? um grafo simples completo com todos os vértices de G Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 35 / 44

Transposição O digrafo transposto G T de um digrafo G é o digrafo obtido de G com todas as suas arestas em direções opostas. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 36 / 44

Sumário 1 Introdução e Problemas 2 Digrafos Como especicar um digrafo? 3 Grafos Tipos de Grafos 4 Denições 5 Propriedades 6 Problema das Pontes de Königsberg Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 37 / 44

Número de arestas Seja n o número de vértices e m o número de arestas num grafo: 1 A soma do grau dos vértices é igual ao dobro do número de arestas 2 Em um grafo, o número de arestas é limitado: ( ) 2 n(n 1) = n 2 n(n 1) m 2 3 Em um digrafo, podemos ter dois arcos para cada aresta de um grafo, e portanto: m n(n 1) Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 38 / 44

Grafo Denso e Esparso Grafo denso Um grafo simples G é dito denso: se a quantidade de arestas se aproxima do limitante denido nas propriedades anteriores. Grafo esparso G é esparso: se a quantidade de arestas é muito menor do que o limitante. Por exemplo, se m n 1, para um grafo conexo. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 39 / 44

Sumário 1 Introdução e Problemas 2 Digrafos Como especicar um digrafo? 3 Grafos Tipos de Grafos 4 Denições 5 Propriedades 6 Problema das Pontes de Königsberg Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 40 / 44

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) 01 Grafos: parte 1 2011/1 41 / 44

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, por meio de um modelo que acredita-se ser o primeiro grafo da história. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 42 / 44

Problema das Pontes de Königsberg O modelo não é exatamente um grafo, pois há mais do que uma aresta entre dois vértices u e v. É mais especicamente, um multigrafo. O teorema de Euler é considerado o primeiro teorema de teoria dos grafos. Euler estabeleceu que um caminho que passe por todos as arestas uma única vez atualmente chamado Caminho Euleriano, depende do grau dos vértices do grafo. é preciso haver exatamente zero ou dois nós de grau ímpar no grafo para que um caminho euleriano seja possível. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 43 / 44

Bibliograa I SEDGEWICK, R. Algorithms in C: part 5, 3.ed., Addison-Wesley, 2002. Seções: 17.0 e 17.1 ZIVIANI, N. Projeto de Algoritmos, 3.ed. Cengage, 2004. Capítulo: 7 PINA JR., J.C. Notas de aula: Algoritmos em Grafos IME/USP, 2010, http://www.ime.usp.br/~coelho/mac0328-2009/aulas/. Moacir Ponti Jr. (ICMCUSP) 01 Grafos: parte 1 2011/1 44 / 44