121
Instituto de Computação - UFF Uma Breve Introdução sobre Aplicações de Grafos Fábio Protti IC/UFF

Aula01 Palestra Aplicacoes Grafos

Embed Size (px)

DESCRIPTION

introdução a teoria de grafos

Citation preview

  • Instituto de Computao - UFF

    Uma Breve Introduo sobre Aplicaes de Grafos

    Fbio Protti

    IC/UFF

  • Instituto de Computao - UFF

    Grafo

    formado por um conjunto de pontos, chamados vrtices...

  • Instituto de Computao - UFF

    Grafo

    formado por um conjunto de pontos, chamados vrtices...

    ...conectados por um conjunto de linhas, chamadas arestas.

  • Instituto de Computao - UFF

    Grafo

  • Instituto de Computao - UFF

    Grafo

  • Instituto de Computao - UFF

    Grafo

  • Instituto de Computao - UFF

    Grafo

  • Instituto de Computao - UFF

    Grafo

  • Instituto de Computao - UFF

    Grafo Definio Informal

    Abstrao que permite codificar relacionamentos entre pares de objetos

  • Instituto de Computao - UFF

    Grafos Definio Informal

    Abstrao que permite codificar relacionamentos entre pares de objetos

    Que objetos?

  • Instituto de Computao - UFF

    Grafo Definio Informal

    Abstrao que permite codificar relacionamentos entre pares de objetos

    Ex.: Pessoas, cidades, empresas, pases, pginas web, filmes, etc.

    Que objetos?

  • Instituto de Computao - UFF

    Grafo Definio Informal

    Abstrao que permite codificar relacionamentos entre pares de objetos

    Ex.: Pessoas, cidades, empresas, pases, pginas web, filmes, etc.

    Que objetos?

    Que relacionamentos?

  • Instituto de Computao - UFF

    Grafo Definio Informal

    Abstrao que permite codificar relacionamentos entre pares de objetos

    Ex.: Pessoas, cidades, empresas, pases, pginas web, filmes, etc.

    Ex.: Amizade, conectividade, produo, lngua falada, etc.

    Que objetos?

    Que relacionamentos?

  • Instituto de Computao - UFF

    Grafo Definio Informal

  • Instituto de Computao - UFF

    Grafo Definio Informal

    Objetos Vrtices do Grafo

  • Instituto de Computao - UFF

    Grafo Definio Informal

    Objetos Vrtices do Grafo

    Relacionamentos Arestas do Grafo

  • Instituto de Computao - UFF

    Grafo Definio Informal

    Objetos Vrtices do Grafo

    Relacionamentos Arestas do Grafo

    Exemplos?

  • Instituto de Computao - UFF

    Exemplos de Grafos

    Transporte Areo:

    Objeto: Cidades

    Relacionamento: Vo comercial entre duas cidades

  • Instituto de Computao - UFF

    Exemplos de Grafos

    Transporte Areo:

    Objeto: Cidades

    Relacionamento: Vo comercial entre duas cidades

    Cuiab

    SP

    BH Rio

    Manaus

    Vo entre SP e Manaus

  • Instituto de Computao - UFF

    Exemplos de Grafos

    Atores e Filmes:

    Objeto: Atores

    Relacionamento: Atores atuaram em um mesmo filme

  • Instituto de Computao - UFF

    Exemplos de Grafos

    Atores e Filmes:

    Objeto: Atores

    Relacionamento: Atores atuaram e um mesmo filme

    Wagner Moura

    Lzaro Ramos

    Cludia Abreu

    Selton Mello

    Dbora Secco

    Meu tio matou um cara

  • Instituto de Computao - UFF

    Exemplos de Grafos

    Web:

    Objeto: pginas web

    Relacionamento: link de uma pgina para outra

  • Instituto de Computao - UFF

    Exemplos de Grafos

    Web:

    Objeto: pginas web

    Relacionamento: link de uma pgina para outra

    http://www.ic.uff.br

    http://www.uff.br

    http://www.ic.uff.br/Docentes/docentes.php

    http://www.capes.gov.br

    http://www.centrodeartes.uff.br

  • Instituto de Computao - UFF

    Definio Formal

    G=(V(G), E(G), G)

    Conjunto no vazio de vrtices

    Conjunto disjunto de V(G), Formado por arestas

    Funo que associa cada aresta de G a um par

    de vrtices de G

  • Instituto de Computao - UFF

    Exemplo

    G=(V(G), E(G), G), onde

    V(G) ={v1, v2, v3, v4, v5}

    E(G)={e1, e2, e3, e4, e5, e6, e7 , e8}

    G :

    G(e1)= (v1, v2), G(e2)= (v2, v3),

    G(e3)= (v3, v3), G(e4)= (v3, v4),

    G(e5)= (v2, v4), G(e6)= (v4, v5),

    G(e7)= (v2, v5), G(e8)= (v2, v5)

  • Instituto de Computao - UFF

    Exemplo

    G=(V(G), E(G), G), onde

    V(G) ={v1, v2, v3, v4, v5}

    E(G)={e1, e2, e3, e4, e5, e6, e7 , e8}

    G :

    G(e1)= (v1, v2), G(e2)= (v2, v3),

    G(e3)= (v3, v3), G(e4)= (v3, v4),

    G(e5)= (v2, v4), G(e6)= (v4, v5),

    G(e7)= (v2, v5), G(e8)= (v2, v5)

    v1

    v2

    v3

    v4 v5

  • Instituto de Computao - UFF

    Exemplo

    G=(V(G), E(G), G), onde

    V(G) ={v1, v2, v3, v4, v5}

    E(G)={e1, e2, e3, e4, e5, e6, e7 , e8}

    G :

    G(e1)= (v1, v2), G(e2)= (v2, v3),

    G(e3)= (v3, v3), G(e4)= (v3, v4),

    G(e5)= (v2, v4), G(e6)= (v4, v5),

    G(e7)= (v2, v5), G(e8)= (v2, v5)

    v1

    v2

    v3

    v4 v5

  • Instituto de Computao - UFF

    Exemplo

    G=(V(G), E(G), G), onde

    V(G) ={v1, v2, v3, v4, v5}

    E(G)={e1, e2, e3, e4, e5, e6, e7 , e8}

    G :

    G(e1)= (v1, v2), G(e2)= (v2, v3),

    G(e3)= (v3, v3), G(e4)= (v3, v4),

    G(e5)= (v2, v4), G(e6)= (v4, v5),

    G(e7)= (v2, v5), G(e8)= (v2, v5)

    v1

    v2

    v3

    v4 v5

  • Instituto de Computao - UFF

    Exemplo

    G=(V(G), E(G), G), onde

    V(G) ={v1, v2, v3, v4, v5}

    E(G)={e1, e2, e3, e4, e5, e6, e7 , e8}

    G :

    G(e1)= (v1, v2), G(e2)= (v2, v3),

    G(e3)= (v3, v3), G(e4)= (v3, v4),

    G(e5)= (v2, v4), G(e6)= (v4, v5),

    G(e7)= (v2, v5), G(e8)= (v2, v5)

    v1

    v2

    v3

    v4 v5

  • Instituto de Computao - UFF

    Exemplo

    G=(V(G), E(G), G), onde

    V(G) ={v1, v2, v3, v4, v5}

    E(G)={e1, e2, e3, e4, e5, e6, e7 , e8}

    G :

    G(e1)= (v1, v2), G(e2)= (v2, v3),

    G(e3)= (v3, v3), G(e4)= (v3, v4),

    G(e5)= (v2, v4), G(e6)= (v4, v5),

    G(e7)= (v2, v5), G(e8)= (v2, v5)

    v1

    v2

    v3

    v4 v5

  • Instituto de Computao - UFF

    Exemplo

    G=(V(G), E(G), G), onde

    V(G) ={v1, v2, v3, v4, v5}

    E(G)={e1, e2, e3, e4, e5, e6, e7 , e8}

    G :

    G(e1)= (v1, v2), G(e2)= (v2, v3),

    G(e3)= (v3, v3), G(e4)= (v3, v4),

    G(e5)= (v2, v4), G(e6)= (v4, v5),

    G(e7)= (v2, v5), G(e8)= (v2, v5)

    v1

    v2

    v3

    v4 v5

  • Instituto de Computao - UFF

    Exemplo

    G=(V(G), E(G), G), onde

    V(G) ={v1, v2, v3, v4, v5}

    E(G)={e1, e2, e3, e4, e5, e6, e7 , e8}

    G :

    G(e1)= (v1, v2), G(e2)= (v2, v3),

    G(e3)= (v3, v3), G(e4)= (v3, v4),

    G(e5)= (v2, v4), G(e6)= (v4, v5),

    G(e7)= (v2, v5), G(e8)= (v2, v5)

    v1

    v2

    v3

    v4 v5

  • Instituto de Computao - UFF

    Exemplo

    G=(V(G), E(G), G), onde

    V(G) ={v1, v2, v3, v4, v5}

    E(G)={e1, e2, e3, e4, e5, e6, e7 , e8}

    G :

    G(e1)= (v1, v2), G(e2)= (v2, v3),

    G(e3)= (v3, v3), G(e4)= (v3, v4),

    G(e5)= (v2, v4), G(e6)= (v4, v5),

    G(e7)= (v2, v5), G(e8)= (v2, v5)

    v1

    v2

    v3

    v4 v5

  • Instituto de Computao - UFF

    Exemplo

    G=(V(G), E(G), G), onde

    V(G) ={v1, v2, v3, v4, v5}

    E(G)={e1, e2, e3, e4, e5, e6, e7 , e8}

    G :

    G(e1)= (v1, v2), G(e2)= (v2, v3),

    G(e3)= (v3, v3), G(e4)= (v3, v4),

    G(e5)= (v2, v4), G(e6)= (v4, v5),

    G(e7)= (v2, v5), G(e8)= (v2, v5)

    v1

    v2

    v3

    v4 v5

  • Instituto de Computao - UFF

    Exemplo

    G=(V(G), E(G), G), onde

    V(G) ={v1, v2, v3, v4, v5}

    E(G)={e1, e2, e3, e4, e5, e6, e7 , e8}

    G :

    G(e1)= (v1, v2), G(e2)= (v2, v3),

    G(e3)= (v3, v3), G(e4)= (v3, v4),

    G(e5)= (v2, v4), G(e6)= (v4, v5),

    G(e7)= (v2, v5), G(e8)= (v2, v5)

    G

    v1

    v2

    v3

    v4 v5

  • Instituto de Computao - UFF

    Observaes

    Grafos so assim chamados por poderem ser representados graficamente

  • Instituto de Computao - UFF

    Observaes

    Grafos so assim chamados por poderem ser representados graficamente

    Existe uma nica maneira de desenhar um grafo?

  • Instituto de Computao - UFF

    Observaes

    Grafos so assim chamados por poderem ser representados graficamente

    Existe uma nica maneira de desenhar um grafo?

    NO!!!

  • Instituto de Computao - UFF

    Um pouco de Histria

    A Teoria dos Grafos teve sua origem com o problema das Pontes de Knigsberg, em 1735.

  • Instituto de Computao - UFF

    Um pouco de Histria

    A cidade de Knigsberg banhada pelo rio Pregel que, ao atravessar a cidade se ramifica formando uma ilha (Kneiphof) que est ligada parte restante da cidade

    por sete pontes. Dizia-se que os habitantes da cidade, nos dias de descanso e sol, tentavam

    efetuar um percurso que os obrigasse a passar por todas as pontes, mas apenas uma vez em cada uma. Como as suas tentativas sempre falhavam, muitos deles

    acreditavam que no era possvel encontrar tal percurso. Ser que tinham razo?

  • Instituto de Computao - UFF

    Um pouco de Histria

    possvel andar por toda a cidade de tal modo que cada ponte seja atravessada

    exatamente uma vez?

  • Instituto de Computao - UFF

    Remodelando o problema

  • Instituto de Computao - UFF

    Remodelando o problema

  • Instituto de Computao - UFF

    Remodelando o problema

    O problema agora consiste em percorrer todas as arestas,

    passando por cada uma apenas uma vez, sem

    levantar o lpis do papel.

  • Instituto de Computao - UFF

    Remodelando o problema

    Um caminho completo com as propriedades

    descritas acima de no retraar nenhuma

    aresta chamado de TRILHA de EULER

  • Instituto de Computao - UFF

    O Assassinato de Van Diamond

    O bilionrio Van Diamond acaba de ser assassinado. Um conhecido detetive que nas horas vagas um estudioso da Teoria de Grafos foi chamado para investigar o caso.

    O mordomo alega ter visto o jardineiro entrar na sala da piscina (lugar onde ocorreu o assassinato) e logo em seguida deixar aquela sala pela mesma porta que havia entrado.

    O jardineiro, contudo, afirma que ele no poderia ser a pessoa vista pelo

    mordomo, pois ele havia entrado na casa, passado por todas as portas uma nica vez e, em seguida, deixado a casa.

    O detetive avaliou a planta da residncia e em poucos minutos declarou

    solucionado o caso.

  • Instituto de Computao - UFF

    Planta da Casa

    Quem poderia ser o assassino indicado pelo detetive? Qual o raciocnio utilizado pelo detetive para apontar o suspeito?

  • Instituto de Computao - UFF

    Planta da Casa

    Quem poderia ser o assassino indicado pelo detetive? Qual o raciocnio utilizado pelo detetive para apontar o suspeito?

  • Instituto de Computao - UFF

    Planta da Casa

    Quem poderia ser o assassino indicado pelo detetive? Qual o raciocnio utilizado pelo detetive para apontar o suspeito?

  • Instituto de Computao - UFF

    Planta da Casa

    Quem poderia ser o assassino indicado pelo detetive? Qual o raciocnio utilizado pelo detetive para apontar o suspeito?

    RUA

  • Instituto de Computao - UFF

    Planta da Casa

    G possui trilha de Euler sse todos seus vrtices possuem grau par.

    2 3 2

    4

    2

    5

    2

    2

    4

    2

  • Instituto de Computao - UFF

    Poder da Abstrao

  • Instituto de Computao - UFF

    Formando Pares

    s es

  • Instituto de Computao - UFF

    Formando Pares

    Regra:

    s es

  • Instituto de Computao - UFF

    Formando Pares

    Regra: Casal pode sair junto(formar um par) se existe interesse mtuo

    s es

  • Instituto de Computao - UFF

    Formando Pares

    Problema 1: Dadas as escolhas dos rapazes e moas, possvel formar n casais?

  • Instituto de Computao - UFF

    Formando Pares

    Problema 1: Dadas as escolhas dos rapazes e moas, possvel formar n casais?

    Problema 2: Qual o nmero mximo de pares que podem ser formados?

  • Instituto de Computao - UFF

    Formando Pares

    Como abstrair o problema usando grafos?

    Objeto: Rapazes e Moas

    Relacionamento: Interesse mtuo em sair

  • Instituto de Computao - UFF

    Formando Pares

    Como abstrair o problema usando grafos?

    Objeto: Rapazes e Moas

    Relacionamento: Interesse mtuo em sair

  • Instituto de Computao - UFF

    Formando Pares

    Como abstrair o problema usando grafos?

    Objeto: Rapazes e Moas

    Relacionamento: Interesse mtuo em sair

  • Instituto de Computao - UFF

    Alocao de Professores

    Regra: Cada professor leciona uma ou mais disciplinas

  • Instituto de Computao - UFF

    Alocao de Professores

    Regra: Cada professor leciona uma ou mais disciplinas

    Problema 1: Dado o que cada professor pode lecionar, possvel que todas as disciplinas sejam oferecidas simultaneamente?

  • Instituto de Computao - UFF

    Alocao de Professores

    Regra: Cada professor leciona uma ou mais disciplinas

    Problema 1: Dado o que cada professor pode lecionar, possvel que todas as disciplinas sejam oferecidas simultaneamente?

    Problema 2: Qual o maior nmero de disciplinas que podem ser oferecidas?

  • Instituto de Computao - UFF

    Alocao de Professores

    Mesma Abstrao

    Mesmo Algoritmo

  • Instituto de Computao - UFF

    Robustez da Malha Eltrica

    Malha eltrica

    (distribuio de energia)

    Torres e linhas de

    transmisso

    Problema: Quantas linhas precisam falhar (no mnimo) para termos um apago?

    Apago: desconectar parte do sistema

  • Instituto de Computao - UFF

    Robustez da Malha Eltrica

  • Instituto de Computao - UFF

    Robustez da Malha Eltrica

  • Instituto de Computao - UFF

    Colorindo um Mapa

    Mapa de Regies (Estados)

    Colorir o mapa:

    - regies vizinhas cores diferentes

    Problema 1: Colorir o mapa de forma a atender a restrio

    Problema 2: Qual o menor no. de cores necessrias?

  • Instituto de Computao - UFF

    Colorindo um Mapa

    Mapa de Regies (Estados)

    Colorir o mapa:

    - regies vizinhas cores diferentes

    Problema 1: Colorir o mapa de forma a atender restrio

    Problema 2: Qual o menor no. de cores necessrias?

  • Instituto de Computao - UFF

    Colorindo um Mapa

    Mapa de Regies (Estados)

    Colorir o mapa:

    - regies vizinhas cores diferentes

    Problema 1: Colorir o mapa de forma a atender restrio

    Problema 2: Qual o menor no. de cores necessrias?

  • Instituto de Computao - UFF

    Colorindo um Mapa

  • Instituto de Computao - UFF

    Alocao de Frequncias

    Rede telefonia celular

    Estaes base (torre)

    Clulas vizinhas no podem

    usar mesma frequncia (interferncia)

    Problema 1: Como alocar frequncias s clulas?

    Problema 2: Qual o menor nmero de frequncias necessrias?

  • Instituto de Computao - UFF

    Alocao de Frequncias

  • Instituto de Computao - UFF

    Colorao de Grafos

  • Instituto de Computao - UFF

    Colorao de Grafos

    Exemplo

  • Instituto de Computao - UFF

    Colorao de Grafos

    Exemplo

  • Instituto de Computao - UFF

    Colorao de Grafos

    Exemplo

  • Instituto de Computao - UFF

    Colorao de Grafos

    Exemplo

  • Instituto de Computao - UFF

    Colorao de Grafos

    Exemplo

  • Instituto de Computao - UFF

    Colorao de Grafos

    Exemplo

  • Instituto de Computao - UFF

    Colorao de Grafos

    Exemplo

  • Instituto de Computao - UFF

    Colorao de Grafos

    Exemplo

  • Instituto de Computao - UFF

    Colorao de Grafos

    Exemplo

  • Instituto de Computao - UFF

    Colorao de Grafos

    Exemplo

  • Instituto de Computao - UFF

    Colorao de Mapas Amrica do Sul

  • Instituto de Computao - UFF

    Colorao de Mapas Amrica do Sul

  • Instituto de Computao - UFF

    Colorao de Mapas Amrica do Sul

    Qual o nmero mximo de cores necessrias para colorir um mapa?

  • Instituto de Computao - UFF

    Grafos Planares

    Definio:

    Um grafo G dito planar se puder ser representado graficamente no plano de modo que suas arestas no se cruzem.

  • Instituto de Computao - UFF

    Grafos Planares

    O estudo dos grafos planares originou de dois problemas de recreao envolvendo o grafo completo K5 e o grafo bipartido K3,3.

  • Instituto de Computao - UFF

    Grafos Planares

    O estudo dos grafos planares originou de dois problemas de recreao envolvendo o grafo completo K5 e o grafo bipartido K3,3.

  • Instituto de Computao - UFF

    Grafos Planares

    O estudo dos grafos planares originou de dois problemas de recreao envolvendo o grafo completo K5 e o grafo bipartido K3,3.

  • Instituto de Computao - UFF

    Grafos Planares

    O estudo dos grafos planares originou de dois problemas de recreao envolvendo o grafo completo K5 e o grafo bipartido K3,3.

    K5

  • Instituto de Computao - UFF

    Grafos Planares

    O estudo dos grafos planares originou de dois problemas de recreao envolvendo o grafo completo K5 e o grafo bipartido K3,3.

    K5

  • Instituto de Computao - UFF

    Grafos Planares

    O estudo dos grafos planares originou de dois problemas de recreao envolvendo o grafo completo K5 e o grafo bipartido K3,3.

    K5

  • Instituto de Computao - UFF

    Grafos Planares

    O estudo dos grafos planares originou de dois problemas de recreao envolvendo o grafo completo K5 e o grafo bipartido K3,3.

    K5

  • Instituto de Computao - UFF

    Grafos Planares

    O estudo dos grafos planares originou de dois problemas de recreao envolvendo o grafo completo K5 e o grafo bipartido K3,3.

    K5 K3,3

  • Instituto de Computao - UFF

    Grafos Planares

    O primeiro problema foi apresentado por A. F. Mobius por volta do ano 1840 como segue:

    Era um vez um Rei com 5 filhos. Em seu testamento ele desejou que, aps sua morte, os seus filhos dividissem seu Reino em 5 provncias de forma que o limite de cada provncia tivesse uma linha fronteira comum com cada uma das outras quatro.

  • Instituto de Computao - UFF

    Grafos Planares

    Regio 1

    Regio 4

  • Instituto de Computao - UFF

    Regio 2

    Grafos Planares

    Regio 1

    Regio 4

  • Instituto de Computao - UFF

    Regio 3

    Regio 2

    Grafos Planares

    Regio 1

    Regio 4

  • Instituto de Computao - UFF

    R

    Regio 3

    Regio 2

    Grafos Planares

    Regio 1

    Regio 4

  • Instituto de Computao - UFF

    R

    R

    Regio 3

    Regio 2

    Grafos Planares

    Regio 1

    Regio 4

  • Instituto de Computao - UFF

    Regio 3

    Regio 2

    Grafos Planares

    Regio 1

    Regio 4

  • Instituto de Computao - UFF

    Regio 3

    Regio 2

    Grafos Planares

    Regio 1

    Regio 4

  • Instituto de Computao - UFF

    Grafos Planares

    Problema: possvel desenhar 5 regies mutualmente vizinhas no plano?

  • Instituto de Computao - UFF

    Grafos Planares

    Depois, o Rei pediu que todos os cinco irmos unissem as capitais de cada uma de suas provncias atravs de estradas e que estas no deveriam se cruzar.

  • Instituto de Computao - UFF

    Grafos Planares

    Depois, o Rei pediu que todos os cinco irmos unissem as capitais de cada uma de suas provncias atravs de estradas e que estas no deveriam se cruzar.

  • Instituto de Computao - UFF

    Grafos Planares

    Depois, o Rei pediu que todos os cinco irmos unissem as capitais de cada uma de suas provncias atravs de estradas e que estas no deveriam se cruzar.

  • Instituto de Computao - UFF

    Grafos Planares

    Depois, o Rei pediu que todos os cinco irmos unissem as capitais de cada uma de suas provncias atravs de estradas e que estas no deveriam se cruzar.

  • Instituto de Computao - UFF

    Grafos Planares

    Depois, o Rei pediu que todos os cinco irmos unissem as capitais de cada uma de suas provncias atravs de estradas e que estas no deveriam se cruzar.

  • Instituto de Computao - UFF

    Grafos Planares

    Depois, o Rei pediu que todos os cinco irmos unissem as capitais de cada uma de suas provncias atravs de estradas e que estas no deveriam se cruzar.

  • Instituto de Computao - UFF

    Grafos Planares

    Problema: K_5 um grafo planar?

  • Instituto de Computao - UFF

    Grafos Planares

    A origem do segundo problema desconhecida mas foi primeiramente mencionada por H. Dudeney em 1913 da seguinte forma:

    O problema consiste em fornecer gua, gs e eletricidade a 3 casas sem cruzar seus tubos

  • Instituto de Computao - UFF

    Grafos Planares

  • Instituto de Computao - UFF

    Grafos Planares

  • Instituto de Computao - UFF

    Grafos Planares

  • Instituto de Computao - UFF

    Grafos Planares

  • Instituto de Computao - UFF

    Grafos Planares

  • Instituto de Computao - UFF

    Grafos Planares

    Problema: Decidir se o grafo K3,3 planar

  • Instituto de Computao - UFF

  • Instituto de Computao - UFF

    Motivao

    Por que estudar grafos? Importante ferramenta matemtica com

    aplicao em diversas reas do conhecimento

    Utilizados na definio e/ou resoluo de problemas

    Existem centenas de problemas computacionais que empregam grafos com sucesso.