introdução a algoritmos em grafos

15
[email protected] 1 Introdução a Algoritmos em Grafos

Upload: clare

Post on 29-Jan-2016

30 views

Category:

Documents


0 download

DESCRIPTION

Introdução a Algoritmos em Grafos. Grafos - Definição. Grafo é um modelo matemático que representa relações entre objetos. Exemplos Estradas que ligam as cidades de uma região. Esquema de uma rede internet. Um grafo G(V,E) é um conjunto finito V (vértices) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Introdução a  Algoritmos em Grafos

[email protected] 1

Introdução a Algoritmos em Grafos

Page 2: Introdução a  Algoritmos em Grafos

[email protected] 2

Grafos - Definição

Grafo é um modelo matemático que representa

relações entre objetos.

Exemplos

1. Estradas que ligam as cidades de uma região.

2. Esquema de uma rede internet

Page 3: Introdução a  Algoritmos em Grafos

[email protected] 3

Um grafo G(V,E) é um conjunto finito V (vértices)e um conjunto E (arestas) de pares não-ordenados e elementos distintos de V.

Cada aresta e E será denotada pelo par de vértices e = (v,w) que a forma. Os vértices v,w são os extremos (ou extremidades) da aresta e, sendo v e w ditos adjacentes.

Page 4: Introdução a  Algoritmos em Grafos

[email protected] 4

Grafos - Definição

Um grafo pode representar, por exemplo, um conjunto de cidades e as ligações aéreas entre elas.

RecMan

BSB

Sal

Rio

SAO

Page 5: Introdução a  Algoritmos em Grafos

[email protected]

Grafos - Variações

• Arestas direcionadas, ou múltiplas. Alguns vértices podem ser isolados.

RecMan

BSB

Sal

Rio

SAO

Page 6: Introdução a  Algoritmos em Grafos

[email protected] 6

Grafos - Variações

Arestas (ou vértices) com pesos.

RecMan

BSB

Rio

SAO

450

480470

380

395

240

255

430

Page 7: Introdução a  Algoritmos em Grafos

[email protected] 7

Grafos - Representação Interna

1. Matriz de adjacências – custo O(n2)

32

1

5

4

6

1 2 3 4 5 61 0 1 1 1 0 12 1 0 0 0 0 03 1 0 0 1 1 14 1 0 1 0 1 15 0 0 1 1 0 06 1 0 1 1 0 0

Page 8: Introdução a  Algoritmos em Grafos

[email protected] 8

Grafos - Representação Interna

2. Listas de Adjacências - custo O(n + m)

RecMan

BSB

Sal

Rio

SAO

BSBManRecRioSalSAO

Rec Man

BSB

Sal Rio

SAO Rio

Sal BSB

RecBSB

Rio

Rio

Rec

SAO

BSB SAO

Rec

Page 9: Introdução a  Algoritmos em Grafos

[email protected] 9

Grafos - Representação Interna

• Listas de Adjacências

RecMan

BSB

Rio

SAO

450

480470

380

395

240

255

430

BSBManRecRioSAO

SAO, 380 Man, 450

Rec, 470 SAO, 240

Rio, 255

Rio, 430

BSB, 480

BSB, 395

Page 10: Introdução a  Algoritmos em Grafos

[email protected] 10

Grafos - Mais Definições

• Caminho: 3, 1, 2, 1, 3 (Rec, BSB, Man, BSB, Rec)

32

15

4

6

Caminho simples : 2, 1, 4, 6

Caminho fechado (simples) ouCiclo: 3, 6, 1, 3

Em grafos não direcionados, um ciclo tem pelo menos 3 arestas.

Page 11: Introdução a  Algoritmos em Grafos

[email protected] 11

Um caminho de k vértices é formado por (k – 1) arestas (v1,v2),(v2,v3),...,(vk-1,vk). O valor (k – 1) é o comprimento do caminho .

A distância d(v,w) entre dois vértices v,w é o comprimentodo menor caminho entre v e w.

Em um grafo G(V,E), define-se grau de um vértice v V,denotado por grau(v), como o número de vértices adjacentesa v.

Page 12: Introdução a  Algoritmos em Grafos

[email protected] 12

Subgrafos

Um subgrafo G’(V’, E’) de G(V, E) é um grafo tal que: V’ V e E’ E (V’ x V’)

Se E’ = E (V’ x V’) então dizemos que G’ é um subgrafo induzido por V’. (V’ induz G’)

Se V’ = V dizemos que G’ é um subgrafo gerador.

Page 13: Introdução a  Algoritmos em Grafos

[email protected] 13

Grafos Conexos

Grafos Conexos são grafos onde existe um caminho de um vértice para qualquer outro.

Seja S um conjunto e S’ S. Diz-se que S’ é maximal

em relação a uma certa propriedade P, quando S’ satisfaz P e

não existe subconjunto S’’ S’, que também satisfaz P.

Componentes conexos são subgrafos conexos maximais.

Page 14: Introdução a  Algoritmos em Grafos

[email protected] 14

Árvores

• Árvores são grafos conexos e acíclicos, isto é, sem ciclos.

• Árvores são grafos (simples) conexos com n-1 arestas.

• Árvores são grafos conexos minimais.

Page 15: Introdução a  Algoritmos em Grafos

[email protected] 15

Busca em Grafos

• OBJETIVO: Visitar todos os vértices de forma sistemática.

• Se o grafo é uma árvore, a tarefa é simples:– Busca em pré-ordem– Busca em pós-ordem– Busca em in-ordem (árvores binárias)– Busca por nível