introdução a algoritmos em grafos
Post on 29-Jan-2016
30 Views
Preview:
DESCRIPTION
TRANSCRIPT
katiag@cin.ufpe.br 1
Introdução a Algoritmos em Grafos
katiag@cin.ufpe.br 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
katiag@cin.ufpe.br 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.
katiag@cin.ufpe.br 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
katiag@cin.ufpe.br5
Grafos - Variações
• Arestas direcionadas, ou múltiplas. Alguns vértices podem ser isolados.
RecMan
BSB
Sal
Rio
SAO
katiag@cin.ufpe.br 6
Grafos - Variações
Arestas (ou vértices) com pesos.
RecMan
BSB
Rio
SAO
450
480470
380
395
240
255
430
katia@cin.ufpe.br 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
katia@cin.ufpe.br 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
katia@cin.ufpe.br 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
katia@cin.ufpe.br 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.
katia@cin.ufpe.br 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.
katia@cin.ufpe.br 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.
katia@cin.ufpe.br 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.
katia@cin.ufpe.br 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.
katia@cin.ufpe.br 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
top related