Algoritmos em Grafos

Documentos relacionados
Busca em Largura Letícia Rodrigues Bueno

Introdução a Grafos Letícia Rodrigues Bueno

Algoritmos em Grafos: Caminho Mínimo

Caminho Mínimo de Fonte Única em Grafos sem Pesos Negativos

Caminho Mínimo de Fonte Única em Grafos com Pesos Negativos Letícia Rodrigues Bueno

Teoria dos Grafos Aula 6

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

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

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

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

Quicksort Letícia Rodrigues Bueno

Estruturas de Dados para Conjuntos Disjuntos: Union-find Letícia Rodrigues Bueno

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

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

Aula 09. Percurso em grafo

não descobertos descobertos explorados descoberta cruzamento

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. Professor: Guilherme Oliveira Mota.

Teoria da Complexidade Computacional

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

Filas de Prioridades Letícia Rodrigues Bueno

Fluxo Máximo em Redes Letícia Rodrigues Bueno

Grafos: algoritmos de busca

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

Algoritmos em Grafos

Análise e Síntese de Algoritmos

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

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

GRAFOS Conceitos Básicos (Parte 1)

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

Teoria dos Grafos Aula 5

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

Teoria dos Grafos Aula 1

Emparelhamentos Máximos em Grafos Bipartidos

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular ALGORITMOS E ESTRUTURAS DE DADOS Ano Lectivo 2018/2019

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

Conceitos Básicos da Teoria de 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

Algoritmos e Estruturas de Dados

Complexidade de Tempo e Espaço

Caminhos de Amizades pelo Facebook:

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

Teoria dos Grafos Aula 1

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

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

Informações Importantes! INF TURMA A

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

Abordagens para Problemas Intratáveis

BCC204 - Teoria dos Grafos

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

Heapsort Letícia Rodrigues Bueno

Algoritmos e Estruturas de Dados II

Teoria dos Grafos Aula 3

Grafos Árvores Geradoras Mínimas

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA

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

INF 1010 Estruturas de Dados Avançadas

Grafos - Representação

Teoria dos Grafos Aula 2

Teoria dos Grafos Aula 8

Grafos Caminhos mais Curtos

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

Grafos e Algoritmos de Busca

SIN5013 Análise de Algoritmos e Estrutura de Dados - 1o Semestre de 2019

Projeto e Análise de Algoritmos

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

Análise de Algoritmos e Estruturas de Dados

Técnicas de Concepção de Algoritmos: Branch and Bound

Trabalho final de Teoria dos Grafos: O problema de coloração de vértices de grafos. Alessander Botti Benevides.

Estruturas de Dados. Grafos VIII: Árvores Geradoras Mínimas. Prof. Ricardo J. G. B. Campello

Complexidade Assintótica de Programas Letícia Rodrigues Bueno

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular ALGORITMOS E ESTRUTURAS DE DADOS Ano Lectivo 2017/2018

Notação Assintótica Letícia Rodrigues Bueno

Projeto e Análise de Algoritmos

PCS LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA

Breve Introdução à Complexidade Assintótica de Algoritmos Letícia Rodrigues Bueno

If969 - Algoritmos e Estruturas de Dados

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

Estruturas de Dados Aula 1: Introdução e conceitos básicos 28/02/2011

Web site. Profa. Patrícia Dockhorn Costa.

Desafios de Programação TCC Turma A-1

Algoritmos Distribuídos. AD Algoritmos Básicos 1

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

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

Grafos parte 2. Percorrendo um grafo. Correção. Eficiência. Percorrendo um Grafo. Percorrendo um Grafo. Percorrendo um Grafo

grafo nós vértices arcos arestas

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

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

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

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

Comunicação e redes. Professor: Guilherme Oliveira Mota.

Departamento de Engenharia de Produção UFPR 57

Grafos IFRN. Prof. Robinson Alves

Caminhos mínimos de única origem

5COP096 TeoriadaComputação

