Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

Grafos eulerianos 1.
Cortes (cut-sets)‏ 1.
Grafos Orientados (digrafos)
Algoritmo de Caminho Mínimo
Planaridade 1.
Árvores 2010/1 Teoria dos Grafos (INF 5037/INF2781)
CC/EC/Mestrado Teoria dos Grafos Grafos Hamiltonianos.
2010/1 Teoria dos Grafos (INF 5037/INF2781) Grafos eulerianos.
Grafo k-conexo Seja k um inteiro positivo. Diz-se que um grafo G é k-conexo em vértices quando não existe corte de vértices de tamanho menor que k Analogamente,
2010/1 Teoria dos Grafos (INF 5037/INF2781) Grafos Hamiltonianos.
Algoritmos em Grafos.
Algoritmos em Grafos (Parte 2)
Teoria dos Grafos – Aula 2
Teoria dos Grafos Loana Tito Nogueira.
Celso C. Ribeiro Caroline T. Rocha
Fluxo em Redes Prof. Ricardo R. Santos.
Geometria Computacional Galeria de Arte
Análise de Decisão Aplicada a Gerência Empresarial – UVA Grafos - V
Exercícios PAA- Grafos
Exercícios PAA- Grafos
Celso C. Ribeiro Caroline T. Rocha
Cortes (cut-sets)‏ 2010/2 Teoria dos Grafos (INF 5037/INF2781)‏ 1.
CC/EC/PPGI/UFES Teoria dos Grafos (INF 5037/INF2781) Coloração.
Pontes Seja (G) o número de componentes conexas de G. Uma ponte é uma aresta a tal que (G - a) > (G)
Percursos em um grafo 2010/1 Teoria dos Grafos (INF 5037/INF2781)
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
CC/EC/PPGI/UFES CC/EC/MestradoTeoria dos Grafos Algoritmo de Caminho Mínimo.
Conectividade e Separabilidade
Coloração Teoria dos Grafos (INF 5037/INF2781) 1.
Grafo k-conexo Seja k um inteiro positivo. Diz-se que um grafo G é k-conexo em vértices quando não existe corte de vértices de tamanho menor que k.
Algoritmo polinomial para geração de uma Árvore Geradora Mínima
Pesquisa em profundidade
Problemas de fluxo numa rede
Prof. M.Sc. Fábio Francisco da Costa Fontes Abril
Teoria dos Grafos – Aula 3 Árvores
Teoria dos Grafos Loana T. Nogueira Aula 5.
Árvores.
Árvore Geradora de Peso Mínimo
Árvore Geradora Mínima
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
Algoritmos em Grafos.
Algoritmos em Grafos Conceitos principais Prof. André Renato
Grafos Árvores Geradoras.
Teoria dos Grafos Caminhos e Noção de Grafos com pesos
Exercícios: Alg Gulosos Eduardo Laber. Cap 4-Exercício 2 a)Verdadeiro, já que trocando cada elemento pelo seu quadrado não altera a ordem das arestas.
Exercícios PAA- Grafos
Algorítmos e estrutura de dados III
Operações com grafos União Exemplo
Algoritmos Gulosos em Grafos
Conceitos básicos em grafos
ÁRVORES Def.: Um grafo é acíclico se não possui ciclos.
Algoritmo BSP/CGM para Euler tour em Grafos
José Augusto Amgarten Quitzau
Universidade Federal de Mato Grosso do Sul Departamento de Computação e Estatística Circuitos de Euler em Paralelo Universidade Federal de Mato Grosso.

Conexidade 1.
Disciplina Análise de Algoritmos Bacharelado em CC
Msc. Daniele Carvalho Oliveira
Katia S. Guimarães Busca em Grafos Katia S. Guimarães

Introdução a Algoritmos em Grafos.

Problema MST Método Genérico Guloso usando Estratégia do Corte
Mestrado em Informática
Celso C. Ribeiro Caroline T. Rocha
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
Grafos Anjolina Grisi de Oliveira 2005
Grafos eulerianos 1.
Transcrição da apresentação:

Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1

Árvores Grafo Acíclico: não possui ciclos CC/EC/Mestrado Teoria dos Grafos ‏ 2

