Informe de Grafos

44
Tópicos I Unidad I Grafos II Semana 5 Arboles, Montículos y Grafos

description

Un informe sobre grafos completo, abordando todos los temas sobre este tipo de estructura de datos

Transcript of Informe de Grafos

  • Tpicos I

    Unidad I

    Grafos II

    Semana 5

    Arboles, Montculos y Grafos

  • Objetivos Generales

    Entender el manejo, uso de algoritmos y

    estructuras de datos avanzados, haciendo

    nfasis en los algoritmos de internet,

    seguridad y redes.

  • Objetivo Especfico

    Implementar algoritmos utilizando

    estructura de datos avanzadas.

  • Objetivo Instruccional

    Implementar algoritmos sobre estructuras

    de datos complejas: grafos

  • Co

    nte

    nid

    os

    Grafos dirigidos

    Clausura transitiva

    Todos los caminos mas cortos

    Flujo de red

  • Definicin Son aquellos en los que las aristas que conectan

    los nodos son de sentido nico. Tambin se les

    denomina como DIGRAFOS.

    A menudo, la direccin de las aristas reflejan

    algn tipo de relacin de precedencia en la

    aplicacin que se esta modelando.

    Por ejemplo, un grafo dirigido puede utilizarse

    como modelo para una cadena de fabricacin,

    los nodos corresponden a las tareas a realizar. Gra

    fos

    dirig

    ido

    s

    El orden en el que aparecen los vrtices al especificar

    las aristas tiene mucha importancia: la notacin V1V2

    describe una arista que apunta de V1 hacia V2, pero

    no de V2 hacia V1.

  • Bsqueda en profundidad

    Los algoritmos de bsqueda en profundidad estudiados anteriormente pueden ser utilizados exactamente de igual forma con los grafos dirigidos.

    De hecho, opera de una manera un poco mas directa que con los grafos no dirigidos dado que no se necesita tener en cuenta las

    dobles aristas entre nodos, a menos que estn incluidas explcitamente en el grafo.

    Gra

    fos

    dirig

    ido

    s

  • Bsqueda en profundidad G

    rafo

    s d

    irig

    ido

    s

    1 2 3 4 5 6 7 8 9 10 11 12

    1

    2

    3

    5

    4

    6

    7

    8

    10

    9

    12

    11

    1 7 8 9 5 2 12 4 6 3 10 11

  • Bsqueda en profundidad

    Como en el caso de los grafos no dirigidos,

    existe gran inters en conocer las propiedades de conectividad de los grafos dirigidos. Debera ser posible responder a

    preguntas tales como:

    Existe un camino dirigido desde el vrtice x al vrtice y?,

    Qu vrtices son accesibles desde el vrtice x por medio de un camino dirigido? y

    Existe un camino dirigido desde el vrtice x al vrtice y y un camino dirigido desde y a x?

    Gra

    fos

    dirig

    ido

    s

  • Bsqueda en Amplitud G

    rafo

    s d

    irig

    ido

    s

    1

    2

    3

    5

    4

    6

    7

    8

    10

    9

    12

    11

    1 2 3 4 5 6 7 8 9 10 11 12

    1 7 10 8 5 11 9 4 6 3 12 2

  • Definicin

    El concepto de transitividad es el mismo que se utiliza en la teora matemtica , el cual postula que si:

    a < b < c a < c

    En el caso de la clausura transitiva, el

    concepto se refiere a que existe un camino que une el vrtice x con el vrtice y, no importando que para llegar desde x a y tengamos que visitar otros vrtices del grafo (camino mas corto).

    Cla

    usu

    ra t

    ran

    sitiv

    a

  • Consiste en completar el grafo con todas las aristas

    que "acortan" el camino entre dos nodos x y y, si es

    que se puede llegar de x a y.

    En dgrafos muy grandes, el problema de encontrar caminos entre pares

    de vrtices es demasiado complicado, slo siguiendo el trazado del

    dibujo del mismo, de ah la importancia de este algoritmo y el inters

    que gener su estudio.

    Cla

    usu

    ra t

    ran

    sitiv

    a

    En que consiste?

  • Mtodo de Warshall

    Ejemplo

    1 Cla

    usu

    ra t

    ran

    sitiv

    a

  • 1 1

    Cla

    usu

    ra t

    ran

    sitiv

    a

    Mtodo de Warshall

  • Cla

    usu

    ra t

    ran

    sitiv

    a

    Mtodo de Warshall

  • Se continua analizando hasta el vrtice 9, obteniendo las siguientes etapas finales

    Cla

    usu

    ra t

    ran

    sitiv

    a

    Mtodo de Warshall

  • La clausura transitiva de un grafo no ponderado

    (dirigido o no) responde a la pregunta Existe un camino desde x a y? para todos los pares de vrtices x, y.

    Para los grafos ponderados (dirigidos o no) se puede

    desear construir una tabla que permita encontrar el

    camino mas corto desde x a y para todos los pares

    de vrtices.

    Este es el problema de todos los pares de caminos cortos.

    Tod

    os

    los

    ca

    min

    os

    ma

    s c

    ort

    os

  • El algoritmo del camino mas corto

    (warshall) encuentra el camino mas

    corto desde el vrtice de partida a

    cada uno de los otros vrtices, por lo

    que para hallar todos los caminos mas

    cortos, se necesita solamente ejecutar

    este procedimiento V veces,

    comenzando una vez en cada

    vrtice.

    Tod

    os

    los

    ca

    min

    os

    ma

    s c

    ort

    os En que consiste?

  • El algoritmo representa una red de n nodos como una matriz cuadrada de orden n, la llamaremos matriz C. De esta forma, el valor Cij representa el coste de ir desde el nodo i al nodo j, inicialmente en caso de no

    existir un arco entre ambos, el valor Cij ser infinito.

    Definiremos otra matriz D, tambin cuadrada de orden n, cuyos elementos van a ser los nodos predecesores en el camino hacia el nodo origen, es decir, el valor Dij representar el nodo predecesor a j

    en el camino mnimo desde i hasta j. Inicialmente se comienza con caminos de longitud 1, por lo que Dij = i.

    Las diagonales de ambas matrices representan el coste y el nodo predecesor para ir de un nodo a si mismo, por lo que no sirven para nada, estarn bloqueadas.

    Los pasos a dar en la aplicacin del algoritmo de Floyd son los siguientes:

    Formar las matrices iniciales C y D.

    Se toma k=1.

    Se selecciona la fila y la columna k de la matriz C y entonces, para i y j, con ik, jk e ij, hacemos:

    Si (Cik + Ckj) < Cij Dij = Dkj y Cij = Cik + Ckj

    En caso contrario, dejamos las matrices como estn.

    Si k

  • Mtodo de Floyd

    Aplicar el algoritmo de

    Floyd sobre el siguiente

    grafo para obtener las

    rutas ms cortas entre

    cada dos nodos.

    Tod

    os

    los

    ca

    min

    os

    ma

    s c

    ort

    os

  • C 1 2 3 4 5

    1 - 3 10

    2 3 - 5

    3 10 - 6 15

    4 5 6 - 4

    5 4 -

    D 1 2 3 4 5

    1 1 1 1 1 1

    2 2 2 2 2 2

    3 3 3 3 3 3

    4 4 4 4 4 4

    5 5 5 5 5 5

    Se inicializan las matrices C y D

    Mtodo de Floyd To

    do

    s lo

    s c

    am

    ino

    s m

    as

    co

    rto

    s

  • C 1 2 3 4 5

    1 - 3 10

    2 3 - 5

    3 10 - 6 15

    4 5 6 - 4

    5 4 -

    D 1 2 3 4 5

    1 1 1 1 1 1

    2 2 2 2 2 2

    3 3 3 3 3 3

    4 4 4 4 4 4

    5 5 5 5 5 5

    Iteracin: k = 1 2 3 4 5

    Si (Cik + Ckj) < Cij Cij = Cik + Ckj y Dij = Dkj = k Para i=2, j=3 se tiene calcular C[2,3]: C[2,1]+C[1,3] = 3 + 10 = 13

    (Cik + Ckj) < Cij 13 < Cij = 13 y Dij = 1

    Mtodo de Floyd To

    do

    s lo

    s c

    am

    ino

    s m

    as

    co

    rto

    s

  • C 1 2 3 4 5

    1 - 3 10

    2 3 - 13 5

    3 10 - 6 15

    4 5 6 - 4

    5 4 -

    D 1 2 3 4 5

    1 1 1 1 1 1

    2 2 2 1 2 2

    3 3 3 3 3 3

    4 4 4 4 4 4

    5 5 5 5 5 5

    Iteracin: k = 1 2 3 4 5

    De forma anloga se

    analiza los dems

    elementos de la matriz,

    obtenindose al final

    de la iteracin 1 los

    siguientes resultados:

    C 1 2 3 4 5

    1 - 3 10

    2 3 - 13 5

    3 10 13 - 6 15

    4 5 6 - 4

    5 4 -

    D 1 2 3 4 5

    1 1 1 1 1 1

    2 2 2 1 2 2

    3 3 1 3 3 3

    4 4 4 4 4 4

    5 5 5 5 5 5

    Mtodo de Floyd To

    do

    s lo

    s c

    am

    ino

    s m

    as

    co

    rto

    s

  • Iteracin: k = 1 2 3 4 5

    C 1 2 3 4 5

    1 - 3 10

    2 3 - 13 5

    3 10 13 - 6 15

    4 5 6 - 4

    5 4 -

    D 1 2 3 4 5

    1 1 1 1 1 1

    2 2 2 1 2 2

    3 3 1 3 3 3

    4 4 4 4 4 4

    5 5 5 5 5 5

    De forma anloga se

    analiza los dems

    elementos de la matriz,

    obtenindose al final

    de la iteracin 2 los

    siguientes resultados:

    C 1 2 3 4 5

    1 - 3 10 8

    2 3 - 13 5

    3 10 13 - 6 15

    4 8 5 6 - 4

    5 4 -

    D 1 2 3 4 5

    1 1 1 1 2 1

    2 2 2 1 2 2

    3 3 1 3 3 3

    4 2 4 4 4 4

    5 5 5 5 5 5

    Mtodo de Floyd To

    do

    s lo

    s c

    am

    ino

    s m

    as

    co

    rto

    s

  • Iteracin: k = 1 2 3 4 5

    De forma anloga se

    analiza los dems

    elementos de la matriz,

    obtenindose al final

    de la iteracin 3 los

    siguientes resultados:

    C 1 2 3 4 5

    1 - 3 10 8 25

    2 3 - 13 5 28

    3 10 13 - 6 15

    4 8 5 6 - 4

    5 4 -

    D 1 2 3 4 5

    1 1 1 1 2 3

    2 2 2 1 2 3

    3 3 1 3 3 3

    4 2 4 4 4 4

    5 5 5 5 5 5

    C 1 2 3 4 5

    1 - 3 10 8

    2 3 - 13 5

    3 10 13 - 6 15

    4 8 5 6 - 4

    5 4 -

    D 1 2 3 4 5

    1 1 1 1 2 1

    2 2 2 1 2 2

    3 3 1 3 3 3

    4 2 4 4 4 4

    5 5 5 5 5 5

    Mtodo de Floyd To

    do

    s lo

    s c

    am

    ino

    s m

    as

    co

    rto

    s

  • Iteracin: k = 1 2 3 4 5

    De forma anloga se

    analiza los dems

    elementos de la matriz,

    obtenindose al final

    de la iteracin 4 los

    siguientes resultados:

    C 1 2 3 4 5

    1 - 3 10 8 12

    2 3 - 11 5 9

    3 10 11 - 6 10

    4 8 5 6 - 4

    5 12 9 10 4 -

    D 1 2 3 4 5

    1 1 1 1 2 4

    2 2 2 4 2 4

    3 3 4 3 3 4

    4 2 4 4 4 4

    5 4 4 4 5 5

    C 1 2 3 4 5

    1 - 3 10 8 25

    2 3 - 13 5 28

    3 10 13 - 6 15

    4 8 5 6 - 4

    5 4 -

    D 1 2 3 4 5

    1 1 1 1 2 3

    2 2 2 1 2 3

    3 3 1 3 3 3

    4 2 4 4 4 4

    5 5 5 5 5 5

    Mtodo de Floyd To

    do

    s lo

    s c

    am

    ino

    s m

    as

    co

    rto

    s

  • Iteracin: k = 1 2 3 4 5

    De forma anloga se

    analiza los dems

    elementos de la matriz,

    obtenindose al final

    de la iteracin 5 los

    siguientes resultados:

    C 1 2 3 4 5

    1 - 3 10 8 12

    2 3 - 11 5 9

    3 10 11 - 6 10

    4 8 5 6 - 4

    5 12 9 10 4 -

    D 1 2 3 4 5

    1 1 1 1 2 4

    2 2 2 4 2 4

    3 3 4 3 3 4

    4 2 4 4 4 4

    5 4 4 4 5 5

    C 1 2 3 4 5

    1 - 3 10 8 12

    2 3 - 11 5 9

    3 10 11 - 6 10

    4 8 5 6 - 4

    5 12 9 10 4 -

    D 1 2 3 4 5

    1 1 1 1 2 4

    2 2 2 4 2 4

    3 3 4 3 3 4

    4 2 4 4 4 4

    5 4 4 4 5 5

    Mtodo de Floyd To

    do

    s lo

    s c

    am

    ino

    s m

    as

    co

    rto

    s

  • C 1 2 3 4 5

    1 - 3 10 8 12

    2 3 - 11 5 9

    3 10 11 - 6 10

    4 8 5 6 - 4

    5 12 9 10 4 -

    D 1 2 3 4 5

    1 1 1 1 2 4

    2 2 2 4 2 4

    3 3 4 3 3 4

    4 2 4 4 4 4

    5 4 4 4 5 5

    Las matrices finales C y D contienen toda la informacin necesaria para determinar la ruta ms corta entre dos nodos cualquiera de la red. Por ejemplo, la distancia ms corta del nodo 1 al nodo 5 es C[1,5] = 12. Para determinar la ruta asociada del camino mnimo entre el nodo 1 y el nodo 5 haremos lo siguiente: Consultamos D[1,5]=4, el nodo predecesor al 5 es el 4, es decir, 4 5. Consultamos D[1,4]=2, el nodo predecesor al 4 es el 2, es decir, 2 4 5. Consultamos D[1,2]=1, el nodo predecesor al 2 es el 1, es decir, 1 2 4 5. Entonces as ya tenemos la ruta completa.

    Matrices

    finales

    Mtodo de Floyd To

    do

    s lo

    s c

    am

    ino

    s m

    as

    co

    rto

    s

  • Problemtica Flu

    jo d

    e r

    ed

    Los grafos dirigidos ponderados son modelos muy

    tiles en ciertos tipos de aplicaciones que implican

    flujo de productos a travs de una red de

    interconexin. Considrese, por ejemplo, una red de

    oleoductos de distintos tamaos, interconectados

    de forma compleja, con vlvulas que controlen la

    direccin del flujo en las derivaciones. Supngase

    adems que la red tiene una fuente nica (como un

    campo de petrleo) y un nico destino (como una gran

    refinera) al que convergen finalmente todos los

    conductos. Qu ajuste de vlvula har mxima la

    cantidad de petrleo que fluye de la fuente hacia el

    destino?

  • El problema del flujo de red

    B

    F

    A

    D E

    C B

    F

    A

    D E

    C B

    F

    A

    D E

    C

    Flujo mximo en una red simple

    Flu

    jo d

    e r

    ed

  • El problema del flujo de red En la grafica idealizada anterior de la pequea red

    de oleoducto, las canalizaciones tienen una

    capacidad fija proporcional a su tamao y el

    petrleo solamente puede fluir en forma

    descendente. Adems las vlvulas de cada

    derivacin controlan la capacidad de petrleo que

    va en cada direccin.

    Sin importar la forma en la que estn puestas las

    vlvulas, el sistema alcanza un estado de equilibrio

    cuando la capacidad de petrleo que fluye al

    sistema por arriba es igual a la cantidad que fluye

    hacia afuera por la parte inferior y cuando la

    cantidad de petrleo que fluye hacia cada

    derivacin es igual a la que sale de ella.

    Flu

    jo d

    e r

    ed

  • El problema del flujo de red

    El objetivo es desarrollar un algoritmo que pueda

    encontrar el reglaje de las vlvulas adecuado para cualquier red y de esta manera evitar

    embotellamientos. Adems, se desea estar seguros de que ningn otro reglaje dar un flujo mayor.

    B

    F

    A

    D E

    C B

    F

    A

    D E

    C B

    F

    A

    D E

    C

    Flu

    jo d

    e r

    ed

  • El problema del flujo de red Red: Se define como un grafo dirigido ponderado con dos

    vrtices principales: uno, que no tiene aristas que apunte a el (la

    fuente), y otro que no tiene aristas que apunten afuera de el (el

    pozo). Los pesos de las aristas, que se supone que no son

    negativos, se denominan capacidades de las aristas.

    Flujo: Se define como un conjunto de pesos en las aristas tal que

    el flujo en cada una de ellas es igual o menor que la

    capacidad, y el flujo que entra en cada vrtice es igual al que

    sale de el. El valor del flujo es el que entra en la fuente (o sale del pozo).

    El problema del flujo de red consiste en encontrar un FLUJO DE VALOR MXIMO para una red dada .

    Flu

    jo d

    e r

    ed

  • Mtodo de Ford-Fulkerson

    El algoritmo de Ford-Fulkerson propone buscar

    caminos en los que se pueda aumentar el flujo, hasta

    que se alcance el flujo mximo. La idea es encontrar

    una ruta de penetracin con un flujo positivo neto

    que una los nodos origen y destino.

    Consideraremos las capacidades iniciales del arco que une el

    nodo i y el nodo j como Cij y Cji. Estas capacidades iniciales irn

    variando a medida que avanza el algoritmo, denominaremos

    capacidades residuales a las capacidades restantes del arco

    una vez pasa algn flujo por l, las representaremos como cij y

    cji.

    Para un nodo j que recibe el flujo del nodo i, definimos una

    clasificacin [aj,i] donde aj es el flujo del nodo i al nodo j.

    Flu

    jo d

    e r

    ed

  • Mtodo de Ford-Fulkerson PASOS:

    1. Identificar los nodos origen y destino

    2. Identificar la capacidad mas alta que sale del nodo origen

    3. Identificar el nodo intermediario con [af,i] (af es el flujo mximo de ingreso y i el nodo de donde proviene dicho flujo mximo)

    4. Repetir paso 3, como si el nodo intermediario fuera el nodo

    origen

    5. Actualizar los flujos: (Cij , Cji) = (Ci k, Cj + k) donde:

    C = Capacidad

    i , j = ndices de los nodos

    K = flujo mnimo del camino seleccionado

    6. Retornar al paso 2 si al menos hay una salida de flujo del

    nodo fuente

    7. La suma de los K corresponde al Flujo Mximo.

    Flu

    jo d

    e r

    ed

  • Mtodo de Ford-Fulkerson

    1

    2 3

    4

    5 10 30

    20

    0

    0

    40

    20

    0

    10

    0

    0

    0

    30

    0

    0

    20

    Fuente

    Sumidero

    Capacidad de flujo mximo del

    nodo 1 al nodo 4

    Del nodo 4 al nodo 1 no hay

    flujo

    [ ,-]

    Por ser la fuente se considera la

    cantidad de flujo mximo de

    ingreso ()

    Por no tener nodo conocido

    como inicio se considera (-)

    [ ,-]

    PASO 1

    Flu

    jo d

    e r

    ed

  • Mtodo de Ford-Fulkerson

    1

    2 3

    4

    5 10 30

    20

    0

    0

    40

    20

    0

    10

    0

    0

    0

    30

    0

    0

    20

    [ ,-]

    Iteracin 1

    [ 30,1]

    Paso 2

    Paso 3

    [ 20,3]

    Actualizando las capacidades

    K = min (,30,20) = 20

    i = 1 , j = 3 (Cij , Cji) = (30 20, 0 + 20) = (10,20) i = 3 , j = 5 (Cij , Cji) = (20 20, 0 + 20) = (0,20)

    30 0

    0

    20

    1

    2 3

    4

    5 10

    20

    0

    0

    40

    20

    0

    10

    0

    0

    30

    0

    [ ,-]

    [ 30,1]

    [ 20,3]

    10

    20

    20

    0

    Flu

    jo d

    e r

    ed

  • Mtodo de Ford-Fulkerson

    1

    2 3

    4

    5 10 10

    20

    0

    0

    40

    20

    0

    10

    0

    20

    0

    30

    0

    20

    0

    [ ,-]

    Iteracin 2

    K = min (,20,40,10,20) = 10

    1

    2 3

    4

    5 10 10

    10

    0

    10

    30

    10

    10

    0

    0

    20

    10

    30

    10

    20

    0

    [ ,-]

    [ 10,3]

    [ 40,2]

    (C12 , C21) = (20 10, 0 + 10) = (10,10) (C23 , C32) = (40 10, 0 + 10) = (30,10) (C34 , C43) = (10 10, 0 + 10) = ( 0,10) (C45 , C54) = (20 10, 0 + 10) = (10,10)

    [ 20,4]

    [ 20,1]

    Flu

    jo d

    e r

    ed

  • Mtodo de Ford-Fulkerson

    1

    2 3

    4

    5 10 10

    10

    0

    10

    30

    10

    1 0

    0

    0

    20

    10

    30

    10

    20

    0

    [ ,-]

    Iteracin 3

    K = min (,10,30) = 10

    1

    2 3

    4

    5 10 10

    0

    0

    10

    30

    10

    10

    0

    10

    20

    20

    20

    10

    20

    0

    [ ,-]

    (C12 , C21) = (10 10, 10 + 10) = (0,20) (C25 , C52) = (30 10, 0 + 10) = (20,10)

    [ 10,1]

    [ 30,2]

    Flu

    jo d

    e r

    ed

  • Mtodo de Ford-Fulkerson

    1

    2 3

    4

    5 10 10

    0

    0

    10

    30

    10

    1 0

    0

    10

    20

    20

    20

    10

    20

    0

    [ ,-]

    Iteracin 4

    K = min (,10,10,20) = 10

    1

    2 3

    4

    5 10 0

    0

    0

    10

    40

    10

    10

    0

    20

    20

    20

    10

    0

    30

    0

    [ ,-]

    (C13 , C31) = (10 10, 20 + 10) = (0,30) (C32 , C23) = (10 10, 30 + 10) = (0,40) (C25 , C52) = (20 10, 10 + 10) = (10,20)

    [ 10,3]

    [ 20,2]

    [ 10,1]

    Flu

    jo d

    e r

    ed

  • Mtodo de Ford-Fulkerson

    1

    2 3

    4

    5 10 0

    0

    0

    10

    40

    10

    1 0

    0

    20

    20

    20

    10

    0

    30

    0

    [ ,-]

    Iteracin 5

    K = min (,10,10) = 10

    1

    2 3

    4

    5 0 0

    0

    10

    10

    40

    0

    20

    0

    20

    20

    20

    10

    0

    30

    0

    [ ,-]

    (C14 , C41) = (10 10, 0 + 10) = (0,10) (C45 , C54) = (10 10, 10 + 10) = (0,20)

    [ 10,4]

    [ 10,1]

    Flu

    jo d

    e r

    ed

  • Mtodo de Ford-Fulkerson

    1

    2 3

    4

    5 0 0

    0

    10

    10

    40

    0

    2 0

    0

    20

    20

    20

    10

    0

    30

    0

    [ ,-]

    Flujo Mximo = k = 20+10+10+10+10

    = 60

    Flu

    jo d

    e r

    ed

  • Mtodo de Ford-Fulkerson

    1

    2 3

    4

    5

    10

    10 2 0

    20

    20

    20 0

    30

    Flu

    jo d

    e r

    ed

    Flujo Mximo = 60

    1

    2 3

    4

    5 10 30

    20

    0

    0

    40

    20

    0

    10

    0

    0

    0

    30

    0

    0

    20

    Propuesta

  • Tpicos I

    Unidad I

    Grafos II

    Semana 5

    Arboles, Montculos y Grafos