Grafos IFRN. Robinson Alves

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

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

Conceitos Básicos da Teoria de Grafos

Conceito Básicos da Teoria de Grafos

Definição e Conceitos Básicos

Definições Básicas para Grafos

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

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

Teoria dos Grafos. Profa. Alessandra Martins Coelho

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

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

GRAFOS E ALGORITMOS TEORIA DE GRAFOS

Teoria dos Grafos. Edson Prestes

Estruturas de Dados Grafos

GRAFOS Aula 03 Representações de Grafos Max Pereira

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

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

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

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

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

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

Teoria dos Grafos Aula 1 - Introdução

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

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

Grafos Orientados (digrafos)

Teoria dos Grafos Introdu c ao

CONCEITOS BÁSICOS EM GRAFOS

GRAFOS: UMA INTRODUÇÃO

Teoria dos Grafos AULA 1

INF 1010 Estruturas de Dados Avançadas

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

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

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

Algoritmos em Grafos - Aula 02 Introdução à Teoria dos Grafos

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

Introdução à Teoria dos Grafos

Teoria dos Grafos AULA 1

Teoria dos Grafos. Edson Prestes

Matemática Discreta 10

Percursos em um grafo

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

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

Teoria dos Grafos. Edson Prestes

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

Parte B Teoria dos Grafos

Teoria do Grafos. Prof. Luiz Fernando L. Nascimento

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

Teoria dos Grafos. Maria Claudia Silva Boeres. UFES. Teoria dos Grafos

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

GRAFOS E DIGRAFOS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Grafos. Grafos. Grafos. Grafos. Grafo formado por dois. conjuntos: Vértices Arcos a b c d e f g h i j

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Pesquisa Operacional. Teoria dos Grafos

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

Teoria dos Grafos. Motivação

Percursos em um grafo

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

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

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

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

Teoria dos Grafos Aula 2

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

Grafos representação e aplicações. Prof. Guilherme Tomaschewski Netto

GRAFOS. Introdução Conceitos Fundamentais

Pesquisa Operacional II. Professor João Soares de Mello

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

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

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

grafo nós vértices arcos arestas

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

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

Grafos: caminhos mínimos

Circuitos Hamiltorianos

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.

Noções da Teoria dos Grafos

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013

Teoria dos Grafos. Edson Prestes

Combinando relações. Exemplo Seja A = {1, 2, 3} e B = {1, 2, 3, 4}. As relações

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

Transcrição:

Grafos IFRN Robinson Alves

Introdução Problema das Pontes de Königsberg No século 18 havia na cidade de Königsberg(antiga Prússia) um conjunto de sete pontes (identificadas pelas letras de a até f nas figuras abaixo) que cruzavam o rio Pregel. Elas conectavam duas ilhas entre si e as ilhas com as margens Por muito tempo os habitantes daquela cidade perguntavam-se se era possível cruzar as sete pontes numa caminhada contínua sem passar duas vezes por qualquer uma delas.

Introdução Problema das Pontes de Königsberg Então em 1736, Euler apresentou na Academia de São Petersburgo um trabalho em que ele resolvia a questão se era ou não possível existir uma rota para um transeunte atravessar as sete pontes sobre o rio Pregel, em Königsberg, de tal modo que cada ponte era utilizada apenas uma vez. O artigo de Euler sobre o problema das 7 pontes e generalização desse problema, publicado em 1736 é considerado o primeiro artigo sobre teoria dos grafos. O termo grafo não é usado nesse artigo (em latim).

Definição: um grafo G(V,A) é definido pelo par de conjuntos V e A, onde: V= conjunto não vazio: os vértices ou nodos ou nós do grafo A= conjunto de pares ordenados a=(v,w), V e W pertence a V: as arestas ou linhas ou arcos ou ramos do grafo

Exemplo de grafo: V={p p é uma pessoa} A{(v,w) v é amiga de w} ana Luiz V={maria, josé, ana, luiz} A{(maria,josé), (maria,ana), (josé,luiz), (josé,ana)} maria josé

Dígrafo É um grafo orientado V={p p é uma pessoa} A{(v,w) v é pai/mãe de w} joana paulo maria joão ana

Ordem É o número de nós de G Ordem(G1)=4 ana Luiz G1 maria josé Adjacência Dois vértices v e w de um grafo são adjacentes se há uma aresta a(v,w) em G Ex. josé e Luiz em G1 O mesmo ocorre com duas arestas que incidem sobre o mesmo vértice

Grau de um nó É o número de arestas incidentes grau(b)=3 a a b c G2 b c G3 d e O grau de saída (outdegree) de um vértice v num dígrafo é o número de arcos que têm ponta inicial no vértice v. O grau de entrada (indegree) de um vértice w num dígrafo é o número de arcos que têm ponta final no vértice w d e

