Busca em Profundidade e em Largura

Documentos relacionados
Projeto e Análise de Algoritmos

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

Árvores: Conceitos Básicos e Árvore Geradora

Grafos: algoritmos de busca

GRAFOS Aula 05 Algoritmos de percurso: busca em largura e profundidade Max Pereira

Busca em Profundidade. Busca em Grafos. Busca em Grafos. Busca em Grafos. Busca em Grafos. Os objetivos da busca são: Aplicações???

Teoria dos Grafos Aula 5

Definição e Conceitos Básicos

Estruturas de Dados Grafos

Grafos e Algoritmos de Busca

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

Busca em Largura. Adaptado de Humberto C. B. Oliveira

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

Análise e Síntese de Algoritmos. Algoritmos em Grafos CLRS, Cap. 22

Busca em largura. Algoritmos em Grafos. Marco A L Barbosa

APLICAÇÕES DE BUSCA EM GRAFOS

PAA-DCC-UFAM. Grafos. Universidade Federal do Amazonas Departamento de Eletrônica e Computação

Algoritmos e Estruturas de Dados

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

Projeto e Análise de Algoritmos

Análise e Síntese de Algoritmos

Grafos Planares. Grafos e Algoritmos Computacionais. Prof. Flávio Humberto Cabral Nunes

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

Teoria dos Grafos Aula 8

Grafos Caminhos mais Curtos

Teoria dos Grafos Aula 6

grafo nós vértices arcos arestas

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

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

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

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

Grafos. Notas. Notas. Notas. Notas. Algoritmos elementares. Representação de grafos Lista de adjacências Matriz de adjacências Atributos

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

BCC204 - Teoria dos Grafos

Grafos IFRN. Prof. Robinson Alves

DFS: Depth-First Search (pesquisa em profundidade) Percursos e Conectividade em Grafos Depth-First Search. Implementação de DFS

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos

Aula 09. Percurso em grafo

Parte B Teoria dos Grafos

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

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

5COP096 TeoriadaComputação

Grafos: componentes fortemente conexos, árvores geradoras mínimas

Grafos - Representação

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

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

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

Algoritmos e Estruturas de Dados. Grafos Semestre de Inverno 13/14

INF 1010 Estruturas de Dados Avançadas

Prof. Marco Antonio M. Carvalho

INF 1010 Estruturas de Dados Avançadas

INTRODUÇÃO A BUSCA EXERCÍCIOS

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

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

Algoritmos e Estruturas de Dados II

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

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

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

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

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

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

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

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

não descobertos descobertos explorados descoberta cruzamento

GRAFOS Conceitos Básicos (Parte 1)

Grafos: caminhos mínimos em Listas de Adjacência. Profa. Graça Nunes

Algoritimos e Estruturas de Dados III CIC210

CIC 111 Análise e Projeto de Algoritmos II

Grafos. Exemplo de árvore geradora mínima. Notas. Notas. Notas. Notas. Árvores espalhadas mínimas. Como construir uma árvore geradora miníma

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Grafos: caminhos mínimos

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

1.2 Grau de um vértice

ESTRUTURAS DISCRETAS (INF 1631) GRAFOS. 1. O que é um grafo? Defina um grafo orientado. Defina um grafo não-orientado.

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

Introdução a Grafos Letícia Rodrigues Bueno

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

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

x y Grafo Euleriano Figura 1

Arranjos. Claudio Esperança Paulo Roma LCG/UFRJ. All rights reserved.

Grafos Parte 1. Aleardo Manacero Jr.

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade

Cap. 2 Conceitos Básicos em Teoria dos Grafos

CIC 111 Análise e Projeto de Algoritmos II

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

Buscas Informadas ou Heurísticas - Parte II

Matemática Discreta 10

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01

Grafos parte 2* Algoritmos e Estruturas de Dados II SCC-203 Rosane 2010/2011. *Baseado em material de professores dos anos anteriores

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

Teoria dos Grafos Aula 7

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

Grafos Parte 2. SCC-603 Algoritmos e Estruturas de Dados II. Profª. Rosane Minghim / Baseado em material de professores dos anos anteriores

GRAFOS E ALGORITMOS ALGORITMOS E APLICAÇÕES

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

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

Transcrição:

Busca em Profundidade e em Largura Grafos e Algoritmos Computacionais Prof. Flávio Humberto Cabral Nunes fhcnunes@yahoo.com.br 1

