Você está na página 1de 25

Tpicos Avanados em Anlise e Projeto de Sistemas

Introduo a teoria dos Grafos

Prof. MSc. Gilvan Martins Dures

Roteiro

Grafos

Motivaes Conceitos bsicos As Pontes de Knigsberg Definies Representao


Matriz de adjacncia Matriz de incidncia

Exerccios

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

Motivaes

Muitas aplicaes em computao necessitam considerar conjunto de conexes entre pares de objetos:

Existe um caminho para ir de um objeto a outro seguindo as conexes? Qual a menor distncia entre um objeto e outro objeto? Quantos outros objetos podem ser alcanados a partir de um determinado objeto?

Existe um tipo abstrato chamado grafo que usado para modelar tais situaes
TAAPS 2013.2 3

Prof. MSc. Gilvan M. Dures

Conceitos Bsicos

Grafo: conjunto de vrtices e arestas. Vrtice: objeto simples que pode ter nome e outros atributos. Aresta: conexo entre dois vrtices.

Notao: G = (V,A)

G: grafo V: conjunto de vrtices A: conjunto de arestas

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

As Pontes de Knigsberg

Problema antigo proposto por Euler. Problema: para a figura ao lado, possvel identificar um caminho que atravesse todas as pontes uma vez s e retorne ao ponto de partida?

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

As Pontes de Knigsberg

Euler representou o grafo como na figura a seguir e considerou propriedades que veremos depois para resolver (ou mostrar que no possvel resolver) o problema.

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

Grafos Direcionados

Um grafo direcionado G um par (V,A), onde V um conjunto finito de vrtices e A uma relao binria em V .

Uma aresta (u, v) sai do vrtice u e entra no vrtice v. O vrtice v adjacente ao vrtice u. Podem existir arestas de um vrtice para ele mesmo, chamadas de loops.

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

Grafos no direcionados

Um grafo no direcionado G um par (V,A), onde o conjunto de arestas A constitudo de pares de vrtices no ordenados.

As arestas (u, v) e (v, u) so consideradas como uma nica aresta. A relao de adjacncia simtrica. Em grafos no direcionados no existem loops.

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

Grau de um Vrtice

Em grafos no direcionados:

O grau de um vrtice o nmero de arestas que incidem nele. Um vrtice de grau zero dito isolado ou no conectado. Ex.: O vrtice 1 tem grau 2 e o vrtice 3 isolado

Em grafos direcionados:

O grau de um vrtice o nmero de arestas que saem dele (grau de sada) mais o nmero de arestas que chegam nele (grau de entrada). Ex.: O vrtice 2 tem grau de entrada 2, grau de sada 2 e grau 4.
TAAPS 2013.2 9

Prof. MSc. Gilvan M. Dures

Caminho entre Vrtices

Um caminho de comprimento k de um vrtice x a um vrtice y em um grafo G = (V,A) uma sequncia de vrtices (v0, v1, v2, ... , vk) tal que x = v0 e y = vk, e (vi1, vi) A para i = 1, 2, ... , k. O comprimento de um caminho o nmero de arestas nele, isto , o caminho contm os vrtices v0, v1, v2, ... , vk e as arestas (v0, v1), (v1, v2), . . . , (vk1, vk). Se existir um caminho c de x a y ento y alcanvel a partir de x via c.
TAAPS 2013.2 10

Prof. MSc. Gilvan M. Dures

Caminho entre Vrtices


Um caminho simples se todos os vrtices do caminho so distintos. Ex.: O caminho (0, 1, 2, 3) simples e tem comprimento 3. O caminho (1, 3, 0, 3) no simples.

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

11

Ciclos em grafos direcionados


Um caminho (v0, v1, . . . , vk) forma um ciclo se v0 = vk e o caminho contm pelo menos uma aresta. O ciclo simples se os vrtices v1, v2, . . . , vk so distintos. O loop um ciclo de tamanho 1. Ex.: - O caminho (0, 1, 2, 3, 0) forma um ciclo. - O caminho(0, 1, 3, 0) forma o mesmo ciclo que os caminhos (1, 3, 0, 1) e (3, 0, 1, 3).

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

12

Ciclos em grafos no direcionados


Um caminho (v0, v1, . . . , vk) forma um ciclo se v0 = vk e o caminho contm pelo trs arestas. O ciclo simples se os vrtices v1, v2, . . . , vk so distintos. Ex.: - O caminho (0, 1, 2, 0) forma um ciclo.

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

13

Grafos Isomorfos

