Você está na página 1de 7

Organização

Introdução aos Grafos


Definição
Estruturas de Dados 

 Terminologia
 Algumas Propriedades
Grafos I: Exemplos de Aplicações de Grafos
Conceitos & Aplicações
Prof. Ricardo J. G. B. Campello
Parte deste material é baseado em adaptações e extensões de slides
disponíveis em http://ww3.datastructures.net (Goodrich & Tamassia).

Definição Algumas Aplicações


Um grafo pode ser definido como um par (V, A), onde: Modelagem de Circuitos Eletrônicos:
cslab1a cslab1b
 V : conjunto de nós chamados vértices (ou nós).  Placas de circuito impresso.
 A : conjunto de pares de vértices chamados arestas (ou arcos). math.brown.edu
 Circuitos integrados.
Tanto vértices quanto arestas podem armazenar elementos.
Redes de Transporte:
 Quando arestas armazenam grandezas numéricas, o grafo é dito ponderado. cs.brown.edu
 Representação de Rodovias.
Exemplo:
 Mapa de Vôos.
 Um vértice pode representar um aeroporto e armazenar um código de 3 letras. brown.edu

 Uma aresta pode representar uma rota de vôo entre dois aeroportos e Redes de Computadores: qwest.net
armazenar a distância entre eles. att.net
 Redes Locais.
PVD
ORD  Internet.
SFO
LGA Bancos de Dados: cox.net
 Diagrama Entidade-Relacionamento. John
HNL
LAX Paul
DFW David
MIA
...
4
Terminologia Terminologia (cont.)
Vértice final de uma aresta: Um subgrafo S de um grafo G
U e V são vértices finais (end vertices


ou endpoints) de a.
V é um grafo tal que:
a b
Arestas incidentes em um vértice: h j  Os vértices de S são um
a, d e b são incidentes em V. subconjunto dos vértices de G.

U d X Z
Vértices adjacentes:  As arestas de S são um Subgrafo
 U e V são vértices adjacentes.
c e i subconjunto das arestas de G.
Grau de um vértice (deg): W g
 X tem grau 5 (número de arestas
incidentes em X). f Um subgrafo gerador
Laços: Y (spanning sugraph) de G é um
 j é um laço (self-loop). subgrafo que contém todos os
Arestas paralelas (ou múltiplas): vértices de G.
Grafos desprovidos de laços e
 h e i são arestas paralelas (possuem
de arestas paralelas são
vértices finais x e z em comum). Subgrafo gerador
denominados simples. 5 6

Terminologia (cont.) Terminologia (cont.)


Caminho:
Um grafo G é conexo se
 seqüência alternante de vértices e existe um caminho entre
arestas.
V
a b qualquer par de vértices de G.
 começa com um vértice. P1
d
 termina em um vértice. U X Z Um componente conexo de Grafo conexo
cada aresta é precedida e seguida por
P2 h

c e um grafo G é um subgrafo
seus vértices finais.
W g conexo de G.
Caminho simples:
 caminho no qual todos os seus vértices f G é dito completamente
e arestas são distintos.
Y conexo ou completo se
Exemplos:
cada par de vértices é
 P1=(V,b,X,h,Z) é um caminho simples.
adjacente. Grafo não-conexo com dois
 P2=(U,c,W,e,X,g,Y,f,W,d,V) é um componentes conexos
caminho que não é simples.
7 8
Terminologia (cont.) Terminologia (cont.)
Ciclo: Uma árvore é um grafo
V conexo que não possui ciclos.
 Caminho circular (o primeiro e
último vértices são iguais). a b  A árvore é dita livre ou não
enraizada se não possui raiz.
Ciclo simples: d
U X Z
C2 h Uma floresta é um grafo que Árvore
 Ciclo cujas arestas e vértices
intermediários são todos c e C1 não possui ciclos.
distintos. W g  Logo, toda árvore é uma
floresta, mas a recíproca não
Exemplos:
f é verdadeira.
 C1=(V,b,X,g,Y,f,W,c,U,a,V) é Y
um ciclo simples. Os componentes conexos de
uma floresta são árvores.
 C2=(U,c,W,e,X,g,Y,f,W,d,V,a,U) Floresta
é um ciclo não-simples. Grafo desprovido de ciclos é
denominado acíclico.
9 10

B D E
Terminologia (cont.) Terminologia (cont.) C

