8

Algoritimos e Estruturas de Dados III - DECOM-UFOP · 2012. 12. 4. · Haroldo Gambini Santos Algoritmos em Grafos 3/22 Introdução Representação Grafos ... Grafos - Ex.2: Redes

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

  • Introdução Representação

    Algoritimos e Estruturas de Dados III

    CIC210

    Algoritmos em Grafos - Introdução

    Haroldo Gambini Santos

    Universidade Federal de Ouro Preto - UFOP

    28 de setembro de 2009

    Haroldo Gambini Santos Algoritmos em Grafos 1/22

    Introdução Representação

    Conteúdo

    1 Introdução

    2 Representação

    Haroldo Gambini Santos Algoritmos em Grafos 2/22

    Seção

    1 Introdução

    2 Representação

    Notas

    Notas

    Notas

  • Introdução Representação

    Grafos - Ex.1: Coloração de Mapas

    Mapa Político Grafo de Vizinhança

    (1- Brasil, 11- Argentina)

    Haroldo Gambini Santos Algoritmos em Grafos 3/22

    Introdução Representação

    Grafos

    Representação concisa e precisa de inúmeros problemas

    computacionais

    Haroldo Gambini Santos Algoritmos em Grafos 4/22

    Introdução Representação

    Grafos

    De�nição Formal

    Grafo G = (V,A)

    Conjunto V com n vértices (também chamados nós){v1, v2, . . . , vn}

    Conjunto A com m arestas ou arcos{a1, a2, . . . , am}

    Grafo Não Direcionado (GND): Arestas - relação simétrica :

    aj = {tj , hj}{tj , hj} é o mesmo que {hj , tj}

    Grafo Direcionado (GD): Arcos - relação assimétrica :

    aj = (tj , hj)(tj , hj) é diferente de (hj , tj)

    Haroldo Gambini Santos Algoritmos em Grafos 5/22

    Notas

    Notas

    Notas

  • Introdução Representação

    Coloração de Mapas

    O Teorema das Quatro Cores

    Estudado desde 1852 (Francis Guthrie)

    Qualquer mapa pode ser colorido com 4 cores

    Prova somente em 1976

    Prova gerada por computador

    Haroldo Gambini Santos Algoritmos em Grafos 6/22

    Introdução Representação

    Coloração de Mapas

    Haroldo Gambini Santos Algoritmos em Grafos 7/22

    Introdução Representação

    Planaridade em Grafos

    De�nição

    Um grafo é dito planar se o mesmo pode ser desenhado no plano

    sem que linhas se cruzem

    Haroldo Gambini Santos Algoritmos em Grafos 8/22

    Notas

    Notas

    Notas

  • Introdução Representação

    Grafos - Ex.2: Redes Sociais

    Vértices - pessoas que interagem:

    Estudantes em uma universidadeEmpregados de uma empresaResidentes em uma cidade...

    Arestas:

    Se duas pessoas �zeram alguma disciplina juntasSe duas pessoas já trocaram e-mail...

    Haroldo Gambini Santos Algoritmos em Grafos 9/22

    Introdução Representação

    Grafos - Ex.2: Redes Sociais

    Chains of A�ection

    Peter Bearman, James Moody, and Katherine Stovel. Chains of

    a�ection: The structure of adolescent romantic and sexual

    networks. American Journal of Sociology, 110(1):44� 99, 2004.

    Pesquisa com 800 estudantes de uma escola secundária

    americana.

    Haroldo Gambini Santos Algoritmos em Grafos 10/22

    Introdução Representação

    Chains of A�ection

    MachoFêmea

    12 9

    63

    2

    Haroldo Gambini Santos Algoritmos em Grafos 11/22

    Notas

    Notas

    Notas

  • Introdução Representação

    Grafos - Ex.3: Projeto VLSI

    O Problema de Steiner em Grafos

    Haroldo Gambini Santos Algoritmos em Grafos 12/22

    Introdução Representação

    Grafos Direcionados

    v1

    v2

    v3

    v4

    v5

    Mais genérico do que o não direcionado

    Grafo GD - Exemplo 4: a World Wide Web

    Em 2006: |V | > 8 bilhõesGD esparso, ou seja, longe de ser próximo de |V |2 (denso)

    Haroldo Gambini Santos Algoritmos em Grafos 13/22

    Introdução Representação

    Conectividade em Grafos

    v1

    v2

    v3

    v4

    v5

    Caminho

    Seqüência de arcos (ou arestas para GND) que conectam dois

    vértices. Um caminho entre vértices v1 e v3 é:

    (v1, v2), (v2, v4), (v4, v3)

    Haroldo Gambini Santos Algoritmos em Grafos 14/22

    Notas

    Notas

    Notas

  • Introdução Representação

    Grafos com Pesos

    v1

    v2

    v3

    v4

    v5

    9

    2

    1

    515

    7

    1

    1

    6

    O número associado com cada arco (peso) pode representar:

    Custo/LucroDistânciaVelocidade em uma rede...

    Haroldo Gambini Santos Algoritmos em Grafos 15/22

    Introdução Representação

    Grafos com Pesos - Caminhos

    v1

    v2

    v3

    v4

    v5

    9

    2

    1

    515

    7

    1

    1

    6

    v1

    v2

    v3

    v4

    v5

    9

    2

    1

    515

    7

    1

    1

    6

    Caminho entre v1 e v3 (custo 20) Caminho entre v1 e v3 (custo 12)

    Haroldo Gambini Santos Algoritmos em Grafos 16/22

    Introdução Representação

    Ciclos em Grafos

    v1

    v2

    v3

    v4

    v5

    Haroldo Gambini Santos Algoritmos em Grafos 17/22

    Notas

    Notas

    Notas

  • Introdução Representação

    Grafos - Ex.5: Escalonamento de Tarefas

    9 18 19

    20

    22

    1

    17

    16 8

    14

    13 15

    12 11

    10

    7

    3 4 5 6

    2

    21

    0

    Iteração do método do gradiente conjugado: instruções e suas dependências

    Haroldo Gambini Santos Algoritmos em Grafos 18/22

    Introdução Representação

    Conectividade em Grafos

    Grafo Completo

    Todo vértice tem um arco para qualquer outro.

    Grafo Fortemente Conexo

    Existe um caminho que conecte qualquer vértice em outro

    Haroldo Gambini Santos Algoritmos em Grafos 19/22

    Introdução Representação

    Conectividade em Grafos

    Clique

    Subconjunto de vértices completamente conectados

    v1

    v2

    v3

    v4

    v5

    v1

    v2

    v3

    v4

    v5

    v1

    v2

    v3

    v4

    v5

    GND de exemplo Clique com tamanho 3 Clique com tamanho 4

    Haroldo Gambini Santos Algoritmos em Grafos 20/22

    Notas

    Notas

    Notas

  • Seção

    1 Introdução

    2 Representação

    Introdução Representação

    Grafos - Representação Computacional

    Matriz de Adjacências

    An×n, sendo que:

    aij ={

    1 se existe o arco (vi, vj)0 caso contrário

    simétrica para grafos não direcionados

    consulta existência de arco com um acesso à memória

    n2 de espaço mesmo para grafos esparsos

    Haroldo Gambini Santos Algoritmos em Grafos 21/22

    Introdução Representação

    Grafos - Representação Computacional

    Lista de Adjacências

    |V | listaslista de vi contém todos os arcos de saída do mesmo, ouseja:

    (vi, vj) ∈ A ∀vj ∈ V

    Haroldo Gambini Santos Algoritmos em Grafos 22/22

    Notas

    Notas

    Notas

    IntroduçãoRepresentação