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

Documentos relacionados
Projeto e Análise de Algoritmos

Teoria dos Grafos Aula 5

Busca em Profundidade e em Largura

Grafos: algoritmos de busca

Teoria dos Grafos Aula 6

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

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

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

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

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

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

Resolução de Problemas. Universidade Católica de Pelotas Engenharia da Computação Disciplina: Inteligência Artificial

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

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

Algoritmos e Estruturas de Dados

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

Inteligência Artificial

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

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

APLICAÇÕES DE BUSCA EM GRAFOS

Grafos - Representação

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

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

Árvores: Conceitos Básicos e Árvore Geradora

Grafos: caminhos mínimos

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

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

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

Teoria dos Grafos Aula 8

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

Algoritmos e Estruturas de Dados II

Conceito Básicos da Teoria de Grafos

Matemática Discreta - Exercícios de Grafos

Introdução à Inteligência Artificial MAC MAC 415. Exercício Programa 1 Busca

Cap. 2 Conceitos Básicos em Teoria dos Grafos

SISTEMAS INTELIGENTES 1 PROF. TACLA/UTFPR/CPGEI-PPGCA

Resolução de problemas por meio de busca. Capítulo 3 Russell & Norvig Seções 3.4 e 3.5

A-Graph: Uma ferramenta computacional de suporte para o ensino-aprendizado da disciplina Teoria dos Grafos e seus Algoritmos

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

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

14 Coloração de vértices Considere cada um dos grafos abaixo:

Grafos: aplicações. Grafos: árvore geradora mínima

Algoritmos em Grafos

BCC204 - Teoria dos Grafos

Caminhos em Grafos. Grafos - Caminho Simples (1) (Cliente para M. de Adj.) static int visited[maxv];

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas

Estudo e implementação de heurísticas para determinação do caminho de menor custo para atender a rotas pré estabelecidas. Por: Charles Pereira

Matemática Discreta 10

Teoria dos Grafos. Edson Prestes

A resposta para este problema envolve a partição do conjunto de arestas de tal forma que arestas adjacentes não pertençam a um mesmo conjunto.

INTRODUÇÃO A BUSCA EXERCÍCIOS

Tópicos Especiais: Inteligência Artificial

Tecnicas Essencias Greedy e Dynamic

Inteligência Artificial 04. Busca Sem Informação (Cega) Capítulo 3 Russell & Norvig; Seções 3.4 e 3.5

A resposta para este problema envolve a partição do conjunto de arestas de tal forma que arestas adjacentes não pertençam a um mesmo conjunto.

Conceitos Básicos da Teoria de Grafos

BCC204 - Teoria dos Grafos

Teoria dos Grafos. Cobertura, Coloração de Arestas, Emparelhamento

Lista de exercícios 1

Escola Básica e Secundária Mouzinho da Silveira. MACS 11.º Ano Problema do Caixeiro Viajante

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

Resumo. Como um agente busca de seqüência de ações para alcançar seus objetivos.

CI065 CI755 Algoritmos e Teoria dos Grafos

Grafos: caminhos (matriz adjacência)

Inteligência Artificial

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

Busca em Largura Letícia Rodrigues Bueno

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

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

Métodos de Busca. Estratégias de Busca Cega

Teoria dos Grafos Aula 2

Grafos - O que é um grafo? Algoritmos e Estruturas de Dados MEEC 2012/13. Objecto abstracto Dois tipos de entidades. Vértices representam

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

Ciclos hamiltonianos e o problema do caixeiro viajante

Percursos e Conectividade em Grafos Depth-First Search. DFS: Depth-First Search (pesquisa em profundidade)

CTC-17 Inteligência Artificial Problemas de Busca. Prof. Paulo André Castro

Grafos - O que é um grafo? Algoritmos e Estruturas de Dados LEE 2013/14. Objecto abstracto Dois tipos de entidades. Vértices representam

Teoria dos Grafos. Edson Prestes

PCS Inteligência Artificial

Métodos de Busca Informada (best first search) Capítulo 4 Parte I

Caminho mais curto. 1 - Caminho não pesado

Distâncias Mínimas. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Distâncias Mínimas 2014/ / 27

Definições Básicas para Grafos

Aula 13 Roteamento Dinâmico com Protocolos Link-State (Protocolo OSPF)

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Inteligência Artificial. Conceitos Gerais

Ambiente de tempo de Execução Cap. 7

Resolução de Problemas

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

Introdução à Teoria dos Grafos. Isomorfismo

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

Inteligência Computacional

x y Grafo Euleriano Figura 1

GRAFOS Conceitos Básicos (Parte 1)

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

Grafos aula 3. Relembrando... Rede de eventos e atividades. Rede de eventos e atividades

Teoria dos Grafos. Edson Prestes

Trabalho 1: Busca no Pacman

PCC173 - Otimização em Redes

Algoritmos Tentativa e Erro (Backtracking) Prof.: Jonas Potros

Transcrição:

Ciência da Computação GRAFOS Aula 05 Algoritmos de percurso: busca em largura e profundidade Max Pereira