Teoria dos Grafos Aula 2

Projeto de Algoritmos por Indução

Algoritmos e Estruturas de Dados II

Transcrição:

Algoritmos em Grafos Letícia Rodrigues Bueno UFABC

Motivação Objetivo: aprender a resolver problemas; Como: usando grafos para modelar problemas; Grafos: ferramenta fundamental de abstração; Abstraímos problema real (usando grafos) e solucionamos através de algoritmos;

Definição de Grafos Wikipedia (2012):...conjunto de pontos (vértices) ligados por retas (as arestas) Abstração que permite codificar relacionamentos entre pares de objetos; Objetos: cidades, pessoas, países, empresas, etc; Relacionamentos: amizade, conectividade, idioma, etc;

Supervisão de pós-graduação

Supervisão de pós-graduação Rodrigo Leticia Andreia Renata Felipe Jorge

Vôos Aéreos Azul Linhas Aéreas, retirado de: http://www.voeazul.com.br/

Vôos Aéreos Webjet Linhas Aéreas, retirado de: http://www.webjet.com.br/

Vôos Aéreos TAM Linhas Aéreas, retirado de: http://www.tam.com.br/

Número de Bacon Fonte: http://oracleofbacon.org/

Número de Bacon Fonte: http://oracleofbacon.org/

Representação Computacional: Lista de Adjacências (a) G (b) Lista de Adjacências de G Vantagem: espaço em memória Θ(n + m). Desvantagem: determinar se aresta está em G exige percorrer lista de adjacências.

Representação Computacional: Matriz de Adjacências (c) H (d) Matriz de Adjacências de H Vantagem: determinar se aresta está em G exige O(1). Desvantagem: espaço em memória Θ(n 2 ).

Representação Computacional: E esse grafo? 12 11 8 9 10 2 4 7 13 1 5 3 6 14 (e) G 1

Problema 1: Número de Erdõs Paul Erdõs: famoso matemático hungáro; Trabalhou com centenas de colaboradores; Publicou mais de 1.400 artigos; Número de Erdõs é um tributo divertido criado pelos amigos; Paul Erdõs tem número de Erdõs 0; Os colaboradores diretos tem número 1; Os colaboradores dos colaboradores tem número 2 e assim por diante;

Definição Dada uma lista de pessoas e as relações de colaboração entre elas, qual é o número de Erdõs de cada pessoa?

Definição Dada uma lista de pessoas e as relações de colaboração entre elas, qual é o número de Erdõs de cada pessoa? Este problema pode ser modelado através de um grafo: As pessoas são os vértices; As relações de colaboração são as arestas.

Exemplo Murty Bondy White Chvatal Harary Lovasz 0 Erdos Babai Hell Deng Imrich Papadi mitriou Watkins Gates

Busca em Largura (BFS - Breadth-First Search) Murty Bondy White Chvatal Harary Lovasz 0 Erdos Babai Hell Deng Imrich Papadi mitriou Watkins Gates

Busca em Largura (BFS - Breadth-First Search) Murty Bondy White Chvatal Harary Lovasz 0 Erdos Babai Hell Deng Imrich Papadi mitriou Watkins Erdos Gates

Busca em Largura (BFS - Breadth-First Search) Murty Bondy White Chvatal1 Harary1 Lovasz1 0 Erdos Babai 1 Imrich Watkins Hell 1 Deng Papadi mitriou Gates Chvatal Lovasz Babai Hell Harary

Busca em Largura (BFS - Breadth-First Search) Murty Bondy 2 White 2 Chvatal1 Harary1 Lovasz1 0 Erdos Babai 1 Imrich2 Watkins2 Hell 1 2 Deng Papadi mitriou Gates Bondy Imrich Watkins Deng White

Busca em Largura (BFS - Breadth-First Search) Murty 3 Bondy 2 White 2 Chvatal1 Harary1 Lovasz1 0 Erdos Babai 1 Imrich2 Watkins2 Hell 1 2 3 Deng Papadi mitriou Gates Murty Papadimitriou