Grau de um nó Nó isolado É aquele que possui grau igual a zero Ex.: vértice e a b c G2 d e

Laço É uma aresta do tipo a=(v,v) b a 2 1 c G3 Arestas paralelas São arestas ci=(v,w) e cj=(v,w) d e

Multigrafo É o grafo que possui laços e/ou arestas paralelas caso contrário é dito grafo simples Grafo completo Um grafo é dito completo quando cada par distinto de vértice é adjacente Kn=grafo completo de ordem n (possui m arestas) k1 k2 k3 b a 2 d k4 1 c n! ( n 2)!2!

Grafo bipartido Um grafo é considerado bipartido quando seu conjunto de vértices V puder ser particionado em dois subgrafos V1 e V2, tal que toda aresta de G une um vértice de v1 a outro de v2 V1 V2 V V1 V 2 V1 V 2 Se o grafo for bipartido- completo todo vértice de V1 tem uma aresta para V2

Grafo rotulado Em um grafo rotulado, cada vértice está associado a um rótulo SP(Pão Paulo) RN (Natal) CE (Fort) PA (Belém)

Grafo valorado Um grafo F(V,A) é dito ser valorado quando existe uma ou mais funções relacionando V e/ou A com um conjunto de números SP 1850 RN 2100 1900 1500 CE 900 PA

Subgrafo Um grafo Gs(Vs,As) é dito ser subgrafo de G(V,A) se Vs está contido em V e se As está contido em A Um subgrafo é obtido através de supressão de vértices

Grafos Isomorfos Dois grafos são isomorfos se for possível fazer coincidir, respectivamente, os vértices de suas representações gráficas, preservando as adjacências das arestas 5 6 7 8 5 6 7 8 1 2 3 4 1 2 3 4

Grafo regular Ocorre quando todos os seus vértices possuírem o mesmo grau R 5 6 7 8 1 2 3 4

Clique em um grafo Denomina-se clique de um grafo G um subgrafo de G que seja completo. É denotado como Kn, onde n é o número de vértices do clique 5 4 6 3 1 2 Subgrafo {2,3,4,6} é um clique de tamanho 4 (K4)

Conjunto independente de vértices Denomina-se conjunto independente de vértices de um grafo G um conjunto de vértices que não há arestas entre eles. 5 4 6 3 1 2 {1,3,5} é um conjunto independente de vértices

Grafo complementar _ Um grafo G é dito complementar de G se possuir a mesma ordem de G e se uma aresta (vi,vj) pertence a G, então a mesma aresta não pertence ao seu complementar 5 4 6 3 1 2

Grafo parcial Um grafo Gp(Vp,Ap) é dito ser parcial de G(V,A) se Vp=V e Ap está contido em A 5 4 5 4 6 3 6 3 1 2 1 2 Um grafo parcial é obtido através da supressão de arestas

Hipergrafo O conceito de grafo pode ser generalizado para o caso em que a relação entre os vértices não é constituída com apenas um par de vértices. Os hipergrafos são modelos que permitem a representação de arestas que englobam mais de dois nós. Definição: Um hipergrafo H(V,E) é definido pelo par de conjunto V e E, onde: V conjunto não vazio de vértices. E é uma família de partes de V não vazias.

Hipergrafo V={1,2,3,4} E={{1,2,4},{1,2,3},{3,4}} 2 4 1 3

Representação de grafos A forma mais comum de representar um grafo é através do desenho de pontos e linhas. Em um computador, o TAD Grafo pode ser representado de diversas maneiras: Matriz de adjacência Matriz de custos Matriz de incidência Lista de adjacência Lista de arestas

Representação de grafos Matriz de adjacência Dado um grafo G(V,A), a matriz de adjacência M=[aij] é uma matriz n x m tal que aij= +1 se existe (Vi,Vj) pertencente a A. 0 caso contrário.

Representação de grafos Matriz de adjacência aij= +1 se existe (Vi,Vj) pertencente a A. 0 caso contrário. v1 v3 v1 v2 v3 v4 v1 0 1 1 0 v2 v4 M= V2 1 0 0 1 v3 1 0 0 1 V4 0 1 1 0

Representação de grafos Matriz de adjacência aij= +1 se existe (Vi,Vj) pertencente a A. 0 caso contrário. v1 v4 v2 v3 M= v1 v2 v3 v4 v1 1 1 0 1 V2 0 0 0 0 v3 1 1 0 0 V4 0 0 2 0

Representação de grafos Matriz de adjacência OBS.: Laço 1 na diagonal principal Arestas paralelas: numero maior que 1 (no de arestas) Grafo não direcionado: a matriz é simétrica (50% espaço) Complexidade computacional proporcional a n2