Árvores Grafo Acíclico: não possui ciclos Uma árvore é um grafo conexo acíclico CC/EC/Mestrado Teoria dos Grafos‏ 3

Árvores Grafo Acíclico: não possui ciclos Uma árvore é um grafo conexo acíclico Todas as árvores com 6 vértices CC/EC/Mestrado Teoria dos Grafos ‏ 4

Floresta Um grafo acíclico é também chamado de floresta. CC/EC/Mestrado Teoria dos Grafos ‏ 5

existir um único caminho entre cada Teorema: Um grafo T é uma árvore sss existir um único caminho entre cada par de vértices de T CC/EC/Mestrado Teoria dos Grafos ‏ 6

Prova () Por contradição!!! T é uma árvore v e w dois vértices quaisquer de T não existe caminho entre v e w ou P1e P2: dois caminhos-(u,v) distintos Existem necessariamente dois vértices t1 e t2  P1 e P2 tais que entre t1 e t2, P1 e P2 são distintos CC/EC/Mestrado Teoria dos Grafos ‏ 7

() Também por contradição!!! Prova () Também por contradição!!! existe um único caminho entre cada par de vértices: T é conexo Sup. T não é acíclico: existe um ciclo C em T seja {v,w} uma aresta de C: Dois caminhos entre v e w em T (contradição) CC/EC/Mestrado Teoria dos Grafos ‏ 8

Se T é uma árvore então m=n-1 Teorema: Se T é uma árvore então m=n-1 Prova: Por indução em n!!!! CC/EC/Mestrado Teoria dos Grafos ‏ 9

Folha de uma árvore Uma folha de uma árvore é um vértice v tal que d(v) = 1 CC/EC/Mestrado Teoria dos Grafos ‏ 10

pelo menos duas folhas, n > 1. Teorema Toda árvore possui pelo menos duas folhas, n > 1. CC/EC/Mestrado Teoria dos Grafos ‏ 11

Um grafo conexo é uma árvore Teorema: Um grafo conexo é uma árvore sss toda aresta é uma ponte CC/EC/Mestrado Teoria dos Grafos‏ 12

possui um ou dois vértices. Teorema: O centro de uma árvore possui um ou dois vértices. CC/EC/Mestrado Teoria dos Grafos ‏ 13

Altura: nível máximo da árvore Árvore enraizada Uma árvore no qual um vértice é destacado dos outros (raíz) é chamada de árvore com raíz ou enraizada. Nível de uma árvore enraizada: um vértice vi é dito estar no nível i da árvore se vi está a uma distância i da raiz. Altura: nível máximo da árvore CC/EC/Mestrado Teoria dos Grafos ‏ 14

Toda árvore é um grafo bipartido. Teorema: Toda árvore é um grafo bipartido. Exercício!!! CC/EC/Mestrado Teoria dos Grafos ‏ 15

Árvore binária Uma árvore estritamente binária é uma classe especial de árvore enraizada Cada vértice possui exatamente 2 filhos, ou seja, existe apenas um vértice com grau 2 (raíz) e os outros vértices possuem grau 1 ou 3 CC/EC/Mestrado Teoria dos Grafos ‏ 16

a) o número de vértices é ímpar b) o número de folhas é (n+1)/2 Árvore binária Propriedades: a) o número de vértices é ímpar b) o número de folhas é (n+1)/2 c) a altura mínima de uma árvore estritamente binária com n vértices é log 2 (n+1) - 1 CC/EC/Mestrado Teoria dos Grafos ‏ 17

Subgrafo gerador Relembrando: um grafo H é subgrafo de G se V(H)  V(G) e E(H)  E(G). Se V(H) = V(G) então H é subgrafo gerador ou de espalhamento de G. CC/EC/Mestrado Teoria dos Grafos ‏ 18

Árvore Geradora Uma árvore geradora é um subgrafo gerador de G que é uma árvore. Uma árvore geradora em um grafo G é um subgrafo minimal que conecta todos os vértices de G; CC/EC/Mestrado Teoria dos Grafos ‏ 19

Todo grafo conexo possui uma árvore geradora Teorema: Todo grafo conexo possui uma árvore geradora CC/EC/Mestrado Teoria dos Grafos ‏ 20

Corolário: Se G é conexo, então m  n-1 CC/EC/Mestrado Teoria dos Grafos ‏ 21