Busca em Largura (Breadth-First Search) Um dos algoritmos mais simples para exploração de um grafo. Considerada também como uma busca por nível. Visita primeiro todos os vértices próximos da raiz de busca (por níveis), antes de visitar os mais distantes. - Dados um grafo G = (V, E) e um vértice s, chamado de fonte, a busca em largura sistematicamente explora as arestas de G de maneira a visitar todos os vértices alcançáveis a partir de s.

Busca em Largura (Breadth-First Search) Essa busca é dita em largura porque ela expande a fronteira entre vértices conhecidos e desconhecidos de uma forma uniforme ao longo da fronteira. O algoritmo descobre todos os vértices com distância k antes de descobrir qualquer vértice de distância k + 1.

Busca em Largura Vértice não explorado Vértice visitado Aresta não explorada Aresta encontrada Aresta de cruzamento

Busca em Largura (cont.)

Busca em Largura (cont.)

Busca em Largura (Breadth-First Search) Para controlar a busca, o algoritmo pinta cada vértice na cor branca, cinza ou preto. Todos os vértices iniciam com a cor branca e podem, mais tarde, se tornar cinza e depois preto. Branca: não visitado; Cinza: visitado; Preta: visitado e seus nós adjacentes visitados.

Busca em Largura (BFS) s Quando um vértice é visitado pela primeira vez, sua cor é modificada de branco para cinza.

Busca em Largura (BFS) Início

Busca em Largura (BFS) Explorando o vértice 1

Busca em Largura (BFS) Explorando o vértice 2

Busca em Largura (BFS) Explorando o vértice 3

Busca em Largura (Breadth-First Search) A partir de é possível reconstruir a árvore da busca em largura. Árvore de busca Grafo G

Busca em Largura (Breadth-First Search) Teorema: Seja G = (V, E) um grafo dirigido ou não, e suponha que BFS é executada a partir de um vértice s V. Então: Durante a busca, BFS descobre cada vértice v V que seja alcançável a partir de s, Ao final, d[v] = d(s, v) para todo v V. s

Busca em Largura (Breadth-First Search) Além disso, para qualquer vértice v s que seja alcançável a partir de s, um caminho mais curto de s para v é o caminho de s para [v] seguido da aresta ( [v], v). s

Busca em Profundidade (Depth-First Search) A estratégia é buscar o vértice mais profundo no grafo. As arestas são exploradas a partir do vértice v mais recentemente descoberto que ainda possui arestas não exploradas. Quando todas as arestas de v tiverem sido exploradas a busca anda para trás para explorar vértices adjacentes ao vértice do qual v foi descoberto (backtracking)

Busca em Profundidade (Depth-First Search) Vértice não explorado Vértice visitado Aresta não explorada Aresta encontrada Aresta de retorno

Busca em Profundidade (Depth-First Search)

Busca em Profundidade (Depth-First Search) Para controlar a busca, o algoritmo pinta cada vértice na cor branca, cinza ou preto. Todos os vértices iniciam com a cor branca e podem, mais tarde, se tornar cinza e depois preto. Branca: não visitado; Cinza: visitado; Preta: visitado e seus nós adjacentes visitados. A busca em profundidade também marca cada vértice com um timestamp. Cada vértice tem dois timestamps: d[v]: indica o instante em que v foi visitado (pintado com cinza); f[v]: indica o instante em que a busca pelos vértices na lista de adjacência de v foi completada (pintado de preto).

Busca em Profundidade (DFS)

Busca em Profundidade (DFS) Início

Busca em Profundidade (DFS) Explorando o vértice u

Busca em Profundidade (DFS) Explorando o vértice v

Busca em Profundidade (DFS) Explorando o vértice y

Busca em Profundidade (DFS) Explorando o vértice x

Busca em Profundidade (DFS) Explorando o vértice x

Busca em Profundidade (DFS) Explorando o vértice y

Busca em Profundidade (DFS) Explorando o vértice v

Busca em Profundidade (DFS) Explorando o vértice u

Busca em Profundidade (DFS) Retorna ao módulo principal

Busca em Profundidade (DFS) Explorando o vértice w

Busca em Profundidade (DFS) Explorando o vértice z

Busca em Profundidade (DFS) Encerrando

Algumas Aplicações Caminho mínimo para grafos não valorados; Redes Peer to Peer (BitTorrent): usado para encontrar todos os nós vizinhos; Crawlers em Motores de Busca (Search Engines): usado para construção dos índices; Redes Sociais Virtuais: usado para encontrar pessoas dada uma certa distância; Sistemas de Navegação GPS: usado para encontrar locais vizinhos; Broadcasting em Redes de Computadores: usado para alcançar todos os nós para pacotes de broadcast; Path Finding: usando para encontrar possíveis caminhos entre dois pontos (vértices); Detectar ciclos em um grafo: um grafo possui um ciclo se é detectada uma aresta de retorno (DFS); Verificação de grafos bipartidos.

Busca em Profundidade (DFS) Resolução de Labirintos

Busca em Profundidade (DFS) Resolução de Labirintos