Grafos

13
Estrutura de Dados 1 UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 8 Grafos

Transcript of Grafos

  • Estrutura de Dados 1

    UNIP - Cincia da Computao e Sistemas de Informao

    Estrutura de Dados

    AULA 8

    Grafos

  • Estrutura de Dados 2

    Grafos - Motivao

    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?

    Quantos outros objetos podem ser alcanados a partir de um determinado objeto?

    Grafo uma das estruturas matemticas

    mais utilizadas na cincia.

  • Estrutura de Dados 3

    Grafo - Definio

    Grafo uma representao visual de um determinado conjunto de dados e da ligao

    existente entre alguns elementos.

  • Estrutura de Dados 4

    Grafos - Algumas Aplicaes

    Alguns exemplos de problemas prticos que podem ser resolvidos atravs de uma

    modelagem em grafos:

    Ajudar mquinas de busca a localizar informao relevante na Web (Ex: Google Search)

    Descobrir qual o roteiro mais curto para visitar as principais cidades de uma regio turstica.

    (Ex: Google Maps, Mapas Rodovirios)

    Circuitos Eltricos

    Redes de Computadores

    Redes de transporte e de comunicaes

  • Estrutura de Dados 5

    DESAFIO

    Problema dos canibais e dos missionrios:

    Trs canibais e trs missionrios esto viajando juntos e chegam margem de um rio. O nico meio de transporte um barco que comporta apenas duas pessoas. Em nenhum momento o nmero de canibais pode ser superior ao nmero de missionrios.

    Ref: http://www.plastelina.net/games/game2.html

    COMO RESOLVER ESTE PROBLEMA USANDO GRAFOS?

  • Estrutura de Dados 6

    Grafos

    Um grafo G(V,A) definido pelo par de conjuntos V e A, onde:

    V - conjunto no vazio: os vrtices ou ns do grafo;

    A - conjunto de pares ordenados a = (v; w) so as arestas ou arcos do grafo.

    Exemplo 1 - mdulo 1 teoria dos grafos.

    Considere os conjuntos V e A definidos por:

    V = {p/p uma pessoa} = {Maria, Pedro, Joana, Luiz }

    A = {(v; w)/ v amigo de w } = {(Maria, Pedro), (Joana, Maria), (Pedro, Luiz), (Joana, Pedro)}

  • Estrutura de Dados 7

    Grafos

    Faa a representao grfica dos elementos do conjunto A. Esta representao chamada de GRAFO.

    Soluo:

    No grafo do exemplo 1 uma relao simtrica, ou seja, se ento . A

    ligao entre os vrtices chamada de aresta.

  • Estrutura de Dados 8

    Grafos

    Exemplo 2 - mdulo 1 teoria dos grafos.

    Considere os conjuntos V e A definidos por:

    V = {p/p uma pessoa da famlia Silva} = {Emerson, Isadora, Renata, Antonio, Ceclia,

    Alfredo}

    A = {(v, w)/v pai ou me de w} = {(Isadora, Emerson), (Antonio, Renata), (Alfredo, Emerson),

    (Ceclia, Antonio), (Alfredo, Antonio)}.

    Faa a representao grfica dos elementos do conjunto A.

  • Estrutura de Dados 9

    Grafos

    No grafo exemplo a relao no simtrica pois se , no o caso de . H, portanto, uma orientao na relao, com um

    correspondente efeito na representao grfica. Este

    tipo de grafo chamado de grafo orientado ou digrafo,

    sendo que as conexes entre os vrtices so chamadas

    de arcos.

  • Estrutura de Dados 10

    Grafos Exemplo 3 - mdulo 1 teoria dos grafos.

    O problema das "Pontes de Knigsberg. Knigsberg era uma cidade da antiga Prssia, hoje chamada

    Kaliningrado, na atual Rssia. Na parte central de

    Knigsberg, cortado pelo rio Pregel. O rio Pregel tem

    duas ilhas. Estas esto unidas por uma ponte. Uma ilha

    tem uma ponte que a une ambas as margens, a outra

    tem duas pontes para cada margem.

  • 11

    Grafos Faa uma representao em forma de grafo representando os

    caminhos possveis de um habitante desta cidade fazer entre as

    regies A, B, C e D. Podem os habitantes desta cidade atravessar

    todas as sete pontes num s passeio contnuo?

    Soluo: Colocando as regies A, B, C e D como vrtices temos:

    No possvel um habitante desta cidade atravessar todas as sete pontes num s

    passeio contnuo. Este fato foi provado por

    Euler no sculo XVIII e considerado o

    problema que deu origem a Teoria dos

    Grafos.

    Como h duas arestas entre os vrtices A e C e entre os vrtices A e B, o grafo do

    exemplo 3 chamado de multigrafo.

  • 12

    Terminologia da Teoria dos Grafos

    Ordem: o nmero de vrtices do grafo. A ordem do grafo do exemplo 1 4

    Adjacncia: so os vrtices vizinhos No grafo do exemplo 1, Maria e Pedro so adjacncia.

    Grau: o nmero de arestas incidentes num vrtice No grafo do exemplo 1 o grau vrtice (Pedro) = 3 No caso grafo orientado devemos distinguir grau de emisso do grau de recepo.

    No grafo do exemplo 2 temos: grau de emisso de Antonio igual a 1 e grau de recepo de Antonio igual a 2.

    Nos grafos orientados podemos tambm definir: fonte que um vrtice com grau de recepo igual a zero e sumidouro que um

    vrtice com grau de emisso igual a zero.

    No grafo do exemplo 2, Isadora, Alfredo e Ceclia so fontes enquanto que Renata e Emerson so sumidouros.

  • 13

    Terminologia da Teoria dos Grafos

    Lao (ou loop): uma aresta (ou arco) cujas terminaes esto no mesmo vrtice. No grafo da figura ao lado a1 um lao.

    Caminho: uma sequncia de vrtices tal que de cada um dos vrtices existe uma aresta para o vrtice seguinte.

    Um caminho chamado simples se nenhum dos vrtices no caminho se repete. O comprimento do caminho o nmero de

    arestas que o caminho usa, contando-se arestas mltiplas mltiplas

    vezes.

    Dois caminhos so independentes se no tiverem nenhum vrtice em comum, excepto o primeiro e o ltimo.

    Ciclo (ou circuito): um caminho que comea e acaba com o mesmo vrtice.

    Ciclos de comprimento 1 so laos. Um ciclo simples um ciclo que tem um comprimento pelo menos de 3 e no qual o vrtice inicial s aparece mais uma vez, como vrtice

    final, e os outros vrtices aparecem s uma vez.

    Um grafo chama-se acclico se no contm ciclos simples