Teorema: Seja T uma árvore geradora de um grafo conexo G e seja a uma aresta de G, a T. Então T+ a contém um único ciclo. CC/EC/Mestrado Teoria dos Grafos ‏ 22

Como T é acíclico, cada ciclo de T+a contém a. Prova: Como T é acíclico, cada ciclo de T+a contém a. C é um ciclo de T+e sse C-e é um caminho em T ligando os extremos de e. Pelo teorema, T tem um único caminho desse tipo, logo T+e contém um único ciclo. CC/EC/Mestrado Teoria dos Grafos ‏ 23

Exercício Seja G um grafo conexo e seja e uma aresta de G. A aresta e pertence a toda árvore geradora de G se e somente se e é ponte em G CC/EC/Mestrado Teoria dos Grafos ‏ 24

Algoritmos Para construção de uma árvore geradora; Para construção de uma árvore geradora mínima. CC/EC/Mestrado Teoria dos Grafos ‏ 25

Exemplo 1 2 3 4 7 5 6 CC/EC/Mestrado Teoria dos Grafos ‏ 26

Busca em Profundidade entrada: G = (V,E), Lista de Adjacência de G: A(v), v  V 1. i ← 1; 2. F ← ; 3. para-todo v  V faça 4. indice(v) ← 0; 5. fim-para-todo 6. enquanto existir u, indice(u) = 0 faça 7. PBP(u); 8. fim-enquanto saída: F PBP(v)‏ { 1. indice(v) ← i; 2. i ← i+1; 3. para-todo v´  A(v) faça 4. se indice(v´) = 0 então 5. F ← F U {{v,v´}}; 6. PBP(v´); 7. fim-se 8. fim-para-todo } CC/EC/Mestrado Teoria dos Grafos ‏ 27

Complexidade Para cada v  V, PBP(v) é chamado apenas uma vez quando o vértice ainda não foi visitado (indice(v) = 0)‏ Tempo gasto por PBP(v): proporcional a d(v)‏ Tempo gasto por todas as chamadas de PBP(v): proporcional a m Linhas 3 – 8: O(n)‏ Construção de F: O(m)‏ Complexidade: O(max {n,m})‏ CC/EC/Mestrado Teoria dos Grafos ‏ 28

Árvores geradoras em um grafo valorado O peso de uma árvore geradora T de G é definido como a soma dos valores de todas as arestas de T. Diferentes árvores geradoras de T podem ter diferentes pesos. Árvore Geradora mínima: a árvore geradora de G de menor peso. CC/EC/Mestrado Teoria dos Grafos ‏ 29

Árvore geradora mínima Aplicações: Em problemas de interligação (comunicação, redes de luz, esgotos, etc.)‏ Em problemas de construção de redes de menor custo (malhas rodoviárias, redes de computadores) CC/EC/Mestrado Teoria dos Grafos ‏ 30

Exemplo Suponha que n cidades devem ser conectadas por uma rede de estradas. Existe um custo cij associado à construção de uma estrada entre as cidades i e j. O problema então se resume em determinar a rede com menor custo que conecte todas as cidades. Essa rede será uma árvore geradora, caso contrário, é sempre possível retirar uma aresta e obter um caminho mais barato entre duas cidades CC/EC/Mestrado Teoria dos Grafos ‏ 31

de um grafo conexo valorado G é mínima sss Uma árvore geradora T de um grafo conexo valorado G é mínima sss não existe qualquer outra árvore geradora de G, a uma distância 1 de T, cujo peso é menor que o peso de T. Distância entre Ti e Tj de G: número de arestas de G presentes em Ti mas não presentes em Tj. CC/EC/Mestrado Teoria dos Grafos ‏ 32

Exemplo 1 2 3 4 7 5 6 8 9 10 CC/EC/Mestrado Teoria dos Grafos ‏ 33

