Teoria dos Grafos Aula 8

Documentos relacionados
Teoria dos Grafos Aula 6

Teoria dos Grafos Aula 5

Teoria dos Grafos Aula 2

Estruturas de Dados Grafos

Teoria dos Grafos Aula 2

O grau de saída d + (v) de um vértice v é o número de arcos que tem

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

INF 1010 Estruturas de Dados Avançadas

Grafos Direcionados. > Grafos Direcionados Representações Computacionais 1/36

Algoritmos e Estruturas de Dados II

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

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação

Grafos: Busca. Algoritmos e Estruturas de Dados 2. Graça Nunes

Teoria dos Grafos Aula 26

Grafos: Busca. SCE-183 Algoritmos e Estruturas de Dados 2. Thiago A. S. Pardo Maria Cristina

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

Teoria dos Grafos Aula 7

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

Busca em Profundidade e em Largura

INF 1010 Estruturas de Dados Avançadas

Teoria dos Grafos Aula 1 - Introdução

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

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

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

Pesquisa em Grafos. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Pesquisa em Grafos 2014/ / 33

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

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

Melhores momentos AULAS 1-8

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

Matemática Discreta 10

Teoria dos Grafos Aula 27

GRAFOS Conceitos Básicos (Parte 1)

Redes Complexas Aula 2

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

Teoria dos Grafos Aula 14

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

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

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

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

Definição e Conceitos Básicos

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

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

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 Aula 18

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

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

Grafos: algoritmos de busca

Teoria dos Grafos. Componentes, Conj. Indep., Cliques

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

Teoria dos Grafos Aula 22

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

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

Teoria dos Grafos. Edson Prestes

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

Algoritmos em Grafos

Grafos Árvores Geradoras Mínimas

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

Busca em Profundidade. Componentes Conexos. Grafos. Maria Adriana Vidigal de Lima. Fevereiro

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

Projeto e Análise de Algoritmos

2 Definição do Problema

Conceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade

Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa

Introdução a Grafos Letícia Rodrigues Bueno

Caminhos de Amizades pelo Facebook:

Circuitos Hamiltorianos

Teoria dos Grafos Aula 3

Introdução à Teoria dos Grafos

Árvores: Conceitos Básicos e Árvore Geradora

SCC-210 Algoritmos Avançados. Capítulo 9 Grafos. Adaptado por João Luís G. Rosa

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

Caminhos mínimos de única origem

CONCEITOS BÁSICOS EM GRAFOS

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

Percursos em um grafo

Algoritmos em Grafos: Caminho Mínimo

Prof. Marco Antonio M. Carvalho

Grafos Orientados (digrafos)

BCC402 Algoritmos e Programação Avançada. Prof. Marco Antonio M. Carvalho Prof. Túlio Toffolo 2012/1

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

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

Redes Complexas Aula 14

Percursos em um grafo

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

Caminhos de Amizades pelo Facebook: Dualidade Computacional entre Curto e Longo

Redes Complexas Aula 2

Grafos: conceitos básicos e métricas

Teoria dos Grafos. Edson Prestes

BCC204 - Teoria dos Grafos

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

Otimização em Grafos

Teoria dos Grafos Aula 8

Árvore Geradora Mínima

Programação Dinâmica. Prof. Anderson Almeida Ferreira. Adaptado do material elaborado por Andrea Iabrudi Tavares

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

Grafos tipo abstrato de dados

Grafos e Algoritmos de Busca

CIC 111 Análise e Projeto de Algoritmos II

Transcrição:

Teoria dos Grafos Aula 8 Aula passada Classe de funções e notação Propriedades da notação Funções usuais Aula de hoje Grafos direcionados Busca em grafos direcionados Ordenação topológica Tempo de execução

Grafo Direcionado (Dígrafo) Relacionamento não é simétrico! A estar relacionado com B, não implica B estar relacionado com A Exemplo de relacionamento assimétrico? Abstração: arestas têm direção par de vértices é ordenado Exemplo: G = (V, E) V = {1, 2, 3, 4} E = {(1,2), (1,3), (2,3), (3,4)} 1 3 2 4

Grau Grau de entrada: número de arestas que entram em v: {(*,v)} Grau de saída: número de arestas que saem de v: {(v,*)} Exemplo: G = (V, E) g e (3) =? 3 1 7 g s (3) =? 8 5 g e (4) =? 2 4 6 g s (7) =? Número máximo de arestas em G? Relação entre g e (v) e g s (v)? n(n-1) Nenhuma