Busca em Largura (BFS - Breadth-First Search) Murty 3 Bondy 2 White 2 Chvatal1 Harary1 Lovasz1 0 Erdos Babai 1 Imrich2 Watkins2 Gates Hell 1 2 3 Deng Papadi mitriou 4 Gates

Busca em Largura (BFS - Breadth-First Search) Murty Bondy White Chvatal Harary Lovasz Erdos Babai Hell Deng Imrich Papadi mitriou Watkins Gates

Algoritmo BFS 1 bfs(g, s): 2 para u em V(G) faça 3 u.visitado = False 4 u.d = 5 u.p = None 6 s.visitado = True 7 s.d = 0 8 Q = Fila() 9 insere(q, s) 10 enquanto tamanho(q) > 0 faça 11 u = remove(q) 12 para v em adj(u) faça 13 se não v.visitado então 14 v.d = u.d + 1 15 v.p = u 16 v.visitado = True 17 insere(q, v)

Algoritmo BFS 1 bfs(g, s): 2 para u em V(G) faça 3 u.visitado = False 4 u.d = 5 u.p = None 6 s.visitado = True 7 s.d = 0 8 Q = Fila() 9 insere(q, s) 10 enquanto tamanho(q) > 0 faça 11 u = remove(q) 12 para v em adj(u) faça 13 se não v.visitado então 14 v.d = u.d + 1 15 v.p = u 16 v.visitado = True 17 insere(q, v) Análise da complexidade:

Algoritmo BFS 1 bfs(g, s): 2 para u em V(G) faça 3 u.visitado = False 4 u.d = 5 u.p = None 6 s.visitado = True 7 s.d = 0 8 Q = Fila() 9 insere(q, s) 10 enquanto tamanho(q) > 0 faça 11 u = remove(q) 12 para v em adj(u) faça 13 se não v.visitado então 14 v.d = u.d + 1 15 v.p = u 16 v.visitado = True 17 insere(q, v) Análise da complexidade: Cada vértice adicionado uma vez na fila (linha 17): O(n)

Algoritmo BFS 1 bfs(g, s): 2 para u em V(G) faça 3 u.visitado = False 4 u.d = 5 u.p = None 6 s.visitado = True 7 s.d = 0 8 Q = Fila() 9 insere(q, s) 10 enquanto tamanho(q) > 0 faça 11 u = remove(q) 12 para v em adj(u) faça 13 se não v.visitado então 14 v.d = u.d + 1 15 v.p = u 16 v.visitado = True 17 insere(q, v) Análise da complexidade: Cada vértice adicionado uma vez na fila (linha 17): O(n) A lista de adjacência de cada vértice percorrida uma vez (linha 12): O(m)

Algoritmo BFS 1 bfs(g, s): 2 para u em V(G) faça 3 u.visitado = False 4 u.d = 5 u.p = None 6 s.visitado = True 7 s.d = 0 8 Q = Fila() 9 insere(q, s) 10 enquanto tamanho(q) > 0 faça 11 u = remove(q) 12 para v em adj(u) faça 13 se não v.visitado então 14 v.d = u.d + 1 15 v.p = u 16 v.visitado = True 17 insere(q, v) Análise da complexidade: Cada vértice adicionado uma vez na fila (linha 17): O(n) A lista de adjacência de cada vértice percorrida uma vez (linha 12): O(m) Complexidade total: O(n+m)

Exercícios 1. Considere G = (V, E), n = V, m = E e grafos não-orientados. Calcule a complexidade no pior caso de: Problema Espaço em memória Buscar vértices adjacentes de um vértice v Conferir adjacência dos vértices u e v Visitar todas as arestas Calcular o grau de um vértice v Matriz Adjacências Lista Adjacências

Bibliografia Utilizada CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L. e STEIN, C. Introduction to Algorithms, 3 a edição, MIT Press, 2009.