Mais sobre Caminhos TEOREMA: Se um grafo possui exatamente 2 vértices de grau ímpar, existe um caminho entre esses dois vértices. TEOREMA: Um grafo simples com n vértices e k componentes possui no máximo (n k) (n k + 1) / 2 arestas. TEOREMA: O número mínimo de arestas de um grafo simples com n vértices e k componentes é n k. 2

Busca em Profundidade A busca em profundidade (do inglês depthfirst search) é um algoritmo para caminhar no grafo. A estratégia é buscar o mais profundo no grafo sempre que possível. As arestas são exploradas a partir do vértice v mais recentemente descoberto que ainda possui arestas não exploradas saindo dele. 3

Busca em Profundidade Quando todas as arestas adjacentes a v tiverem sido exploradas, a busca anda para trás para explorar vértices que saem do vértice do qual v foi descoberto. O algoritmo é a base para muitos outros algoritmos importantes, tais como verificação de grafos acíclicos, ordenação topológica e componentes fortemente conectados. 4

Busca em Profundidade Para acompanhar o progresso do algoritmo, cada vértice é colorido de branco, cinza ou preto. Todos os vértices são iniciados em branco. Quando um vértice é descoberto pela primeira vez, ele torna-se cinza e é tornado preto quando sua lista de adjacentes tiver sido completamente examinada. 5

Busca em Profundidade antecessor[v]: antecessor de v. d[v]: tempo de descoberta de v. t[v]: tempo de término do exame da lista de adjacentes de v. Estes registros são inteiros entre 1 e 2 V, pois existem um evento de descoberta e um evento de término para cada um dos V vértices. 6

Exemplo 7

Exemplo 8

Exemplo 9

Exemplo 10

Exemplo 11

Classificação de Arestas Arestas de árvore: são arestas de uma árvore de busca em profundidade. A aresta (u, v) é uma aresta de árvore se v foi descoberto pela primeira vez ao percorrer a aresta (u, v). Arestas de retorno: conectam um vértice u com um antecessor v em uma árvore de busca em profundidade (inclui loops). 12

Classificação de Arestas Arestas de avanço: não pertencem à árvore de busca em profundidade, mas conectam um vértice a um descendente que pertence à árvore de busca em profundidade. Arestas de cruzamento: podem conectar vértices na mesma árvore de busca em profundidade ou em duas árvores diferentes. 13

Classificação de Arestas Classificação de arestas pode ser útil para derivar outros algoritmos. Na busca em profundidade, cada aresta pode ser classificada pela cor do vértice que é alcançado pela primeira vez: Branco: indica uma aresta de árvore; Cinza: indica uma aresta de retorno; Preto: indica uma aresta de avanço quando u é descoberto antes de v ou uma aresta de cruzamento caso contrário. 14

Classificação de Arestas 15

Teste para Verificar se Grafo é Acíclico A busca em profundidade pode ser usada para verificar se um grafo é acíclico ou contém um ou mais ciclos. Se uma aresta de retorno é encontrada durante a busca em profundidade em G, então o grafo tem ciclo. Um grafo direcionado G é acíclico se e somente se a busca em profundidade em G não apresentar arestas de retorno. 16

Busca em Largura A busca em largura ou em amplitude expande a fronteira entre vértices descobertos e não descobertos uniformemente através da largura da fronteira. O algoritmo descobre todos os vértices a uma distância k do vértice de origem antes de descobrir qualquer vértice a uma distância k + 1. O grafo G(V, E) pode ser direcionado ou não direcionado. 17

Busca em Largura Cada vértice é colorido de branco, cinza ou preto. Todos os vértices são iniciados com branco. Quando um vértice é descoberto pela primeira vez, ele torna-se cinza. Vértices cinza e preto já foram descobertos, mas são distinguidos para assegurar que a busca ocorra em largura. 18

Busca em Largura Se (u, v) E e o vértice u é preto, então o vértice v tem que ser cinza ou preto. Vértices cinza podem ter alguns vértices adjacentes brancos, e eles representam a fronteira entre vértices descobertos e não descobertos. Utiliza-se uma fila para se saber qual o vértice a ser expandido na busca. Uma vez expandido, o vértice sai da fila e os vértices encontrados são inseridos na fila. 19

Exemplo 20

Exemplo 21

Exemplo 22

Exemplo 23