Estrutura de Dados I Rodrigo da Cruz Fujioka www.rodrigofujioka.com
Estrutura de Dados I www.rodrigofujioka.com
Aula 6:
Teoria Grafos Breve IntroduçãoSlides originais do professor Rodrigo César Lobo http://rclobo.googlepages.com/
Definições
• Um grafo G é constituído por um conjunto V, não vazio, de elementos, chamados vértices, e por uma relação binária entre eles (A). Os elementos de A são denominados arestas.
2
G = (V, A)
V = { 1, 2, 3, 4 }
A = { {1,2}, {2,3}, {3,4},{1,4} }
Definições
• Um grafo G é dirigido quando fazemos distinção entre a origem e o destino da aresta. Nos grafos dirigidos, chamamos as arestas de arcos.
3
arestas de arcos.
G = (V, A)
V = { 1, 2, 3, 4, 5, 6 }
A = { (1,2), (2,1), (2,3), (2,4), (3,3), (4,1), (4,3), (5,6) }
Grafos
Grafo Grafo dirigido
2
4
2
1 3
5
6 2
1 3
Notação
• O Número de vértices de um grafo G é denotado por |V|, que representa a ordem do grafo.
• O Número de arestas de um grafo G é denotado
5
• O Número de arestas de um grafo G é denotado por |A|.
G = (V, A)
V = { 1, 2, 3, 4, 5, 6 }
A = { (1,2), (2,1), (2,3), (2,4), (3,3), (4,1), (4,3), (5,6) }
|V| = 6 e |A| = 8.
Definições
• Vértices adjacentes: São vértices ligados por arestas.
– Ex.: o vértice 2 é adjacente a 1, 3 e 4);
6
2
1 3
5
6
Definições
• No caso do grafo ser dirigido, a adjacência é especializada em:
• Sucessor: um vértice w é sucessor de v se há um arco que parte de v e chega em w.
7
arco que parte de v e chega em w.
• Antecessor: um vértice v é antecessor de w se há um arco que parte de v e chega em w. Ex: no grafo G1, 5 é antecessor e 6 é sucessor.
5
G1 6
Definições
• Arestas incidentes: Dizemos que uma aresta a1 = {x,y} incide sobre os vértices x e y.
– Ex.: {1,2} incide sobre 1 e 2.
8
– Ex.: {1,2} incide sobre 1 e 2.
2
1 3
5
6
Definições
• Arestas incidente (em grafos dirigidos): Arestas são incidentes de ou a determinados vértices, conforme partem ou chegam a eles
– Ex.: (1,2) é incidente de 1 e incidente a 2;
9
– Ex.: (1,2) é incidente de 1 e incidente a 2;
2
1 3
5
6
Definições
• Grau de um vértice: É igual ao número de arestas incidentes nesse vértice (ex.: o grau do vértice 1 é 3);
• Grau de um grafo: É o grau máximo entre todos os vértices.
10
os vértices.
– Ex.: o grau do grafo G é 4
2
1 3
5
6
Definições
• No caso do grafo ser dirigido, a noção de grau é especializada em:
• Grau de emissão (de um vértice v): É número de arcos que partem de v.
• Grau de recepção (de um vértice v): É número de arcos que chegam a v.
11
que chegam a v.
– Ex.: o grau de emissão de 2 é 3, o grau de recepção de 2 é 1.
2
1 3
5
6
Definições
• Multigrafo: É um grafo G no qual existem dois vértices, no mínimo, unidos por múltiplas arestas.
12
2
1 3
Definições
• Grafo ponderado: É um grafo G no qual cada aresta tem um valor (peso, custo, distância, etc) atribuído a ela.
13
2
1 3
3 5
6 2
Definições
• Grafo Regular: Quando todos os seus vértices tem o mesmo grau.
14
3 1
4 2
Definições
• Grafo Completo: Quando há uma aresta entre cada par de seus vértices.
15
3 1
4 2
Definições
• Um caminho é definido como uma seqüência de uma ou mais arestas (ex.:
embora 1 e 3 não estejam ligados por uma aresta, é possível a partir do nó 1 atingir o
16
aresta, é possível a partir do nó 1 atingir o nó 3, percorrendo as arestas (1,2) e (2,3));
2
1 3
5
6
Definições
• Circuito: supondo o seguinte caminho (a,n1), (n1,n2), ..., (ni-1,ni), (ni,b) , quando a = b temos um circuito (ex.: há um circuito unindo os nós 1, 2 e 4);
• Ciclo: É um circuito no qual todos os vértices são diferentes.
17
• Laço: um circuito de um único arco é um laço (ex.: o nó 3);
2
1 3
5
6
Definições
• Em um grafo parcial, permanecem todos os nós do grafo original, mas é tomado um subconjunto de seus arcos;
2 6
2 6
18
2
1 3
5 2 6
1 3
5
6
grafo parcial grafo original
Definições
• Um grafo é acíclico quando não possui circuito (ex.: o grafo parcial gerado);
2 6
19
1 3
5
6
Definições
• Um grafo é conexo quando a partir de um nó existem caminhos para todos os demais (ex.: o subgrafo 1, 2, 3 e 4 é conexo pois a partir do nó 1 é possível atingir os demais, o que também é verdade para os nós 2 e 4, e não para o nó 3);
20
2
1 3
5
6
subgrafo
Se considerarmos todo o grafo ele é desconexo
Definições
• Um grafo é fortemente conexo se de todos os nós é possível atingir todos os demais;
2 4
21
1 5
Uma das características de uma rede de comunicação (telefonia, por exemplo) é sua conexidade
Grafos: Exemplos
• Podemos então formular questões que podem ser resolvidos com os algoritmos de grafos :
São Paulo 370 Curitiba
22
Porto Alegre Florianópolis
750 300
200
430
Grafos: Exemplos
Problema de Menor Caminho :
• Dados os comprimentos de cada via, qual o percurso mais rápido para sair de uma cidade A e chegar a uma cidade B ?
23
Problema de Fluxo Máximo :
• dada a capacidade de fluxo em cada via, quanta mercadoria podemos mandar de uma cidade A a uma cidade B ?