Download - Introdução a Algoritmos em Grafos
![Page 2: Introdução a Algoritmos em Grafos](https://reader036.vdocuments.com.br/reader036/viewer/2022082822/568157ad550346895dc53aad/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082822/568157ad550346895dc53aad/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082822/568157ad550346895dc53aad/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082822/568157ad550346895dc53aad/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082822/568157ad550346895dc53aad/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082822/568157ad550346895dc53aad/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082822/568157ad550346895dc53aad/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082822/568157ad550346895dc53aad/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082822/568157ad550346895dc53aad/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082822/568157ad550346895dc53aad/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082822/568157ad550346895dc53aad/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082822/568157ad550346895dc53aad/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022082822/568157ad550346895dc53aad/html5/thumbnails/14.jpg)
Á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](https://reader036.vdocuments.com.br/reader036/viewer/2022082822/568157ad550346895dc53aad/html5/thumbnails/15.jpg)
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