Representação de grafos Matriz de custo Um grafo simples valorado pode ser representado por sua matriz de custo w=[wij], onde: Wij=» custo da aresta se (vi,vj) pertence a A» 0 ou inf caso contrário v1 30 v2 v1 v2 v3 50 40 W= v1 0 30 50 V2 30 0 40 v3 v3 50 40 0

Representação de grafos Lista de arestas É uma forma eficiente de para representar grafos esparsos utilizando-se duas listas de vértices, onde a primeira contém os inícios das arestas, e a segunda, os respectivos términos. Dois vetores g(início) e h(término) v2 v3 g={v1,v2,v2,v3,v3,v4} h={v2,v3,v5,v4,v5,v5} v5 v1 v4

Representação de grafos Lista de adjacência Um vértice y em um grafo é chamado de sucessor de outro vértice x, se existe uma aresta dirigida de x para y Um grafo pode ser descrito por uma estrutura de adjacência, isto é, pela lista de todos os sucessores de cada vértice. 10 v1 v2 5 20 v3 30 v4 15 v1 v2 v3 v2 v4 v3 - v4 v2 v3 1 2 3 4 2/10 3/5 null 4/20 null null 2/15 3/30 null

Representação de grafos Matriz de incidência Dado um grafo G(V,A) de n vértices e m arestas, a matriz de incidência de G é denotada por B=[bij] e é uma matriz nxm definida como: v1 bij=» 1 se vj for o vértice inicial de cj» 0 caso contrário ou inf c2 v3 c1 c2 c3 c4 c1 c3 B= v1 1 1 0 0 v2 1 0 0 1 v2 c4 v4 v3 0 1 1 0 v4 0 0 1 1

Representação de grafos Matriz de incidência Quando o grafo é direcionado, então B pode ser definida como: v1 bij=» -1 se vi for o vértice inicial de cj» +1 se vi for o vértice final de cj» 0 caso contrário ou inf c2 v3 c1 c2 c3 c4 c1 c3 B= v1 +1-1 0 0 v2-1 0 0 +1 v2 c4 v4 v3 0 +1 +1 0 v4 0 0-1 -1

TAD Grafo Um grafo pode ser visto como uma coleção de elementos que são armazenados nos vértices e suas arestas; Pode-se armazenar elementos em um grafo tanto nos vértices como nas arestas (ou em ambos) Os algoritmos em grafos serão considerados independentemente da implementação das operações básicas do grafo

TAD Grafo Inicialmente será feita uma simplificação do TAD Grafo Será utilizado com grafos não dirigidos

TAD Grafo Principais métodos do TAD Grafo (acesso -simplificado) finalvertices(e) Retorna um array armazenando os vértices finais da aresta e. oposto(v, e) Retorna o vértice oposto de v em e, ou seja, o vértice final da aresta e separado do vértice v. Um erro ocorre se e não é incidente a v éadjacente(v, w) Retorna true se v e w são adjacentes

TAD Grafo Principais métodos do TAD Grafo (acesso -simplificado) substituir(v, x) Substitui o elemento armazenado no vértice V por X substituir(e, x) Substitui o elemento armazenado na aresta e com x

TAD Grafo Principais métodos do TAD Grafo (atualização -simplificado) inserirvertice(o) Insere e retorna um novo vértice armazenando o elemento o inseriraresta(v, w, o) Insere e retorna uma nova aresta não-dirigida (v,w) armazenando o elemento o

TAD Grafo Principais métodos do TAD Grafo (atualização -simplificado) removevértice(v) Remove o vértice v ( e todas as arestas incidentes) e retorna o elemento armazenado em v removearesta(e) Remove a aresta e, retornando o elemento armazenado

TAD Grafo Principais métodos do TAD Grafo (Métodos Iteradores -simplificado) arestasincidentes(v) Retorna uma coleção de todas as arestas incidentes sob o vértice v (vértice v) vertices() Retorna uma coleção de todos os vértices no grafo. arestas() Retorna uma coleção de todas as arestas no grafo

TAD Grafo Principais métodos do TAD Grafo (Métodos Iteradores -simplificado) arestasincidentes(v) Retorna uma coleção de todas as arestas incidentes sob o vértice v (vértice v) vertices() Retorna uma coleção de todos os vértices no grafo. arestas() Retorna uma coleção de todas as arestas no grafo

TAD Grafo Principais métodos do TAD Grafo (Dirigido) édirecionado(e) Testa se a aresta é direcionada inserirarestadirecionada(v,w,o) Insirir uma nova aresta dirigida com origem em v e destino em w e armazenando o elemento o.