Uma árvore geradora Aresta direcionada (directed edge):


(spanning tree) de um grafo  um par ordenado de vértices (u,v).

conexo é um subgrafo gerador  primeiro vértice u é a origem.


que é uma árvore. vôo
 segundo vértice v é o destino. ORD PVD
indica uma relação assimétrica.
AA 1206
Uma árvore geradora não é 

única, a menos que o grafo seja Grafo Aresta não-direcionada:


uma árvore.  um par não-ordenado de vértices (u,v).
849
ORD milhas PVD
Existem muitas aplicações de  indica uma relação simétrica.
árvores geradoras: Grafo direcionado (digrafo):
 P. ex. no projeto de redes de  todas as arestas são direcionadas
comunicação.  e.g., mapa de rotas de vôo. PS. Um grafo misto pode ser
Grafo não-direcionado: sempre transformado em um
Uma floresta geradora de um grafo direcionado.
grafo é um subgrafo gerador  todas as arestas são não-direcionadas.

que é uma floresta Árvore geradora  e.g., mapa de distâncias de vôos.


11 12
Terminologia (cont.) Terminologia (cont.)
Arestas paralelas (ou múltiplas): Um conceito importante em grafos direcionados é o conceito de
V
 f1 e f2 são arestas direcionadas a b h alcançabilidade (reachability):
paralelas (possuem mesma origem
e destino).  Dados dois vértices u e v de um digrafo G diz-se que u alcança v (v é
U d X Z alcançável a partir de u) se G possui um caminho direcionado de u
Grau de entrada (in-degree): para v.
c e j
 O grau de entrada do vértice X é i
2, pois possui 2 arestas de entrada W g Um digrafo G é dito fortemente conexo (strongly connected) se
(incoming edges), i.e., arestas f2 para quaisquer dois vértices u e v de G, u alcança v e vice-versa.
que o possuem como destino.
Y  Propriedade fundamental, por exemplo, no projeto da malha viária de
Grau de saída (out-degree): f1
uma cidade (sentido das ruas e avenidas).
 O grau de saída do vértice X é 3,
pois possui 3 arestas de saída  Exemplo: A
(outgoing edges), i.e., arestas
que o possuem como origem.
B D E
Não fosse por f1, f2, e j o grafo ao Essa é uma hipótese para
lado seria simples. muitos algoritmos em grafos. C
14

Terminologia (cont.) Terminologia (cont.)


Um ciclo direcionado de um digrafo é um ciclo onde Uma ordenação topológica é uma ordenação dos vértices tal que
todas as arestas são percorridas de acordo com suas para qualquer aresta do digrafo o vértice de origem possui ordem
menor que o vértice de destino.
respectivas direções. A
 Tal ordenação existe apenas para digrafos acíclicos.
 Exemplo: B D E  Exemplo de Aplicação:
 Grafos de precedência entre tarefas – política de execução seqüencial
C
 Exemplo:
Um digrafo é dito acíclico se não possui ciclos

7
direcionados.
Exemplo:

6
1

9


8
5
3

4
15 16
Terminologia (cont.) Algumas Propriedades Úteis
O complemento G de um grafo não-direcionado G é * Propriedade 1: Notação:
o grafo obtido a partir dos vértices de G conectados Σv deg(v) = 2m n número de vértices.
apenas com as arestas não existentes em G: Prova: cada aresta é contada duas vezes. m número de arestas.
deg(v) grau do vértice v
G 1 G * Propriedade 2:
1 i.e. o no. de arestas
Em um grafo não-direcionado simples: incidentes em v.
2 3 4 2 3 4
m ≤ n (n − 1)//2
Prova: cada vértice tem grau máx. (n − 1). Exemplo:
O grafo transposto GTde um grafo direcionado G é * Propriedade 3:
 n = 4

o grafo obtido a partir de G com todas as suas arestas  m = 6


Em um grafo direcionado simples:
em direções opostas:  deg(vi) = 3
G 1
T G 1 m ≤ n (n − 1)
 Σv deg(v) = 12
Prova: para cada aresta não direcionada
2 3 4 2 3 4 podemos ter duas direcionadas.

17 18

Terminologia (cont.) Outros Exemplos de Aplicações


Um grafo simples G é dito denso se m se Caminhos Mais Curtos:
O coordenador de um projeto de pesquisa com duração de 5
aproxima do limitante superior na 

