Aulas-UFBA-1

Embed Size (px)

Citation preview

  • 8/14/2019 Aulas-UFBA-1

    1/139

    DCC/UFBA MAT156

    Adolfo Almeida Duran

    2005

  • 8/14/2019 Aulas-UFBA-1

    2/139

    Adolfo Duran - 2005 Teoria dos Grafos

    Apresentao

    O curso / motivao Horrio /sala

    Programa do curso

    Referncias Avaliao E-mail : [email protected]

    mailto:[email protected]:[email protected]
  • 8/14/2019 Aulas-UFBA-1

    3/139

    Adolfo Duran - 2005 Teoria dos Grafos

    Porque estudar Grafos

    Importante ferramenta matemtica com aplicaoem diversas reas do conhecimento Gentica, qumica, pesquisa operacional,

    telecomunicaes, engenharia eltrica, redes decomputadores, conexo de vos areos, restries deprecedncia, fluxo de programas, dentre outros

    Utilizados na definio e/ou resoluo de

    problemas

    Introduo

  • 8/14/2019 Aulas-UFBA-1

    4/139

    Adolfo Duran - 2005 Teoria dos Grafos

    Porque estudar Grafos

    Em computao: estudar grafos mais umaforma de solucionar problemas computveis

    Os estudos tericos em grafos, buscam odesenvolvimento de algoritmos mais eficientes.

  • 8/14/2019 Aulas-UFBA-1

    5/139

    Adolfo Duran - 2005 Teoria dos Grafos

    O que so Grafos

    Diagrama - Corresponde a soma de pontos e linhas, onde

    os pontos apresentam alguma informao e as linhasindicam o relacionamento entre dois pontos quaisquer

    Ferramenta de modelagem Abstrao matemtica que representa situaes reais

    atravs de um diagrama.

  • 8/14/2019 Aulas-UFBA-1

    6/139Adolfo Duran - 2005 Teoria dos Grafos

    As pontes de Knigsberg

    Um pouco de histria

    possvel sair de uma das ilhas, passar umanica vez por cada uma das pontes e retornar aoponto de origem ?

  • 8/14/2019 Aulas-UFBA-1

    7/139Adolfo Duran - 2005 Teoria dos Grafos

    As pontes de Knigsberg

    Resolvido em 1736 por Leonhard EulerNecessrio um modelo para representar o

    problema

    Abstrao de detalhes irrelevantes: rea de cada ilha Formato de cada ilha Tipo da ponte, etc.

  • 8/14/2019 Aulas-UFBA-1

    8/139Adolfo Duran - 2005 Teoria dos Grafos

    As pontes de Knigsberg

    Euler generalizou o problema atravs de ummodelo de grafos

  • 8/14/2019 Aulas-UFBA-1

    9/139Adolfo Duran - 2005 Teoria dos Grafos

    As pontes de Knigsberg Euler mostrou que no existe o trajeto proposto

    utilizando o modelo em grafos Verifique nos grafos abaixo se o trajeto proposto possve

  • 8/14/2019 Aulas-UFBA-1

    10/139Adolfo Duran - 2005 Teoria dos Grafos 1

    O problema das 3 casas

    possvel conectar os 3 servios s 3 casassem haver cruzamento de tubulao?

    gua luz telefone

    A teoria

    dosgrafosmostraque no

    possvel

  • 8/14/2019 Aulas-UFBA-1

    11/139Adolfo Duran - 2005 Teoria dos Grafos 1

    Quantascores so

    necessriaspara colorir omapa doBrasil, sendoque estadosadjacentesno podem

    ter a mesmacor?

  • 8/14/2019 Aulas-UFBA-1

    12/139Adolfo Duran - 2005 Teoria dos Grafos 1

    Questes sobre o caminho mnimo

    De forma a reduzir seus custos operacionais,uma empresa de transporte de cargas desejaoferecer aos motoristas de sua frota ummecanismo que os auxilie a selecionar o melhor

    caminho (o de menor distncia) entre quaisquerduas cidades por ela servidas, de forma a quesejam minimizados os custos de transporte.

  • 8/14/2019 Aulas-UFBA-1

    13/139Adolfo Duran - 2005 Teoria dos Grafos 1

  • 8/14/2019 Aulas-UFBA-1

    14/139Adolfo Duran - 2005 Teoria dos Grafos 1

    Modelagem com grafos

    Estamos interessados em objetos e nas relaes entreeles

    Quem so eles nos problemas apresentados?

    Como representar graficamente?

  • 8/14/2019 Aulas-UFBA-1

    15/139Adolfo Duran - 2005 Teoria dos Grafos 1

    Modelagem com grafosNo problema das casas

    Vrtices so casas e servios Arestas so as tubulaes entre casas e servios

    No problema da colorao de mapas Vrtices so estados Arestas relacionam estados vizinhos

    No problema do caminho mais curto Vrtices so as cidades Arestas so as ligaes entre as cidades

  • 8/14/2019 Aulas-UFBA-1

    16/139

    Adolfo Duran - 2005 Teoria dos Grafos 1

    Trs desenvolvimentos isolados despertaramo interesse pela rea

    Formulao do problema das 4 cores (DeMorgan 1852).

    Qual a quantidade mnima de cores para colorir um

    mapa de tal forma que pases fronteirios possuamcores diferentes?Apresenta-se um exemplo em que 3 cores no sosuficientes. Uma prova de que 5 cores suficiente foiformulada. Conjecturou-se ento que 4 cores seriamsuficientes. Esta questo ficou em aberto at 1976quando Appel e Haken provaram para 4 cores

  • 8/14/2019 Aulas-UFBA-1

    17/139

    Adolfo Duran - 2005 Teoria dos Grafos 1

    Trs desenvolvimentos isolados despertaram o interessepela rea

    Problema do ciclo Hamiltoniano (Hamilton 1859)

    Existem n cidades. Cada par de cidades pode ser

    adjacente ou no arbitrariamente. Partindo de umacidade qualquer, o problema consiste em determinar umtrajeto que passe exatamente uma vez em cada cidadee retorne ao ponto de partida.

  • 8/14/2019 Aulas-UFBA-1

    18/139

    Adolfo Duran - 2005 Teoria dos Grafos 1

    Trs desenvolvimentos isolados despertaram

    o interesse pela rea

    Teoria das rvores- Kirchoff (1847) - problemas de circuitos

    eltricos- Cayley (1857) - Qumica Orgnica

    f

  • 8/14/2019 Aulas-UFBA-1

    19/139

    Adolfo Duran - 2005 Teoria dos Grafos 1

    Dois tipos de elementos

    Vrtices ou nsArestas

    Definies

    v1

    v2v3 v4

    v5

    v6

    G f Si l

  • 8/14/2019 Aulas-UFBA-1

    20/139

    Adolfo Duran - 2005 Teoria dos Grafos 2

    G = (V,E)

    V um conjunto finito no-vazio de vrtices E um conjunto finito de arestas

    |V| o nmero de vrtices representado porn, se n=|V|

    |E| o nmero de arestas representado porm, isto m=|E|

    Cada aresta e pertencente ao conjunto E ser denotada pelo

    par de vrtices (x,y) que a forma

    Dizemos que os vrtices x e y so extremos (ouextremidades) da aresta e.

    Grafo Simples

  • 8/14/2019 Aulas-UFBA-1

    21/139

    Adolfo Duran - 2005 Teoria dos Grafos 2

    G = (V,E)

  • 8/14/2019 Aulas-UFBA-1

    22/139

    Adolfo Duran - 2005 Teoria dos Grafos 2

    Dois vrtices x e y so ditos adjacentes ou vizinhos seexiste uma aresta e unindo-os.

    Os vrtices u e v so ditos incidentes na aresta e, seeles so extremos de e.

    Duas arestas so adjacentes se elas tm ao menos umvrtice em comum.

    A aresta e=(x,y) incidente a ambos os vrtices x e y.

  • 8/14/2019 Aulas-UFBA-1

    23/139

    Adolfo Duran - 2005 Teoria dos Grafos 2

    v1

    v2v3 v4

    v5 v6

    e1V = {v1, v2, v3, v4, v5, v6}

    E = {(v1,v2),(v1,v3),(v1,v4),(v2,v4),(v3,v4),(v4,v5)}

    Grafo simples

    e1 incidente a v4 e v5

  • 8/14/2019 Aulas-UFBA-1

    24/139

    Adolfo Duran - 2005 Teoria dos Grafos 2

    Exemplo

    Exerccio

    Desenhe a representao geomtrica do seguintegrafo:

    V = {1,2,3,4,5,6};E ={(1,2),(1,3),(3,2),(3,6),(5,3),(5,1),(5,6),(4,6),(4,5),(6,1),(6,2),(3,4)}

    Mais definies

  • 8/14/2019 Aulas-UFBA-1

    25/139

    Adolfo Duran - 2005 Teoria dos Grafos 2

    Lao uma aresta formada por um par de vrtices idnticos

    Arestas mltiplas ou paralelas Quando existe mais de uma aresta entre o mesmo par

    de vrtices.

    Multigrafo Um grafo que permite a existncia de arestas mltiplas

    Mais definies

  • 8/14/2019 Aulas-UFBA-1

    26/139

    Adolfo Duran - 2005 Teoria dos Grafos 2

    Exerccio

    Defina formalmente o grafo abaixo e identifique osconceitos de lao, aresta mltipla e multigrafo nomesmo:

  • 8/14/2019 Aulas-UFBA-1

    27/139

    Adolfo Duran - 2005 Teoria dos Grafos 2

    Grau de um vrtice

    Grau de um vrtice v (grau(v)) o nmero de arestasque incidem em v.

    O grau de um vrtice v tambm pode ser definidocomo o nmero de arestas adjacentes a v.

    Obs.: Um lao conta duas vezes para o grau de umvrtice

    Grau(b) = 3

    Grau(d) = 2Grau(a) = 2

  • 8/14/2019 Aulas-UFBA-1

    28/139

    Adolfo Duran - 2005 Teoria dos Grafos 2

    Qualquer vrtice de grau zero um vrtice isolado

    Qualquer vrtice de grau 1 umvrtice terminal

    Um vrtice mpartem um nmero mpar de arestas

    Um vrtice par, tem um nmero par de arestas

  • 8/14/2019 Aulas-UFBA-1

    29/139

    Adolfo Duran - 2005 Teoria dos Grafos 2

    Grafo Regular(k-regular) todos os vrtices tm o mesmo grau (k)

    v1

    v2v4

    v3

    Seqncia de graus de um grafo consiste em

    escrever em ordem crescente o grau de todosos seus vrtices

  • 8/14/2019 Aulas-UFBA-1

    30/139

    Adolfo Duran - 2005 Teoria dos Grafos 3

    v1

    v2v3 v4

    v5 v6

    e1

    V6 um vrtice isolado,grau(v6)=0

    V5 um vrtice terminal,grau(v5)=1

    V2 um vrtice par,grau(v2)=2

    V1 um vrtice mpar,grau(v1)=3

    Seqncia de graus = 0,1,2,2,3,4

  • 8/14/2019 Aulas-UFBA-1

    31/139

    Adolfo Duran - 2005 Teoria dos Grafos 3

    Exerccio

    Identificar no grafo abaixo os vrtices isolados,terminais, impares, pares e a seqncia de graus dografo:

    ReflexoO que podemos concluir sobre a soma dos graus deum grafo?

  • 8/14/2019 Aulas-UFBA-1

    32/139

    Adolfo Duran - 2005 Teoria dos Grafos 3

    Soma dos graus de um grafo:

    O resultado sempre par, e corresponde formula

    abaixo:

    A prova inspirada no Lema do Aperto de Mos que diz:

    Se vrias pessoas se apertam a mo o nmero total demos apertadas tem que ser par. Precisamente porque

    duas mos esto envolvidas em cada aperto.

    S

  • 8/14/2019 Aulas-UFBA-1

    33/139

    Adolfo Duran - 2005 Teoria dos Grafos 3

    Soma dos graus de um grafo:

    Em grafos, cada aresta contribui duas unidades para ocmputo geral do grau dos vrtices, pois cada aresta

    possui dois extremos. Portanto, a soma total par e duasvezes o nmero de arestas do grafo.

    Se o grafo forregularde grau r, a soma dos graus dos

    vrtices tambm igual a r vezes o nmero de vrtices.

    A d d f

  • 8/14/2019 Aulas-UFBA-1

    34/139

    Adolfo Duran - 2005 Teoria dos Grafos 3

    A soma dos graus de um grafo sempre par:

    Quando o grafo regular de grau r, temos:

  • 8/14/2019 Aulas-UFBA-1

    35/139

    Adolfo Duran - 2005 Teoria dos Grafos 3

    Corolrio

    Em qualquer grafo, o no

    de vrtices com grau mpar deveser PAR

    Prova

    Para a soma ser par, o primeiro somatrio tem que gerarum resultado par, portanto |Vmpar| par.

  • 8/14/2019 Aulas-UFBA-1

    36/139

    Adolfo Duran - 2005 Teoria dos Grafos 3

    Teorema da Amizade I

    Em toda cidade, com pelo menos dois habitantes,residem duas pessoas com o mesmo nmero deamigos na cidade.

    Exerccio

    Modele o teorema acima usando grafos e prove-o.

  • 8/14/2019 Aulas-UFBA-1

    37/139

    Adolfo Duran - 2005 Teoria dos Grafos 3

    Modelando o problema

    V = pessoas.E = relao de amizade.No existe a necessidade de laos nem dearestas multiplas, ento o grafo simples.

    O enunciado do teorema pode ser representadopela seguinte afirmao:

    Se G(V,E) simples, com |V|

    2, implica queexistem x e y distintos pertencentes a V, tal quegrau(x) = grau(y).

    Demonstrao

  • 8/14/2019 Aulas-UFBA-1

    38/139

    Adolfo Duran - 2005 Teoria dos Grafos 3

    Demonstrao

    Se G simples, ento, 0 grau(v) n - 1, onde n=|V|.

    Alm disso, se existe v, tal que grau(v)= 0, ento noexiste v, tal que grau(v) = n-1.

    Por outro lado, se existe v, tal que grau(v)= n - 1, ento

    no existe v, tal que grau(v) = 0.Suponha que no existe vrtice v onde grau(v)= 0.

    Ento o grau de qualquer vrtice do grafo ter um dos

    valores do conjunto {1, ... , n-1}.

    D t ( t )

  • 8/14/2019 Aulas-UFBA-1

    39/139

    Adolfo Duran - 2005 Teoria dos Grafos 3

    Demonstrao (cont.)

    Ou seja, existem n-1 valores para o grau de n vrtices,

    logo existem vrtices v e w distintos onde grau(v) =grau(w).

    Analogamente, suponha que no existe vrtice v onde

    grau(v)= n-1. Ento o grau de qualquer vrtice do grafoter um dos valores do conjunto {0, ... , n-2}.

    Ou seja, existem n-1 valores para o grau de n vrtices,

    logo existem vrtices v e w distintos onde grau(v) =grau(w).

    D t t di

  • 8/14/2019 Aulas-UFBA-1

    40/139

    Adolfo Duran - 2005 Teoria dos Grafos 4

    Demonstrao por contradio

    Suponha que no existam vrtices x e y, tais que grau(x)

    = grau(y), ou seja, para todo x e y pertencentes a V,grau(x) diferente de grau(y).

    Ento, para vrtices distintos temos:grau(v1) = 0, grau(v2) = 1, grau(v3) = 2, ...., grau(vn) = n -1

    O que representa uma contradio.

    Outros tipos de grafos

  • 8/14/2019 Aulas-UFBA-1

    41/139

    Adolfo Duran - 2005 Teoria dos Grafos 4

    Grafo Nulo (vazio)

    Grafo cujo nmero de arestas zero. Ou, grafo regularde grau zero.

    p g

    1

    4

    3

    2

    Nn um grafo nulo com n vrtices

    Exemplo: N4

    V={1,2,3,4}; E={ }.

    G f C l t

  • 8/14/2019 Aulas-UFBA-1

    42/139

    Adolfo Duran - 2005 Teoria dos Grafos 4

    Grafo Completo

    Grafo simples em que quaisquer vrtices distintos doisa dois so adjacentes. Ou, grafo regular de grau n-1,onde n=|V|.

    Kn

    um grafo completo com n vrtices.

    Exemplo: K4

    Quantas arestas tem o K ?

  • 8/14/2019 Aulas-UFBA-1

    43/139

    Adolfo Duran - 2005 Teoria dos Grafos 4

    Quantas arestas tem o Kn?

    Veja que |E| = ( r * |v| ) / 2, onde r o grau e v o nmero de

    vrtices.

    Logo |E| = (( n - 1 ) n ) / 2

    Podemos provar tambm com anlise combinatria. Onmero de arestas igual ao nmero de combinaes den vrtices dois a dois.

    Cn,m

    = n! / ( m! (n m)! )

    Complemento de um grafo

  • 8/14/2019 Aulas-UFBA-1

    44/139

    Adolfo Duran - 2005 Teoria dos Grafos 4

    Complemento de um grafo

    Seja G um grafo simples com um conjunto de vrticesV.G complemento de G se

    V = Ve

    dois vrtices so adjacentes em G, se e

    somente se, no o so em G

    C l t d f

  • 8/14/2019 Aulas-UFBA-1

    45/139

    Adolfo Duran - 2005 Teoria dos Grafos 4

    Complemento de um grafo

    C l t d f

  • 8/14/2019 Aulas-UFBA-1

    46/139

    Adolfo Duran - 2005 Teoria dos Grafos 4

    Complemento de um grafo

    Exerccio:

    D exemplos que confirmem as propriedadesacima

    Propriedade 1

    Um grafo regular tem complemento regular

    Propriedade 2

    O complemento deKnNn

    Grafo Bipartido

  • 8/14/2019 Aulas-UFBA-1

    47/139

    Adolfo Duran - 2005 Teoria dos Grafos 4

    Grafo Bipartido

    Um grafo dito ser bipartido quando seu conjunto

    de vrtices Vpuder ser particionado em doissubconjuntos V1 e V2, tais que toda aresta de G une

    um vrtice de V1 a outro de V2.

    1

    4

    3

    2

    5

    6

    V1

    V2

    Grafo Bipartido

  • 8/14/2019 Aulas-UFBA-1

    48/139

    Adolfo Duran - 2005 Teoria dos Grafos 4

    Grafo BipartidoSejam os conjuntos H={h | h um homem} e M={m |

    m um mulher} e o grafo G(V,A) onde:

    V= HU MA = {(v,w) | (v He w M) ou (v Me w H) e }

    Grafo Bipartido Completo

  • 8/14/2019 Aulas-UFBA-1

    49/139

    Adolfo Duran - 2005 Teoria dos Grafos 4

    Grafo Bipartido Completo

    um grafo bipartido em V1 e V2, sendo que cada

    elemento de V1 adjacente a cada elemento de V2.

    K3,3

    V1

    V2

    Subgrafo

  • 8/14/2019 Aulas-UFBA-1

    50/139

    Adolfo Duran - 2005 Teoria dos Grafos 5

    Subgrafo

    Um grafo Gs(Vs, As) dito ser subgrafo de um grafo

    G(V,A) quando VsVeAsA. O grafo G2, porexemplo, subgrafo de G1

    G1 G2

    Subgrafo Prprio

  • 8/14/2019 Aulas-UFBA-1

    51/139

    Adolfo Duran - 2005 Teoria dos Grafos 5

    Subgrafo Prprio

    Um subgrafo G2 dito prprio, quando G2 subgrafo distinto de G1

    Subgrafos podem ser obtidos atravs daremoo de arestas e vrtices.

    Subgrafo Induzido

  • 8/14/2019 Aulas-UFBA-1

    52/139

    Adolfo Duran - 2005 Teoria dos Grafos 5

    Subgrafo Induzido

    Se G2 um subgrafo de G1 e possui toda a aresta (v, w)

    de G1 tal que ambos, v e w, estejam em V2, ento G2 o

    subgrafo induzido pelo subconjunto de vrtices V2.

    3 2

    1

    4 5

    V1= {1,2,3,4,5}

    G1

    3 2

    1

    4

    V2= {1,2,3,4}

    G2

    V2 induz G2

    Clique

  • 8/14/2019 Aulas-UFBA-1

    53/139

    Adolfo Duran - 2005 Teoria dos Grafos 5

    Clique

    Denomina-se clique de um grafo G a um subgrafo

    (induzido) de G que seja completo

    Conjunto Independente de Vrtices (C I V )

  • 8/14/2019 Aulas-UFBA-1

    54/139

    Adolfo Duran - 2005 Teoria dos Grafos 5

    Conjunto Independente de Vrtices (C. I. V.)

    Chama-se C.I.V. a um conjunto induzido de G que seja

    um grafo nulo

    O tamanho de um clique ou de um C.I.V. igual cardinalidade de seu conjunto de vrtices.

    Grafo Rotulado

  • 8/14/2019 Aulas-UFBA-1

    55/139

    Adolfo Duran - 2005 Teoria dos Grafos 5

    Grafo Rotulado

    Um grafo G(V,A) dito ser rotulado em vrtices (ou

    arestas) quando a cada vrtice (ou aresta) estiverassociado um rtulo

    Grafo Valorado

  • 8/14/2019 Aulas-UFBA-1

    56/139

    Adolfo Duran - 2005 Teoria dos Grafos 5

    Grafo Valorado

    Um grafo G(V,A) dito ser valorado quando existe

    uma ou mais funes relacionando Ve/ouA comum conjunto de nmeros.

    V= {v | v uma cidade com aeroporto}A = {(v,w,t) | }

    Isomorfismo de Grafos

  • 8/14/2019 Aulas-UFBA-1

    57/139

    Adolfo Duran - 2005 Teoria dos Grafos 5

    Isomorfismo de Grafos

    Dois grafos G1 e G2 so isomorfos se existe uma

    correspondncia um a um entre os vrtices de G1 e

    G2, com a propriedade de que o nmero de arestas

    unindo os vrtices em G1 igual ao nmero de

    arestas unindo os vrtices correspondentes em G2.

    Isomorfismo de Grafos (em outras palavras)

  • 8/14/2019 Aulas-UFBA-1

    58/139

    Adolfo Duran - 2005 Teoria dos Grafos 5

    Isomorfismo de Grafos (em outras palavras)

    Sejam dois grafos G1(V

    1,A

    1) e G

    2(V

    2,A

    2). Um

    isomorfismo de G1 sobre G2 um mapeamentobijetivo f: V

    1 V

    2tal que {x,y} A

    1se e somente se

    {f(x),f(y)}A2, para todo x,y V

    1.

    Funo:{ (a2), (b 1), (c 3), (d 4), (e 6), (f 5) }

    Isomorfismo de Grafos (exemplo)

  • 8/14/2019 Aulas-UFBA-1

    59/139

    Adolfo Duran - 2005 Teoria dos Grafos 5

    so o s o de G a os (e e p o)

    f(u) = azul, f(v) = lils, f(w) = vermelho,f(x) = verde, f(y) = amarelo, f(z) = rosa

    u v w

    x y z

    Isomorfismo de Grafos

  • 8/14/2019 Aulas-UFBA-1

    60/139

    Adolfo Duran - 2005 Teoria dos Grafos 6

    Preserva:

    Simetria: G1 G2 G2 G1Reflexividade: G1 G1Transitividade: G1 G2 e G2 G3 G1 G3

    Proposies vlidas se G1 G2

    G1 e G2 tm o mesmo nmero de vrtices

    G1 e G2 tm o mesmo nmero de arestasG1 e G2 tm a mesma sequncia de graus

    Grafos Orientados ou Dgrafos

  • 8/14/2019 Aulas-UFBA-1

    61/139

    Adolfo Duran - 2005 Teoria dos Grafos 6

    Um dgrafo D(V,A) um conjunto finito no vazio V de

    vrtices, e um conjunto A de pares ordenados deelementos de V. Chamamos o conjunto A de arcos

    Digrafo Simples

    um digrafo que no possui laos e os arcos so todosdistintos

    Mais sobre dgrafos

  • 8/14/2019 Aulas-UFBA-1

    62/139

    Adolfo Duran - 2005 Teoria dos Grafos 6

    Conjunto finito no vazio de vrtices

    Conjunto finito no vazio de arestas Arestas so chamadas de arcos Um arco (v,w) passa a servw

    D = (V,A)

    V = {a,b,c,d)

    A = {ac,ba,bc,cb,cd,cd)

    a d

    b c

    Dgrafos Simples

  • 8/14/2019 Aulas-UFBA-1

    63/139

    Adolfo Duran - 2005 Teoria dos Grafos 6

    g pTodos os arcos so distintos

    No existem auto-laos Para obter o grafo correspondente a um dgrafo

    Eliminar as direes dos arcos

    No necessariamente um grafo correspondente aum dgrafo simples um grafo simples

    Apresente um exemplo de um dgrafo

    simples que quando transformadoem grafo, no simples

    Os vrtices de um dgrafo possuem:G d d d h i

  • 8/14/2019 Aulas-UFBA-1

    64/139

    Adolfo Duran - 2005 Teoria dos Grafos 6

    Grau de entrada: nmero de arcos que chegam no vrtice(grauent(v))

    Grau de sada: nmero de arcos que partem do vrtice(grausai(v)) Da mesma forma:

    Sequncia de graus de entrada

    Sequncia de graus de sada

    Proposio

    grauent(vi) = grausai(vi) = | A |

    Os dgrafos so isomrficos se:

  • 8/14/2019 Aulas-UFBA-1

    65/139

    Adolfo Duran - 2005 Teoria dos Grafos 6

    Existe um isomorfismo entre os respectivos grafoscorrespondentes

    Preserva a ordem dos vrtices em cada arco

    a d

    b c

    a d

    b c

    Os grafos abaixo no so isomorfos

    Unio

    Operaes com grafos

  • 8/14/2019 Aulas-UFBA-1

    66/139

    Adolfo Duran - 2005 Teoria dos Grafos 6

    Unio

    Considere 2 grafos G1(V1,E1) e G2(V2,E2) onde V1 e V2

    so conjuntos distintos A unioG1 G2 formada pelo grafo com conjunto de

    vrtices V1 V2 e conjunto de arestas E1 E2

    Exemplo

    G: V1={1,2} e E1={(1,2)}

    H: V2={3,4} e E2={ }GH: V={1,2,3,4} e E={(1,2)}

    Soma

    Considere 2 grafos G1(V1 E1) e G2(V2 E2) onde V1 e V2

  • 8/14/2019 Aulas-UFBA-1

    67/139

    Adolfo Duran - 2005 Teoria dos Grafos 6

    Considere 2 grafos G1(V1,E1) e G2(V2,E2) onde V1 e V2so conjuntos distintos

    A soma G1 + G2 formada por G1 G2 e de arestasligando cada vrtice de G1 a cada vrtice de G2.

    Exemplo

    G: V1 = {1,2} e E1 = {(1,2)}

    H: V2 = {3,4} e E2 = { }G + H: V={1,2,3,4} e E={(1,2),(1,3),(1,4),(2,3),(2,4)}

    Exemplo

  • 8/14/2019 Aulas-UFBA-1

    68/139

    Adolfo Duran - 2005 Teoria dos Grafos 6

    1 2

    G H

    3 4

    GH G + H

    1 2

    3 4

    1 2

    3 4

    Unio e Soma

  • 8/14/2019 Aulas-UFBA-1

    69/139

    Adolfo Duran - 2005 Teoria dos Grafos 6

    Podem ser aplicadas a qualquer nmero finito de grafos

    So operaes associativas

    So operaes comutativas

    Remoo de Aresta

  • 8/14/2019 Aulas-UFBA-1

    70/139

    Adolfo Duran - 2005 Teoria dos Grafos 7

    Se e uma aresta de um grafo G, denota-se G-e o grafo

    obtido de G pela remoo da aresta e

    Genericamente, se F um conjunto de arestas em G,denota-se G-F ao grafo obtido pela remoo das arestasem F.

    Remoo de Vrtice

  • 8/14/2019 Aulas-UFBA-1

    71/139

    Adolfo Duran - 2005 Teoria dos Grafos 7

    Se v um vrtice de um grafo G denota-se por G-v o

    grafo obtido de G pela remoo do vrtice vconjuntamente com as arestas incidentes a v.

    Genericamente denota-se G-S ao grafo obtido pelaremoo dos vrtices em S, sendo S um conjunto

    qualquer de vrtices de G.

    Contrao de aresta

  • 8/14/2019 Aulas-UFBA-1

    72/139

    Adolfo Duran - 2005 Teoria dos Grafos 7

    Denota-se porG/e o grafo obtido pela contrao da aresta

    e. Isto significa removere de G e unir suas duasextremidades v,w de tal forma que o vrtice resultanteseja incidente s arestas originalmente incidentes a v e w.

    Representao de grafos

  • 8/14/2019 Aulas-UFBA-1

    73/139

    Adolfo Duran - 2005 Teoria dos Grafos 7

    Embora seja conveniente arepresentao de grafos atravs dediagramas de pontos ligados por

    linhas, tal representao inadequada se desejamos armazenar

    grandes grafos em um computador

    Uma maneira simples de armazenar grafos,

  • 8/14/2019 Aulas-UFBA-1

    74/139

    Adolfo Duran - 2005 Teoria dos Grafos 7

    listando os vrtices adjacentes a cada vrtice do

    grafo

    u: v,y

    v: u,y,ww: v,x,yx: w,yy: u,v,w,x

    u

    y v

    x w

    Matriz de adjacncia

  • 8/14/2019 Aulas-UFBA-1

    75/139

    Adolfo Duran - 2005 Teoria dos Grafos 7

    Se G um grafo com vrtices {1,2,3,...,n}, sua matrizde adjacncia a matriz n X n cujo elemento ij onmero de arestas ligando o vrtice i ao vrticej

    Matriz de incidncia

  • 8/14/2019 Aulas-UFBA-1

    76/139

    Adolfo Duran - 2005 Teoria dos Grafos 7

    Se G um grafo com vrtices {1,2,3,...,n} e arestas

    {1,2,3,...,m}, sua matriz de incidncia a matriz n X mcujo elemento ij o nmero de vezes em que o vrticei incidente arestaj.

    Grafo ConexoConectividade

  • 8/14/2019 Aulas-UFBA-1

    77/139

    Adolfo Duran - 2005 Teoria dos Grafos 7

    Um grafo G(V,A) dito ser conexo se ele nopode ser expresso como a unio de dois grafos.

    G1 G2

    Grafo desconexo

  • 8/14/2019 Aulas-UFBA-1

    78/139

    Adolfo Duran - 2005 Teoria dos Grafos 7

    Um grafo G(V,A) dito ser desconexo se ele podeser expresso pela unio de dois outros grafos.

    Componente conexa

  • 8/14/2019 Aulas-UFBA-1

    79/139

    Adolfo Duran - 2005 Teoria dos Grafos 7

    Um grafo G(V,A) desconexo formado por pelo menosdois subgrafos conexos, disjuntos em relao aos vrtices

    Cada um destes subgrafos conexos dito ser umacomponente conexa de G.

    Vrtice de corteUm vrtice dito ser um vrtice de corte se

  • 8/14/2019 Aulas-UFBA-1

    80/139

    Adolfo Duran - 2005 Teoria dos Grafos 8

    Um vrtice dito ser um vrtice de corte sesua remoo (juntamente com as arestas aele conectadas) provoca uma reduo naconectividade do grafo.

    X2 um vrtice de corte

    PonteUma aresta dita ser uma ponte se sua

  • 8/14/2019 Aulas-UFBA-1

    81/139

    Adolfo Duran - 2005 Teoria dos Grafos 8

    Uma aresta dita ser uma ponte se suaremoo provoca uma reduo naconectividade do grafo.

    (X1,X4) uma ponte

    Grafo cclico (ou grafo circuito)Outros tipos de grafos

  • 8/14/2019 Aulas-UFBA-1

    82/139

    Adolfo Duran - 2005 Teoria dos Grafos 8

    Um grafo conectado que regular de grau 2

    um grafo cclico (= ciclo)

    Cn um grafo cclico com n vrtices

    C6

    Grafo caminhoO grafo obtido a partir de C atravs da

  • 8/14/2019 Aulas-UFBA-1

    83/139

    Adolfo Duran - 2005 Teoria dos Grafos 8

    O grafo obtido a partir de Cn atravs da

    remoo de um aresta o grafo caminho emn vrtices, Pn

    C5 P5

    Grafo rodaO grafo obtido a partir de C atravs da

  • 8/14/2019 Aulas-UFBA-1

    84/139

    Adolfo Duran - 2005 Teoria dos Grafos 8

    O grafo obtido a partir de Cn-1 atravs da

    ligao de cada vrtice a um novo vrtice v um grafo roda em n vrtices, Wn

    Corresponde soma de N1 com Cn-1

    C5 W6

    Grafos cbicosSo grafos regulares de grau 3

  • 8/14/2019 Aulas-UFBA-1

    85/139

    Adolfo Duran - 2005 Teoria dos Grafos 8

    So grafos regulares de grau 3

    O primeiro deles conhecido comoGrafo de Petersen

    Cadeia (= passeio)Cadeias, caminhos, ciclos...

  • 8/14/2019 Aulas-UFBA-1

    86/139

    Adolfo Duran - 2005 Teoria dos Grafos 8

    ( p ) Uma cadeia (walk) uma seqncia qualquer de

    arestas adjacentes que ligam dois vrtices. O conceito de cadeia vale tambm para grafos

    orientados, bastando que se ignore o sentido da

    orientao dos arcos.A seqncia devrtices (x6, x5, x4, x1)

    um exemplo decadeia

    Cadeia elementar (= caminho =path)Uma cadeia dita ser elementar se no passa duas

  • 8/14/2019 Aulas-UFBA-1

    87/139

    Adolfo Duran - 2005 Teoria dos Grafos 8

    Uma cadeia dita ser elementarse no passa duas

    vezes pelo mesmo vrtice

    1 2

    3 4

    1 2

    3 4

    Cadeia de tamanho 21 2 4

    Cadeia de tamanho 33 1 4 2

    Cadeia simples (= trilha = trail)U d i dit i l d

  • 8/14/2019 Aulas-UFBA-1

    88/139

    Adolfo Duran - 2005 Teoria dos Grafos 8

    Uma cadeia dita ser simples se no passa duas

    vezes pela mesma aresta (arco).

    1 2

    3 4

    1 2

    3 4

    Cadeia de tamanho 41 2 4 1 3

    Cadeia de tamanho 51 2 4 1 3 2

    CaminhoU i h d i l t d

  • 8/14/2019 Aulas-UFBA-1

    89/139

    Adolfo Duran - 2005 Teoria dos Grafos 8

    Um caminho uma cadeia na qual todos os arcos

    possuem a mesma orientao. Aplica-se, portanto,somente a grafos orientados

    A seqncia de vrtices(x1, x2, x5, x6, x3)

    um exemplo decaminho

    CicloU i l d i i l f h d ( ti

  • 8/14/2019 Aulas-UFBA-1

    90/139

    Adolfo Duran - 2005 Teoria dos Grafos 9

    Um ciclo uma cadeia simples e fechada (o vrtice

    inicial o mesmo que o vrtice final).

    A seqncia de vrtices(x1, x2, x3, x6, x5, x4, x1)

    um exemplo de ciclo

    Exemplos de ciclos

  • 8/14/2019 Aulas-UFBA-1

    91/139

    Adolfo Duran - 2005 Teoria dos Grafos 9

    1 2

    3 4

    1 2

    3 4

    Ciclo de tamanho 31 2 4 1

    Ciclo de tamanho 31 2 3 1

    Circuito

  • 8/14/2019 Aulas-UFBA-1

    92/139

    Adolfo Duran - 2005 Teoria dos Grafos 9

    Um circuito um caminho simples e fechado. Aplica-se, portanto, somente a grafos orientados

    A seqncia de vrtices(x1, x2, x5, x4, x1)

    um exemplo decircuito

    Grafo fortemente conexo No caso de grafos orientados, um grafo dito ser

    fortemente conexo (f-conexo) se todo par de vrtices est

  • 8/14/2019 Aulas-UFBA-1

    93/139

    Adolfo Duran - 2005 Teoria dos Grafos 9

    fortemente conexo (f-conexo) se todo par de vrtices estligado por pelo menos um caminho em cada sentido

    ou seja, se cada par de vrtices participa de um circuito. Isto significa que cada vrtice pode ser alcanvel

    partindo-se de qualquer outro vrtice do grafo.

    Componente fortemente conexaUm grafo G(V,A) que no fortemente conexo

  • 8/14/2019 Aulas-UFBA-1

    94/139

    Adolfo Duran - 2005 Teoria dos Grafos 9

    g ( ) qformado por pelo menos dois subgrafos fortementeconexos, disjuntos em relao aos vrtices

    Cada um destes

    subgrafos dito seruma componentefortemente conexa deG

    Um grafo conectado G(V,A) dito sereuleriano se existe um ciclo que contm todas

    Grafos Eulerianos

  • 8/14/2019 Aulas-UFBA-1

    95/139

    Adolfo Duran - 2005 Teoria dos Grafos 9

    euleriano se existe um ciclo que contm todas

    as arestas de G.

    cadeia simples fechada que no passa 2 vezes

    pela mesma aresta etermina no mesmovrtice

    Grafo semi-eulerianoUm grafo conectado no-euleriano G semi-

  • 8/14/2019 Aulas-UFBA-1

    96/139

    Adolfo Duran - 2005 Teoria dos Grafos 9

    Um grafo conectado, no euleriano G semi

    euleriano se existe uma cadeia simplescontento todas as arestas de G

    Teorema (Euler 1736)Um grafo conectado G euleriano se e somente se

  • 8/14/2019 Aulas-UFBA-1

    97/139

    Adolfo Duran - 2005 Teoria dos Grafos 9

    go grau de cada vrtice de G par

    Prova:

    Ida: Seja G um grafo euleriano. Logo ele contm um cicloeuleriano. Por cada ocorrncia de vrtice desse ciclo,existe uma aresta que chega nesse vrtice e outra que saidesse vrtice. Como toda aresta faz parte do ciclo, isto ,

    nenhuma aresta fica fora do ciclo, necessariamente onmero de arestas por cada vrtice par.

    Volta: Suponhamos que todos os vrtices possuemgrau par. Seja vi um vrtice do grafo. Tentemos, a partir

    de v construir uma cadeia que no passa duas vezes

  • 8/14/2019 Aulas-UFBA-1

    98/139

    Adolfo Duran - 2005 Teoria dos Grafos 9

    de vi, construir uma cadeia que no passa duas vezes

    pela mesma aresta, e at que no seja possvelcontinuar. Como todos os vrtices possuem um graupar, sempre ser possvel entrar e sair de um vrtice. Anica exceo o vrtice vi onde a cadeia vai terminar.

    Se essa cadeia, que chamaremos C1, contm todas asarestas de G, temos um ciclo euleriano. Seno,retiramos de G todas as arestas que fazem parte de C1.

    No grafo resultante G', todos os vrtices tambmpossuem grau par e necessariamente um deles fazparte de C1, seno o grafo no seria conexo.

    Volta (cont.): Recomeamos o mesmo processo com ografo G', partindo de um vrtice comum com C1,

    obtendo assim um novo ciclo C A figura abaixo

  • 8/14/2019 Aulas-UFBA-1

    99/139

    Adolfo Duran - 2005 Teoria dos Grafos 9

    obtendo assim um novo ciclo C2. A figura abaixo

    mostra que dois ciclos que tm um vrtice em comumpodem formar um ciclo nico: chegando no vrticecomum em um dos dois ciclos, continuamos o percursono outro ciclo. Continuando esse processo,

    necessariamente obteremos um ciclo nico que contmtodas as arestas de G.

    Algoritmo de HierholzerAlgoritmo para a construo de um ciclo euleriano

    id ti d d t d E l

  • 8/14/2019 Aulas-UFBA-1

    100/139

    Adolfo Duran - 2005 Teoria dos Grafos 10

    sugerido a partir da prova do teorema de Euler

    Comece em qualquer vrtice u e percorra aleatoriamenteas arestas ainda no visitadas a cada vrtice visitado atfechar um ciclo

    Se sobrarem arestas no visitadas, recomece a partir deum vrtice do ciclo j formado

    Se no existem mais arestas no visitadas, construa ociclo euleriano a partir dos ciclos formados, unindo-os apartir de um vrtice comum

    Algoritmo de HierholzerAlgoritmo para a construo de um ciclo euleriano

    sugerido a partir da prova do teorema de Euler

  • 8/14/2019 Aulas-UFBA-1

    101/139

    Adolfo Duran - 2005 Teoria dos Grafos 10

    sugerido a partir da prova do teorema de Euler

    As pontes de Knigsberg

  • 8/14/2019 Aulas-UFBA-1

    102/139

    Adolfo Duran - 2005 Teoria dos Grafos 10

    possvel sair de uma das ilhas, passar uma

    nica vez por cada uma das pontes e retornar aoponto de origem ?

    As pontes de Knigsberg

  • 8/14/2019 Aulas-UFBA-1

    103/139

    Adolfo Duran - 2005 Teoria dos Grafos 10

    Como nem todos os vrtices tm grau par, o grafono euleriano. Logo, impossvel atravessar

    todas as pontes uma s vez e voltar ao lugar departida

    Corolrio IUm grafo conectado G e leriano se e somente se

  • 8/14/2019 Aulas-UFBA-1

    104/139

    Adolfo Duran - 2005 Teoria dos Grafos 10

    Um grafo conectado G euleriano se e somente se

    ele pode ser decomposto em ciclos

    Corolrio IIUm grafo conectado G semi-euleriano se esomente se ele possui exatamente 2 vrtices de

    grau mpar

    Algoritmo de FleuryAlgoritmo para a construo de um ciclo euleriano

    em um grafo euleriano

  • 8/14/2019 Aulas-UFBA-1

    105/139

    Adolfo Duran - 2005 Teoria dos Grafos 10

    em um grafo euleriano

    Comece em qualquer vrtice u e percorra asarestas de forma aleatria, seguindo sempre asseguintes regras:

    I apague as arestas depois de passar por elasII se aparecer algum vrtice isolado, apague-otambmIII passe por uma ponte somente se no houveroutra alternativa

    Algoritmo de FleuryAlgoritmo para a construo de um ciclo euleriano

    em um grafo euleriano

  • 8/14/2019 Aulas-UFBA-1

    106/139

    Adolfo Duran - 2005 Teoria dos Grafos 10

    em um grafo euleriano

    Um grafo G(V,A) dito serhamiltoniano seexiste um ciclo que passa exatamente uma vez

    Grafos Hamiltonianos

  • 8/14/2019 Aulas-UFBA-1

    107/139

    Adolfo Duran - 2005 Teoria dos Grafos 10

    em cada um dos vrtices de G

    no hamiltonianohamiltoniano

    Grafo semi_hamiltoniano

  • 8/14/2019 Aulas-UFBA-1

    108/139

    Adolfo Duran - 2005 Teoria dos Grafos 10

    Um grafo G(V,A) dito ser semi-hamiltoniano se no hamiltoniano e existe uma cadeia que passaexatamente uma vez em cada um dos vrtices de G

    Hamiltoniano Semi-hamiltoniano

    nohamiltoniano

    Grafo hamiltoniano

  • 8/14/2019 Aulas-UFBA-1

    109/139

    Adolfo Duran - 2005 Teoria dos Grafos 10

    No existe uma caracterizao para identificar grafoshamiltonianos como existe para os eulerianos

    A busca de tal caracterizao um dos maioresproblemas ainda no solucionados da teoria dosgrafos

    Grafo hamiltoniano

  • 8/14/2019 Aulas-UFBA-1

    110/139

    Adolfo Duran - 2005 Teoria dos Grafos 11

    Muito pouco conhecido dos grafos hamiltonianos

    A maioria dos teoremas existentes so da forma: SeG possui arestas suficientes, ento G hamiltoniano

    Ciclo hamiltoniano em grafos completos

  • 8/14/2019 Aulas-UFBA-1

    111/139

    Adolfo Duran - 2005 Teoria dos Grafos 11

    Todo grafo completo, que contm maisde 2 vrtices hamiltoniano

    Seja v1,v2,...,vn os vrtices de G. Comoexiste uma aresta entre qualquer par devrtices, possivel, a partir de v1 percorreressa sequncia at v

    ne voltar para v

    1

    Teorema (Dirac 1952)Uma condio suficiente, mas no necessria,

    para que um grafo simples G com n (>2) vrtices

  • 8/14/2019 Aulas-UFBA-1

    112/139

    Adolfo Duran - 2005 Teoria dos Grafos 11

    para que um grafo simples G com n (>2) vrticesseja hamiltoniano que o grau de todo vrtice de g

    seja n/2

    O grafo abaixo, hamiltoniano mas no respeita acondio do teorema de Dirac

    Teorema (Ore 1960)Uma condio suficiente, mas no necessria, para

    que um grafo simples G com n (>2) vrtices seja

  • 8/14/2019 Aulas-UFBA-1

    113/139

    Adolfo Duran - 2005 Teoria dos Grafos 11

    que um grafo simples G com n (>2) vrtices sejahamiltoniano que a soma dos graus de cada par

    de vrtices no adjacentes seja no mnimo n

    Permite identificar mais grafos hamiltonianos que oanterior, mas demora muito para efetuar os clculos. Uma

    busca por tentativa e erro pode ser mais eficiente emalguns casos

    O adjetivo "hamiltoniano" deve-se ao matemticoirlands Sir William Rowan Hamilton (1805-1865).Diz-se que ele inventou um jogo que envolve um

  • 8/14/2019 Aulas-UFBA-1

    114/139

    Adolfo Duran - 2005 Teoria dos Grafos 11

    dodecaedro (slido regular com 20 vrtices, 30arestas e 12 faces).Hamilton rotulou cada vrtice do dodecaedro com onome de uma cidade conhecida.

    O objetivo do jogo era que o jogador viajasse "aoredor do mundo" ao determinar uma viagem circularque inclusse todas as cidades exatamente uma vez,com a restrio de que s fosse possvel viajar de

    uma cidade a outra se existisse uma aresta entre osvrtices correspondentes.

    A figura abaixo mostra um grafo querepresenta este problema, ou seja os vrticese arestas de um dodecaedro

  • 8/14/2019 Aulas-UFBA-1

    115/139

    Adolfo Duran - 2005 Teoria dos Grafos 11

    e arestas de um dodecaedro.

    Como explorar um grafoAlguns Problemas

  • 8/14/2019 Aulas-UFBA-1

    116/139

    Adolfo Duran - 2005 Teoria dos Grafos 11

    Como obter um processo sistemtico para caminharpelos vrtices e arestas de um grafo?

    Como caminhar no grafo de modo a visitar todos os

    vrtices e arestas evitando repetiesdesnecessrias de visitas a um mesmo vrtice ouaresta?

    Que recursos adicionais so necessrios?

    Como explorar um grafoNecessidade de marcar quando um vrtice e umaaresta j foram visitados ou no

  • 8/14/2019 Aulas-UFBA-1

    117/139

    Adolfo Duran - 2005 Teoria dos Grafos 11

    aresta j foram visitados ou no

    Busca Geral G(V,E)1. Escolher e marcar um vrtice inicial;

    2. Enquanto existir algum vrtice v marcado e incidente auma aresta (v,w), no explorada, efetuar:

    a) escolher o vrtice v;b) explorar a aresta (v,w). Se w no marcado ento

    marcar w.

    Algoritmo Geral

    O problema do Caminho mais curto

    Um motorista deseja encontrar o caminho, mais curtopossvel entre duas cidades do Brasil

  • 8/14/2019 Aulas-UFBA-1

    118/139

    Adolfo Duran - 2005 Teoria dos Grafos 11

    possvel, entre duas cidades do Brasil

    Caso ele receba um mapa das estradas de rodagem doBrasil, no qual a distncia entre cada par adjacente decidades est exposta, como poderamos determinar umarota mais curta entre as cidades desejadas?

    Uma maneira possvel enumerar todas as rotaspossveis que levam de uma cidade outra, e entoselecionar a menor.

    O problema do menor caminho consiste emdeterminar um menor caminho entre um vrticede origem s V e todos os vrtices vde V.

  • 8/14/2019 Aulas-UFBA-1

    119/139

    Adolfo Duran - 2005 Teoria dos Grafos 11

    Menor caminho com destino nico: encontrar um

    caminho mais curto para um vrtice destino v Menor caminho para um par: encontrar umcaminho mais curto para um determinado par devrtices ue v

    Menor caminho para todos os pares: encontrar umcaminho mais curto de upara v, para todos e quaisquerpares ue v

    Variantes do problema

    O problema do Caminho mais curtoUma maneira mais eficiente:

    Percorra o grafo, partindo do vrtice de origem s,

  • 8/14/2019 Aulas-UFBA-1

    120/139

    Adolfo Duran - 2005 Teoria dos Grafos 12

    associando a cada vrtice um nmero l(v) indicando amenor distncia entre s e v.

    Isso significa que quando chegamos ao vrtice v, nafigura abaixo, l(v) ser min ( l(u)+6 , l(x)+4 )

    6

    5

    u

    3

    s

    6

    2 7

    v

    x y

    412

    3

    Calculando os pesos:

  • 8/14/2019 Aulas-UFBA-1

    121/139

    Adolfo Duran - 2005 Teoria dos Grafos 12

    6

    5

    u

    3

    s

    6

    2 7

    v

    x y

    412

    3

    0

    5

    3

    11

    9

    Como obter um caminho mnimo partindo de s para y

  • 8/14/2019 Aulas-UFBA-1

    122/139

    Adolfo Duran - 2005 Teoria dos Grafos 12

    6

    5

    u

    3

    s

    6

    2 7

    v

    x y

    412

    3

    0

    5

    3

    11

    9

    Outra possibilidade:

  • 8/14/2019 Aulas-UFBA-1

    123/139

    Adolfo Duran - 2005 Teoria dos Grafos 12

    6

    5

    u

    3

    s

    6

    2 7

    v

    x y

    412

    3

    0

    5

    3

    11

    9

    O algoritmo de Dijkstra

    O algoritmo de Dijkstra identifica, a partir de um vrticedo grafo, qual o custo mnimo entre esse vrtice e

  • 8/14/2019 Aulas-UFBA-1

    124/139

    Adolfo Duran - 2005 Teoria dos Grafos 12

    do grafo, qual o custo mnimo entre esse vrtice etodos os outros do grafo.No incio, o conjunto S contm somente esse vrtice,chamado origem. A cada passo, selecionamos noconjunto de vrtices sobrando, o que o mais perto da

    origem.Depois atualizamos, para cada vrtice sobrando, a suadistncia em relao origem. Se passando pelo novovrtice acrescentado, a distncia fica menor, essa

    nova distncia que ser memorizada

    O algoritmo de Dijkstra

    Suponhamos que o grafo representado por uma matrizde adjacncia onde temos o valor se no existe aresta

  • 8/14/2019 Aulas-UFBA-1

    125/139

    Adolfo Duran - 2005 Teoria dos Grafos 12

    jentre dois vrtices.

    Suponhamos tambm que os vrtices do grafo soenumerados de 1 at n, isto , o conjunto de vrtices N= {1, 2, ..., n}.

    Utilizaremos tambm um vetor D[2..n] que conter adistncia que separa todo vrtice do vrtice 1 (o vrtice

    do grafo que o vrtice 1 escolhido arbitrariamente).

    O algoritmo de Dijkstra

    funoDijkstra(L = [1..n, 1..n]: grafo): vetor[2..n]

  • 8/14/2019 Aulas-UFBA-1

    126/139

    Adolfo Duran - 2005 Teoria dos Grafos 12

    C:= {2,3,...,n} {Implicitamente S= N- C}Parai:= 2 atn:

    D[i]:= L[1,i]

    Repetirn-2vezes:v:= Elemento de Cque minimiza D[v]C:= C - {v}Para cada elemento wde C:

    D[w] := min(D[w],D[v]+ L[v,w])

    RetornarD

    Exemplo

  • 8/14/2019 Aulas-UFBA-1

    127/139

    Adolfo Duran - 2005 Teoria dos Grafos 12

    Passo v C DIncio - {2,3,4,5} [50,30,100,10]1 5 {2,3,4} [50,30,20,10]

    2 4 {2,3} [40,30,20,10]3 3 {2} [35,30,20,10]

    O algoritmo de Dijkstra

    Da maneira descrita, obtemos o custo do caminhomnimo para qualquer vrtices, mas no obtemos o

  • 8/14/2019 Aulas-UFBA-1

    128/139

    Adolfo Duran - 2005 Teoria dos Grafos 12

    caminho mnimo.Para identificar esse caminho mnimo, s acrescentarmais um vetor P[2..n], onde P[v] indica o vrtice queprecede vno caminho mais curto.

    Para isso, primeiro devemos inicializar esse vetor.

    Segundo, no mesmo momento que o vetor D

    atualizado, atualizamos tambm o vetorP.

    O algoritmo de Dijkstra para o caminho mnimo

    funoDijkstra(L = [1..n, 1..n]: grafo): vetor[2..n]C:= {2,3,...,n}

  • 8/14/2019 Aulas-UFBA-1

    129/139

    Adolfo Duran - 2005 Teoria dos Grafos 12

    Parai:= 2 atn:D[i]:= L[1,i]P[i]:= 1

    Repetirn-2vezes:v:= Elemento de Cque minimiza D[v]C:= C - {v}Para cada elemento wde C:

    Se D[w] > D[v]+ L[v,w]ento

    D[w] := D[v]+ L[v,w]P[w] := v

    RetornarP

    Exemplo

  • 8/14/2019 Aulas-UFBA-1

    130/139

    Adolfo Duran - 2005 Teoria dos Grafos 13

    Passo v C D PIncio - {2,3,4,5} [50,30,100,10] [1,1,1,1]1 5 {2,3,4} [50,30,20,10] [1,1,5,1]

    2 4 {2,3} [40,30,20,10] [4,1,5,1]3 3 {2} [35,30,20,10] [3,1,5,1]

    O algoritmo de Dijkstra para o caminho mnimo

    Vemos que o estado final do vetor P [3,1,5,1].Para saber qual o caminho mais curto entre os

  • 8/14/2019 Aulas-UFBA-1

    131/139

    Adolfo Duran - 2005 Teoria dos Grafos 13

    vrtices 1 e 2, procuramos o valor na posio 2desse vetor (no esquea que P e D so indexados apartir de 2).O vetor indica que o ltimo vrtice antes do vrtice 2

    o vrtice 3.Repetimos de novo o mesmo processo para ver ocaminho mais curto entre 1 e 3. No vetor, na posio3, temos o valor 1, que a origem.

    Ento, o caminho mais curto 1,3,2.

    O problema do carteiro chins

    Problema discutido pelo matemtico chins Mei-Ku Kuan

  • 8/14/2019 Aulas-UFBA-1

    132/139

    Adolfo Duran - 2005 Teoria dos Grafos 13

    Um carteiro deseja entregar suas cartas, percorrendo amenor distncia possvel e retornando ao ponto departida

    Ele deve passar por cada estrada pelo menos uma vez,mas deve evitar passar por muitas estradas mais de umavez.

    O problema do carteiro chins

    O problema pode ser reformulado em termos de umgrafo valorado onde o grafo corresponde rede de

  • 8/14/2019 Aulas-UFBA-1

    133/139

    Adolfo Duran - 2005 Teoria dos Grafos 13

    estradas e o valor de cada aresta corresponde aocomprimento da estrada.

    Assim, devemos buscar uma cadeia fechada de

    tamanho mnimo que inclua cada aresta do grafo pelomenos uma vez.

    Se o grafo for euleriano??

    O problema do carteiro chinsSe o grafo for euleriano, basta buscar um ciclo euleriano(algoritmo de Fleury)

  • 8/14/2019 Aulas-UFBA-1

    134/139

    Adolfo Duran - 2005 Teoria dos Grafos 13

    Se o grafo no euleriano?Para ilustrar a soluo, vamos considerar um grupoespecial de grafos, onde exatamente 2 arestas tm graumpar

    A

    F

    B C

    D

    E

    8 14 10

    53

    6

    4

    5

    9

    O problema do carteiro chinsJ que os vrtices B e E so os nicos que tm graumpar, podemos encontrar uma cadeia semi-euleriana deB at E passando por cada aresta exatamente uma vez

  • 8/14/2019 Aulas-UFBA-1

    135/139

    Adolfo Duran - 2005 Teoria dos Grafos 13

    A fim de retornar ao ponto de partida, cobrindo a menordistncia possvel, s encontrar o menor caminho de Eat B (EF A B)

    A

    F

    B C

    D

    E

    8 14 10

    53

    6

    4

    5

    9

    O problema do carteiro chinsA soluo do problema dada combinando o menorcaminho com a cadeia semi-euleriana

  • 8/14/2019 Aulas-UFBA-1

    136/139

    Adolfo Duran - 2005 Teoria dos Grafos 13

    Note que, fazendo essa combinao, obtemos um grafoeuleriano

    A

    F

    B C

    D

    E

    8 14 10

    53

    6

    4

    5

    9

    O problema do caxeiro viajante

    Um caxeiro viajante deseja visitar um dado grupo decidades e retornar ao ponto de partida, percorrendo a

  • 8/14/2019 Aulas-UFBA-1

    137/139

    Adolfo Duran - 2005 Teoria dos Grafos 13

    menor distncia possvel

    Esse problema pode ser formulado em termos de grafosvalorados

    O objetivo encontrar um ciclo hamiltoniano com omenor peso possvel em um grafo valorado completo

    O problema do caxeiro viajante

    Um algoritmo possvel calcular a distncia de todos ospossveis ciclos hamiltonianos e escolher o menor

  • 8/14/2019 Aulas-UFBA-1

    138/139

    Adolfo Duran - 2005 Teoria dos Grafos 13

    C

    B E

    D

    7 3 5

    6

    9

    8

    A

    62

    48

    No grafo ao lado, amenor rota seria

    AB D E C Atotalizando umadistncia de 26

    O problema do caxeiro viajanteCom mais de 5 cidades, a soluo anterior passa a ficarmuito complicada...

  • 8/14/2019 Aulas-UFBA-1

    139/139

    Adolfo Duran - 2005 Teoria dos Grafos 13

    Por exemplo, com 20 cidades a quantidade de possveisciclos hamiltonianos (19!)/2, o que daproximadamente 6 x 1016

    No se conhecem algoritmos eficientes para resolveresse problema

    Existem algoritmos eursticos que do soluesaproximadas