Caminho, Ciclo, Distância Mesma definição de antes! Respeitando o direcionamento das areas Exemplo: G = (V, E) 3 1 7 8 5 2 4 6 Existe caminho de 5 para 2? Ciclo que contém 1? d(2,8) =? d(8,2) =? d(7,1) =?

Fortemente Conexo Análogo a conexo (no caso não direcionado) Existe caminho entre qualquer par de vértices mas caminho de u a v, não implica caminho de v a u Exemplo: G = (V, E) 8 3 2 1 7 4 6 5 É fortemente conexo?

Componentes Fortemente Conexos Análogo a componentes conexos Subgrafos maximais de G que são fortemente conexos Exemplo: G = (V, E) 8 3 2 1 7 4 6 5 Componentes fortemente conexos?

Busca em Grafos Direcionados Mesma idéia! Busca precisa respeitar direcionamento das arestas (u, v) não é igual a (v, u) BFS e DFS praticamente idênticos Mesmos algoritmos, mesma complexidade Mas há diferenças

Busca em Grafos Direcionados Escolher vértice s (grafo direcionado) Executar BFS à partir de s Qual significado dos vértices marcados? Vértices que s alcança! Tais vértices alcançam s? existe caminho de volta a s?

Busca em Grafos Direcionados Como descobrir quais vértices alcançam s? Solução ruim Para cada vértice do grafo, executar BFS e verificar se s é marcado Idéias melhores? Inverter a direção das arestas! executar BFS no novo grafo à partir de s vértices que s alcançou, alcançam s no grafo original!

Busca em Grafos Direcionados Exemplo determinar vértices que chegam em 1? 3 1 7 8 2 4 6 5 Grafo revertido: G rev 3 1 7 8 5 2 4 6 Executar BFS à partir de 1 Vértices marcados chegam em 1 no grafo original

Fortemente Conexo Problema: Como determinar se um grafo direcionado é fortemente conexo? Como fizemos no caso não-direcionado? Escolher nó inicial, executar BFS, verificar marcação Idéias? Mesmo princípio de antes! Se s chega aos vértices u e v, e os vértices u e v chegam a s Então u chega a v, via s

Fortemente Conexo Problema: Como determinar se um grafo direcionado é fortemente conexo? Escolher vértice s qualquer Executar BFS à partir de s Construir G rev Executar BFS à partir de s em G rev Se todos os vértices foram marcados nas duas buscas, então G é fortemente conexo Complexidade?

Executando Tarefas N tarefas precisam ser executadas Tarefas são dependentes ex. tarefa B só pode ser executada depois de A Problema: Qual ordem de execução não viola as dependências? Modelar problema utilizando grafos direcionados

Executando Tarefas Exemplo com 5 tarefas B depende de A A depende de C C depende de D B depende de E B depende de D C depende de E C A D B E Qual é a ordem de execução?

DAG Grafo direcionado acíclico (DAG, em inglês) importante estrutura em grafos! Tarefas podem ser executadas, somente se grafo de dependência é um DAG não podemos ter ciclos! Dado um DAG, como descobrir ordem de execução das tarefas? Algoritmo (eficiente)!

Ordenação Topológica Ordenação dos vértices de forma que arestas apontam sempre para frente Dado grafo direcionado G Ordenação dos vértices de G: v 1, v 2,..., v n, tal que para toda aresta (v i, v j ), i < j A B Ordenação topológica? v 1 = E C D E v 2 = D v 3 = C v 4 = A v 5 = B

Ordenação Topológica Define uma ordem de execução das tarefas Problema: Dado um DAG, como determinar uma ordernação topológica? Idéias?

Algoritmo Ordenação Topológica 1.Ordem = 0 2.Enquanto V > 0 faça 3. Encontrar u com grau de entrada zero 4. Ordem = Ordem + u 5. Remover u do grafo G Exemplo A B C E F D G

Ordenação Topológica Complexidade? 1.Ordem = 0 2.Enquanto V > 0 faça 3. Encontrar u com grau de entrada zero 4. Ordem = Ordem + u 5. Remover u do grafo G Depende do tempo necessário para encontrar u Procurar sequencialmente: O(n) Complexidade O(n 2 )

Ordenação Topológica Como melhorar complexidade? Complexidade: O(m + n)