introdução à teoria dos grafos
DESCRIPTION
TRANSCRIPT
![Page 1: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/1.jpg)
Bianca de Almeida Dantas
![Page 2: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/2.jpg)
Introdução Terminologia Exemplos de Grafos Digrafos Percursos em Grafos Representação Computacional Problemas em Grafos Conclusões Bibliografia
![Page 3: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/3.jpg)
Ramo da matemática que se utiliza de modelos (os grafos) para estudar as relações entre os objetos de um conjunto.
![Page 4: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/4.jpg)
Figura 1 – Grafo com 4 vértices e 6 arestas.
![Page 5: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/5.jpg)
Diversos problemas podem ser representados por grafos:◦ Trajetos entre cidades◦ Roteamento de veículos◦ Mapa de páginas de um site◦ Redes de computadores◦ Representação de máquinas de estados finitos
A obtenção de estruturas de dados e de algoritmos eficientes para manipulação de grafos é uma área de grande interesse da ciência da computação.
![Page 6: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/6.jpg)
Um grafo é um par ordenado (V, A), onde V é um conjunto qualquer e A é um subconjunto de V(2) , o conjunto de todos os pares não-ordenados de V. Chamamos os elementos de V de vértices e os elementos de A de arestas.
Considere dois vértices u e v e uma aresta que os conecta, denotada por uv ou vu. Dizemos que a aresta uv incide em u e em v ou, ainda, que u e v são pontas da aresta uv.
![Page 7: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/7.jpg)
Quando dois vértices são pontas de uma mesma aresta, eles são ditos vizinhos ou adjacentes.
Em algumas situações, é interessante dar nome a um grafo, por exemplo, G. Neste caso, o conjunto de vértices e de arestas são denotados por V(G) e A(G), respectivamente.
O número de vértices, |V(G)|, de G é denotado por n e o número de arestas, |A(G)|, é denotado por m.
![Page 8: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/8.jpg)
Vértices: t, u, v, w, x, y, zArestas: xu, uv, vw, wx, xy, yzn = 7m = 6
![Page 9: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/9.jpg)
O grau de um vértice é definido como o número de arestas incidentes em tal vértice.
2
2
2
32
1
0
![Page 10: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/10.jpg)
Um grafo regular é aquele em que todos os vértices possuem o mesmo grau.
Um grafo regular com vértices de grau k é chamado de k-regular.
0-regular 1-regular 2-regular 3-regular
![Page 11: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/11.jpg)
Um grafo completo G é aquele que possui arestas conectando todos os pares de vértices, ou seja, G(V, V(2)). Usualmente, são nomeados usando a letra K.
Grafo completo com 6 vértices (K6)
Também é um grafo 5-regular
![Page 12: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/12.jpg)
O complemento de um grafo (V, A) é definido como (V, V(2) \ A).
Grafo Grafo completo Complemento
u
v
w x
y
z u
v
w x
y
z u
v
w x
y
z
![Page 13: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/13.jpg)
Um caminho entre dois vértices v1 e v2 de um grafo é a sequência de arestas do trajeto saindo de v1 em direção a v2. Os vértices v1 e v2 são ditos extremos do caminho.
O comprimento de um caminho é o seu número de arestas.
Um caminho que começa e termina no mesmo vértice é chamado de ciclo ou circuito.
Um ciclo de comprimento 1 é chamado de laço.
![Page 14: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/14.jpg)
Qual é o caminho de v a y?
u
v
w
x
t
y z
![Page 15: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/15.jpg)
u
v
w
x
t
y z
Alternativa 1
Comprimento: 3
![Page 16: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/16.jpg)
Alternativa 2
u
v
w
x
t
y z
Comprimento: 3
![Page 17: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/17.jpg)
u
v
w
x
t
y z
Ciclo a partir do vértice u
![Page 18: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/18.jpg)
u
v
w
x
t
y z
Um laço no vértice t
![Page 19: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/19.jpg)
Em um grafo simples não existem laços e há no máximo uma aresta entre quaisquer par de vértices, ou seja, não existem arestas paralelas.
Um grafo G(V, A) é conexo se existe um caminho entre todos os pares de vértices de V.
![Page 20: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/20.jpg)
Grafos podem ter pesos associados a suas arestas, representado por um número rotulando cada aresta.
Neste caso, o comprimento do caminho entre dois vértices (ou peso do caminho) corresponde à soma dos pesos das arestas que compõem o caminho.
![Page 21: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/21.jpg)
u
v
w
x
t
y z
Caminhos entre v e y?
Alternativa 1 (verde):Peso = 13Alternativa 2 (vermelho):Peso = 11
2 4
3 17 6
Dizemos que o caminho vermelho é um caminho mínimo entre v e y, pois tem o menor peso entre
os caminhos possíveis.
![Page 22: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/22.jpg)
O grafo dos estados do Brasil é definido assim: cada vértice é um dos estados da República Federativa do Brasil; dois estados são adjacentes se têm uma fronteira comum.
![Page 23: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/23.jpg)
Grafo que representa as adjacências entre os estados do Brasil
![Page 24: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/24.jpg)
Tipos especiais de grafos nos quais todas as arestas são direcionadas.
Caminhos em digrafos devem levar em consideração a direção das arestas.
Dois tipos de graus de vértices: ◦ Grau de entrada: número de arestas que “chegam”
no vértice;◦ Grau de saída: números de arestas que “saem” do
vértice.
![Page 25: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/25.jpg)
u
v
w
x
t
y z
Caminho de v até y? E de y até v?
![Page 26: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/26.jpg)
u
v
w
x
t
y z
Única alternativa de v até y! De y até v não existe
caminho.
E: 0S: 2
E: 1S: 1
E: 2S: 0
E: 1S: 2 E: 1
S: 1
E: 0S: 0
E: 1S: 0
Quais os graus de entrada (E) e
saída (S)?
![Page 27: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/27.jpg)
Um digrafo D(V, A) é dito fortemente conexo se, para todos os pares de vértices (u, v) existe caminho de u para v e de v para u.
Um digrafo é fracamente conexo se sua “versão não-direcionada” for conexa.
![Page 28: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/28.jpg)
Digrafo fortemente conexo
u
v
w
xy z
Digrafo fracamente conexo
![Page 29: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/29.jpg)
Existem duas formas de percorrer todos os vértices de um grafo, geralmente chamadas de buscas:◦ Busca em Largura ou BFS (Breadth-First Search);◦ Busca em Profundidades ou DFS (Depth-First
Search).
![Page 30: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/30.jpg)
Nesse percurso, partimos de um vértice inicial e percorremos todos os seus vizinhos, um a um, e então percorremos os vizinhos de cada um de seus vizinhos, na ordem em que foram visitados no passo anterior.
![Page 31: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/31.jpg)
![Page 32: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/32.jpg)
1
![Page 33: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/33.jpg)
1
2
![Page 34: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/34.jpg)
1
2 3
![Page 35: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/35.jpg)
1
2 3
4
![Page 36: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/36.jpg)
1
2 3
4 5
![Page 37: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/37.jpg)
1
2 3
4 5 6
![Page 38: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/38.jpg)
1
2 3
4 5 6 7
![Page 39: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/39.jpg)
1
2 3
4 5 6 7
![Page 40: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/40.jpg)
1
2 3
4 5 6 7
![Page 41: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/41.jpg)
1
2 3
4 5 6 7
![Page 42: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/42.jpg)
1
2 3
4 5 6 7
Grafos com essa estrutura são chamados de árvores.
![Page 43: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/43.jpg)
Partindo de um vértice inicial, esse algoritmo visita os vértices um a um até o “filho mais profundo” que pode ser alcançado e, após descer na hierarquia, passa para o próximo “filho”.
![Page 44: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/44.jpg)
1
![Page 45: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/45.jpg)
1
2
![Page 46: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/46.jpg)
1
2
3
![Page 47: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/47.jpg)
1
2
3
![Page 48: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/48.jpg)
1
2
3 4
![Page 49: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/49.jpg)
1
2
3 4
![Page 50: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/50.jpg)
1
2
3 4
![Page 51: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/51.jpg)
1
2 5
3 4
![Page 52: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/52.jpg)
1
2 5
3 4 6
![Page 53: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/53.jpg)
1
2 5
3 4 6
![Page 54: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/54.jpg)
1
2 5
3 4 6 7
![Page 55: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/55.jpg)
1
2 5
3 4 6 7
![Page 56: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/56.jpg)
1
2 5
3 4 6 7
![Page 57: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/57.jpg)
1
2 5
3 4 6 7
![Page 58: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/58.jpg)
Existem diversas estruturas que podem ser utilizadas para armazenar as informações de um grafo ou digrafo. Pode-se citar:◦ Matriz de adjacências;◦ Lista de adjacências;◦ Lista de arestas;◦ Matriz de incidências;◦ Listas de vértices e arestas
![Page 59: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/59.jpg)
A matriz de adjacências para um grafo (digrafo) G (V, A) é uma matriz M de dimensão |V|x|V| na qual o elemento Mi,j será igual a 1 se existe uma aresta de i para j ou 0, caso contrário.
![Page 60: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/60.jpg)
v6
v1
v2
v3v4 v5
v1 v2 v3 v4 v5 v6v1 0 1 0 0 0 1v2 0 0 1 0 0 0v3 0 0 0 1 0 1v4 0 0 0 0 1 0v5 0 0 0 0 0 0v6 0 0 0 0 0 0
Matriz de adjacências para o digrafo
![Page 61: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/61.jpg)
v6
v1
v2
v3v4 v5
v1 v2 v3 v4 v5 v6v1 0 1 0 0 0 1v2 1 0 1 0 0 0v3 0 1 0 1 0 1v4 0 0 1 0 1 0v5 0 0 0 1 0 0v6 1 0 1 0 0 0
Matriz de adjacência para o grafo
Matriz simétrica!
![Page 62: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/62.jpg)
Uma lista de adjacências para um grafo (digrafo) G (V, A) armazena para cada vértice u de V uma lista de todos os vértices v para os quais existe uma aresta uv.
![Page 63: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/63.jpg)
v6
v1
v2
v3v4 v5
v1v2v3v4v5v6
v2 v6
v3
v4 v6
v5
Lista de adjacências para o digrafo
![Page 64: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/64.jpg)
A representação de um grafo (digrafo) G(V,A) por lista de arestas utiliza dois vetores com |A| elementos para armazenar os extremos das arestas pertencentes a A.
![Page 65: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/65.jpg)
v6
v1
v2
v3v4 v5
v1 v1 v2 v3 v3 v4
v2 v6 v3 v4 v6 v5
Vetor1
Vetor2
Lista de arestas para o digrafo
![Page 66: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/66.jpg)
Uma matriz de incidências para um digrafoG(V,A) é uma matriz M de dimensão |V|x|A| em que cada elemento segue a equação:
No caso de grafos não-direcionais, temos que mij será 1 se vi for extremo de aj ou 0 caso contrário.
contrário caso 0,a de final vérticeofor vse 1,
a de inicial vérticeofor vse 1,
ji
ji
ijm
![Page 67: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/67.jpg)
a1 a2 a3 a4 a5 a6v1 1 0 0 0 1 0v2 -1 1 0 0 0 0v3 0 -1 1 0 0 1v4 0 0 -1 1 0 0v5 0 0 0 -1 0 0v6 0 0 0 0 -1 -1
v6
v1
v2
v3v4 v5
a1 a2 a3 a4
a5 a6
Matriz de incidências para o digrafo
![Page 68: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/68.jpg)
As listas de vértices e de arestas são a forma mais simples de representação de um grafo (digrafo) G(V,A). São mantidas duas listas uma com todos os vértices de G e outra com todas as arestas e seus extremos.
![Page 69: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/69.jpg)
v6
v1
v2
v3v4 v5
a1 a2 a3 a4
a5 a6
v1v2v3v4v5v6
vi vja1 v1 v2a2 v2 v3a3 v3 v4a4 v4 v5a5 v1 v6a6 v3 v6
Lista de Vértices Lista de Arestas
Listas de vértices e de arestas para o digrafo
![Page 70: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/70.jpg)
Fecho transitivo Problema do caminho mínimo Caixeiro viajante Carteiro chinês Coloração de vértices
![Page 71: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/71.jpg)
O fecho transitivo Dt de um digrafo D é obtido adicionando uma aresta dirigida entre todos os pares de vértices vi e vj entre os quais exista um caminho que saia de vi em direção a vj.
Digrafo Dt de D
![Page 72: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/72.jpg)
Ou seja, o fecho transitivo representa a inserção de uma nova aresta entre os vértices conectados indiretamente por um caminho.
Diversos algoritmos foram propostos para solução.
Muitas soluções se baseiam na matriz de adjacências.
![Page 73: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/73.jpg)
1 2 3 4 5
1 0 0 1 0 0
2 0 0 1 1 0
3 0 0 0 0 1
4 0 0 0 0 1
5 0 0 0 0 0
1 2
3 4
5
![Page 74: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/74.jpg)
1 2 3 4 5
1 0 0 1 0 1
2 0 0 1 1 1
3 0 0 0 0 1
4 0 0 0 0 1
5 0 0 0 0 0
1 2
3 4
5
![Page 75: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/75.jpg)
Complexidade θ(n3) Baseia-se na premissa de que, se existe uma
aresta de vi para vk e uma aresta de vk para vj, então, deve existir uma aresta de vi para vj.
Sua estrutura permite fácil paralelização.
![Page 76: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/76.jpg)
AlgoritmoEntrada: M – matriz de adjacênciasSaída: Mt – matriz de adjacências do fechoinicion <- |V|Mt <- Mpara k de 1 ate n faca
para i de 1 ate n facapara j de 1 ate n faca
se Mt[i,k]=1 e Mt[k,j]=1 entaoMt[i,j] <- 1
fimsefimpara
fimparafimpara
fimalgoritmo
![Page 77: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/77.jpg)
O problema do caminho mínimo consiste na minimização do custo de travessia de um grafo entre dois ou mais vértices, levando em consideração o peso de cada aresta percorrida.
Caso os pesos sejam omitidos, considere-os iguais a um.
![Page 78: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/78.jpg)
u
v
w
x
t
y z2 4
3 17 6
Caminho mínimo entre v e y
![Page 79: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/79.jpg)
Computa os caminhos mínimos a partir de um vértice inicial v a todos os demais vértices.
Ele utiliza uma estratégia gulosa baseada na busca em largura.
Funciona apenas para grafos com pesos positivos.
![Page 80: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/80.jpg)
![Page 81: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/81.jpg)
![Page 82: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/82.jpg)
![Page 83: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/83.jpg)
![Page 84: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/84.jpg)
![Page 85: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/85.jpg)
![Page 86: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/86.jpg)
![Page 87: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/87.jpg)
![Page 88: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/88.jpg)
Bellman-Ford: permite que as arestas tenham peso negativo.
A*: heurística que também permite arestas negativas.
Floyd-Warshall: distância entre todos os pares de vértices do grafo.
Johnson: realiza a mesma tarefa do anterior, podendo ser mais eficiente em grafos esparsos.
![Page 89: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/89.jpg)
Conhecido pela sigla TSP (Travelling SalesmanProblem), consiste em encontrar o menor circuito a partir de um vértice fonte v e que passe por todos os demais vértices exatamente uma vez.
Também é um problema de otimização .
![Page 90: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/90.jpg)
2
1 3
4 5
2
3
3
3
4
36
7
Qual rota o caixeiro deve seguir a partir
de 1?
![Page 91: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/91.jpg)
2
1 3
4 5
2
3
3
3
4
36
7
Passo 1
![Page 92: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/92.jpg)
2
1 3
4 5
2
3
3
3
4
36
7
Passo 2
![Page 93: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/93.jpg)
2
1 3
4 5
2
3
3
3
4
36
7
Passo 3
![Page 94: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/94.jpg)
2
1 3
4 5
2
3
3
3
4
36
7
Passo 4
![Page 95: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/95.jpg)
2
1 3
4 5
2
3
3
3
4
36
7
Fim
. Essa é a única solução????
![Page 96: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/96.jpg)
Achar a melhor solução é um problema bastante difícil, envolvendo a exploração de todas as possibilidades.
Problema NP-completo! A complexidade do problema cresce de
acordo com o tamanho do gráfico. Utiliza heurísticas para encontrar uma
aproximação para o problema, por exemplo, colônia de formigas.
![Page 97: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/97.jpg)
O problema do carteiro chinês, ou problema da inspeção de rotas, consiste em encontrar um ciclo em um grafo conexo e não direcionado que passe por todas as suas arestas exatamente uma única vez.
![Page 98: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/98.jpg)
2
1 3
4 5
2
3
4
67
Qual rota o carteiro deve seguir a partir
de 1?
![Page 99: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/99.jpg)
2
1 3
4 5
2
3
4
67
Passo 1
![Page 100: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/100.jpg)
2
1 3
4 5
2
3
4
67
Passo 2
![Page 101: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/101.jpg)
2
1 3
4 5
2
3
4
67
Passo 3
![Page 102: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/102.jpg)
2
1 3
4 5
2
3
4
67
Passo 4
![Page 103: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/103.jpg)
2
1 3
4 5
2
3
4
67
Final.
Novamente um problema difícil de otimizar.
![Page 104: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/104.jpg)
O problema da coloração de grafos consiste em rotular componentes do grafo (vértices, arestas ou faces) com uma determinada cor de forma que não haja dois elementos adjacentes da mesma cor.
No caso de vértices, dois vértices vizinhos precisam ser coloridos de cores diferentes.
![Page 105: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/105.jpg)
No caso de vértices, dois vértices vizinhos precisam ser coloridos de cores diferentes.
Coloração de vértices.
![Page 106: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/106.jpg)
No caso de arestas, arestas adjacentes ao mesmo vértice devem ter cores diferentes.
Coloração de arestas.
![Page 107: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/107.jpg)
No caso de faces, as faces que compartilham fronteiras não devem ter a mesma cor.
Coloração de faces.
![Page 108: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/108.jpg)
Problema bastante popular. O jogo Sudoku é baseado na coloração de
vértices.
Exemplo de Sudoku.
![Page 109: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/109.jpg)
Problemas em grafos podem: ◦ Ser bastante custosos para resolver;◦ Demandar capacidade de processamento elevada;◦ Exigir grande quantidade de espaço de
armazenamento. Busca por alternativas à computação
sequencial tradicional. Desenvolvimento de novas heurísticas e
utilização de múltiplos núcleos de processamento.
![Page 110: Introdução à Teoria dos Grafos](https://reader034.vdocuments.net/reader034/viewer/2022042510/549384fab47959564d8b486d/html5/thumbnails/110.jpg)
Cáceres, E.N.; Song, S.W.; Szwarcfiter, J.L. A Parallel Algorithm for Transitive Closure.
Cormen. Thomas (2000); Leiserson, Charles.; Rivest, Ronald. Introduction to Algorithms, McGraw-Hill.
http://www.ime.usp.br/~pf/teoriadosgrafos/ http://professor.ufabc.edu.br/~leticia.bueno/cla
sses/teoriagrafos/materiais/caminhominimo.pdf http://www.prp.unicamp.br/pibic/congressos/xv
icongresso/paineis/043171.pdf http://www.icmc.sc.usp.br/~sandra/2/cor.htm http://pt.wikipedia.org