Representación de gráficas

46
Gr´ aficas: representaci´ on y algoritmos elementales Jos´ e Galaviz Casas Departamento de Matem´ aticas, Facultad de Ciencias, Universidad Nacional Aut´onoma de M´ exico. 2009-I Jos´ e Galaviz Casas (Facultad de Ciencias, UNAM) Gr´ aficas: representaci´ on y algoritmos elementales 2009-I 1 / 23

description

Técnicas de representación de gráficas

Transcript of Representación de gráficas

  • Graficas: representacion y algoritmos elementales

    Jose Galaviz Casas

    Departamento de Matematicas,Facultad de Ciencias,

    Universidad Nacional Autonoma de Mexico.

    2009-I

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 1 / 23

  • Contenido

    1 Graficas.

    2 Representacion

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 2 / 23

  • Grafica: variante 1

    Definicion.Una grafica G es una duplaG = (V ,E ) en la que

    V = {v0, v1, . . . , vn} es elconjunto de vertices(nodos).

    E = {e0, e1, . . . , em} es elconjunto de aristas.

    Cada arista ei vincula dosvertices, vj y vj , por lo que sedenota: ei = (vi , vj) = (vj , vi ), esdecir E V V .

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 3 / 23

  • Grafica: variante 2

    Puede asociarse un peso a cadaarista, en ese caso tenemos unagrafica pesada.

    Abra que anadir el vector depesos G = (V ,E ,W ):W = {w0,w1, . . . ,wm},donde wi es el peso asociadoa la arista ei .

    O alternativamente lafuncion de pesos,G = (V ,E ,W ): dondewi = W (ei ) es el pesoasociado a ei

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 4 / 23

  • Grafica: variante 3

    Puede asociarse un sentido acada arista, en ese caso tenemosuna grafica dirigida.

    Abra que decir quees = (vi , vj) 6= (vj , vi ) = er

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 5 / 23

  • Grafica: variante 4

    Puede asociarse un sentido y unpeso a cada arista, en ese casotenemos una grafica dirigidapesada.

    Igual que anteses = (vi , vj) 6= (vj , vi ) = erY ademas cada arista tienesu peso;ws = W (es) = W (vi , vj) ywr = W (er ) = W (vj , vi ).

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 6 / 23

  • Graficas como modelos

    Las graficas son un poderoso medio de abstraccion.

    Puntos de venta de una compania y rutas de distribucion.

    Variables locales de una subrutina, vinculadas si coexisten.

    Conjunto de cadenas de texto y el costo de transformar unaen otra.

    Estado de un sistema y numero de eventos que lo transformanen otro.

    Puntos de acceso a un servicio en un edificio y costos deinstalacion.

    Los puentes de la ciudad de Koningsberg.

    Se te ocurren otros?

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 7 / 23

  • Como las representamos?

    Para responder la pregunta necesitamos responder una anterior:Que es lo que necesitariamos guardar para reconstruir la grafica?

    Los vertices. Los numeramos, los nombres no forman parte dela abstraccion fundamental.

    Las conexiones (aristas).

    Los pesos de cada arista (de haberlos). Por cierto el conjuntode aristas: E V V , o sea | E || V |2.

    As que podemos pensar en guardar, para toda pareja de verticesen V V (producto cartesiano), si existe arista entre ellos (graficano pesada, ya sea dirigida o no), o el peso de la arista (graficapesada, ya sea dirigida o no).

    Matriz de adyacencia.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 8 / 23

  • Como las representamos?

    Para responder la pregunta necesitamos responder una anterior:Que es lo que necesitariamos guardar para reconstruir la grafica?

    Los vertices.

    Los numeramos, los nombres no forman parte dela abstraccion fundamental.

    Las conexiones (aristas).

    Los pesos de cada arista (de haberlos). Por cierto el conjuntode aristas: E V V , o sea | E || V |2.

    As que podemos pensar en guardar, para toda pareja de verticesen V V (producto cartesiano), si existe arista entre ellos (graficano pesada, ya sea dirigida o no), o el peso de la arista (graficapesada, ya sea dirigida o no).

    Matriz de adyacencia.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 8 / 23

  • Como las representamos?

    Para responder la pregunta necesitamos responder una anterior:Que es lo que necesitariamos guardar para reconstruir la grafica?

    Los vertices. Los numeramos, los nombres no forman parte dela abstraccion fundamental.

    Las conexiones (aristas).

    Los pesos de cada arista (de haberlos). Por cierto el conjuntode aristas: E V V , o sea | E || V |2.

    As que podemos pensar en guardar, para toda pareja de verticesen V V (producto cartesiano), si existe arista entre ellos (graficano pesada, ya sea dirigida o no), o el peso de la arista (graficapesada, ya sea dirigida o no).

    Matriz de adyacencia.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 8 / 23

  • Como las representamos?

    Para responder la pregunta necesitamos responder una anterior:Que es lo que necesitariamos guardar para reconstruir la grafica?

    Los vertices. Los numeramos, los nombres no forman parte dela abstraccion fundamental.

    Las conexiones (aristas).

    Los pesos de cada arista (de haberlos). Por cierto el conjuntode aristas: E V V , o sea | E || V |2.

    As que podemos pensar en guardar, para toda pareja de verticesen V V (producto cartesiano), si existe arista entre ellos (graficano pesada, ya sea dirigida o no), o el peso de la arista (graficapesada, ya sea dirigida o no).

    Matriz de adyacencia.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 8 / 23

  • Como las representamos?

    Para responder la pregunta necesitamos responder una anterior:Que es lo que necesitariamos guardar para reconstruir la grafica?

    Los vertices. Los numeramos, los nombres no forman parte dela abstraccion fundamental.

    Las conexiones (aristas).

    Los pesos de cada arista (de haberlos).

    Por cierto el conjuntode aristas: E V V , o sea | E || V |2.

    As que podemos pensar en guardar, para toda pareja de verticesen V V (producto cartesiano), si existe arista entre ellos (graficano pesada, ya sea dirigida o no), o el peso de la arista (graficapesada, ya sea dirigida o no).

    Matriz de adyacencia.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 8 / 23

  • Como las representamos?

    Para responder la pregunta necesitamos responder una anterior:Que es lo que necesitariamos guardar para reconstruir la grafica?

    Los vertices. Los numeramos, los nombres no forman parte dela abstraccion fundamental.

    Las conexiones (aristas).

    Los pesos de cada arista (de haberlos). Por cierto el conjuntode aristas: E V V , o sea | E || V |2.

    As que podemos pensar en guardar, para toda pareja de verticesen V V (producto cartesiano), si existe arista entre ellos (graficano pesada, ya sea dirigida o no), o el peso de la arista (graficapesada, ya sea dirigida o no).

    Matriz de adyacencia.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 8 / 23

  • Como las representamos?

    Para responder la pregunta necesitamos responder una anterior:Que es lo que necesitariamos guardar para reconstruir la grafica?

    Los vertices. Los numeramos, los nombres no forman parte dela abstraccion fundamental.

    Las conexiones (aristas).

    Los pesos de cada arista (de haberlos). Por cierto el conjuntode aristas: E V V , o sea | E || V |2.

    As que podemos pensar en guardar, para toda pareja de verticesen V V (producto cartesiano), si existe arista entre ellos (graficano pesada, ya sea dirigida o no), o el peso de la arista (graficapesada, ya sea dirigida o no).

    Matriz de adyacencia.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 8 / 23

  • Matriz de adyacencia: variante 1

    A B C D E

    A 1 0 1 1 0B 0 1 1 0 1C 1 1 1 0 0D 1 0 0 1 1E 0 1 0 1 1

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 9 / 23

  • Matriz de adyacencia: variante 2

    A B C D E

    A 0 8 2 B 0 5 2C 8 5 0 D 2 0 4E 2 4 0

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 10 / 23

  • Matriz de adyacencia: variante 3

    A B C D E

    A 1 0 1 0 0B 0 1 1 0 1C 0 0 1 0 0D 1 0 0 1 1E 0 0 0 0 1

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 11 / 23

  • Matriz de adyacencia: variante 4

    A B C D E

    A 0 8 B 0 5 2C 0 D 2 0 4E 0

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 12 / 23

  • Costo de almacenamiento

    Almacenar el producto cartesiano significa guardar | V |2numeros (pesada) o bits (no pesada)...

    a lo mas.

    Porque en las no dirigidas la matriz es... simetrica, lo quesignifica que podemos almacenar solo el triangulo inferior(superior) y ya!

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 13 / 23

  • Costo de almacenamiento

    Almacenar el producto cartesiano significa guardar | V |2numeros (pesada) o bits (no pesada)... a lo mas.

    Porque en las no dirigidas la matriz es... simetrica, lo quesignifica que podemos almacenar solo el triangulo inferior(superior) y ya!

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 13 / 23

  • Costo de almacenamiento

    Almacenar el producto cartesiano significa guardar | V |2numeros (pesada) o bits (no pesada)... a lo mas.

    Porque en las no dirigidas la matriz es...

    simetrica, lo quesignifica que podemos almacenar solo el triangulo inferior(superior) y ya!

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 13 / 23

  • Costo de almacenamiento

    Almacenar el producto cartesiano significa guardar | V |2numeros (pesada) o bits (no pesada)... a lo mas.

    Porque en las no dirigidas la matriz es... simetrica, lo quesignifica que podemos almacenar solo el triangulo inferior(superior) y ya!

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 13 / 23

  • Alternativa

    Si la grafica es poco densa (pocas aristas), entonces...

    | E |

  • Otra representacion

    Por cada vertice...

    Por cada arista de salida de el.

    El vertice al que llega esa arista.

    Y su costo (si es el caso).

    Es decir: para cada vertice almacenar una lista con los verticesadyacentes a el y el peso de las aristas respectivas.

    Lista de adyacencia.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 15 / 23

  • Otra representacion

    Por cada vertice...

    Por cada arista de salida de el.

    El vertice al que llega esa arista.

    Y su costo (si es el caso).

    Es decir: para cada vertice almacenar una lista con los verticesadyacentes a el y el peso de las aristas respectivas.

    Lista de adyacencia.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 15 / 23

  • Otra representacion

    Por cada vertice...

    Por cada arista de salida de el.

    El vertice al que llega esa arista.

    Y su costo (si es el caso).

    Es decir: para cada vertice almacenar una lista con los verticesadyacentes a el y el peso de las aristas respectivas.

    Lista de adyacencia.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 15 / 23

  • Otra representacion

    Por cada vertice...

    Por cada arista de salida de el.

    El vertice al que llega esa arista.

    Y su costo (si es el caso).

    Es decir: para cada vertice almacenar una lista con los verticesadyacentes a el y el peso de las aristas respectivas.

    Lista de adyacencia.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 15 / 23

  • Otra representacion

    Por cada vertice...

    Por cada arista de salida de el.

    El vertice al que llega esa arista.

    Y su costo (si es el caso).

    Es decir: para cada vertice almacenar una lista con los verticesadyacentes a el y el peso de las aristas respectivas.

    Lista de adyacencia.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 15 / 23

  • Otra representacion

    Por cada vertice...

    Por cada arista de salida de el.

    El vertice al que llega esa arista.

    Y su costo (si es el caso).

    Es decir: para cada vertice almacenar una lista con los verticesadyacentes a el y el peso de las aristas respectivas.

    Lista de adyacencia.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 15 / 23

  • Lista de adyacencia: variante 1

    A C DB C EC A BD A EE B D

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 16 / 23

  • Lista de adyacencia: variante 2

    A C, 8 D, 2B C, 5 E, 2C A, 8 B, 5D A, 2 E, 4E B, 2 D, 4

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 17 / 23

  • Lista de adyacencia: variante 3

    A CB C ECD A EE

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 18 / 23

  • Lista de adyacencia: variante 4

    A C, 8B C, 5 E, 2CD A, 2 E, 4E

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 19 / 23

  • Comparacion

    Con cual representacion nos quedamos?

    Si p es el tamano dato necesario para almacenar los pesos y t el delos identificadores de vertice:

    La matriz de adyacencia tiene | V |2 entradas, en cada una sealmacena un peso o un bit: p | V |2La lista de adyacencia tiene | E || V |2 entradas, en cadauna de ellas se almacena un identificador de vertice o unidentificador de vertice y un peso: (p + t) | E |

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 20 / 23

  • Comparacion

    Con cual representacion nos quedamos?Si p es el tamano dato necesario para almacenar los pesos y t el delos identificadores de vertice:

    La matriz de adyacencia tiene | V |2 entradas, en cada una sealmacena un peso o un bit: p | V |2La lista de adyacencia tiene | E || V |2 entradas, en cadauna de ellas se almacena un identificador de vertice o unidentificador de vertice y un peso: (p + t) | E |

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 20 / 23

  • Comparacion

    Con cual representacion nos quedamos?Si p es el tamano dato necesario para almacenar los pesos y t el delos identificadores de vertice:

    La matriz de adyacencia tiene | V |2 entradas, en cada una sealmacena un peso o un bit: p | V |2

    La lista de adyacencia tiene | E || V |2 entradas, en cadauna de ellas se almacena un identificador de vertice o unidentificador de vertice y un peso: (p + t) | E |

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 20 / 23

  • Comparacion

    Con cual representacion nos quedamos?Si p es el tamano dato necesario para almacenar los pesos y t el delos identificadores de vertice:

    La matriz de adyacencia tiene | V |2 entradas, en cada una sealmacena un peso o un bit: p | V |2La lista de adyacencia tiene | E || V |2 entradas, en cadauna de ellas se almacena un identificador de vertice o unidentificador de vertice y un peso: (p + t) | E |

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 20 / 23

  • Costos

    En graficas densas en las que | E || V |2, la lista deadyacencia puede resultar mas costosa al tener que guardarlos identificadores de vertice t | E |.En graficas poco densas (las mas frecuentes en general) elcosto adicional de almacenar los identificadores t | E | resultamenos significativo que el ahorro.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 21 / 23

  • Otras consideraciones

    El ahorro no solo es en espacio de almacenamiento por ejemplo...

    Recuperar, uno a uno, a los vecinos de un vertice dado v (i.e. losvertices adyacentes a el):

    Con matriz de adyacencia: recorrer todo el renglon asociado av para encontrar la siguiente entrada no revisada distinta de. Hay que pasar tambien por las que no sirven.Con lista de adyacencia: regresar el siguiente miembro de lalista asociada con v . No hay datos inutiles en la lista de v .

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 22 / 23

  • Otras consideraciones

    El ahorro no solo es en espacio de almacenamiento por ejemplo...Recuperar, uno a uno, a los vecinos de un vertice dado v (i.e. losvertices adyacentes a el):

    Con matriz de adyacencia: recorrer todo el renglon asociado av para encontrar la siguiente entrada no revisada distinta de. Hay que pasar tambien por las que no sirven.Con lista de adyacencia: regresar el siguiente miembro de lalista asociada con v . No hay datos inutiles en la lista de v .

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 22 / 23

  • Otras consideraciones

    El ahorro no solo es en espacio de almacenamiento por ejemplo...Recuperar, uno a uno, a los vecinos de un vertice dado v (i.e. losvertices adyacentes a el):

    Con matriz de adyacencia: recorrer todo el renglon asociado av para encontrar la siguiente entrada no revisada distinta de. Hay que pasar tambien por las que no sirven.

    Con lista de adyacencia: regresar el siguiente miembro de lalista asociada con v . No hay datos inutiles en la lista de v .

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 22 / 23

  • Otras consideraciones

    El ahorro no solo es en espacio de almacenamiento por ejemplo...Recuperar, uno a uno, a los vecinos de un vertice dado v (i.e. losvertices adyacentes a el):

    Con matriz de adyacencia: recorrer todo el renglon asociado av para encontrar la siguiente entrada no revisada distinta de. Hay que pasar tambien por las que no sirven.Con lista de adyacencia: regresar el siguiente miembro de lalista asociada con v . No hay datos inutiles en la lista de v .

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 22 / 23

  • Recorridos

    En un recorrido en el que, para cada vertice v de la grafica, serecuperen a todos los vecinos de v :

    Con matriz: se recorre, una a una, todas las entradas de lamatriz. Por cada renglon (hay | V | de ellos) todas lascolumnas (| V | tambien). En total | V |2.Con lista: se recorre cada renglon de la lista, enpezando por elvertice que lo encabeza. Por cada vertice (| V |) se recorrensus aristas, las que en total suman | E | en toda la grafica; sila grafica es no dirigida cada arista se recupera dos veces (unapor cada extremo). En total | V | + | E |.

    Otra vez, si la grafica es densa podemos salir perdiendo con la listade adyacencia, pero no generalmente.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 23 / 23

  • Recorridos

    En un recorrido en el que, para cada vertice v de la grafica, serecuperen a todos los vecinos de v :

    Con matriz: se recorre, una a una, todas las entradas de lamatriz. Por cada renglon (hay | V | de ellos) todas lascolumnas (| V | tambien). En total | V |2.

    Con lista: se recorre cada renglon de la lista, enpezando por elvertice que lo encabeza. Por cada vertice (| V |) se recorrensus aristas, las que en total suman | E | en toda la grafica; sila grafica es no dirigida cada arista se recupera dos veces (unapor cada extremo). En total | V | + | E |.

    Otra vez, si la grafica es densa podemos salir perdiendo con la listade adyacencia, pero no generalmente.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 23 / 23

  • Recorridos

    En un recorrido en el que, para cada vertice v de la grafica, serecuperen a todos los vecinos de v :

    Con matriz: se recorre, una a una, todas las entradas de lamatriz. Por cada renglon (hay | V | de ellos) todas lascolumnas (| V | tambien). En total | V |2.Con lista: se recorre cada renglon de la lista, enpezando por elvertice que lo encabeza. Por cada vertice (| V |) se recorrensus aristas, las que en total suman | E | en toda la grafica; sila grafica es no dirigida cada arista se recupera dos veces (unapor cada extremo). En total | V | + | E |.

    Otra vez, si la grafica es densa podemos salir perdiendo con la listade adyacencia, pero no generalmente.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 23 / 23

  • Recorridos

    En un recorrido en el que, para cada vertice v de la grafica, serecuperen a todos los vecinos de v :

    Con matriz: se recorre, una a una, todas las entradas de lamatriz. Por cada renglon (hay | V | de ellos) todas lascolumnas (| V | tambien). En total | V |2.Con lista: se recorre cada renglon de la lista, enpezando por elvertice que lo encabeza. Por cada vertice (| V |) se recorrensus aristas, las que en total suman | E | en toda la grafica; sila grafica es no dirigida cada arista se recupera dos veces (unapor cada extremo). En total | V | + | E |.

    Otra vez, si la grafica es densa podemos salir perdiendo con la listade adyacencia, pero no generalmente.

    Jose Galaviz Casas (Facultad de Ciencias, UNAM) Graficas: representacion y algoritmos elementales 2009-I 23 / 23

    Graficas.Representacin