anos planeja uma política de substituição de computadores.


propriedade 2 ou 3 anterior.  Novos modelos podem ser adquiridos por $3000 cada. Se
vendidos após 1 ano, eles retêm um valor de $1200. Após 2
G é dito esparso se m é muito menor do anos, o valor de revenda cai para $500, e após 3 anos os
computadores estão obsoletos e não possuem valor.
que o limitante.  Custos de manutenção crescem com a idade, sendo estimados
em $300 no 1o. ano de serviço, $400 no 2o. e $500 no 3o.
 e.g. próximo a n−1 para G conexo.
 Considerando que não se deseja utilizar computadores
obsoletos no projeto:
 obtenha uma política de substituição de computadores com custo
total mínimo ao longo dos 5 anos de projeto.
20
Outros Exemplos de Aplicações Outros Exemplos de Aplicações
Caminhos Mais Curtos (cont.): Caminhos Mais Longos:
 Considere um projeto de construção que tenha sido previamente
 cada nó indica o número de anos completos do projeto
subdividido em atividades, conforme a tabela abaixo:
 um arco ligando um nó a outro indica a compra de um computador no Atividades
k Atividade ak Duração ak (dias)
instante referente ao nó de saída e a venda desse computador no Predecessoras
instante referente ao nó de chegada 1 Fundação 15 ---
2 Saneamento 5 ---
 o custo de cada arco é: (compra)+(manutenção)-(revenda)
3 Pilares 4 1, 2
 solução de custo mínimo: caminho mais curto de 0 a 5. 4 Vigas 3 3
5 Teto 7 4
4200 4200 6 Eletricidade Básica 10 4
3200 3200 7 Aquecimento 13 2, 4
8 Paredes 18 4, 6, 7
2100 2100 2100 2100 2100
0 1 2 3 4 5 9 Acabamento 20 5, 8
3200 3200
 Para planejar adequadamente a compra de material e contratação de
4200
21 empregados, é necessário uma agenda de tarefas. 22

Outros Exemplos de Aplicações Outros Exemplos de Aplicações


Caminhos Mais Longos (cont.): Caminhos Mais Longos (cont.):
 Podemos representar esse problema na forma de um grafo  Note que o menor tempo factível para o início de uma atividade aj é
direcionado, denominado Rede CPM (CPM Project Network): dado pelo caminho mais longo do nó de início ao nó j.

1 5 1 5
0 15 3 7 15 3
0 7
3 6 3 6
4 20 4 20
Início 3 4 10 9 Fim Início 3 4 10 9 Fim
3 3
8 18 18
8
0 5 3 0 5 3
13 13
5 5
2 7 2 7

 um nó para cada atividade, mais nós artificiais de início e fim.  Logo, o tempo mínimo para completar o projeto é dado pelo
caminho mais longo entre os nós de início e fim da rede CPM.
 pesos dos arcos correspondem à duração da atividade referente ao nó
de partida do arco.  Para o exemplo acima, tem-se: Início-1-3-4-7-8-9-Fim = 73 dias.
23 24
Outros Exemplos de Aplicações Exercícios
Árvores Geradoras Mínimas: Exercite os conceitos discutidos sobre grafos
 Muitos problemas de otimização podem ser formulados na
forma de um grafo conexo e solucionados encontrando a sua
elaborando exemplos originais para ilustrar
árvore geradora mínima (shortest spanning tree), também cada um desses conceitos.
denominada árvore geradora de custo mínimo.
 Exemplo: Dentre um conjunto de alternativas, qual o
Elabore e represente por grafos alguns
subconjunto de linhas de comunicação (e.g. fibras ópticas) que exemplos de problemas que possam ser
obrigatoriamente interliguem todo um conjunto de cidades a solucionados através de:
um custo mínimo?
 Caminhos mais curtos
 Caminhos mais longos
 Árvores geradoras mínimas
 Ordenação topológica
25 Nota: Consulte a literatura!
26

Bibliografia
M. T. Goodrich and R. Tamassia, Data Structures
and Algorithms in C++/Java, John Wiley & Sons,
2002/2005.

N. Ziviani, Projeto de Algoritmos, Thomson, 2a.


Edição, 2004.

T. H. Cormen, C. E. Leiserson, and R. L. Rivest,


Introduction to Algorithms, MIT Press, 2nd Edition,
2001.

27