Grafos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~loureiro/md/md_9Grafos.pdf · Modelos usando...

download Grafos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~loureiro/md/md_9Grafos.pdf · Modelos usando grafos Grafo Vértice Aresta Comunicação Centrais telefônicas, Compu-tadores,

If you can't read please download the document

Transcript of Grafos - homepages.dcc.ufmg.brhomepages.dcc.ufmg.br/~loureiro/md/md_9Grafos.pdf · Modelos usando...

  • Grafos

    Antonio Alfredo Ferreira [email protected]

    http://www.dcc.ufmg.br/~loureiro

    UFMG/ICEx/DCC MD Grafos 1

    [email protected]://www.dcc.ufmg.br/~loureiro

  • Motivao

    Suponha que existam seis sistemas computacionais (A, B, C, D, E, e F) inter-conectados entre si da seguinte forma:

    E

    A

    B

    C

    DF

    Esta informao pode ser representada por este diagrama, chamado degrafo.

    Este diagrama identifica unicamente um grafo.

    UFMG/ICEx/DCC MD Grafos 2

  • Motivao

    Dois objetos especiais: Vrtices Arestas

    F

    E

    B

    A C

    D

    Vrtice

    Aresta

    UFMG/ICEx/DCC MD Grafos 3

  • Definio

    Um grafo G consiste de dois conjuntos finitos:

    1. Vrtices V (G)2. Arestas E(G)

    Em geral, um grafo G representado como:

    G = (V,E)

    UFMG/ICEx/DCC MD Grafos 4

  • Terminologia

    Cada aresta est associada a um conjunto de um ou dois vrtices, chamadosns terminais.

    Extremidade de uma aresta: vrtice da aresta. Funo arestaextremidade: associa aresta a vrtices. Lao (Loop): aresta somente com n terminal. Arestas paralelas: arestas associadas ao mesmo conjunto de vrtices. Uma aresta dita conectar seus ns terminais. Dois vrtices que so conectados por uma aresta so chamados de adjacen-

    tes. Um vrtice que n terminal de um lao dito ser adjacente a si prprio. Uma aresta dita ser incidente a cada um de seus ns terminais. Duas arestas incidentes ao mesmo vrtice so chamadas de adjacentes. Um vrtice que no possui nenhuma aresta incidente chamado de isolado. Um grafo com nenhum vrtice chamado de vazio.

    UFMG/ICEx/DCC MD Grafos 5

  • Terminologia

    v

    2v 5v 7v

    6v1e

    4v5e

    2e

    3e

    6e4e

    3v

    1

    Arestas paralelas Vrtice isolado

    Lao

    UFMG/ICEx/DCC MD Grafos 6

  • Terminologia

    Conjunto de vrtices:{v1, v2, v3, v4, v5, v6}.

    Conjunto de arestas:{e1, e2, e3, e4, e5, e6, e7}.

    Funo arestavrtice:

    Aresta Vrticee1 {v1, v2}e2 {v1, v3}e3 {v1, v3}e4 {v2, v3}e5 {v5, v6}e6 {v5}e7 {v6}

    e

    3e 3v

    1e 4e

    2v

    1v 4v

    6v

    5v

    6e

    5e

    7e

    2

    UFMG/ICEx/DCC MD Grafos 7

  • Terminologia

    e1, e2 e e3 so incidentes av1.

    v2 e v3 so adjacentes a v1.

    e2, e3 e e4 so adjacentesa e1.

    e6 e e7 so laos.

    e2 e e3 so paralelas.

    v5 e v6 so adjacentes en-tre si.

    v4 um vrtice isolado.

    e

    3e 3v

    1e 4e

    2v

    1v 4v

    6v

    5v

    6e

    5e

    7e

    2

    UFMG/ICEx/DCC MD Grafos 8

  • Terminologia

    Seja um grafo especificadocomo: Conjunto de vrtices:{v1, v2, v3, v4}.

    Conjunto de arestas:{e1, e2, e3, e4}.

    Funo arestavrtice:

    Aresta Vrticee1 {v1, v3}e2 {v2, v4}e3 {v2, v4}e4 {v3}

    Duas possveis representaes deste grafo:

    v4v3e

    2e

    3v

    4e

    1e

    1v

    2

    v

    2e 3e

    2v

    3v

    4e

    1v

    1e

    4

    UFMG/ICEx/DCC MD Grafos 9

  • Terminologia

    Considere os dois diagramas abaixo. Rotule os vrtices e as arestas de talforma que os dois diagramas representem o mesmo grafo.

    UFMG/ICEx/DCC MD Grafos 10

  • Terminologia

    Uma possvel identificao de vrtices ertulos pode ser:

    v

    2v

    3v4v

    5v

    1e

    4e

    3e

    2e

    5e

    1

    v

    4v

    2v

    3v

    1e

    5v

    2e

    3e

    4e

    5e

    1

    Os dois diagramas so repre-sentados por: Conjunto de vrtices:{v1, v2, v3, v4, v5}.

    Conjunto de arestas:{e1, e2, e3, e4, e5}.

    Funo arestavrtice:

    Aresta Vrticee1 {v1, v2}e2 {v2, v3}e3 {v3, v4}e4 {v4, v5}e5 {v5, v1}

    UFMG/ICEx/DCC MD Grafos 11

  • Modelos usando grafosGrafo Vrtice Aresta

    Comunicao Centrais telefnicas, Compu-tadores, Satlites

    Cabos, Fibra ptica, Enlacesde microondas

    Circuitos Portas lgicas, registradores,processadores

    Filamentos

    Hidrulico Reservatrios, estaes debombeamento

    Tubulaes

    Financeiro Aes, moeda TransaesTransporte Cidades, Aeroportos Rodovias, Vias areasEscalonamento Tarefas Restries de precednciaArquitetura funcional deum software

    Mdulos Interaes entre os mdulos

    Internet Pginas Web LinksJogos de tabuleiro Posies no tabuleiro Movimentos permitidosRelaes sociais Pessoas, Atores Amizades, Trabalho conjunto

    em filmes

    UFMG/ICEx/DCC MD Grafos 12

  • Modelos usando grafosCircuito eltrico: Leis de Kirchoff

    Gustav Kirchoff (18241887), fsico alemo. Foi o primeiroa analisar o comportamento de rvo-res matemticas com a investigaode circuitos eltricos.

    i1 + i4 = i2 + i3

    UFMG/ICEx/DCC MD Grafos 13

  • Modelos usando grafosEstruturas de molculas de hidrocarboneto

    Arthur Cayley (18211895), matemtico ingls. Logo apso trabalho de Kirchoff, Cayley usourvores matemticas para enumerartodos os ismeros para certos hidro-carbonetos.

    HH C

    C

    H

    C C

    C

    H

    C C

    C

    H

    C C

    C

    H

    C

    Butano

    CH

    H

    H

    H

    H

    C

    C

    HC

    H

    H

    CC

    H

    H

    Isobutano

    UFMG/ICEx/DCC MD Grafos 14

  • Modelos usandografosConectividade naInternet

    Este grafo mostra a conectividadeentre roteadores na Internet, re-sultado do trabalho Internet Map-ping Project de Hal Burch e BillCheswick.

    Atualmente o trabalho est sendodesenvolvido comercialmente pelaempresa Lumeta (www.lumeta.com).

    UFMG/ICEx/DCC MD Grafos 15

  • Modelos usando grafosConectividade na Internet

    Este trabalho de StephenCoast (http://www.fractalus.com/steve/stuff/ipmap/) estmedindo e mapeando a estru-tura e desempenho da Internet.Este um de seus trabalhosiniciais.

    UFMG/ICEx/DCC MD Grafos 16

  • Modelos usando grafosConectividade na RNP2

    A Rede Nacional de Pesquisa(RNP) criou a primeira infra-estrutura de comunicao (back-bone) no Brasil para intercone-xo com a Internet. Atualmente,este backbone conhecido comoRNP2.

    O grafo de conectividade daRNP2 tem uma estrutura (topo-logia) basicamente na forma deestrela. Note que diferentes en-laces de comunicao (arestas)possuem diferentes capacidades.

    A Internet formada basica-mente por interconexo de Sis-temas Autnomos (AS Autono-mous System), onde cada AS um backbone distinto.

    UFMG/ICEx/DCC MD Grafos 17

  • Modelos usando grafosGrafo de derivao sinttica

    Noam Chomsky John Backus Peter Naur

    Chomsky e outros desenvolveram novas formas dedescrever a sintaxe (estrutura gramatical) de lingua-gens naturais como ingls. Este trabalho tornou-sebastante til na construo de compiladores paralinguagens de programao de alto nvel. Nesteestudo, rvores (grafos especiais) so usadas paramostrar a derivao de sentenas corretas gramati-calmente a partir de certas regras bsicas.

    comum representar estas regras, chamadas deproduo, usando uma notao proposta por Bac-kus (1959) e modificada por Naur (1960) usada paradescrever a linguagem de programao Algol. Estanotao chamada de BNF (Backus-Naur Notation).

    Notao BNF (subconjunto da gram-tica da lngua inglesa):

    sentence ::= noun phraseverb phrasenoun phrase ::= articlenoun |

    articleadjectivenounverb phrase ::= verbnoun phrasearticle ::= theadjective ::= youngnoun ::= man | ballverb ::= caught

    UFMG/ICEx/DCC MD Grafos 18

  • Modelos usando grafosVegetarianos e Canibais (1)

    Seja uma regio formada por vegetarianos e canibais.

    Inicialmente, dois vegetarianos e dois canibais esto na margem esquerda(ME) de um rio.

    Existe um barco que pode transportar no mximo duas pessoas e sempreatravessa o rio com pelo menos uma pessoa.

    O objetivo achar uma forma de transportar os dois vegetarianos e os doiscanibais para a margem direita (MD) do rio.

    Em nenhum momento, o nmero de canibais numa margem do rio pode sermaior que o nmero de vegetarianos, caso contrrio, . . .

    UFMG/ICEx/DCC MD Grafos 19

  • Modelos usando grafosVegetarianos e Canibais (2)

    Soluo: Notao para representar cada cenrio possvel. Modelo para representar a mudana de um cenrio em outro vlido.

    Notao: ME/MD vvccB/ ME: 2v, 2c e o barco (B); MD: . vc/Bvc ME: 1v, 1c; MD: B, 1v e 1c.

    Modelo: grafo Vrtice: cenrio vlido. Aresta: transio vlida de um dado cenrio em outro.

    UFMG/ICEx/DCC MD Grafos 20

  • Modelos usando grafosVegetarianos e Canibais (3)

    Uma possvel sequncia vlida de cenrios :

    /Bvvcc

    vv/Bcc

    vvc/Bc

    cc/Bvv

    vvcB/c

    vvccB/

    c/Bvvc

    ccB/vv

    vcB/vc

    vc/Bvc

    UFMG/ICEx/DCC MD Grafos 21

  • Modelos usando grafosVisualizando grafos

    Graph Drawing: Algorithms for the Vi-sualization of Graphs. Giuseppe DiBattista, Peter Eades, Roberto Tamas-sia, e Ioannis G. Tollis. Prentice HallEngineering, Science & Math, 432 pp.,ISBN 0-13-301615-3.

    Para muitas aplicaes importante dese-nhar grafos com certas restries: Planares, i.e., no h cruzamento de

    arestas

    UFMG/ICEx/DCC MD Grafos 22

  • Grafo simples

    Definio: Um grafo simples um grafo que no possui laos nem arestas pa-ralelas. Num grafo simples, uma aresta com vrtices (ns terminais) u e v representada por uv.

    Exemplo: Quais so os grafos com quatro vrtices {u, v, w, x} e duas arestas,sendo que uma delas a aresta uv? Dado quatro vrtices, existem C(4,2) = 6 subconjuntos, que definem ares-

    tas diferentes: {uv, uw, ux, vw, vx,wx}. Logo, todos os grafos simples de quatro vrtices e duas arestas, sendo uma

    delas a uv so:

    x

    vu

    w x

    vu

    w x

    vu

    w x

    vu

    w x

    vu

    w

    UFMG/ICEx/DCC MD Grafos 23

  • Grafo dirigido (1)

    Definio: Um grafo dirigido ou digrafo ou direcionado G consiste de dois con-juntos finitos:

    1. Vrtices V (G)2. Arestas dirigidas E(G), onde cada aresta associada a um par ordenado

    de vrtices chamados de ns terminais. Se a aresta e associada ao par(u, v) de vrtices, diz-se que e a aresta dirigida de u para v.

    v

    2v 5v 7v

    6v1e

    5e

    2e

    3e

    8e4e

    3v

    4v

    7e6e

    1

    UFMG/ICEx/DCC MD Grafos 24

  • Grafo dirigido (2)

    Para cada grafo dirigido, existe um grafo simples (no dirigido) que obtidoremovendo as direes das arestas, e os loops.

    Grafo dirigido:

    v

    2v 5v 7v

    6v

    3v

    4v1

    Grafo no dirigido correspondente:

    v

    2v 5v 7v

    6v

    3v

    4v1

    UFMG/ICEx/DCC MD Grafos 25

  • Grafo dirigido (3)

    A verso dirigida de um grafo no dirigido G = (V,E) um grafo dirigidoG = (V , E) onde (u, v) E sse (u, v) E.

    Cada aresta no dirigida (u, v) em G substituda por duas arestas dirigidas(u, v) e (v, u).

    Em um grafo dirigido, um vizinho de um vrtice u qualquer vrtice adjacentea u na verso no dirigida de G.

    Grafo no dirigido:

    v

    2v 3v

    1

    Grafo dirigido correspondente:

    v

    2v 3v

    1

    UFMG/ICEx/DCC MD Grafos 26

  • Grafo completo (1)

    Definio: Um grafo completo de n vrtices, denominado Kn, um grafo sim-ples com n vrtices v1, v2, . . . , vn, cujo conjunto de arestas contm exatamenteuma aresta para cada par de vrtices distintos.

    Nota: A letra K representa a letra inicial da palavra komplett do alemo, quesignifica completo.

    Exemplo: Grafos completos com 2, 3, 4, e 5 vrtices.

    vv 1v 2v

    3v

    2v

    3v4v4v

    3v5v

    1v 2v

    5K4K3K2K

    1v21

    UFMG/ICEx/DCC MD Grafos 27

  • Grafo completo (2)

    Dado o grafo completo Kn temos que

    Vrtice est conectado aos vrtices atravs de # arestas(no conectados ainda)

    v1 v2, v3, . . . , vn n 1

    v2 v3, v4, . . . , vn n 2... ... ...

    vn1 vn 1

    vn 0

    ou seja, se contarmos o nmero total de arestas de Kn temos

    n1i=1

    i =(n 1) n

    2=n2 n

    2=

    (|V |2 |V |)2

    UFMG/ICEx/DCC MD Grafos 28

  • Grafo completo (3)

    Os grafos K2, K3, K4, e K5

    vv 1v 2v

    3v

    2v

    3v4v4v

    3v5v

    1v 2v

    5K4K3K2K

    1v21

    possuem a seguinte quantidade de arestas:

    Grafo # arestasK2 1K3 3K4 6K5 10

    UFMG/ICEx/DCC MD Grafos 29

  • Quantidade de grafos distintos com n vrtices (1)

    O nmero total de grafos distintos com n vrtices (|V |)

    2

    n2n2

    = 2

    (|V |2|V |)2

    que representa a quantidade de maneiras diferentes de escolher um subcon-junto a partir de

    n2 n2

    =(|V |2 |V |)

    2possveis arestas de um grafo com n vrtices.

    UFMG/ICEx/DCC MD Grafos 30

  • Quantidade de grafos distintos com n vrtices (2)

    Exemplo: Quantos grafos distintos com 3 vrtices existem?

    Um grafo com 3 vrtices v1, v2 e v3 possui no mximo 3 arestas, ou seja,E = {v1v2, v1v3, v2v3}. O nmero de sub-conjuntos distintos de E dado por P(E), ou seja, o con-

    junto potncia de E que vale 2|E|.

    P(E) =

    ,{v1v2},{v1v3},{v2v3},

    {v1v2, v2v3},{v1v3, v2v3},{v1v2, v1v3},

    {v1v2, v1v3, v2v3}

    Cada elemento de P(E) deveser mapeado num grafo com 3

    vrtices levando a um grafo dis-

    tinto:

    v

    1v 2v

    3

    UFMG/ICEx/DCC MD Grafos 31

  • Quantidade de grafos distintos com n vrtices (3)

    Exemplo: Quantos grafos distintos com 3 vrtices existem (continuao)?

    Para cada elemento (sub-conjunto) do conjunto potncia deE temos um grafodistinto associado, ou seja, o nmero total de grafos com 3 vrtices :

    2

    n2n2

    = 2

    3232

    = 23 = 8

    v

    1v 2v

    3v

    1v 2v

    3v

    1v 2v

    3v

    1v 2v

    3v

    1v 2v

    3v

    1v 2v

    3v

    1v 2v

    3v

    1v 2v

    3

    UFMG/ICEx/DCC MD Grafos 32

  • Grafo ciclo

    Definio: Um grafo ciclo de n vrtices, denominado Cn, n 3, um grafosimples com n vrtices v1, v2, . . . , vn, e arestas v1v2, v2v3, . . ., vn1vn, vnv1.

    Exemplo: Grafos ciclos de 3, 4, e 5 vrtices.

    vv 2v

    3v

    2v

    3v4v4v

    3v5v

    1v 2v

    5C4C3C

    11

    UFMG/ICEx/DCC MD Grafos 33

  • Grafo roda

    Definio: Um grafo roda, denominado Wn, um grafo simples com n + 1vrtices que obtido acrescentado um vrtice ao grafo ciclo Cn, n 3, econectando este novo vrtice a cada um dos n vrtices de Cn.

    Exemplo: Grafos rodas de 3, 4, e 5 vrtices.

    vv 2v

    3v

    2v

    3v4v4v

    3v5v

    1v 2v

    5W4W3W

    4v5v 6v

    11

    UFMG/ICEx/DCC MD Grafos 34

  • Grafo Cubo-n (1)

    Definio: Um grafo cubo-n de 2n vrtices, denominadoQn, um grafo simplesque representa os 2n strings de n bits. Dois vrtices so adjacentes sse osstrings que eles representam diferem em exatamente uma posio.

    O grafo Qn+1 pode ser obtido a partir do grafo Qn usando o seguinte algoritmo:

    1. Faa duas cpias de Qn;2. Prefixe uma das cpias de Qn com 0 e a outra com 1;3. Acrescente uma aresta conectando os vrtices que s diferem no primeiro

    bit.

    UFMG/ICEx/DCC MD Grafos 35

  • Grafo Cubo-n (2)

    Exemplo: Grafos Qn, para n = 1, 2, e 3 vrtices.

    100

    Q 2Q 3Q

    0 1 00

    10 11

    01

    011

    110 111

    010

    101

    000 001

    1

    UFMG/ICEx/DCC MD Grafos 36

  • Grafo bipartido (1)

    Definio: Um grafo bipartido um grafo com vrtices v1, v2, . . . , vm ew1, w2, . . . , wn, que satisfaz as seguintes propriedades:

    i, k = 1,2, . . . ,m j, l = 1,2, . . . , n

    1. as arestas do grafo, cada aresta conecta algum vrtice vi a algum vrticewj;

    2. uma aresta entre cada par de vrtices vi e vk;3. uma aresta entre cada par de vrtices wj e wl;

    UFMG/ICEx/DCC MD Grafos 37

  • Grafo bipartido (1)

    Definio: Um grafo bipartido um grafo com vrtices v1, v2, . . . , vm ew1, w2, . . . , wn, que satisfaz as seguintes propriedades:

    i, k = 1,2, . . . ,m j, l = 1,2, . . . , n

    1. as arestas do grafo, cada aresta conecta algum vrtice vi a algum vrticewj;

    2. uma aresta entre cada par de vrtices vi e vk;3. uma aresta entre cada par de vrtices wj e wl;

    As duas ltimas propriedades so consequncias da primeira.

    UFMG/ICEx/DCC MD Grafos 38

  • Grafo bipartido (2)

    Exemplo: Grafos bipartidos.

    1w

    4v

    3w 3v

    4w

    v 1

    2v

    3v

    4v

    1w

    2w

    3w

    7v

    8v

    v 6

    5v

    4w

    5w

    2vv 1

    1w 2w 3w 4w 2w 2v

    v 1

    UFMG/ICEx/DCC MD Grafos 39

  • Grafo bipartido completo (1)

    Definio: Um grafo bipartido completo de m,n vrtices, denominado Km,n, um grafo simples com vrtices v1, v2, . . . , vm e w1, w2, . . . , wn, que satisfaz asseguintes propriedades:

    i, k = 1,2, . . . ,m j, l = 1,2, . . . , n

    1. uma aresta entre cada par de vrtices vi e wj;2. uma aresta entre cada par de vrtices vi e vk;3. uma aresta entre cada par de vrtices wj e wl;

    UFMG/ICEx/DCC MD Grafos 40

  • Grafo bipartido completo (2)

    Exemplo: Grafos bipartidos completos K3,2 e K3,3.

    w

    2w

    1w

    K3,2

    2v

    1

    K3,3

    v

    3v

    1w1v

    2w2v

    3v 3

    UFMG/ICEx/DCC MD Grafos 41

  • Grafo de Petersen

    Definio: grafo no dirigido cbico com 10 vrtices e 15 arestas, como ilustradoabaixo. um grafo largamente utilizado como exemplo e contra-exemplo paramuitos problemas em teoria dos grafos.

    [Recebe esse nome em homenagem ao matemtico dinamarqus Julius Petersen, que o utilizouem um trabalho publicado em 1898. No entanto, o primeiro registro do uso desse grafo se devea um trabalho de Alfred Kempe, matemtico ingls, 12 anos antes, em 1886.]

    Em teoria dos grafos, existem vrios outros grafos que recebem nomes es-peciais sejam eles baseados em nomes de pessoas (e.g, Folkman, Gabriel,Heawood, Turn, Yao) ou em propriedades (e.g., autocomplementar, com-plementar, disco unitrio, intervalar, orientado balanceado, poliedro).UFMG/ICEx/DCC MD Grafos 42

  • Multigrafo

    Definio: Um multigrafo um grafo que no possui laos mas pode ter arestasparalelas. Formalmente, um multigrafo G = (V,E) consiste de um conjunto Vde vrtices, um conjunto E de arestas, e uma funo f de E para {{u, v}|u, v V, u 6= v}. As arestas e1 e e2 so chamadas mltiplas ou paralelas se f(e1) =f(e2).

    e

    3e 3v

    1e 4e

    2v

    1v 4v

    6v

    5v

    5e

    2

    Vrias aplicaes precisam ser modeladas como um multigrafo.UFMG/ICEx/DCC MD Grafos 43

  • Pseudografo

    Definio: Um pseudografo um grafo que pode ter laos e arestas paralelas.Formalmente, um pseudografo G = (V,E) consiste de um conjunto V de vr-tices, um conjunto E de arestas, e uma funo f de E para {{u, v}|u, v V }.

    Pseudografo mais geral que um multigrafo.

    UFMG/ICEx/DCC MD Grafos 44

  • Multigrafo dirigido

    Definio: Um multigrafo dirigido um grafo que pode ter laos e arestas pa-ralelas. Formalmente, um multigrafo dirigido G = (V,E) consiste de um con-junto V de vrtices, um conjunto E de arestas, e uma funo f de E para{{u, v}|u, v V }. As arestas e1 e e2 so arestas mltiplas se f(e1) = f(e2).

    UFMG/ICEx/DCC MD Grafos 45

  • Hipergrafo

    Definio: Um hipergrafoH(V, F ) definido pelo par de conjuntos V e F , onde: V um conjunto no vazio de vrtices; F um conjunto que representa uma famlia e partes no vazias de V .

    Um hipergrafo um grafo no dirigido em que cada aresta conecta um nmeroarbitrrio de vrtices.

    Seja, por exemplo, o grafo H(V, F )dado por:

    V = {v1, v2, v3, v4}F = {{v1, v2, v4}, {v2, v3, v4}, {v2, v3}}

    v

    1v 2v

    3v4

    UFMG/ICEx/DCC MD Grafos 46

  • Terminologia de grafos

    Tipo Aresta Arestas mltiplas? Laos permitidos?

    Grafo simples No dirigida No No

    Multigrafo No dirigida Sim No

    Pseudografo No dirigida Sim Sim

    Grafo dirigido Dirigida No Sim

    Multigrafo dirigido Dirigida Sim Sim

    UFMG/ICEx/DCC MD Grafos 47

  • Grafo valorado

    Definio: Um grafo valorado um grafo em que cada aresta tem um valor as-sociado. Formalmente, um grafo valorado G = (V,E) consiste de um conjuntoV de vrtices, um conjunto E de arestas, e uma funo f de E para P , onde Prepresenta o conjunto de valores (pesos) associados s arestas.

    Grafo valorado usado para modelar vrios problemas importantes em Ci-ncia da Computao.

    UFMG/ICEx/DCC MD Grafos 48

  • Grafo imersvel

    Definio: Um grafo imersvel em uma superfcie S se puder ser representadogeograficamente em S de tal forma que arestas se cruzem nas extremidades(vrtices).

    Um grafo planar um grafo que imersvel no plano.

    As conexes de uma placa de circuito impresso devem ser representadaspor um grafo planar.

    UFMG/ICEx/DCC MD Grafos 49

  • Subgrafo

    Definio: Um grafo H = (V , E) dito ser um subgrafo de um grafo G =(V,E) sse: cada vrtice de H tambm um vrtice de G, ou seja, V V ; cada aresta de H tambm uma aresta de G, ou seja, E E; e cada aresta deH tem os mesmos ns terminais emG, ou seja, se (u, v) E

    ento (u, v) E.

    Exemplo: Todos os subgrafos do grafo G:

    v

    1v2v

    1v

    3e

    1e 1v2v

    1v2v

    3e

    2v

    2e

    1v2v

    2e

    1e 1v2v

    1e 1v2v

    3e

    2e

    1v2v

    3e

    2e

    1e 1v2v

    3e

    G

    1

    2e

    1e 1v2v

    3e

    10

    8

    3

    21

    9

    4 5

    7

    11

    6

    UFMG/ICEx/DCC MD Grafos 50

  • Grau de um vrtice (1)

    Definio: Seja G um grafo e um vrtice v de G. O grau de v, denominadograu(v) (deg(v)), igual ao nmero de arestas que so incidentes a v, comuma aresta que seja um lao contada duas vezes. O grau total de G a somados graus de todos os vrtices de G.

    Exemplo: Determinando o grau de v1 no grafo abaixo.

    v3v2v

    1v v

    4

    1grau( ) = 5

    UFMG/ICEx/DCC MD Grafos 51

  • Grau de um vrtice (2)

    Em um grafo dirigido o grau de um vrtice v o nmero de arestas quem saemdele (out-deg(v)) mais o nmero de arestas que chegam nele (in-deg(v)).

    Exemplo: Determinando o grau de v3 no grafo abaixo.

    v

    1v

    2v 5v 7v

    6v1e

    2e

    3e

    8e4e

    3v

    4v

    7e6e

    5e

    3grau( ) = 4

    UFMG/ICEx/DCC MD Grafos 52

  • Grau de um vrtice (3)

    Exemplo: Seja o grafoG abaixo. Determine o grau de cada vrtice e o grau totalde G.

    e

    1e 3v2v

    3e

    1v

    2

    grau(v1) = 0, j que no existe aresta incidente a v1, que um vrticeisolado.

    grau(v2) = 2, j que e1 e e2 so incidentes a v2. grau(v3) = 4, j que e1, e2 e e3 so incidentes a v3, sendo que e3 contribui

    com dois para o grau de v3.

    Grau de G = grau(v1) + grau(v2) + grau(v3) = 0 + 2 + 4 = 6 Grau de G = 2 nmero de arestas de G, que 3, ou seja, cada aresta

    contribui com dois para o grau total do grafo.

    UFMG/ICEx/DCC MD Grafos 53

  • Grau de um vrtice (4)

    Teorema (do aperto de mos ou handshaking): Seja G um grafo. A soma dosgraus de todos os vrtices de G duas vezes o nmero de arestas de G. Espe-cificamente, se os vrtices de G so v1, v2, . . . , vn, onde n um inteiro positivo,ento

    Grau de G = grau(v1) + grau(v2) + . . . + grau(vn)= 2 nmero de arestas de G.

    UFMG/ICEx/DCC MD Grafos 54

  • Grau de um vrtice (5)

    Prova:

    Seja G um grafo especfico mas escolhido arbitrariamente.

    Se G no possui vrtices ento no possui arestas, e o grau total 0, que o dobro das arestas, que 0.

    Se G tem n vrtices v1, v2, . . . , vn e m arestas, onde n um inteiro positivoe m um inteiro no negativo. A hiptese que cada aresta de G contribuicom 2 para o grau total de G.

    Suponha que e seja uma aresta arbitrria com extremidades vi e vj. Estaaresta contribui com 1 para o grau de vi e 1 para o grau de vj.

    UFMG/ICEx/DCC MD Grafos 55

  • Grau de um vrtice (6)

    Prova (continuao):

    Isto verdadeiro mesmo se i = j j que no caso de um lao conta-se duasvezes para o grau do vrtice no qual incide.

    vei

    v j

    e=iv v j

    i 6= j i = j

    Assim, a aresta e contribui com 2 para o grau total de G. Como e foi escolhidoarbitrariamente, isto mostra que cada aresta de G contribui com 2 para o grautotal de G.

    ... O grau total de G = 2 nmero de arestas de G.

    Corolrio: O grau total de um grafo par.

    UFMG/ICEx/DCC MD Grafos 56

  • Grafo regular

    Definio: Um grafo dito ser regular quando todos os seus vrtices tm omesmo grau.

    Exemplo: Os grafos completos com 2, 3, 4, e 5 vrtices so grafos regulares.

    vv 1v 2v

    3v

    2v

    3v4v4v

    3v5v

    1v 2v

    5K4K3K2K

    1v21

    UFMG/ICEx/DCC MD Grafos 57

  • Determinando a existncia de certos grafos (1)

    possvel ter um grafo com quatro vrtices de graus 1, 1, 2, e 3?No. O grau total deste grafo 7, que um nmero mpar.

    possvel ter um grafo com quatro vrtices de graus 1, 1, 3, e 3?Sim. Exemplos:

    dd c

    aa b

    cd

    a b

    cd

    a b

    c

    b

    UFMG/ICEx/DCC MD Grafos 58

  • Determinando a existncia de certos grafos (2)

    possvel ter um grafo simples com quatro vrtices de graus 1, 1, 3, e 3?No.

    Prova (por contradio):

    Suponha que exista um grafo simples G com quatro vrtices de graus 1, 1, 3, e 3. Chamea e b os vrtices de grau 1, e c e d os vrtices de grau 3. Como grau(c) = 3 e G nopossui laos ou arestas paralelas, devem existir arestas que conectam c aos vrtices a, be d.

    d c

    a b

    Pelo mesmo raciocnio devem existir arestas que conectam d aos vrtices a, b e c.a b

    d c

    Mas o grau(a) 2 e grau(b) 2, o que contradiz a suposio que estes vrtices tmgrau 1.

    ... A suposio inicial falsa e, consequentemente, no existe um grafo simples com quatrovrtices com graus 1, 1, 3, e 3.

    UFMG/ICEx/DCC MD Grafos 59

  • Determinando a existncia de certos grafos (3)

    possvel num grupo de nove pessoas, cada um ser amigo de exatamentecinco outras pessoas?No.

    Prova (por contradio): Suponha que cada pessoa represente um vrtice de um grafo e a aresta

    indique uma relao de amizade entre duas pessoas (vrtices).

    Suponha que cada pessoa seja amiga de exatamente cinco outras pes-soas.

    Ento o grau de cada vrtice cinco e o grau total do grafo 45.

    ... Isto contradiz o corolrio que o grau total de um grafo par e, consequen-temente, a suposio falsa.

    UFMG/ICEx/DCC MD Grafos 60

  • Caracterstica de um grafo

    Teorema: Em qualquer grafoG, existe um nmero par de vrtices de grau mpar.

    Prova:

    Suponha que G tenha n vrtices de grau mpar e m vrtices de grau par, onde n e m sointeiros no negativos. [Deve-se mostrar que n par.]

    Se n = 0, ento G tem um nmero par de vrtices de grau mpar. Suponha que n 1. Seja P a soma dos graus de todos os vrtices de grau par, I a soma

    dos graus de todos os vrtices de grau mpar, e T o grau total de G. Se p1, p2, . . . , pm so os vrtices de grau par e i1, i2, . . . , in so os vrtices de grau mpar,

    P = grau(p1) + grau(p2) + . . . + grau(pm),I = grau(i1) + grau(i2) + . . . + grau(in),T = grau(p1) + grau(p2) + . . . + grau(pm) +

    grau(i1) + grau(i2) + . . . + grau(in)= P + I [que deve ser um nmero par]

    P par, j que P = 0 ou P a soma de grau(pr), 0 r m, que par. Mas T = P + I e I = T P . Assim, I a diferena de dois inteiros pares, que par. Pela suposio, grau(is), 0 s n, mpar. Assim, I, um inteiro par, a soma de n inteiros

    mpares grau(i1) + grau(i2) + . . . + grau(in). Mas a soma de n inteiros mpares par, enton par [o que devia ser mostrado].

    UFMG/ICEx/DCC MD Grafos 61

  • Determinando a existncia de certos grafos (4)

    possvel ter um grafo com 10 vrtices de graus 1, 1, 2, 2, 2, 3, 4, 4, 4, e 6?No. Duas formas de provar:1. Este grafo supostamente possui trs vrtices de grau mpar, o que no

    possvel.2. Este grafo supostamente possui um grau total = 29, o que no possvel.

    UFMG/ICEx/DCC MD Grafos 62

  • O problema das sete pontes de Knigsberg ouO incio da teoria dos grafos (1)

    Leonhard Euler (1707-1783) aos 49 anos. Tela em leo pintada porJakob Emanuel Handmann em 1756.

    Leonhard Euler, matemtico suo. Considerado um dos maiores matemticos de todos ostempos. Foi um cientista extremamente produtivo contribuindo para muitas reas da matemticacomo teoria dos nmeros, anlise combinatria e anlise, bem como o seu uso em reas comomsica e arquitetura naval. Euler foi o primeiro a usar o termo funo para descrever umaexpresso envolvendo vrios argumentos, ou seja, y = F (x). No total escreveu mais de1100 artigos e livros. Durante os ltimos 17 anos de vida, ele ficou praticamente cego, quandoproduziu quase que metade de seus trabalhos.

    A rea de teoria dos grafos comea em 1736 quando publica um artigo (Solutio problematis adgeometriam situs pertinentis) contendo a soluo para o problema das sete pontes de Knigs-berg, na poca uma cidade da Prssia e, atualmente, cidade da Rssia.

    UFMG/ICEx/DCC MD Grafos 63

  • O problema das sete pontes de Knigsberg ouO incio da teoria dos grafos (2)

    A cidade de Knigsberg foi construda numa regio onde haviam dois braos do Rio Pregel euma ilha. Foram construdas sete pontes ligando diferentes partes da cidade, como mostradona figura:

    Problema: possvel que uma pessoa faa um percurso na cidade de tal forma que inicie evolte a mesma posio passando por todas as pontes somente uma nica vez?

    UFMG/ICEx/DCC MD Grafos 64

  • O problema das sete pontes de Knigsberg ouOnde Knigsberg (3)

    Referncia: Northern Ger-many as far as the Bavarianand Austrian Frontiers; Hand-book for Travellers by Karl Ba-edeker. Fifteenth Revised Edi-tion. Leipzig, Karl Baedeker;New York, Charles ScribnersSons 1910.

    History: Kaliningrad was for-merly the Prussian port of K-nigsberg, capital of East Prus-sia. It was captured by theRed Army in April 1945 andceded to the Soviet Union atthe Potsdam conference. Itwas renamed in honor of se-nior Soviet leader Mikhail Kali-nin, although he never actuallyvisited the area.

    Mapa parcial (recente) da ci-

    dade.

    UFMG/ICEx/DCC MD Grafos 65

  • O problema das sete pontes de Knigsberg (4)

    Euler resolveu este problema dando incio teoria dos grafos.

    Modelagem proposta por Euler: Todos os pontos de uma dada rea de terra podem ser representados por

    um nico ponto j que uma pessoa pode andar de um lado para o outrosem atravessar uma ponte.

    Um ponto conectado a outro se houver uma ponte de um lado para ooutro.

    Graficamente, Euler representou o problema como:

    A

    B

    C

    D

    UFMG/ICEx/DCC MD Grafos 66

  • O problema das sete pontes de Knigsberg (5)

    Problema a ser resolvido: possvel achar um caminho que comece e termine num vrtice qualquer

    (A, B, C, ou D) e passe por cada aresta, exatamente, e uma nica vez?,ou ainda,

    possvel desenhar este grafo que comece e termine na mesma posiosem levantar o lpis do papel?

    D

    C

    A

    B

    UFMG/ICEx/DCC MD Grafos 67

  • O problema das sete pontes de Knigsberg (6)

    Aparentemente no existe soluo!

    Partindo do vrtice A, toda vez que se passa por qual-quer outro vrtice, duas arestas so usadas: a de che-gada e a de sada.

    Assim, se for possvel achar uma rota que usa todasas arestas do grafo e comea e termina em A, ento onmero total de chegadas e sadas de cada vrticedeve ser um valor mltiplo de 2.

    No entanto, temos: grau(A) = grau(C) = grau(D) = 3; e grau(B) = 5.

    Assim, por este raciocnio informal no possvel teruma soluo para este problema.

    D

    C

    A

    B

    UFMG/ICEx/DCC MD Grafos 68

  • Caminhamentos em grafosCaminho (1)

    Seja G um grafo no dirigido, n 1, e v e w vrtices de G.

    Caminho (walk ): Um caminho de v para w uma sequncia alternada devrtices e arestas adjacentes de G. Um caminho tem a forma:

    (v =)v0e1v1e2v2 . . . vn1envn(= w)

    ou ainda

    v0[v0, v1]v1[v1, v2]v2 . . . vn1[vn1, vn]vn

    onde v0 = v e vn = w.

    e

    7

    4e

    2v 1 3v

    2e5e6e

    1v 3e 4v

    e

    Um possvel caminho entre v1 e v4:v1e6v3e2v4e7v2e1v3e2v4e3v1e4v2e5v4

    UFMG/ICEx/DCC MD Grafos 69

  • Caminhamentos em grafosCaminho (2)

    No caso de arestas mltiplas, deve-se indicar qual delas est sendo usada.

    Vrtices v0 e vn so extremidades do caminho.

    Tamanho (comprimento) do caminho: nmero de arestas do mesmo, ou seja,nmero de vrtices menos um.

    O caminho trivial de v para v consiste apenas do vrtice v.

    Se existir um caminho c de v para w ento w alcanvel a partir de v via c.

    UFMG/ICEx/DCC MD Grafos 70

  • Caminhamentos em grafosCaminho fechado (1)

    Caminho fechado (Closed walk ): Caminho que comea e termina no mesmovrtice:

    (v =)v0e1v1e2v3 . . . vn1envn(= w)

    onde v = w.

    e

    7

    4e

    2v 1 3v

    2e5e6e

    1v 3e 4v

    e

    Um possvel caminho fechado :v1e6v3e2v4e7v2e1v3e2v4e3v1e4v2e5v4e3v1

    Um caminho fechado com pelo menos uma aresta chamado de ciclo.

    UFMG/ICEx/DCC MD Grafos 71

  • Caminhamentos em grafosCaminho fechado (2)

    Dois caminhos fechados

    v0v1 . . . vn e v0v1 . . . v

    n

    formam o mesmo ciclo se existir um inteiro j tal que

    vi = vi+j mod n,

    para i = 0,1, . . . , n 1.

    e

    7

    4e

    2v 1 3v

    2e5e6e

    1v 3e 4v

    e

    O caminho fechado v1v2v3v4v1 forma omesmo ciclo que os caminhos fechadosv2v3v4v1v2, v3v4v1v2v3 e v4v1v2v3v4.

    UFMG/ICEx/DCC MD Grafos 72

  • Caminhamentos em grafosTrajeto

    Trajeto (Path): Caminho de v para w sem arestas repetidas:

    (v =)v0e1v1e2v3 . . . vn1envn(= w)

    onde todas as arestas ei so distintas, ou seja, ei 6= ek, para qualquer i 6= k.

    e

    7

    4e

    2v 1 3v

    2e5e6e

    1v 3e 4v

    e

    Um possvel trajeto :v1e6v3e2v4e7v2e1v3

    UFMG/ICEx/DCC MD Grafos 73

  • Caminhamentos em grafosTrajeto simples

    Trajeto simples (Simple path): Caminho de v para w sem arestas e vrticesrepetidos.

    e

    7

    4e

    2v 1 3v

    2e5e6e

    1v 3e 4v

    e

    Um possvel trajeto simples :v1e6v3e2v4e7v2

    UFMG/ICEx/DCC MD Grafos 74

  • Caminhamentos em grafosCircuito

    Circuito (Circuit): Trajeto fechado, ou seja, um caminho onde no h arestarepetida e os vrtices inicial e final so idnticos:

    (v =)v0e1v1e2v3 . . . vn1envn(= w)

    onde toda aresta ei,1 i n, distinta e v0 = vn.

    e

    7

    4e

    2v 1 3v

    2e5e6e

    1v 3e 4v

    e

    Um possvel circuito :v1e6v3e2v4e7v2e1v3

    UFMG/ICEx/DCC MD Grafos 75

  • Caminhamentos em grafosCircuito simples

    Circuito simples (Simple circuit): Trajeto fechado, ou seja, um caminho ondeno h arestas e vrtices repetidos, exceto os vrtices inicial e final que soidnticos.

    e

    7

    4e

    2v 1 3v

    2e5e6e

    1v 3e 4v

    e

    Um possvel circuito simples :v1e6v3e2v4e7v2e4v1

    Um circuito simples tambm chamado de ciclo simples.

    UFMG/ICEx/DCC MD Grafos 76

  • Terminologia de caminhamentosAresta Vrtice Comea e termina

    Tipo repetida? repetido? no mesmo vrtice?

    Caminho (walk ) Pode Pode Pode

    Caminho fechado (closed walk ) Pode Pode Sim

    Trajeto (path) No Pode Pode

    Trajeto simples (simple path) No No No

    Circuito (circuit) No Pode Sim

    Circuito simples (simple circuit) No v0 = vn Sim

    UFMG/ICEx/DCC MD Grafos 77

  • Caminhamentos em grafosNotao simplificada (1)

    Em geral um caminho pode ser identificado de forma no ambgua atravs deuma sequncia de arestas ou vrtices.

    e

    3e

    1e

    1v 2v 3v4e

    2

    O caminho e1e2e4e3 representa de forma no ambgua o caminhov1e1v2e2v3e4v3e3v2

    A notao e1 ambgua, se usada para referenciar um caminho, pois poderepresentar duas possibilidades: v1e1v2 ou v2e1v1.

    A notao v2v3 ambgua, se usada para referenciar um caminho, pois poderepresentar duas possibilidades: v2e2v3 ou v2e3v3.

    UFMG/ICEx/DCC MD Grafos 78

  • Caminhamentos em grafosNotao simplificada (2)

    e

    1v 2v

    3e2e

    3v

    1

    A notao v1v2v2v3, se for associada a um caminho, representa de formano ambgua o caminho v1e1v2e2v2e3v3

    Se um grafo G no possui arestas paralelas, ento qualquer caminho em Gpode ser determinado de forma nica por uma sequncia de vrtices.

    UFMG/ICEx/DCC MD Grafos 79

  • Identificando o caminhamento (1)

    v

    e

    2e3e

    4e

    5e

    7e

    9e

    8e

    1v

    4v3v

    6e

    6v 5v

    e102

    1

    Que tipo de caminhamento ? v1e1v2e3v3e4v3e5v4

    Aresta repetida? No. Vrtice repetido? Sim v3. Comea e termina no mesmo

    vrtice? No. Trajeto.

    e1e3e5e5e6 Aresta repetida? Sim e5. Vrtice repetido? Sim v3. Comea e termina no mesmo

    vrtice? No. Caminho.

    UFMG/ICEx/DCC MD Grafos 80

  • Identificando o caminhamento (2)

    v

    e

    2e3e

    4e

    5e

    7e

    9e

    8e

    1v

    4v3v

    6e

    6v 5v

    e102

    1

    Que tipo de caminhamento ? v2v3v4v5v3v6v2

    Aresta repetida? No. Vrtice repetido? Sim v2 e v3. Comea e termina no mesmo

    vrtice? Sim v2. Circuito.

    v2v3v4v5v6v2 Aresta repetida? No. Vrtice repetido? Sim v2. Comea e termina no mesmo

    vrtice? Sim v2. Circuito simples.

    UFMG/ICEx/DCC MD Grafos 81

  • Identificando o caminhamento (3)

    v

    e

    2e3e

    4e

    5e

    7e

    9e

    8e

    1v

    4v3v

    6e

    6v 5v

    e102

    1

    Que tipo de caminhamento ? v2v3v4v5v6v3v2

    Aresta repetida? Sim e3. Vrtice repetido? Sim v2 e v3. Comea e termina no mesmo

    vrtice? Sim v2. Caminho fechado.

    v1 Aresta repetida? No. Vrtice repetido? No. Comea e termina no mesmo

    vrtice? Sim v1. Caminho (circuito) trivial.

    UFMG/ICEx/DCC MD Grafos 82

  • Fecho transitivo direto

    Definio: O fecho transitivo direto (FTD) de um vrtice v o conjunto de todosos vrtices que podem ser atingidos por algum caminho iniciando em v.

    Exemplo: O FTD do vrtice v5 do grafo ao lado o conjunto {v1, v2, v3, v4, v5, v6}. Note queo prprio vrtice faz parte do FTD j que ele alcanvel partindo-se dele mesmo.

    2v

    4v 6v

    7v

    5v

    3v1v

    UFMG/ICEx/DCC MD Grafos 83

  • Fecho transitivo inverso

    Definio: O fecho transitivo inverso (FTI) de um vrtice v o conjunto de todosos vrtices a partir dos quais se pode atingir v por algum caminho.

    Exemplo: O FTI do vrtice v5 do grafo abaixo o conjunto {v1, v2, v4, v5, v7}. Note que o pr-prio vrtice faz parte do FTI j que dele podealcanar ele mesmo.

    2v

    4v 6v

    7v

    5v

    3v1v

    UFMG/ICEx/DCC MD Grafos 84

  • Conectividade (1)

    Informalmente um grafo conexo (conectado) se for possvel caminhar de qual-quer vrtice para qualquer outro vrtice atravs de uma sequncia de arestasadjacentes.

    Definio: Seja G um grafo. Dois vrtices v e w de G esto conectados sseexiste um caminho de v para w. Um grafoG conexo sse dado um par qualquerde vrtice v e w em G, existe um caminho de v para w. Simbolicamente,

    G conexo vrtices v, w V (G), um caminho de v para w.

    Se a negao desta afirmao for tomada, possvel ver que um grafo no conexo sse existem dois vrtices em G que no esto conectados por qualquercaminho.

    UFMG/ICEx/DCC MD Grafos 85

  • Conectividade (2)

    v 6v3v 4v2v

    1v

    1G

    5

    Grafo conexo.

    v 3v

    2v 4v 6v

    8v 7v

    5v

    2G

    1v

    3v

    2v

    5v

    4v

    6v

    3G

    1

    Grafos no conexos.

    UFMG/ICEx/DCC MD Grafos 86

  • Conectividade (3)Lemas

    Seja G um grafo.

    (a) Se G conexo, ento quaisquer dois vrtices distintos de G podem serconectados por um trajeto simples (simple path).

    (b) Se vrtices v e w so parte de um circuito de G e uma aresta removidado circuito, ainda assim existe um trajeto de v para w em G.

    (c) Se G conexo e contm um circuito, ento uma aresta do circuito pode serremovida sem desconectar G.

    UFMG/ICEx/DCC MD Grafos 87

  • Conectividade (4)

    Os grafos

    v 3v

    2v 4v 6v

    8v 7v

    5v

    2G

    1v

    3v

    2v

    5v

    4v

    6v

    3G

    1

    possuem trs partes cada um, sendo cada parte um grafo conexo.

    Um componente conexo de um grafo um subgrafo conexo de maior tamanhopossvel.

    UFMG/ICEx/DCC MD Grafos 88

  • Componente conexo (1)

    Definio: Um grafo H um componente conexo de um grafo G sse:

    1. H um subgrafo de G;2. H conexo;3. Nenhum subgrafo conexo I de G tem H como um subgrafo e I contm

    vrtices ou arestas que no esto em H.

    Um grafo pode ser visto como a unio de seus componentes conexos.

    UFMG/ICEx/DCC MD Grafos 89

  • Componente conexo (2)

    Os componentes conexos do grafo G abaixo so:

    v 2v

    3v 4v 8v

    6v 7v

    5v

    1e 2e

    5e 3e

    4e1

    G possui trs componentes conexos:

    H1 : V1 = {v1, v2, v3} E1 = {e1, e2}H2 : V2 = {v4} E2 = H3 : V3 = {v5, v6, v7, v8} E3 = {e3, e4, e5}

    UFMG/ICEx/DCC MD Grafos 90

  • Componente fortemente conexo (conectado)

    Um grafo dirigido G = (V,E) fortemente conexo se cada dois vrticesquaisquer so alcanveis a partir um do outro.

    Os componentes fortemente conexos de um grafo dirigido so conjuntos devrtices sob a relao so mutuamente alcanveis.

    Um grafo dirigido fortemente conexo tem apenas um componente fortementeconexo.

    v

    3v 0v

    1v

    4v

    5v2

    Os componentes fortemente conexos do grafo ao lado so:

    H1 : V1 = {v0, v1, v2, v3}H2 : V2 = {v4}H3 : V3 = {v5}

    Observe que {v4, v5} no um componente fortemente co-nexo j que o vrtice v5 no alcanvel a partir do vrtice

    v4.

    UFMG/ICEx/DCC MD Grafos 91

  • Circuito Euleriano (1)

    Definio: Seja G um grafo. Um circuito Euleriano um circuito que contmcada vrtice e cada aresta de G. uma sequncia de vrtices e arestas ad-jacentes que comea e termina no mesmo vrtice de G, passando pelo menosuma vez por cada vrtice e exatamente uma nica vez por cada aresta de G.

    UFMG/ICEx/DCC MD Grafos 92

  • Circuito Euleriano (2)

    Teorema: Se um grafo possui um circuito Euleriano, ento cada vrtice do grafotem grau par.

    Prova: Suponha que G um grafo que tem um circuito Euleriano. [Deve-se mostrar que

    qualquer vrtice v de G tem grau par.]

    Seja v um vrtice particular de G mas escolhido aleatoriamente. O circuito Euleriano possui cada aresta de G incluindo todas as arestas inci-

    dentes a v. Vamos imaginar um caminho que comea no meio de uma das arestas ad-

    jacentes ao incio do circuito Euleriano e continua ao longo deste circuito etermina no mesmo ponto.

    UFMG/ICEx/DCC MD Grafos 93

  • Circuito Euleriano (3)

    v2v

    3v

    4v5v

    0

    1v

    Par de arestas entrada/sada

    Par de arestas entrada/sada

    Comece aqui

    Prova (continuao): Cada vez que o vrtice v visitado atravs de uma aresta de entrada, este

    vrtice deixado j que o caminho termina no meio de uma aresta. J que cada circuito Euleriano passa em cada aresta de G exatamente uma

    nica vez, cada aresta incidente a v visitada uma nica vez neste processo. Como o caminho que passa por v feito atravs de arestas incidentes a v na

    forma de pares entrada/sada, o grau de v deve ser mltiplo de 2. Isto significa que o grau de v par. [O que devia ser mostrado.]

    UFMG/ICEx/DCC MD Grafos 94

  • Circuito Euleriano (4)

    O contrapositivo deste teorema (que logicamente equivalente ao teorema ori-ginal) :

    Teorema: Se algum vrtice de um grafo tem grau mpar, ento o grafo no temum circuito Euleriano.

    Esta verso do teorema til para mostrar que um grafo no possui umcircuito Euleriano.

    e

    7

    4e

    2v 1 3v

    2e5e6e

    1v 3e 4v

    e

    Vrtices v1 e v3 possuem grau 3 e, assim, no possuem um circuito Euleriano.

    UFMG/ICEx/DCC MD Grafos 95

  • Circuito Euleriano (5)

    Revisitando o problema das sete pontes da cidade de Knigsberg.

    A

    B

    C

    D

    Problema: possvel que uma pessoa faa um percurso na cidade de tal formaque inicie e volte a mesma posio passando por todas as pontes somente umanica vez?

    No. Todos os vrtices tm grau mpar.UFMG/ICEx/DCC MD Grafos 96

  • Circuito Euleriano (6)

    No entanto, se cada vrtice de um grafo tem grau par, ento o grafo tem umcircuito Euleriano?

    No. Por exemplo, no grafo abaixo todos os vrtices tm grau par, mas comoo grafo no conexo, no possui um circuito Euleriano.

    v

    1v

    1e

    2e

    3v

    4v

    3e

    4e

    2

    UFMG/ICEx/DCC MD Grafos 97

  • Circuito Euleriano (7)

    Teorema: Se cada vrtice de um grafo no vazio tem grau par e o grafo conexo,ento o grafo tem um circuito Euleriano.

    Prova: [Esta uma prova construtivista, ou seja, apresenta um algoritmo para achar um circuitoEuleriano para um grafo conexo no qual cada vrtice tem grau par.]

    Suponha que G um grafo conexo no vazio e que cada vrtice de G temgrau par. [Deve-se achar um circuito Euleriano para G.] Construa um circuito C usando o algoritmo descrito a seguir.

    PASSO 1:

    Escolha qualquer vrtice v de G. [Este passo pode ser executado j que pela supo-sio o conjunto de vrtices de G no vazio.]

    UFMG/ICEx/DCC MD Grafos 98

  • Circuito Euleriano (8)

    Prova (continuao):

    PASSO 2:

    Escolha uma sequncia qualquer de vrtices e arestas adjacentes, come-ando e terminando em v, sem repetir arestas. Chame o circuito resultantede C.

    [Este passo pode ser executado pelas seguintes razes: Como o grau de cada vrtice de G par, possvel entrar num vrtice qualquer que no

    seja o v por arestas de entrada e sada no visitadas ainda. Assim, uma sequncia de arestas adjacentes distintas pode ser obtida enquanto o vrtice v

    no seja alcanado. Esta sequncia de arestas deve voltar em v j que existe um nmero finito de arestas.

    ]

    UFMG/ICEx/DCC MD Grafos 99

  • Circuito Euleriano (9)

    Prova (continuao):

    PASSO 3: Verifique se C contm cada aresta e vrtice de G. Se sim, C umcircuito Euleriano e o problema est terminado. Caso contrrio, execute ospassos abaixo.

    UFMG/ICEx/DCC MD Grafos 100

  • Circuito Euleriano (10)

    Prova (continuao):

    PASSO 3A:

    Remova todas as arestas do circuito C do grafo G e quaisquer vrtices quese tornaram isolados quando as arestas de C so removidas.

    Chame o grafo resultante de G.

    [Note que G pode no ser conexo, como ilustrado abaixo, mas cada vrtice de G tem grau

    par, j que removendo as arestas de C remove um nmero par de arestas de cada vrtice e a

    diferena de dois nmeros pares par.]

    G:

    uv

    w

    C

    G

    UFMG/ICEx/DCC MD Grafos 101

  • Circuito Euleriano (11)

    Prova (continuao):

    PASSO 3B:

    Escolha qualquer vrtice w comum a ambos C e G.

    [Deve haver pelo menos um vrtice deste tipo j que G conexo. Na figura abaixo existem

    dois vrtices deste tipo: u e w.]

    G:

    uv

    w

    C

    G

    UFMG/ICEx/DCC MD Grafos 102

  • Circuito Euleriano (12)

    Prova (continuao):

    PASSO 3C:

    Escolha uma sequncia qualquer de vrtices e arestas adjacentes, come-ando e terminando em w, sem repetir arestas. Chame o circuito resultantede C.

    [Este passo pode ser executado j que o grau de cada vrtice de G par e G finito. Veja a

    justificativa para o passo 2.]

    UFMG/ICEx/DCC MD Grafos 103

  • Circuito Euleriano (13)

    Prova (continuao):

    PASSO 3D:

    Agrupe C e C para criar um novo circuito C como segue: Comece em v e siga em direo a w. Percorra todo o circuito C e volte a w. Caminhe pela parte de C no percorrida ainda at o vrtice v.

    [O efeito de executar os passos 3C e 3D para o grafo anterior mostrado abaixo.]

    C

    uv

    w

    G:

    C

    C

    UFMG/ICEx/DCC MD Grafos 104

  • Circuito Euleriano (14)

    Prova (continuao):

    PASSO 3E:

    Seja C C e retorne ao passo 3.

    [Como o grafo G finito, a execuo dos passos deste algoritmo termina, com a construo de

    um circuito Euleriano para G. Como diferentes escolhas podem ser feitas, diferentes circuitos

    podem ser gerados.]

    UFMG/ICEx/DCC MD Grafos 105

  • Circuito Euleriano (15)

    Determine se o grafo abaixo tem um circuito Euleriano. Em caso positivo acheum circuito Euleriano para o grafo.

    g

    i

    d

    c

    e h

    f ja

    b

    Os vrtices a, b, c, f, g, i, j tm grau 2. Os vrtices d, e, h tm grau 4. Pelo teorema anterior, este grafo possui um circuito Euleriano.

    UFMG/ICEx/DCC MD Grafos 106

  • Circuito Euleriano (16)

    Seja v = a e seja

    C : abcda.

    i

    bg

    jd

    c

    e h

    fa

    3

    1

    4

    2

    C no um circuito Euleriano para este grafo, mas C possui uma intersecocom o restante do grafo no vrtice d.

    UFMG/ICEx/DCC MD Grafos 107

  • Circuito Euleriano (17)

    Seja C : deghjid. Agrupe C a C para obter

    C : abcdeghjida.

    Seja C C. Ento C pode ser representado pelas arestas rotuladas no grafoabaixo:

    g

    d

    c

    e h

    f j

    i

    a

    b 2

    1

    5

    3

    6

    7

    8

    9

    10

    4

    C no um circuito Euleriano para este grafo, mas C possui uma intersecocom o restante do grafo no vrtice e.

    UFMG/ICEx/DCC MD Grafos 108

  • Circuito Euleriano (18)

    Seja C : efhe. Agrupe C a C para obter

    C : abcdefheghjida.

    Seja C C. Ento C pode ser representado pelas arestas rotuladas no grafoabaixo:

    i

    d

    c

    e h

    f ja

    bg

    92

    4

    11

    5

    10

    6

    13

    7

    12

    8

    1

    3

    C inclui cada aresta do grafo exatamente uma nica vez e, assim, C umcircuito Euleriano para este grafo.

    UFMG/ICEx/DCC MD Grafos 109

  • Circuito Euleriano (19)

    Teorema: Um grafo G tem um circuito Euleriano sse G conexo e cada vrticede G tem grau par.

    Definio: Seja G um grafo e seja v e w dois vrtices de G. Um Trajeto Euleri-ano de v para w uma sequncia de arestas e vrtices adjacentes que comeaem v, termina em w e passa por cada vrtice deG pelo menos uma vez e passapor cada aresta de G exatamente uma nica vez.

    Corolrio: Seja G um grafo e dois vrtices v e w de G. Existe um trajeto Eu-leriano de v para w sse G conexo e v e w tm grau mpar e todos os outrosvrtices de G tm grau par.

    UFMG/ICEx/DCC MD Grafos 110

  • Trajeto Euleriano (1)

    Uma casa possui uma diviso representada pela planta abaixo. possvel umapessoa sair do cmodo A, terminar no cmodo B e passar por todas as portasda casa exatamente uma nica vez? Se sim, apresente um possvel trajeto.

    K

    J

    IA

    B

    C D

    G

    F

    H

    E

    UFMG/ICEx/DCC MD Grafos 111

  • Trajeto Euleriano (2)

    A planta da casa pode ser representada pelo grafo abaixo:

    J

    I

    E

    K

    H

    F

    G

    DC

    B

    A H

    F

    G

    DC

    B

    A

    J

    I

    E

    K

    Cada vrtice deste grafo tem um grau par, exceto os vrtices A e B que tmgrau 1. Assim, pelo corolrio anterior, existe um trajeto Euleriano de A para B.

    AGHFEIHEKJDCBUFMG/ICEx/DCC MD Grafos 112

  • Circuito Hamiltoniano (1)

    William Hamilton (1805

    1865), matemtico irlands. Contri-

    buiu para o desenvolvimento da p-

    tica, dinmica e lgebra. Em particu-

    lar, descobriu a lgebra dos quaterni-

    ons. Seu trabalho provou ser signifi-

    cante para o desenvolvimento da me-

    cnica quntica.

    Em 1859, props um jogo na forma de umdodecaedro (slido de 12 faces).

    UFMG/ICEx/DCC MD Grafos 113

  • Circuito Hamiltoniano (2)Jogo proposto por Hamilton

    Cada vrtice recebeu o nome de uma cidade: Londres, Paris, Hong Kong, NewYork, etc. O problema era: possvel comear em uma cidade e visitar todasas outras cidades exatamente uma nica vez e retornar cidade de partida?

    O jogo mais fcil de ser imaginado projetando o dodecaedro no plano:

    UFMG/ICEx/DCC MD Grafos 114

  • Circuito Hamiltoniano (3)Jogo proposto por Hamilton

    Uma possvel soluo para este grafo :

    Definio: Dado um grafo G, um Circuito Hamiltoniano para G um circuitosimples que inclui cada vrtice de G, ou seja, uma sequncia de vrtices adja-centes e arestas distintas tal que cada vrtice de G aparece exatamente umanica vez.

    UFMG/ICEx/DCC MD Grafos 115

  • Comentrios sobre circuitos Euleriano eHamiltoniano (1)

    Circuito Euleriano: Inclui todas as arestas uma nica vez. Inclui todos os vrtices, mas que podem ser repetidos, ou seja, pode no

    gerar um circuito Hamiltoniano.

    Circuito Hamiltoniano: Inclui todas os vrtices uma nica vez (exceto o inicial = final). Pode no incluir todas as arestas, ou seja, pode no gerar um circuito

    Euleriano.

    UFMG/ICEx/DCC MD Grafos 116

  • Comentrios sobre circuitos Euleriano eHamiltoniano (2)

    possvel determinar a priori se um grafo G possui um circuito Euleriano.

    No existe um teorema que indique se um grafo possui um circuito Hamil-toniano nem se conhece um algoritmo eficiente (polinomial) para achar umcircuito Hamiltoniano.

    No entanto, existe uma tcnica simples que pode ser usada em muitos casospara mostrar que um grafo no possui um circuito Hamiltoniano.

    UFMG/ICEx/DCC MD Grafos 117

  • Determinando se um grafo no possui um circuitoHamiltoniano (1)

    Suponha que um grafo G tenha um circuito Hamiltoniano C dado por:

    C : v0e1v1e2 . . . vn1envn

    Como C um circuito simples, todas as arestas ei so distintas e todos osvrtices so distintos, exceto v0 = vn.

    Seja H um subgrafo de G que formado pelos vrtices e arestas de C, comomostrado na figura abaixo (H o subgrafo com as linhas grossas).

    UFMG/ICEx/DCC MD Grafos 118

  • Determinando se um grafo no possui um circuitoHamiltoniano (2)

    Se um grafo G tem um circuito Hamiltoniano ento G tem um subgrafo H comas seguintes propriedades:

    1. H contm cada vrtice de G;2. H conexo;3. H tem o mesmo nmero de arestas e

    de vrtices;4. Cada vrtice de H tem grau 2.

    Contrapositivo desta afirmao: Se um grafo G no tem um subgrafo H com propriedades (1)(4) ento G

    no possui um circuito Hamiltoniano.

    UFMG/ICEx/DCC MD Grafos 119

  • Determinando se um grafo no possui um circuitoHamiltoniano (3)

    Prove que o grafo G abaixo no tem um circuito Hamiltoniano.

    a

    e

    c

    d

    b

    Se G tem um circuito Hamiltoniano, ento G tem um subgrafo H que:

    1. H contm cada vrtice de G;2. H conexo;3. H tem o mesmo nmero de arestas e de vrtices;4. Cada vrtice de H tem grau 2.

    UFMG/ICEx/DCC MD Grafos 120

  • Determinando se um grafo no possui um circuitoHamiltoniano (4)

    a

    e

    c

    d

    b

    Em G, grau(b) = 4 e cada vrtice de H tem grau 2; Duas arestas incidentes a b devem ser removidas de G para criar H; Qualquer aresta incidente a b que seja removida far com que os outros vr-

    tices restantes tenham grau menor que 2;

    Consequentemente, no existe um subgrafo H com as quatro propriedadesacima e, assim, G no possui um circuito Hamiltoniano.

    UFMG/ICEx/DCC MD Grafos 121

  • O Problema do Caixeiro Viajante (1)

    Em ingls, Traveling Salesman Problem, ou TSP.

    Suponha o mapa abaixo mostrando quatro cidades (A,B,C,D) e as distn-cias em km entre elas.

    A

    C

    D

    B

    40

    50 35

    25

    30

    30

    Um caixeiro viajante deve percorrer um circuito Hamiltoniano, ou seja, visitarcada cidade exatamente uma nica vez e voltar a cidade inicial.

    Que rota deve ser escolhida para minimizar o total da distncia percorrida?

    UFMG/ICEx/DCC MD Grafos 122

  • O Problema do Caixeiro Viajante (2)

    Possvel soluo: Enumere todos os possveis circuitos Hamiltonianos comeando e termi-

    nando em A; Calcule a distncia de cada um deles; Determine o menor deles.

    Rota Distncia (km)

    ABCDA 30+ 30+ 25+ 40 = 125

    ABDCA 30+ 35+ 25+ 50 = 140

    ACBDA 50+ 30+ 35+ 40 = 155

    ACDBA 50+ 25+ 35+ 30 = 140

    ADBCA 40+ 35+ 30+ 50 = 155

    ADCBA 40+ 25+ 30+ 30 = 125

    A

    C

    D

    B

    40

    50 35

    25

    30

    30

    Assim, tanto a rota ABCDA ou ADCBA tem uma distncia total de 125km.

    UFMG/ICEx/DCC MD Grafos 123

  • O Problema do Caixeiro Viajante (3)

    A soluo do TSP um circuito Hamiltoniano que minimiza a distncia to-tal percorrida para um grafo valorado arbitrrio G com n vrtices, onde umadistncia atribuda a cada aresta.

    Algoritmo para resolver o TSP: Atualmente, fora bruta, como feito no exemplo anterior. Problema da classe NP-Completo.

    Exemplo: para o grafo K30 existem

    29! 8,84 1030

    circuitos Hamiltonianos diferentes comeando e terminando num determinadovrtice.

    Mesmo se cada circuito puder ser achado e calculado em apenas 1s, serianecessrio aproximadamente 2,8 1017 anos para terminar a computaonesse computador.UFMG/ICEx/DCC MD Grafos 124

  • Representao de um grafo

    Dado um grafo G = (V,E): V = conjunto de vrtices. E = conjunto de arestas, que pode ser representado pelo subconjunto deV V .

    O tamanho da entrada de dados medido em termos do: Nmero de vrtices |V |. Nmero de arestas |E|.

    Se G conexo ento |E| |V | 1.

    UFMG/ICEx/DCC MD Grafos 125

  • Representao de um grafoConvenes

    Conveno I (Notao): Dentro e somente dentro da notao assinttica os smbolos V e E signifi-

    cam respectivamente |V | e |E|. Se um algoritmo executa em tempo O(V +E) equivalente a dizer que

    executa em tempo O(|V |+ |E|).

    Conveno II (Em pseudo-cdigo): O conjunto V de vrtices de G representado por V [G]. O conjunto E de arestas de G representado por E[G]. Os conjuntos V e E so vistos como atributos de G.

    UFMG/ICEx/DCC MD Grafos 126

  • Representao de um grafoEstruturas de dados

    Matriz de adjacncia: Forma preferida de representar grafos densos (|E| |V |2). Indica rapidamente (O(1)) se existe uma aresta conectando dois vrtices.

    Lista de adjacncia: Representao normalmente preferida. Prov uma forma compacta de representar grafos esparsos (|E| |V |2).

    Matriz de incidncia: Representao que inclui vrtice e aresta.

    As duas primeiras formas acima so as principais formas de representar umgrafo.

    UFMG/ICEx/DCC MD Grafos 127

  • Representao de um grafoMatriz de adjacncia e grafo dirigido (1)

    Seja o grafo dirigido abaixo:

    e

    2e

    4e 5e

    6e

    1v

    2v

    3v

    3e

    1

    Este grafo pode ser representado por uma ma-triz A = (aij), onde (aij) representa o nmerode arestas de vi para vj. Matriz de Adjacncia

    v1 v2 v3

    v1

    A = v2v3

    1

    1

    1

    0

    1

    0

    0

    2

    0

    UFMG/ICEx/DCC MD Grafos 128

  • Representao de um grafoMatriz de adjacncia e grafo dirigido (2)

    Definio: Seja G um grafo dirigido com vrtices v1, v2, . . . , vn. A matriz deadjacncia de G a matriz A = (aij) (A[1 . . . n,1 . . . n]) definida como:

    aij = # de arestas de vi para vj, i, j = 1,2, . . . , n.

    Valor diferente de zero na diagonal principal: lao.

    Valor igual a 1 na entrada (aij): uma nica aresta de vi a vj.

    Valores maiores que 1 na entrada (aij): arestas paralelas de vi a vj.

    Espao: O(V 2).

    UFMG/ICEx/DCC MD Grafos 129

  • Representao de um grafoMatriz de adjacncia e grafo dirigido (3)

    v

    3v

    1e

    3e

    4e

    5e

    2v

    2e

    1

    v1 v2 v3

    v1

    A = v2v3

    0

    0

    2

    0

    1

    1

    0

    1

    0

    v

    1e

    2e 3e

    4e

    5e

    1v3v

    2

    v1 v2 v3

    v1

    A = v2v3

    1

    1

    0

    1

    0

    0

    0

    2

    0

    UFMG/ICEx/DCC MD Grafos 130

  • Representao de um grafoMatriz de adjacncia e grafo dirigido (4)

    Dada a matriz de adjacncia de umgrafo:

    v1 v2 v3 v4

    A =

    v1

    v2

    v3

    v4

    0

    1

    0

    2

    1

    1

    0

    1

    1

    0

    1

    0

    0

    2

    1

    0

    Um possvel desenho deste grafo :

    v

    4v3v

    v1 2

    UFMG/ICEx/DCC MD Grafos 131

  • Representao de um grafoMatriz de adjacncia e grafo no dirigido

    Definio: Seja G um grafo no dirigido com vrtices v1, v2, . . . , vn. A matrizde adjacncia de G a matriz A = (aij) sobre o conjunto dos inteiros nonegativos tal que

    aij = # de arestas conectando vi a vj, i, j = 1,2, . . . , n.

    Dado o grafo:

    v

    3e

    4e5e

    3v4v

    2v2e

    7e

    6e

    1e

    1

    A matriz de adjacncia correspon-dente :

    v1 v2 v3 v4

    A =

    v1

    v2

    v3

    v4

    0

    1

    0

    1

    1

    1

    2

    1

    0

    2

    0

    0

    1

    1

    0

    1

    UFMG/ICEx/DCC MD Grafos 132

  • Representao de um grafoMatriz de adjacncia e componentes conexos

    Dado o grafo:

    v3v

    2v

    3e

    2e

    4e

    1e

    1

    v4v

    6e

    5e

    5

    v

    6v

    7e 8e

    7

    A matriz de adjacncia correspondente :

    A =

    1 0 1 0 0 0 0

    0 0 2 0 0 0 0

    1 2 0 0 0 0 0

    0 0 0 0 1 0 0

    0 0 0 1 1 0 0

    0 0 0 0 0 0 2

    0 0 0 0 0 2 0

    A matriz A consiste de blocos de diferentes tamanhosao longo da diagonal principal, j que o conjunto de vr-tices disjunto.

    UFMG/ICEx/DCC MD Grafos 133

  • Representao de um grafoMatriz de adjacncia: Anlise

    Deve ser utilizada para grafos densos, onde |E| prximo de |V |2 (|E| |V |2).

    O tempo necessrio para acessar um elemento independente de |V | ou |E|.

    muito til para algoritmos em que necessitamos saber com rapidez se existeuma aresta ligando dois vrtices.

    A maior desvantagem que a matriz necessita O(V 2) de espao.

    Ler ou examinar a matriz tem complexidade de tempo O(V 2).

    UFMG/ICEx/DCC MD Grafos 134

  • Representao de um grafoUso de matriz de adjacncia

    Quando usada, a maior parte dos algoritmos requer tempo O(V 2), mas exis-tem excees.

    Seja um grafo dirigido que contm um vrtice sink, ou seja, um vrtice com: Grau de entrada (in-degree) = |V | 1 Grau de sada (out-degree) = 0 No existe uma aresta loop

    Apresente um algoritmo para determinar se um grafo dirigido possui um vr-tice sink em tempo O(V ) usando uma matriz de adjacncia.

    UFMG/ICEx/DCC MD Grafos 135

  • Representao de um grafoNmero de vrtices sink num grafo dirigido

    Quantos vrtices sink um grafo dirigido G = (V,E) possui no mximo? No mximo 1.

    Prova por contradio: Suponha que si e sj sejam vrtices sink. Deve existir uma aresta de todos os ns do grafo G para si e sj, exceto loops. Em particular deve existir uma aresta (si, sj) e uma aresta (sj, si) j que si

    e sj so vrtices sink. Isto no pode ocorrer j que o grau de sada de um vrtice sink 0.

    Logo, se existir um vrtice sink no grafo G no mximo 1.

    UFMG/ICEx/DCC MD Grafos 136

  • Representao de um grafoMatriz de incidncia

    Definio: Seja G um grafo no dirigido com vrtices v1, v2, . . . , vn e arestas e1, e2, . . . , em. Amatriz de incidncia de G a matriz M = (mij) de tamanho n m sobre o conjunto dosinteiros no negativos tal que

    mij =

    {1 quando a aresta ej incidente a vi.0 caso contrrio.

    Dado o grafo:

    v

    3e

    4e5e

    3v4v

    2v2e

    7e

    6e

    1e

    1

    A matriz de incidncia correspondente :

    e1 e2 e3 e4 e5 e6 e7

    M =

    v1

    v2

    v3

    v4

    1

    0

    0

    1

    1

    1

    0

    0

    0

    1

    0

    0

    0

    1

    1

    0

    0

    1

    1

    0

    0

    0

    0

    1

    0

    1

    0

    1

    UFMG/ICEx/DCC MD Grafos 137

  • Representao de um grafoLista de adjacncia

    Vetor Adj de |V | listas, uma para cada vrtice de V .

    Para cada vrtice u V , a lista Adj [u] contm apontadores para todos osvrtices v tal que a aresta (u, v) E (todos os vrtices adjacentes a u emG). Definio vale para grafos no dirigidos e dirigidos.

    |V |i=1 comprimento da lista de adjacncia, vale:

    Grafo dirigido = |E|, cada aresta aparece uma nica vez na lista. Grafo no dirigido = 2|E|, cada aresta aparece duas vezes na lista (entrada

    de u e entrada de v).

    Espao: O(V + E).

    UFMG/ICEx/DCC MD Grafos 138

  • Representao de um grafoLista de adjacncia e grafo dirigido (1)

    Seja o grafo dirigido abaixo:

    e

    2e

    4e 5e

    6e

    1v

    2v

    3v

    3e

    1

    Este grafo pode ser representado por uma listade adjacncia Adj :

    Adj[v1] = [v1]

    Adj[v2] = [v1, v2, v3, v3]

    Adj[v3] = [v1]

    Adj

    v

    3v

    1v 1v

    1v

    3v3v2v1v2

    UFMG/ICEx/DCC MD Grafos 139

  • Representao de um grafoLista de adjacncia e grafo dirigido (2)

    v

    3v

    1e

    3e

    4e

    5e

    2v

    2e

    1

    Este grafo pode ser representadopela lista de adjacncia:

    Adj[v1] = []

    Adj[v2] = [v2, v3]

    Adj[v3] = [v1, v1, v2]

    v

    1e

    2e 3e

    4e

    5e

    1v3v

    2

    Este grafo pode ser representadopela lista de adjacncia:

    Adj[v1] = [v1, v2]

    Adj[v2] = [v1, v3, v3]

    Adj[v3] = []

    UFMG/ICEx/DCC MD Grafos 140

  • Representao de um grafoLista de adjacncia e grafo no dirigido

    Dado o grafo:

    v

    3e

    4e5e

    3v4v

    2v2e

    7e

    6e

    1e

    1

    Uma lista de adjacncia correspon-dente :

    Adj[v1] = [v2, v4]

    Adj[v2] = [v1, v2, v3, v3, v4]

    Adj[v3] = [v2, v2]

    Adj[v4] = [v1, v2, v4]

    UFMG/ICEx/DCC MD Grafos 141

  • Contando caminhos de tamanho n (1)

    O tamanho (comprimento) de um caminho o nmero de arestas do mesmo,ou seja, nmero de vrtices menos um.

    Dado o grafo

    e 4e

    2v

    3v

    1v

    1e

    2e

    3

    O caminho

    v2e3v3e4v2e2v2e3v3

    tem tamanho 4.

    Quantos caminhos distintos de tamanho 2 exis-tem conectando v2 a v2?

    v2e1v1e1v2v2e2v2e2v2v2e3v3e4v2v2e4v3e3v2v2e3v3e3v2v2e4v3e4v2

    Existem seis caminhosdistintos.

    UFMG/ICEx/DCC MD Grafos 142

  • Contando caminhos de tamanho n (2)

    Quantos caminhos distintos de tamanho n existem conectando dois vrtices deum dado grafo G? Este valor pode ser computado usando multiplicao de matrizes.

    Seja o grafo:

    e 4e

    2v

    3v

    1v

    1e

    2e

    3

    A matriz de adjacncia correspondente :

    v1 v2 v3

    v1

    A = v2v3

    0

    1

    0

    1

    1

    2

    0

    2

    0

    UFMG/ICEx/DCC MD Grafos 143

  • Contando caminhos de tamanho n (3)

    O valor de A2 dado por: 0 1 01 1 20 2 0

    0 1 01 1 20 2 0

    = 1 1 21 6 22 2 4

    Observe que a22 = 6, que o nmero de caminhosde tamanho 2 de v2 para v2.

    e 4e

    2v

    3v

    1v

    1e

    2e

    3

    Se A a matriz de adjacncia de um grafo G, a entrada aij da matriz A2

    indica a quantidade de caminhos de tamanho 2 conectando vi a vj no grafoG.

    Este resultado vlido para caminhos de tamanho n calculando An.

    UFMG/ICEx/DCC MD Grafos 144

  • Isomorfismo de grafos (1)

    Os desenhos abaixo

    v

    2v

    3v4v

    5v

    1e5e

    4e 2e

    3e

    1v

    4v

    2v5v

    3v

    1e

    2e

    3e

    4e

    5e

    1

    representam o mesmo grafo G: Conjuntos de vrtices e arestas so idnticos; Funes arestavrtice so as mesmas.

    Grafos isomorfos (do grego, o que significa a mesma forma).UFMG/ICEx/DCC MD Grafos 145

  • Isomorfismo de grafos (2)

    G Gv

    2v

    3v4v

    5v

    1e5e

    4e 2e

    3e

    1 v

    3v

    5v4v

    2v

    1e4e

    2e 3e

    5e

    1

    Vrtices de

    v

    1v

    2v

    3v

    4v

    5v

    1v

    3v

    4v

    5v

    Vrtices de G G

    2

    G

    e

    1e

    2e

    3e

    4e

    5e

    1e

    3e

    4e

    5e

    Arestas de Arestas de G

    2

    Estes grafos so diferen-tes apesar de possurem osmesmos conjuntos de vrti-ces e arestas.

    As funes arestavrticeno so as mesmas.

    UFMG/ICEx/DCC MD Grafos 146

  • Isomorfismo de grafos (3)

    Definio: Sejam os grafos G e G com conjuntos de vrtices V (G) e V (G)e com conjuntos de arestas E(G) e E(G), respectivamente. O grafo G isomorfo ao grafo G sse existem correspondncias um-para-um

    g : V (G) V (G)

    h : E(G) E(G)

    que preservam as funes aresta-vrtice de G e G no sentido que

    v V (G) e E(G)

    v um n terminal de e g(v) um n terminal de h(e).

    UFMG/ICEx/DCC MD Grafos 147

  • Isomorfismo de grafos (4)

    Os grafos

    G G

    v

    3v

    4v

    1e

    4e

    5e

    7e

    6e

    2v

    5v

    3e2e1

    w

    5w

    2f

    2w

    4f

    5f

    3f

    7f

    1f

    3w

    4w6f

    1

    so isomorfos?

    UFMG/ICEx/DCC MD Grafos 148

  • Isomorfismo de grafos (5)

    Para resolver este problema,devemos achar funes

    g : V (G) V (G)e

    h : E(G) E(G)tal que exista a correspon-dncia como mencionadoanteriormente.

    Grafos G e G so iso-morfos.

    G G

    v

    3v

    4v

    1e

    4e

    5e

    7e

    6e

    2v

    5v

    3e2e1

    w

    5w

    2f

    2w

    4f

    5f

    3f

    7f

    1f

    3w

    4w6f

    1

    g

    w

    1v

    2v

    3v

    4v

    5v

    1w

    3w

    4w

    5w

    V(G) V(G)

    2

    E(G)

    f

    1e

    2e

    3e

    4e

    5e

    1f

    3f

    4f

    5f

    7e

    6e 6f

    7f

    hE(G)

    2

    UFMG/ICEx/DCC MD Grafos 149

  • Isomorfismo de grafos (6)

    Os grafos

    G G

    v

    2v3v

    4v 5v

    0v

    2e

    3e 1e

    4e

    6e

    5e7e

    0e

    10e

    9e

    11e

    8e

    7v 6v

    1

    w 2w3w

    7w4w

    0w0f 1f 2f

    3f

    4f 5f 6f

    7e

    8f 9f 10f 11f

    5w 6w

    1

    so isomorfos?

    UFMG/ICEx/DCC MD Grafos 150

  • Isomorfismo de grafos (7)

    Para resolver este problema,devemos achar funes

    g : V (G) V (G)e

    h : E(G) E(G)tal que exista a correspon-dncia como mencionadoanteriormente.

    Grafos G e G so iso-morfos.

    G Gv

    2v3v

    4v 5v

    0v

    2e

    3e 1e

    4e

    6e

    5e7e

    0e

    10e

    9e

    11e

    8e

    7v 6v

    1

    w 2w3w

    7w4w

    0w0f 1f 2f

    3f

    4f 5f 6f

    7e

    8f 9f 10f 11f

    5w 6w

    1

    V(G)

    w

    1v

    2v

    3v

    4v

    5v

    1w

    3w

    4w

    5w

    6v 6w

    g

    0v 0w

    V(G)

    2

    E(G)

    e

    7e

    8e

    9e

    10e

    11e

    0e

    1e

    2e

    4e

    5e

    3e

    7f

    6f

    8f

    9f

    10f

    11f

    1f

    0f

    2f

    3f

    4f

    5f

    hE(G)

    6

    UFMG/ICEx/DCC MD Grafos 151

  • Isomorfismo de grafos (8)

    Isomorfismo de grafos uma relao de equivalncia no conjunto de grafos.

    Informalmente, temos que esta propriedade : Reflexiva: Um grafo isomorfo a si prprio. Simtrica: Se um grafo G isomorfo a um grafo G ento G isomorfo aG.

    Transitiva: Se um grafo G isomorfo a um grafo G e G isomorfo a G

    ento G isomorfo a G.

    UFMG/ICEx/DCC MD Grafos 152

  • Representantes de classes de isomorfismo (1)

    Ache todos os grafos no isomorfos que tm dois vrtices e duas arestas.

    (a) (b) (c) (d)

    Existe um algoritmo que aceita como entrada os grafos G e G e produz comoresultado uma afirmao se estes grafos so isomorfos ou no? Sim. Gere todas as funes g e h e determine se elas preservam as fun-

    es arestavrtice de G e G.

    UFMG/ICEx/DCC MD Grafos 153

  • Representantes de classes de isomorfismo (2)

    Se G e G tm cada um n vrtices e m arestas, o nmero de funes g n!e o nmero de funes h m!, o que d um nmero total de n! m! funes.

    Exemplo para n = m = 20. Temos 20! 20! 5,9 1036 pares a verificar. Assumindo que cada combinao possa ser achada e calculada em ape-

    nas 1s, seria necessrio aproximadamente 1,9 1023 anos para termi-nar a computao nesse computador.

    UFMG/ICEx/DCC MD Grafos 154

  • Invariantes para isomorfismo de grafos (1)

    Teorema: Cada uma das seguintes propriedades uma invariante para isomor-fismo de dois grafos G e G, onde n,m e k so inteiros no negativos:

    1. Tem n vrtices;2. Tem m arestas;3. Tem um vrtice de grau k;4. Tem m vrtices de grau k;5. Tem um circuito de tamanho k;6. Tem um circuito simples de tamanho k;7. Tem m circuitos simples de tamanho k;8. conexo;9. Tem um circuito Euleriano;

    10. Tem um circuito Hamiltoniano.

    Isto significa que seG isomorfo aG ento seG tem uma destas propriedadesG tambm tem.

    UFMG/ICEx/DCC MD Grafos 155

  • Invariantes para isomorfismo de grafos (2)

    Os grafos

    GG

    so isomorfos?

    No. G tem nove arestas e G tem oito arestas.

    UFMG/ICEx/DCC MD Grafos 156

  • Invariantes para isomorfismo de grafos (3)

    Os grafos

    HH

    so isomorfos?

    No. H tem um vrtice de grau 4 e H no tem.

    UFMG/ICEx/DCC MD Grafos 157

  • Isomorfismo de grafos simples (1)

    Definio: Se G e G so grafos simples (sem arestas paralelas e sem laos)ento G isomorfo a G sse existe uma correspondncia g um-para-um doconjunto de vrtices V (G) de G para o conjunto de vrtices V (G) de G quepreserva a funo arestavrtice de G e de G no sentido que

    vrtices u, v G

    uv uma aresta de G {g(u), g(v)} uma aresta de G.

    UFMG/ICEx/DCC MD Grafos 158

  • Isomorfismo de grafos simples (2)

    Os grafos

    z

    b

    c

    d

    a w y

    G G

    x

    so isomorfos?

    UFMG/ICEx/DCC MD Grafos 159

  • Isomorfismo de grafos simples (3)

    z

    b

    c

    d

    a w y

    G G

    x

    Sim, so isomorfos.

    z

    V(G) V(G)g

    a

    b

    c

    d

    w

    x

    y

    A funo g preserva a funo arestavrticede G e de G:

    Arestas de G Arestas de G

    ab yw = {g(a), g(b)}ac yx = {g(a), g(c)}ad yz = {g(a), g(d)}cd xz = {g(c), g(d)}

    UFMG/ICEx/DCC MD Grafos 160

  • rvore

    Definio: Uma rvore (tambm chamada de rvore livre) um grafo no diri-gido acclico e conexo.

    UFMG/ICEx/DCC MD Grafos 161

  • Floresta

    Definio: Uma floresta um grafo no dirigido acclico podendo ou no serconexo.

    UFMG/ICEx/DCC MD Grafos 162

  • rvore geradora (1)

    Suponha que uma companhia a-rea recebeu permisso para voarnas seguintes rotas:

    C

    D

    N

    S L

    I

    M

    A

    No entanto, por questes de econo-mia, esta empresa ir operar ape-nas nas seguintes rotas:

    C

    D

    N

    S L

    I

    M

    A

    Este conjunto de rotas interconectatodas as cidades.

    Este conjunto de rotas mnimo? Sim! Qualquer rvore deste grafo possui oito vrtices e sete arestas.

    UFMG/ICEx/DCC MD Grafos 163

  • rvore geradora (2)

    Definio: Uma rvore geradora de um grafo G um grafo que contm cadavrtice de G e uma rvore.

    Esta definio pode ser estendida para floresta geradora.

    Proposio: Cada grafo conexo tem uma rvore geradora. Duas rvores geradores quaisquer de um grafo tm a mesma quantidade

    de arestas.

    UFMG/ICEx/DCC MD Grafos 164

  • rvore geradora (3)

    Seja o grafo G abaixo

    v0v 2v

    3v4v5v

    1

    Este grafo possui o circuito v2v1v4v2.

    A remoo de qualquer uma das trs arestas docircuito leva a uma rvore.

    Assim, todas as trs rvores geradoras so:

    v0v 2v

    3v4v5v

    1 v0v 2v

    3v4v5v

    1 v0v 2v

    3v4v5v

    1

    UFMG/ICEx/DCC MD Grafos 165

  • rvore geradora mnima ouMinimal Spanning Tree (1)

    O grafo de rotas da companhia a-rea que recebeu permisso paravoar pode ser rotulado com as dis-tncias entre as cidades:

    83

    D

    N

    S

    I

    M

    A

    C695

    242

    355

    74

    262

    269

    348

    306230

    151

    L

    Suponha que a companhia desejavoar para todas as cidades masusando um conjunto de rotas queminimiza o total de distncias per-corridas:

    230

    D

    N

    S

    I

    M

    A

    C

    242

    355

    74

    262

    151

    L83

    Este conjunto de rotas interconectatodas as cidades.

    UFMG/ICEx/DCC MD Grafos 166

  • rvore geradora mnima (2)

    Definio: Um grafo com peso um grafo onde cada aresta possui um pesorepresentado por um nmero real. A soma de todos os pesos de todas asarestas o peso total do grafo. Uma rvore geradora mnima para um grafocom peso uma rvore geradora que tem o menor peso total possvel dentretodas as possveis rvores geradoras do grafo.

    Se G um grafo com peso e e uma aresta de G ento: w(e) indica o peso da aresta e, e w(G) indica o peso total do grafo G.

    UFMG/ICEx/DCC MD Grafos 167

  • Algoritmos para obter a rvore geradora mnima

    Algoritmo de Kruskal.

    Algoritmo de Prim.

    Grafo inicial:

    83

    D

    N

    S

    I

    M

    A

    C695

    242

    355

    74

    262

    269

    348

    306230

    151

    L

    rvore geradora mnima:

    230

    D

    N

    S

    I

    M

    A

    C

    242

    355

    74

    262

    151

    L83

    UFMG/ICEx/DCC MD Grafos 168

  • Algoritmo de Kruskal (1)

    Idia bsica: Seleciona a aresta de menor peso que conecta duas rvores de uma flo-

    resta. Repita o processo at que todos os vrtices estejam conectados sempre

    preservando a invariante de se ter uma rvore.

    UFMG/ICEx/DCC MD Grafos 169

  • Algoritmo de Kruskal (2)

    UFMG/ICEx/DCC MD Grafos 170

  • Algoritmo de Kruskal (3)

    UFMG/ICEx/DCC MD Grafos 171

  • Algoritmo de Prim Idia bsica:

    Tomando como vrtice ini-cialA, crie uma fila de priori-dades classificada pelos pe-sos das arestas conectandoA.

    Repita o processo at quetodos os vrtices tenhamsido visitados.

    UFMG/ICEx/DCC MD Grafos 172