Algoritmo de Prim entrada: G = (V,E), Lista de Adjacência de G: A(v), v  V, matriz de pesos 1. T ← ; 2. V´ ← {u}; 3. para-todo v  V – V´ faça 4. L(v) ← peso ({u,v}); 5. fim-para-todo 6. enquanto V´  V faça 7. ache um vértice w tal que L(w) = min {L(v)| v  V-V´}; 8. u = o vértice de V´, ligado a w, representando a aresta com o menor custo; 9. e = {u,w}; 10. T ← T U {e}; 11. V´← V´ U {w}; 12. para-todo v  V – V´ faça 13. se peso({v,w}) < L(v) então 14. L(v) ← p({v,w}); 15. fim-se 16. fim-para-todo 17. fim-enquanto saída: T CC/EC/Mestrado Teoria dos Grafos ‏ 34

Complexidade Linhas 6 - 16: n-1 vezes Linhas 7- 8: n-1 vezes Complexidade: O(n2)‏ CC/EC/Mestrado Teoria dos Grafos ‏ 35

Exemplo de aplicação

Teorema: O algoritmo de Prim acha uma árvore geradora mínima de um grafo conexo G não orientado. CC/EC/Mestrado Teoria dos Grafos 37

Ideia A árvore geradora mínima é construída iterativamente e é mínima para cada conjunto V'. Cada nova aresta selecionada é a de menor valor, com um dos extremos em V' e o outro em V – V'.

Algoritmo de Kruskal entrada: G = (V,E), Lista de Adjacência de G: A(v), v  V, matriz de pesos 1. ordenar as arestas e de G pelo valor de seus pesos 2. T ← ; 3. para-todo i = 1, ..., |E| faça 4. se T U {e} é acíclico então 5. T ← T U {e}; 6. fim-se 7. fim-para-todo; saída: T CC/EC/Mestrado Teoria dos Grafos 39

Complexidade Os custos relevantes neste algoritmo são o custo da ordenação das arestas (passo 1) e a verificação se a aresta forma um ciclo (passo 4) Iterativamente o algoritmo forma componentes conexas acíclicas. Então, computar a linha 4 significa verificar se a próxima aresta não liga vértices de um mesmo conjunto. CC/EC/Mestrado Teoria dos Grafos 40

Complexidade Para a implementação da linha 4 podem ser usadas estruturas de dados para conjuntos disjuntos Usando essa forma de implementação, o algoritmo fica limitado pela complexidade de ordenar a lista de arestas, pois a operação de verificar se é acíclico fica mais barata. Assim teremos O(m*log m). Se |E| < |V|2, teremos O(m*log n) CC/EC/Mestrado Teoria dos Grafos 41

O algoritmo de Kruskal acha uma árvore geradora mínima de um grafo conexo G não orientado. CC/EC/Mestrado Teoria dos Grafos 42

Ideia Seja G = (V,E) o grafo conexo processado pelo algoritmo. Como G é conexo, G possui uma árvore geradora. Inicialmente T é vazio => T é mínimo Tendo T k arestas, o algoritmo seleciona a aresta de menor peso no conjunto de arestas não visitadas. Seja ak+1 essa aresta. Há quatro casos: a) T já contém n-1 arestas. Nesse caso, a solução T que por indução é uma árvore mínima, é retornada. b) A aresta ak+1 liga dois vértices de T que são no mesmo componente. Nesse caso, ak+1 é rejeitada e T não muda. c) Um dos dois vértices ligados por ak+1 não pertence a T. d) A aresta ak+1 liga dois vértices de T. Nesse caso, são dois vértices de componentes diferentes.

Exercícios 1) Prove que uma aresta pendente (isto é, uma aresta que liga um vértice de grau 1) em um grafo conexo G é contida em toda árvore geradora de G. 2) Prove que duas cores são suficientes para colorir os vértices de uma árvore de tal maneira que nenhum vértice seja adjacente a um vértice da mesma cor. 3) Um grafo pode ter várias árvores geradoras diferentes. Onde essa possibilidade aparece no algoritmos de Kruskal e Prim? 4) aplique o algoritmo de Kruskal no grafo do slide 36. A árvore obtida é a mesma?

Exercícios Indique se é Verdadeiro ou Falso: a)Os algoritmos de Kruskal e Prim sempre retornam a mesma árvore geradora de um grafo conexo onde todas as arestas têm pesos diferentes. b) Supondo que um grafo possui exatamente duas arestas com o mesmo peso. O algoritmo de Prim retorna a mesma árvore geradora independentemente de qual aresta foi selecionada?