Grafos AGM

Embed Size (px)

DESCRIPTION

GRAFOS

Citation preview

  • GCC111 Projeto e Anlise de Algoritmos

    Mayron Csar O. Moreira

    Universidade Federal de Lavras

    Departamento de Cincia da Computao

    [email protected]

    16 de maio de 2015

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 1 / 15

  • Contedo

    1

    Grafos - rvores Geradoras Mnimas

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 2 / 15

  • Introduo

    Origens

    O primeiro algoritmo a resolver o problema de rvore geradora mnima

    (AGM) atribudo a Otakar Boruvka, em 1926;

    Contexto: resolver o problema de encontrar uma eciente cobertura

    eltrica de Moravia (atual Repblica Checa);

    Aplicaes

    Transporte areo, transporte terrestre, redes de computadores, redes

    eltricas, projeto de circuitos eletrnicos, etc.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 3 / 15

  • Introduo

    Dados

    Seja G = (V ,E ) um grafo conexo no-orientado, onde V o conjunto devrtices e E o conjunto de arestas. Para cada (u, v) E , temos um pesow(u, v).

    Objetivo

    Encontrar um subconjunto acclico T E que conecte todos os vrtices ecujo peso total w(T ) =

    (u,v)T w(u, v) seja minimizado.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 4 / 15

  • Introduo

    Dados

    Seja G = (V ,E ) um grafo conexo no-orientado, onde V o conjunto devrtices e E o conjunto de arestas. Para cada (u, v) E , temos um pesow(u, v).

    Objetivo

    Encontrar um subconjunto acclico T E que conecte todos os vrtices ecujo peso total w(T ) =

    (u,v)T w(u, v) seja minimizado.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 4 / 15

  • Algoritmo Genrico

    Generic-MTSP()A = while A no formar uma rvore geradora

    encontre a aresta (u, v) que seja segura para AA = A {u, v}

    return A

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 5 / 15

  • Denies

    Corte

    Consiste em uma partio de G = (V ,E ) dada por (S ,V S). Dizemosque uma aresta (u, v) E cruza o corte (S ,V S) se um dos seus pontosest em S e o outro est em V S .

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 6 / 15

  • Denies

    Corte

    Um corte respeita um conjunto A de arestas se nenhuma aresta em Acruza o corte.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 6 / 15

  • Denies

    Aresta Leve

    Aresta que cruza o corte com peso mnimo.

    Aresta Segura

    Aresta que pode ser adiciona a A a m de compor a AGM.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 6 / 15

  • Teorema

    Seja G = (V ,E ) um grafo valorado no orientado. Considere A umsubconjunto de E que est includo em alguma AGM para G , (S ,V S)qualquer corte de G que respeita A e (u, v) E uma aresta leve que cruza(S ,V S). Ento, a aresta (u, v) segura para A.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 7 / 15

  • Corolrio

    Seja C = (VC ,EC ) uma componente conexa (rvore) na orestaGA = (V ,A). Se (u, v) uma aresta leve que conecta C a alguma outracomponente em GA, ento (u, v) segura para A.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 8 / 15

  • Algoritmo de Kruskal

    O conjunto A uma oresta cujos vrtices so todos os vrtices dografo dado;

    A aresta segura adicionada a A sempre uma aresta de peso mnimono grafo que conecta duas componentes distintas (lembre-se do

    Corolrio);

    Ideia: ordenar as arestas de maneira ascendente do valor de cada peso;

    Ao nal do algoritmo, temos o conjunto S formando uma AGM.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 9 / 15

  • Algoritmo de Kruskal

    O conjunto A uma oresta cujos vrtices so todos os vrtices dografo dado;

    A aresta segura adicionada a A sempre uma aresta de peso mnimono grafo que conecta duas componentes distintas (lembre-se do

    Corolrio);

    Ideia: ordenar as arestas de maneira ascendente do valor de cada peso;

    Ao nal do algoritmo, temos o conjunto S formando uma AGM.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 9 / 15

  • Algoritmo de Kruskal

    O conjunto A uma oresta cujos vrtices so todos os vrtices dografo dado;

    A aresta segura adicionada a A sempre uma aresta de peso mnimono grafo que conecta duas componentes distintas (lembre-se do

    Corolrio);

    Ideia: ordenar as arestas de maneira ascendente do valor de cada peso;

    Ao nal do algoritmo, temos o conjunto S formando uma AGM.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 9 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 10 / 15

  • Algoritmo de Kruskal

    MST-Kruskall()A = for cada vrtice v V

    Make-Set(v)ordene as arestas de E em ordem ascendente de peso wfor cada aresta (u, v) E, tomada em ordem ascendente de peso

    if Find-Set(u) 6= Find-Set(v)A = A {(u, v)}Union(u, v)

    return A

    Complexidade

    O(|E |log |V |), mas depende de como as operaes em conjuntos soimplementadas.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 11 / 15

  • Algoritmo de Kruskal

    MST-Kruskall()A = for cada vrtice v V

    Make-Set(v)ordene as arestas de E em ordem ascendente de peso wfor cada aresta (u, v) E, tomada em ordem ascendente de peso

    if Find-Set(u) 6= Find-Set(v)A = A {(u, v)}Union(u, v)

    return A

    Complexidade

    O(|E |log |V |), mas depende de como as operaes em conjuntos soimplementadas.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 11 / 15

  • Algoritmo de Prim

    O conjunto A forma uma rvore nica;

    A aresta segura adicionada a A sempre uma aresta de peso mnimoque conecta a rvore a um vrtice no presente na rvore (lembre-se

    do Teorema);

    Ideia: a rvore comea por um vrtice qualquer e cresce at que

    conecte todos os vrtices de V ;

    Ao nal do algoritmo, temos o conjunto S formando uma AGM.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 12 / 15

  • Algoritmo de Prim

    O conjunto A forma uma rvore nica;

    A aresta segura adicionada a A sempre uma aresta de peso mnimoque conecta a rvore a um vrtice no presente na rvore (lembre-se

    do Teorema);

    Ideia: a rvore comea por um vrtice qualquer e cresce at que

    conecte todos os vrtices de V ;

    Ao nal do algoritmo, temos o conjunto S formando uma AGM.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 12 / 15

  • Algoritmo de Prim

    O conjunto A forma uma rvore nica;

    A aresta segura adicionada a A sempre uma aresta de peso mnimoque conecta a rvore a um vrtice no presente na rvore (lembre-se

    do Teorema);

    Ideia: a rvore comea por um vrtice qualquer e cresce at que

    conecte todos os vrtices de V ;

    Ao nal do algoritmo, temos o conjunto S formando uma AGM.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 12 / 15

  • Algoritmo de Prim

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 13 / 15

  • Algoritmo de Prim

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 13 / 15

  • Algoritmo de Prim

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 13 / 15

  • Algoritmo de Prim

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 13 / 15

  • Algoritmo de Prim

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 13 / 15

  • Algoritmo de Prim

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 13 / 15

  • Algoritmo de Prim

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 13 / 15

  • Algoritmo de Prim

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 13 / 15

  • Algoritmo de Prim

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 13 / 15

  • Algoritmo de Prim

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 13 / 15

  • Algoritmo de Prim

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 13 / 15

  • Algoritmo de Prim

    MST-Prim()for cada v V

    u.chave =u.pi = NIL

    r .chave = 0Q = Vwhile Q 6=

    u = Extract-Min(Q)for cada v Adj [u]

    if v Q e w(u, v) < v .chavev .pi = uv .chave = w(u, v)

    Complexidade

    O(|E |log |V |), mas tambm depende de como as operaes em conjuntosso implementadas.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 14 / 15

  • Algoritmo de Prim

    MST-Prim()for cada v V

    u.chave =u.pi = NIL

    r .chave = 0Q = Vwhile Q 6=

    u = Extract-Min(Q)for cada v Adj [u]

    if v Q e w(u, v) < v .chavev .pi = uv .chave = w(u, v)

    Complexidade

    O(|E |log |V |), mas tambm depende de como as operaes em conjuntosso implementadas.

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 14 / 15

  • rvore Geradora Mnima

    Perguntas

    E se todas as arestas tivessem o mesmo peso? Existe uma forma mais

    eciente de resolver?

    Como projeto um algoritmo para uma AGM de peso mximo?

    Mayron Csar O. Moreira (UFLA) GCC111 PAA 16 de maio de 2015 15 / 15

    Grafos - rvores Geradoras Mnimas