G = (V,A) e G = (V, A) so isomorfos se existir uma bijeo f : V V tal que (u, v) A se e somente se (f(u), f(v)) A. Em outras palavras, possvel re-rotular os vrtices de G para serem rtulos de G mantendo as arestas correspondentes em G e G. Exemplo:

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

14

Subgrafos

Um grafo G = (V, A) um subgrafo de G = (V,A) se V V e A A. Dado um conjunto V V, o subgrafo induzido por V o grafo G = (V, A), onde A = {(u, v) A | u, v V}.

Ex.: Subgrafo induzido pelo conjunto de vrtices {1, 2, 4, 5}.

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

15

Outras Classificaes de Grafos

Grafo ponderado: possui pesos associados s arestas. Grafo bipartido: grafo no direcionado G = (V,A) no qual V pode ser particionado em dois conjuntos V1 e V2 tal que (u, v) A implica que u V1 e v V2 ou u V2 e v V1 (todas as arestas ligam os dois conjuntos V1 e V2).

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

16

Grafos Completos

Um grafo completo um grafo no direcionado no qual todos os pares de vrtices so adjacentes. Possui (|V|2 |V|)/2 = |V| (|V| 1)/2 arestas, pois do total de |V|2 pares possveis de vrtices devemos subtrair |V | loops e dividir por 2 (cada aresta ligando dois vrtices contada duas vezes). Usa-se a notao Kn para um grafo completo com n vrtices

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

17

rvores

rvore livre: grafo no direcionado acclico e conectado. comum dizer apenas que o grafo uma rvore omitindo o livre. Floresta: grafo no direcionado acclico, podendo ou no ser conectado. rvore geradora de um grafo conectado G=(V,A): subgrafo que contm todos os vrtices de G e forma uma rvore. Floresta geradora de um grafo G = (V,A): subgrafo que contm todos os vrtices de G e forma uma floresta.
TAAPS 2013.2 18

Prof. MSc. Gilvan M. Dures

rvores

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

19

Matriz de Adjacncia

A matriz de adjacncia de um grafo G = (V,A) contendo n vrtices uma matriz n n de bits, onde A[i, j] 1 (ou verdadeiro) se e somente se existe um arco do vrtice i para o vrtice j. Para grafos ponderados A[i, j] contm o rtulo ou peso associado com a aresta e, neste caso, a matriz no de bits. Se no existir uma aresta de i para j ento necessrio utilizar um valor que no possa ser usado como rtulo ou peso.
TAAPS 2013.2 20

Prof. MSc. Gilvan M. Dures

Matriz de Adjacncia - Exemplo

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

21

Exerccios
1) Faa uma lista de todos os grafos simples que tenham {a, b, c} por conjunto de vrtices. 2) Uma pequena fbrica tem cinco mquinas 1, 2, 3, 4 e 5 e seis operrios A, B, C, D, E e F. A tabela especifica as mquinas que cada operrio sabe operar: A 2, 3 B 1, 2, 3, 4, 5 C 3 D E 2, 4, 5 F 2, 5 Faa uma figura do grafo bipartido que representa a relao entre operrios e mquinas.

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

22

Exerccios
3) Um grafo dos estados do Brasil definido assim: cada vrtice um dos estados da Repblica Federativa do Brasil; dois estados so adjacentes se tm uma fronteira comum. Faa um desenho desse grafo. Quantos vrtices tem o grafo? Quais so os graus dos vrtices? Quantas arestas tem o grafo? 4) Qual o maior grau que um vrtice de um grafo simples pode ter? 5) Qual a maior quantidade de arestas que um grafo simples pode ter? 6) Escreva a matriz de adjacncias de um K4. 7) Escreva a matriz de incidncias de um K4. Quanto vale a soma de todos os elementos da matriz de incidncias de um grafo simples?
Prof. MSc. Gilvan M. Dures TAAPS 2013.2 23

Exerccios
8) Todo subgrafo induzido de um grafo completo um grafo completo? 9) Para o grafo representado a seguir, apresente, caso seja possvel: a) um subgrafo induzido que tambm seja um grafo completo, b) um caminho, c) um ciclo, d) uma rvore geradora, e) uma floresta geradora.

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

24

Exerccios
10) Implemente o Tipo Abstrato de Dados GRAFO, de forma que seja possvel a entrada de um grafo (no formato de ns e arestas) e a exibio do grafo (matriz de adjacncia, ou interface grfica.. ). Responda tambm se o grafo lido um grafo simples ou no.

Prof. MSc. Gilvan M. Dures

TAAPS 2013.2

25

Você também pode gostar