SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
Estructuras Discretas en Computación




Teoría de Grafos



                Profesor: Mag. Ing. Pavel Aliaga E.
                       Facultad de Ing. de Sistemas
                               Universidad de Lima
                                             2009-2
Grafos: Conceptos Básicos
¿Qué es un Grafo?
 Es un conjunto de: puntos (NODOS o VÉRTICES) unidos
 por líneas (ARCOS o ARISTAS)
¿Por qué se estudian Grafos?
 Porque permiten estudiar interrelaciones entre elementos que
  interactúan unos con otros
 Dado un escenario donde ciertos objetos se relacionan se
  puede “modelar el grafo” y luego aplicar algoritmos para
  resolver diversos problemas
 Son aplicables en:
   Ingeniería de Sistemas
   Modelado de Redes
   Ingeniería Industrial, Electrónica
   Química
   Geografía, etc.
¿Qué podemos representar con un
Grafo?

 Red de Computadoras
 Conexiones de vuelo de una aereolínea
 Carreteras que unen ciudades
                                           Impresora
 Actividades de un proyecto
 Circuitos electrónicos           Modem                     PC1

 Representación de un mapa
…                                                Servidor

Practicamente cualquier problema
                                           PC2
puede representarse mediante un grafo
Ejemplo de Aplicación de los Grafos

                  Recorrer cada carretera
                 exactamente una vez y regresar
                 al punto de partida

                  Recorrer cada ciudad una vez
                 y regresar a la ciudad de origen
                 y todo al menor costo posible

                  Encontrar el camino más corto
                 entre 2 cuidades cualesquiera
Grafo – Definición formal
 Un grafo G = (V,E)

 V, el conjunto de vértices o nodos                           1               4

   V={v1, v2, ..vn}
                                                                      5
   Representan los objetos
                                                              7                9
 E, el conjunto de arcos o aristas
   Representan las relaciones

   E ={vivj, vmvn, ..} Vértices Adyacentes: 2 vértices unidos por un arco

  V = {1, 4, 5, 7, 9}
  E= {(1,4), (4,9), (9,7), (7,5), (5,1), (4,1), (1,5), (5,7), (7, 9), (9,4)}
Grado de un Grafo
 Grado de un NODO: Es el # de arcos que inciden en un vértice
 Caso especial (lazo): se considera 2

      C              E               Grado (D) = 3    Grado (F) = 3
                                     Grado (H) = 3     Grado (C) = 3
                                     Grado (E) = 4
              F
      D                     H        Grado del Grafo = 16 = 2 * 8 arcos



 Grado de un GRAFO: Suma de los grados de los vértices.
 Teorema de Grado de un GRAFO: Suma de grados de vértices
  equivale al doble del número de arcos.
Tipos de Grafos                                                              x


   Grafo Regular
                                                                            u
       Todos los vértices tienen el mismo grado
       Si el grado es k, el grafo es k-regular
                                                               y                        z

                                                                    Grafo 3 - regular

   Grafo Completo
       Tiene una arista entre cualquier par de vértices
           a                     b                                     a                b


                                                           e
                                                                                    d
          c                      d                                 c

               Grafo completo                                      Grafo No completo
Tipos de Grafos
   Grafo Bipartito
       “Bipartito” significa que tiene 2 partes
       G= { V1 u V2, E}
       Sus vértices son la unión de dos grupos de vértices bajos las siguientes
        condiciones:
           V1 y V2 son conjuntos disjuntos
           Cada arista del Grafo une un vértice de V1 con uno de V2
           No existen aristas uniendo vértices del mismos conjunto V1 o V2

              a            b               a           b         c




                                                                     Grafos Bipartitos
                     c                           d         e
Lazo o bucle
Tipos de Grafos
                                                                    x                    u
   Mulitgrafo
        Es un grafo que tiene arcos múltiples
         (paralelos) o lazos
                                                                y                         z

                                  Arcos múltiples o paralelos
                                                                         Multigrafo


   Grafo Simple
        Es un grafo o digrafo que no tiene bucles              x                         u
         y que no es un multigrafo



                                                           y                                 z

                                                                        Grafo simple
Tipos de Grafos (dirección)
                                                      1               4
   Grafos no dirigidos
      Si los pares de nodos de los arcos                     5
    no son ordenados
    El arco se puede recorrer en ambos sentidos       7               9
       Ej.: u-v

   Grafos dirigidos o Digrafos
     Si los pares de nodos que forman arcos
                                                  C               E
son ordenados, de tal forma que el arco se
puede recorrer en un solo sentido. Ej.: (u->v)

                                                          F
                                                  D                       H
        V = {C, D, E, F, H}
        E= {(E,H), (H,E), (E,C), (C,D), (D,F)}
Grado de un Digrafo
                 En un grafo dirigido los arcos son
          E
                  pares ordenados.
                      Implica que (u,v) ≠ (v,u)
    M                 Las líneas se convierten en
                       flechas
                 El grado de entrada de un nodo es
    B             el número de arcos entrantes
         L       El grado de salida de un nodo es el
P                 número de arcos salientes
Grafos ponderados
   Costo o Factor de Peso
       Valor que se puede asociar con un arco
       Depende de lo que el grafo represente
       Si los arcos de un grafo tienen un costo: Grafo valorado o ponderado



                   20                                           20
            a              b                               a            b
          40
                  25         30                                25         30
                                                      40


            c      15      d                               c            d
                                                                15
        Grafo Dirigido con                             Grafo No Dirigido con
              Costo                                           Costo
Conectividad
                                               Grafo conexo
 Grafo Conexo
                                                              5
  Existe un camino entre cualquier   par de   3

    nodos                                               9

                                               2              7




            Grafo inconexo                     Grafo conexo
Grafos: Caminos
Trayectorias en Grafos
 Camino / recorrido                               4               7
      Un camino P desde u hasta v en el grafo G         10
       es una secuencia finita de vértices que
       empieza en u y acaba en v.                                      11
                                                   6          9
      Cada par de vértices consecutivos son
       adyacentes
                                                   Camino entre 4 y 7
 Longitud de camino
                                                   T1 = {4, 6, 9, 7}
    El número de arcos que lo forman
                                                   Longitud: 3
 Camino Simple
    Todos los nodos     que lo forman son
       distintos (no se repite nodos)
Trayectorias en Grafos
 Ciclo / Circuito (camino cerrado)
    Es un camino que inicia y termina en el mismo nodo
    No se recorre dos veces por la misma arista


         A              B          C



         D              E          F



             Camino A y A
             P = {A, E, B, F, A}


    ¿Cuál es la longitud mínima que puede tener un ciclo?   Rpta: 3
Ciclos de Euler y Hamilton

 “Hacer el recorrido sin levantar el lápiz del papel…”
Puentes de Königsberg
 El problema consiste en recorrer toda la ciudad partiendo de
  cualquier lugar (A, B, C o D) caminando sobre cada puente
  exactamente una vez y regresar a la posición inicial. ¿Es
  posible?
                                                 7 Puentes



                                                 2 Islas: B y C

                                                 2 Orillas: A y D
Puentes de Königsberg
 Un modelo de grafo de puentes de Königsberg

 Nodos:
     Porciones de tierra (orillas, islas)

 Arcos:                                     5

     Puentes

                                                          Representación
                                                          mediante un grafo




Origen de los grafos: Euler ideó los grafos para ver si era posible
Recorrer toda la ciudad sin cruzar c/u de los puentes más de una sola vez.
Caminos y Ciclos de Euler
   Camino de Euler
       Recorre TODOS los ARCOS sin repetirlos
       Los vértices se pueden repetir


   Ciclo de Euler
       Recorre TODOS los ARCOS sin repetirlos
       Los vértices se pueden repetir
       Inicia y termina en el mismo vértice


   Grafo Semieuleriano
       Es aquel grafo conexo que admite un camino de Euler
   Grafo Euleriano
       Es el aquel grafo conexo que admite un circuito de Euler
Teoremas de Euler
 Teorema 1 (Grafo Euleriano)
    Si G es un grafo conexo y TODOS sus vértices tienen grado PAR,
     entonces existe un circuito de Euler en G.


 Teorema 2 (Grafo Semieuleriano)
    Si G es un grafo conexo y tiene exactamente 2 vértices de grado
     IMPAR y el resto de grado PAR, entonces existe un recorrido de
     Euler en G. Cualquier recorrido de Euler debe comenzar en un
     vértice de grado impar y terminar en el otro.
Eulerizar un grafo
 Objetivo: Minimizar    la longitud total de arcos utilizados

 Procedimiento:
1.    Localizar los vértices de grado impar
2.    Añadir un arco a c/u de los vértices para que tenga grado par


 ¿Cómo euleriza el problema de los puentes de
     königsberg?
Caminos y Ciclos de Hamilton
 Camino de Hamilton
       Recorre TODOS los VÉRTICES sin repetirlos


 Ciclo de Hamilton
     Inicia y termina en el mismo vértice
     Recorre TODOS los VÉRTICES sin repetirlos (excepto el vértice del
      cual parte y al cual llega)

   Grafo Hamiltoniano
       Es el aquel grafo que admite un circuito de Hamilton
Ciclo Hamiltoniano
                           El juego de Hamilton se resuelve
                           si se encuentra un ciclo que recorra
                           todos los vértices pasando una sola
                           vez por cada uno de ellos (excepto
                           por el vértice inicial y final).

                           Nodos= ciudades
                           Arcos=caminos entre ciudades



Viajero que recorre ciudades
Grafos: Relaciones en un
Digrafo
Relaciones en un Digrafo
   A = (1, 2, 3, 4)
   R = { (1, 2), (2, 2), (2, 3), (3, 4), (4, 3) }
   Conjunto Relación R: muestra todas las relaciones de
    conectividad (trayectorias de longitud 1) entre los nodos del
    grafo.


               1               2                          1 2 3 4
                                                     1    0   1   0   0
                                                          0   1   1   0
                                                 𝑀𝑅 =2
                                                     3    0   0   0   1
               3               4                     4    0   0   1   0


                   Digrafo G                      Matriz de una Relación
Relaciones en un Digrafo
   Se define la relación Rn en A por:
      xRny si y solo si existe una trayectoria de longitud “n” de x a y
      xR ∞ y si y solo si existe una trayectoria de cualquier longitud de x
        ay
   R2 = { (1,2), (1,3), (2,2), (2,3), (2,4), (3,3), (4,4) } trayectorias de long. 2
   R3 = { (1,2), (1,3), (2,2), (2,3), (2,4), (3,4), (4,3) } trayectorias de long. 3
   R∞ = { (1,2), (1,3), (1,4), (2,2), (2,3), (2,4), (3,3), (3,4), (4,3), (4,4) }

                                                        1 R2 2 = {1, 2, 2}
                  1                    2
                                                        1 R2 3 = {1, 2, 3}
                                                        2 R2 2 = {2, 2, 2}
                                                        2 R2 3 = {2, 2, 3}
                                                        2 R2 4 = {2, 3, 4}
                  3                    4                3 R2 3 = {3, 4, 3}
                                                        4 R2 4 = {4, 3, 4}
                      Digrafo G
Grafos: Representación
Matricial
Representación de Grafos
 Para representar un grafo en una computadora se puede
 usar:
  Matriz de Adyacencia [A]
      V (vértices) x V(vértices)


  Matriz de Incidencia [M]
      V (vértices) x A (arcos )


  Matriz de Arcos [B]
      A (arcos ) x V (vértices)
Matriz de Adyacencia [A] (grafos no
      dirigidos)
    Dado un Grafo G = (V, E)                                                  V3
                                                         V0
                                                              4       V4          7
    Está representado por una matriz
                                                                      10
     de V (vértices) por V(vértices)
                                                                                      V5
    1= si hay un arco o existe                                                       11
     adyacencia entre los vértices                       V1 6              9 V2

                                                         V 0 V1 V 2 V 3 V 4 V 5
         1, si hay arco          (Vi,Vj)               V0 0       1   0    0   0       0
   aij                                                 V1 1       0   1    0   0       0
         0, si no hay arco (Vi,Vj)                     V2 0       1   0    1   0       0
                                                       V3 0       0   1    0   0       0
                                                       V4 0       0   0    0   0       1
Caso especial: cuando hay un lazo se considera aij=1
                                                       V5 0       0   0    0   1       0
Matriz de Adyacencia [A]
    (digrafos)
   Para Digrafos




       V1              V2           V4




                  V3



    Caso especial: cuando hay un lazo se considera aij=1
Matriz de Adyacencia [A]
    (Propiedades)
   El Grado de un Vértice se obtiene sumando la fila o la columna
    correspondiente (solo para grafos no dirigidos).
        Nota: Si la arista es un bucle entonces se suma 2 en vez de 1


   Teorema: Si A es la matriz de adyacencia, el elemento ij de An es
    igual al número de caminos de longitud “n” del vértice i al vértice j
Matriz de Incidencia [M] (grafos no
dirigidos)
   Dado un Grafo G = (V, E)
   Está representado por una matriz de V (vértices) por A (arcos)
                 1, [arco, vértice] está conectado
        aij      0 [arco, vértice] no está conectado

   1: Si el arco i incide en el vértice j
   En un grafo sin lazos, la suma de una fila dá el grado del vértice
    identificado con esa fila.
Matriz de Incidencia [M]
    (digrafos)
   Para Digrafos
       Ai,j =1, arco sale del nodo
       Aij=-1, arco entra al nodo
       Aij=2, si el nodo es origen y final del arco (lazo)
       Aij=0, si el arco no inicide en el nodo
Matriz de Arcos [B]
   Dado un Grafo G = (V, E)
   Está representado por una matriz de Arcos (A) x Vértices (V)
   Esta formada por los arcos del grafo representado


                    e1             e2
          V1                  V2         V4
                                                            e1   V1 V2
                                                            e    V2 V4
                                                      [B] = 2
               e3             e4                            e3   V1 V3
                                                            e4   V2 V3
                         V3

                                   La matriz es de: m (# de arcos) x 2 elementos
Matriz Distancia [D]
   Dado un Grafo G = (V, E)
   Está representado por una matriz de Vértices (V) x Vértices (V)
   Almacena las distancias de un vértice a otro

                  0, si i=j
          dij     X, si no hay camino entre Vi y Vj
                  # de arcos del camino más corto entre Vi y Vj


                           V2             V4                      V1 V2 V3 V4
          V1
                                                           V1     0   1   2   x
                                                           V      2   0   1   x
                                                     [D] = 2
                                                           V3     1   2   0   x
                                                           V4     3   1   2   0
                     V3
Grafos: Algoritmos

Establecer el costo mínimo recorriendo todos los vértices

Encontrar la distancia mínima entre 2 vértices
Problema del vendedor viajero
   El problema del vendedor viajero consiste en encontrar la ruta
    más corta en la que el agente viajero pueda visitar en cada
    ciudad a sus clientes una vez comenzando y terminando en la
    misma cuidad.
   Ciudades = Nodos
   Caminos entre ciudades = Arcos

                       Definición del Problema: Construir la ruta de costo mínimo
                       que visita a cada cliente exactamente una vez
Algoritmos para establecer
     circuitos hamiltonianos
     considerando el costo
1.   Vecino más cercano:
     a.   se visita el nodo más cercano y a continuación el siguiente nodo
          más cercano no visitado hasta regresar al origen.
     b.   Nota: Este método tiene una ventaja en las primeras
          selecciones, sin embargo en los últimos pasos puede elegir aristas
          de longitud muy grande por tanto no necesariamente encuentra el
          costo min.               L           {C, S, L, M, C} =
                                                300 + 541 + 774 + 425 = 2040
                                  541
                          774             349

                                   S
                           562          300
                      M                          C
                                  425
Algoritmos para establecer
     circuitos hamiltonianos
     considerando el costo
2.   Árbol del costo mínimo
     a.    Generar todos los recorridos hamiltonianos posibles
     b.    Elegir el camino con el peso mínimo                 C


                                                   M               S               L
               L
                                           S           L   L       M           M           S
                                           L           S   M           L       S           M
              541
     774              349                      C       C   C               C   C       C

               S
                                 {C, M, L, S, C} = 425 + 774 + 541 + 300 = 2040
      562           300
                                 {C, M, S, L, C} = 425 + 562 + 541 + 349 = 1877
M                           C    {C, S, M, L, C} = 300 + 562 + 774 + 349 = 1985
              425
                                 {C, S, L, M, C} = 300 + 541 + 774 + 425 = 2040
                                 {C, L, S, M, C} = 349 + 541 + 562 + 425 = 1877
                                 {C, L, M, S, C} = 349 + 774 + 562 + 300 = 1985
Algoritmos para establecer
     circuitos hamiltonianos
     considerando el costo
3.   Arcos clasificados (costo medio)
 a. Ordenar los arcos: 300, 349, 425, 541, 562, 774
 b. Menor: 300, siguiente menor 349, etc.

 Construir el ciclo hamiltoniano:
 -No se pueden juntar 3 arcos en un vértice
 -No se puede cerrar ciclo sin incluir todos los vértices

                                  {C, L, M, S, C} = 300 + 349 + 774 + 562 = 1985
                                          L

                                         541
                               774                349

                                          S
                                 562           300
                          M                             C
                                        425
Algoritmos para encontrar caminos
   más cortos
 Frecuentemente se desea conocer en un grafo cuál es el
  camino más corto entre un par de vértices
 En este caso
    Sí importa cuántos caminos existen
    Si ya conozco un camino pero encuentro uno
      mejor, sustuir
 Aplicar algoritmos de:

   1. Ford
   2. Dikjstra
Algoritmo de Ford
1. Permite calcular la distancia mínima entre 2
   puntos de 1 grafo.
2. Cada nodo se representa por :               n
                                               A
3. Pasos:
  1.   Asignar el valor 0 al nodo origen
  2.   Mediante un proceso iterativo se le asignará a cada nodo Xi
       un valor n igual a la longitud del camino más corto que exista
       desde el nodo origen al nodo Xj.
Edsger Dijkstra (1930 –
 2002)
              Científico de la computación
             de origen holandés

             Creador del Algoritmo de
              caminos mínimos

             Recibió el Premio Turing
Algoritmo de Dikjstra: grafos conexos
1. Dado un V0, Dijkstra busca un conjunto D con
   Las menores distancias de V0 al resto de vértices

2. Al inicio, solo conocemos
   Las distancias de los adyacentes
   D es inicializada a
     Factor de peso para los adyacentes, Infinito ∞ para los no adyacentes

3. D va ser mejorado sucesivamente
   Escogiendo el vértice Vk no elegido antes
     Que tenga la distancia mas corta V0, Vk
   Probamos si pasando por Vk
     Se puede obtener distancias mas cortas de las que tenemos
     Para cada Vértice restante del grafo
Pasando por V2, Distancia de V1                          Pasando por
                a V5 seria 8, no hay mejora                        V3, Distancia de V1 a
                                                                   V5 seria 7, CAMBIAR


EJEMPLO DE DIJKSTRA
                                                                              V1   V2   V3   V4   V5      V6

                                                   Escogidos      Vértice    D[0] D[1] D[2] D[3] D[4] D[5]
 De V1 AL RESTO                                                  Evaluado
                    5                              V1             V1           0   3    4    ∞    8       ∞
         V2                    V5
3                                                 V1,V2           V2           0   3    4    ∞    8       ∞
                                       3
               8                                 V1,V2,V3         V3           0   3    4    ∞    7       ∞
                                           V6
V1                            7                 V1,V2,V3,V5       V5           0   3    4    14 7         10
                        3                       V1,V2,V3,V5,V6    V6           0   3    4    12 7         10
     4    V3                      V4   2

1. D[] se inicializa con F.P. de adyacentes al origen

2. Escoger vértice Vk que no haya sido
escogido, con la menor distancia del Vevaluado a                            Repetir hasta k se hayan
Vk                                                                          visitado todos los vértices

3. Revisar si alguna distancia puede ser mejorada
pasando por Vevaluado desde V1
Ejercicios Guiados y
 Propuestos

Más contenido relacionado

La actualidad más candente

Matemáticas discretas- Teoría de Grafos
Matemáticas discretas- Teoría de GrafosMatemáticas discretas- Teoría de Grafos
Matemáticas discretas- Teoría de GrafosAngela Janeth Jimenez
 
Ejercicios resueltos de dependencia e independencia lineal
Ejercicios resueltos de dependencia e independencia linealEjercicios resueltos de dependencia e independencia lineal
Ejercicios resueltos de dependencia e independencia linealalgebra
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesAngel Vázquez Patiño
 
Grafos/EjerciciosPropuestos
Grafos/EjerciciosPropuestosGrafos/EjerciciosPropuestos
Grafos/EjerciciosPropuestosAmanda_84
 
Circuito de Hamilton
Circuito de HamiltonCircuito de Hamilton
Circuito de HamiltonVicentino
 
Listas de adyacencia
Listas de adyacenciaListas de adyacencia
Listas de adyacencialeidy2220
 
Grafos bipartitos y subgrafos
Grafos bipartitos y subgrafosGrafos bipartitos y subgrafos
Grafos bipartitos y subgrafosAsdrúbal Suárez
 
Problemas resueltos sobre inducción matemática
Problemas resueltos sobre inducción matemáticaProblemas resueltos sobre inducción matemática
Problemas resueltos sobre inducción matemáticaJ. Amauris Gelabert S.
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 

La actualidad más candente (20)

Isomorfos y arboles
Isomorfos y arbolesIsomorfos y arboles
Isomorfos y arboles
 
Grafos
GrafosGrafos
Grafos
 
Arboles con raiz
Arboles con raizArboles con raiz
Arboles con raiz
 
Matemáticas discretas- Teoría de Grafos
Matemáticas discretas- Teoría de GrafosMatemáticas discretas- Teoría de Grafos
Matemáticas discretas- Teoría de Grafos
 
Ejercicios resueltos de dependencia e independencia lineal
Ejercicios resueltos de dependencia e independencia linealEjercicios resueltos de dependencia e independencia lineal
Ejercicios resueltos de dependencia e independencia lineal
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
332 presentacion grafos
332 presentacion grafos332 presentacion grafos
332 presentacion grafos
 
Grafos/EjerciciosPropuestos
Grafos/EjerciciosPropuestosGrafos/EjerciciosPropuestos
Grafos/EjerciciosPropuestos
 
Teoría de Grafos.
Teoría de Grafos.Teoría de Grafos.
Teoría de Grafos.
 
Circuito de Hamilton
Circuito de HamiltonCircuito de Hamilton
Circuito de Hamilton
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Listas de adyacencia
Listas de adyacenciaListas de adyacencia
Listas de adyacencia
 
Grafos bipartitos y subgrafos
Grafos bipartitos y subgrafosGrafos bipartitos y subgrafos
Grafos bipartitos y subgrafos
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Problemas resueltos sobre inducción matemática
Problemas resueltos sobre inducción matemáticaProblemas resueltos sobre inducción matemática
Problemas resueltos sobre inducción matemática
 
Grafo bipartito
Grafo bipartitoGrafo bipartito
Grafo bipartito
 
Capitulo1 grafos
Capitulo1 grafosCapitulo1 grafos
Capitulo1 grafos
 
grafos conexos
grafos conexosgrafos conexos
grafos conexos
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 

Destacado

TEORIA DEL CAOS
TEORIA DEL CAOSTEORIA DEL CAOS
TEORIA DEL CAOSEuler
 
Teoría de grafos
Teoría de grafosTeoría de grafos
Teoría de grafosJGerard0
 
Ventajas y desventajas de las redes informaticas.
Ventajas y desventajas de las redes informaticas.Ventajas y desventajas de las redes informaticas.
Ventajas y desventajas de las redes informaticas.yajhaira191199
 
5.3 arbol de expansión minima algoritmo de prim
5.3 arbol de expansión minima algoritmo de prim5.3 arbol de expansión minima algoritmo de prim
5.3 arbol de expansión minima algoritmo de primADRIANA NIETO
 
El problema de la ruta mas corta
El problema de la ruta mas corta El problema de la ruta mas corta
El problema de la ruta mas corta Luis Fajardo
 
5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskal5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskalADRIANA NIETO
 
Analisis de Redes - Investigacion de Operaciones
Analisis de Redes - Investigacion de OperacionesAnalisis de Redes - Investigacion de Operaciones
Analisis de Redes - Investigacion de OperacionesSergio Hernández Ortega
 
Algoritmos de kruskal y prim
Algoritmos de kruskal y primAlgoritmos de kruskal y prim
Algoritmos de kruskal y primfher969
 
teoria de colas - grifo repsol
teoria de colas - grifo repsolteoria de colas - grifo repsol
teoria de colas - grifo repsolJohncastro007
 

Destacado (11)

Evitando el fraude a través de la presentación de la información en grafos
Evitando el fraude a través de la presentación de la información en grafosEvitando el fraude a través de la presentación de la información en grafos
Evitando el fraude a través de la presentación de la información en grafos
 
Casos de puesta en valor de de la tecnología de Big Data con NoSQL orientada ...
Casos de puesta en valor de de la tecnología de Big Data con NoSQL orientada ...Casos de puesta en valor de de la tecnología de Big Data con NoSQL orientada ...
Casos de puesta en valor de de la tecnología de Big Data con NoSQL orientada ...
 
TEORIA DEL CAOS
TEORIA DEL CAOSTEORIA DEL CAOS
TEORIA DEL CAOS
 
Teoría de grafos
Teoría de grafosTeoría de grafos
Teoría de grafos
 
Ventajas y desventajas de las redes informaticas.
Ventajas y desventajas de las redes informaticas.Ventajas y desventajas de las redes informaticas.
Ventajas y desventajas de las redes informaticas.
 
5.3 arbol de expansión minima algoritmo de prim
5.3 arbol de expansión minima algoritmo de prim5.3 arbol de expansión minima algoritmo de prim
5.3 arbol de expansión minima algoritmo de prim
 
El problema de la ruta mas corta
El problema de la ruta mas corta El problema de la ruta mas corta
El problema de la ruta mas corta
 
5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskal5.3 arbol expansión minima algoritmo de kruskal
5.3 arbol expansión minima algoritmo de kruskal
 
Analisis de Redes - Investigacion de Operaciones
Analisis de Redes - Investigacion de OperacionesAnalisis de Redes - Investigacion de Operaciones
Analisis de Redes - Investigacion de Operaciones
 
Algoritmos de kruskal y prim
Algoritmos de kruskal y primAlgoritmos de kruskal y prim
Algoritmos de kruskal y prim
 
teoria de colas - grifo repsol
teoria de colas - grifo repsolteoria de colas - grifo repsol
teoria de colas - grifo repsol
 

Similar a Teoria de grafos (20)

METODOS Y CONSEPTOS ESTRUCTURA DE GRAFOS
METODOS Y CONSEPTOS ESTRUCTURA DE GRAFOSMETODOS Y CONSEPTOS ESTRUCTURA DE GRAFOS
METODOS Y CONSEPTOS ESTRUCTURA DE GRAFOS
 
Tema grafos
Tema grafosTema grafos
Tema grafos
 
Catedra grafos
Catedra grafosCatedra grafos
Catedra grafos
 
Catedra grafos
Catedra grafosCatedra grafos
Catedra grafos
 
Catedra grafos
Catedra grafosCatedra grafos
Catedra grafos
 
Material de grafos.pdf
Material de grafos.pdfMaterial de grafos.pdf
Material de grafos.pdf
 
Grafoscuestionario
GrafoscuestionarioGrafoscuestionario
Grafoscuestionario
 
Fundamentos de la Teoría de Grafos en Curso de Educagratis
Fundamentos de la Teoría de Grafos en Curso de EducagratisFundamentos de la Teoría de Grafos en Curso de Educagratis
Fundamentos de la Teoría de Grafos en Curso de Educagratis
 
Cátedra de Grafos
Cátedra de GrafosCátedra de Grafos
Cátedra de Grafos
 
Grafos
GrafosGrafos
Grafos
 
Grafos avanzado
Grafos avanzadoGrafos avanzado
Grafos avanzado
 
S8-EDD-4.2 Aplicaciones de árboles en informática
S8-EDD-4.2 Aplicaciones de árboles en informáticaS8-EDD-4.2 Aplicaciones de árboles en informática
S8-EDD-4.2 Aplicaciones de árboles en informática
 
Diapo teoria de grafos
Diapo teoria de grafosDiapo teoria de grafos
Diapo teoria de grafos
 
Grafos en sage
Grafos en sageGrafos en sage
Grafos en sage
 
Teoría de Grafos en sage
 Teoría de Grafos en sage Teoría de Grafos en sage
Teoría de Grafos en sage
 
Grafos teoria
Grafos teoriaGrafos teoria
Grafos teoria
 
Grafos2010
Grafos2010Grafos2010
Grafos2010
 
Preentacion 3°
Preentacion 3°Preentacion 3°
Preentacion 3°
 
Grafos
GrafosGrafos
Grafos
 
Grafos (angel)[1]
Grafos (angel)[1]Grafos (angel)[1]
Grafos (angel)[1]
 

Último

De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 

Último (20)

De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 

Teoria de grafos

  • 1. Estructuras Discretas en Computación Teoría de Grafos Profesor: Mag. Ing. Pavel Aliaga E. Facultad de Ing. de Sistemas Universidad de Lima 2009-2
  • 3. ¿Qué es un Grafo?  Es un conjunto de: puntos (NODOS o VÉRTICES) unidos por líneas (ARCOS o ARISTAS)
  • 4. ¿Por qué se estudian Grafos?  Porque permiten estudiar interrelaciones entre elementos que interactúan unos con otros  Dado un escenario donde ciertos objetos se relacionan se puede “modelar el grafo” y luego aplicar algoritmos para resolver diversos problemas  Son aplicables en:  Ingeniería de Sistemas  Modelado de Redes  Ingeniería Industrial, Electrónica  Química  Geografía, etc.
  • 5. ¿Qué podemos representar con un Grafo?  Red de Computadoras  Conexiones de vuelo de una aereolínea  Carreteras que unen ciudades Impresora  Actividades de un proyecto  Circuitos electrónicos Modem PC1  Representación de un mapa … Servidor Practicamente cualquier problema PC2 puede representarse mediante un grafo
  • 6. Ejemplo de Aplicación de los Grafos  Recorrer cada carretera exactamente una vez y regresar al punto de partida  Recorrer cada ciudad una vez y regresar a la ciudad de origen y todo al menor costo posible  Encontrar el camino más corto entre 2 cuidades cualesquiera
  • 7. Grafo – Definición formal  Un grafo G = (V,E)  V, el conjunto de vértices o nodos 1 4  V={v1, v2, ..vn} 5  Representan los objetos 7 9  E, el conjunto de arcos o aristas  Representan las relaciones  E ={vivj, vmvn, ..} Vértices Adyacentes: 2 vértices unidos por un arco V = {1, 4, 5, 7, 9} E= {(1,4), (4,9), (9,7), (7,5), (5,1), (4,1), (1,5), (5,7), (7, 9), (9,4)}
  • 8. Grado de un Grafo  Grado de un NODO: Es el # de arcos que inciden en un vértice  Caso especial (lazo): se considera 2 C E Grado (D) = 3 Grado (F) = 3 Grado (H) = 3 Grado (C) = 3 Grado (E) = 4 F D H Grado del Grafo = 16 = 2 * 8 arcos  Grado de un GRAFO: Suma de los grados de los vértices.  Teorema de Grado de un GRAFO: Suma de grados de vértices equivale al doble del número de arcos.
  • 9. Tipos de Grafos x  Grafo Regular u  Todos los vértices tienen el mismo grado  Si el grado es k, el grafo es k-regular y z Grafo 3 - regular  Grafo Completo  Tiene una arista entre cualquier par de vértices a b a b e d c d c Grafo completo Grafo No completo
  • 10. Tipos de Grafos  Grafo Bipartito  “Bipartito” significa que tiene 2 partes  G= { V1 u V2, E}  Sus vértices son la unión de dos grupos de vértices bajos las siguientes condiciones:  V1 y V2 son conjuntos disjuntos  Cada arista del Grafo une un vértice de V1 con uno de V2  No existen aristas uniendo vértices del mismos conjunto V1 o V2 a b a b c Grafos Bipartitos c d e
  • 11. Lazo o bucle Tipos de Grafos x u  Mulitgrafo  Es un grafo que tiene arcos múltiples (paralelos) o lazos y z Arcos múltiples o paralelos Multigrafo  Grafo Simple  Es un grafo o digrafo que no tiene bucles x u y que no es un multigrafo y z Grafo simple
  • 12. Tipos de Grafos (dirección) 1 4  Grafos no dirigidos  Si los pares de nodos de los arcos 5 no son ordenados El arco se puede recorrer en ambos sentidos 7 9 Ej.: u-v  Grafos dirigidos o Digrafos  Si los pares de nodos que forman arcos C E son ordenados, de tal forma que el arco se puede recorrer en un solo sentido. Ej.: (u->v) F D H V = {C, D, E, F, H} E= {(E,H), (H,E), (E,C), (C,D), (D,F)}
  • 13. Grado de un Digrafo  En un grafo dirigido los arcos son E pares ordenados.  Implica que (u,v) ≠ (v,u) M  Las líneas se convierten en flechas  El grado de entrada de un nodo es B el número de arcos entrantes L  El grado de salida de un nodo es el P número de arcos salientes
  • 14. Grafos ponderados  Costo o Factor de Peso  Valor que se puede asociar con un arco  Depende de lo que el grafo represente  Si los arcos de un grafo tienen un costo: Grafo valorado o ponderado 20 20 a b a b 40 25 30 25 30 40 c 15 d c d 15 Grafo Dirigido con Grafo No Dirigido con Costo Costo
  • 15. Conectividad Grafo conexo  Grafo Conexo 5 Existe un camino entre cualquier par de 3 nodos 9 2 7 Grafo inconexo Grafo conexo
  • 17. Trayectorias en Grafos  Camino / recorrido 4 7  Un camino P desde u hasta v en el grafo G 10 es una secuencia finita de vértices que empieza en u y acaba en v. 11 6 9  Cada par de vértices consecutivos son adyacentes Camino entre 4 y 7  Longitud de camino T1 = {4, 6, 9, 7}  El número de arcos que lo forman Longitud: 3  Camino Simple  Todos los nodos que lo forman son distintos (no se repite nodos)
  • 18. Trayectorias en Grafos  Ciclo / Circuito (camino cerrado)  Es un camino que inicia y termina en el mismo nodo  No se recorre dos veces por la misma arista A B C D E F Camino A y A P = {A, E, B, F, A} ¿Cuál es la longitud mínima que puede tener un ciclo? Rpta: 3
  • 19. Ciclos de Euler y Hamilton “Hacer el recorrido sin levantar el lápiz del papel…”
  • 20. Puentes de Königsberg  El problema consiste en recorrer toda la ciudad partiendo de cualquier lugar (A, B, C o D) caminando sobre cada puente exactamente una vez y regresar a la posición inicial. ¿Es posible? 7 Puentes 2 Islas: B y C 2 Orillas: A y D
  • 21. Puentes de Königsberg  Un modelo de grafo de puentes de Königsberg  Nodos:  Porciones de tierra (orillas, islas)  Arcos: 5  Puentes Representación mediante un grafo Origen de los grafos: Euler ideó los grafos para ver si era posible Recorrer toda la ciudad sin cruzar c/u de los puentes más de una sola vez.
  • 22. Caminos y Ciclos de Euler  Camino de Euler  Recorre TODOS los ARCOS sin repetirlos  Los vértices se pueden repetir  Ciclo de Euler  Recorre TODOS los ARCOS sin repetirlos  Los vértices se pueden repetir  Inicia y termina en el mismo vértice  Grafo Semieuleriano  Es aquel grafo conexo que admite un camino de Euler  Grafo Euleriano  Es el aquel grafo conexo que admite un circuito de Euler
  • 23. Teoremas de Euler  Teorema 1 (Grafo Euleriano)  Si G es un grafo conexo y TODOS sus vértices tienen grado PAR, entonces existe un circuito de Euler en G.  Teorema 2 (Grafo Semieuleriano)  Si G es un grafo conexo y tiene exactamente 2 vértices de grado IMPAR y el resto de grado PAR, entonces existe un recorrido de Euler en G. Cualquier recorrido de Euler debe comenzar en un vértice de grado impar y terminar en el otro.
  • 24. Eulerizar un grafo  Objetivo: Minimizar la longitud total de arcos utilizados  Procedimiento: 1. Localizar los vértices de grado impar 2. Añadir un arco a c/u de los vértices para que tenga grado par  ¿Cómo euleriza el problema de los puentes de königsberg?
  • 25. Caminos y Ciclos de Hamilton  Camino de Hamilton  Recorre TODOS los VÉRTICES sin repetirlos  Ciclo de Hamilton  Inicia y termina en el mismo vértice  Recorre TODOS los VÉRTICES sin repetirlos (excepto el vértice del cual parte y al cual llega)  Grafo Hamiltoniano  Es el aquel grafo que admite un circuito de Hamilton
  • 26. Ciclo Hamiltoniano El juego de Hamilton se resuelve si se encuentra un ciclo que recorra todos los vértices pasando una sola vez por cada uno de ellos (excepto por el vértice inicial y final). Nodos= ciudades Arcos=caminos entre ciudades Viajero que recorre ciudades
  • 27. Grafos: Relaciones en un Digrafo
  • 28. Relaciones en un Digrafo  A = (1, 2, 3, 4)  R = { (1, 2), (2, 2), (2, 3), (3, 4), (4, 3) }  Conjunto Relación R: muestra todas las relaciones de conectividad (trayectorias de longitud 1) entre los nodos del grafo. 1 2 1 2 3 4 1 0 1 0 0 0 1 1 0 𝑀𝑅 =2 3 0 0 0 1 3 4 4 0 0 1 0 Digrafo G Matriz de una Relación
  • 29. Relaciones en un Digrafo  Se define la relación Rn en A por:  xRny si y solo si existe una trayectoria de longitud “n” de x a y  xR ∞ y si y solo si existe una trayectoria de cualquier longitud de x ay  R2 = { (1,2), (1,3), (2,2), (2,3), (2,4), (3,3), (4,4) } trayectorias de long. 2  R3 = { (1,2), (1,3), (2,2), (2,3), (2,4), (3,4), (4,3) } trayectorias de long. 3  R∞ = { (1,2), (1,3), (1,4), (2,2), (2,3), (2,4), (3,3), (3,4), (4,3), (4,4) } 1 R2 2 = {1, 2, 2} 1 2 1 R2 3 = {1, 2, 3} 2 R2 2 = {2, 2, 2} 2 R2 3 = {2, 2, 3} 2 R2 4 = {2, 3, 4} 3 4 3 R2 3 = {3, 4, 3} 4 R2 4 = {4, 3, 4} Digrafo G
  • 31. Representación de Grafos  Para representar un grafo en una computadora se puede usar:  Matriz de Adyacencia [A]  V (vértices) x V(vértices)  Matriz de Incidencia [M]  V (vértices) x A (arcos )  Matriz de Arcos [B]  A (arcos ) x V (vértices)
  • 32. Matriz de Adyacencia [A] (grafos no dirigidos)  Dado un Grafo G = (V, E) V3 V0 4 V4 7  Está representado por una matriz 10 de V (vértices) por V(vértices) V5  1= si hay un arco o existe 11 adyacencia entre los vértices V1 6 9 V2 V 0 V1 V 2 V 3 V 4 V 5 1, si hay arco (Vi,Vj) V0 0 1 0 0 0 0 aij V1 1 0 1 0 0 0 0, si no hay arco (Vi,Vj) V2 0 1 0 1 0 0 V3 0 0 1 0 0 0 V4 0 0 0 0 0 1 Caso especial: cuando hay un lazo se considera aij=1 V5 0 0 0 0 1 0
  • 33. Matriz de Adyacencia [A] (digrafos)  Para Digrafos V1 V2 V4 V3 Caso especial: cuando hay un lazo se considera aij=1
  • 34. Matriz de Adyacencia [A] (Propiedades)  El Grado de un Vértice se obtiene sumando la fila o la columna correspondiente (solo para grafos no dirigidos).  Nota: Si la arista es un bucle entonces se suma 2 en vez de 1  Teorema: Si A es la matriz de adyacencia, el elemento ij de An es igual al número de caminos de longitud “n” del vértice i al vértice j
  • 35. Matriz de Incidencia [M] (grafos no dirigidos)  Dado un Grafo G = (V, E)  Está representado por una matriz de V (vértices) por A (arcos) 1, [arco, vértice] está conectado aij 0 [arco, vértice] no está conectado  1: Si el arco i incide en el vértice j  En un grafo sin lazos, la suma de una fila dá el grado del vértice identificado con esa fila.
  • 36. Matriz de Incidencia [M] (digrafos)  Para Digrafos  Ai,j =1, arco sale del nodo  Aij=-1, arco entra al nodo  Aij=2, si el nodo es origen y final del arco (lazo)  Aij=0, si el arco no inicide en el nodo
  • 37. Matriz de Arcos [B]  Dado un Grafo G = (V, E)  Está representado por una matriz de Arcos (A) x Vértices (V)  Esta formada por los arcos del grafo representado e1 e2 V1 V2 V4 e1 V1 V2 e V2 V4 [B] = 2 e3 e4 e3 V1 V3 e4 V2 V3 V3 La matriz es de: m (# de arcos) x 2 elementos
  • 38. Matriz Distancia [D]  Dado un Grafo G = (V, E)  Está representado por una matriz de Vértices (V) x Vértices (V)  Almacena las distancias de un vértice a otro 0, si i=j dij X, si no hay camino entre Vi y Vj # de arcos del camino más corto entre Vi y Vj V2 V4 V1 V2 V3 V4 V1 V1 0 1 2 x V 2 0 1 x [D] = 2 V3 1 2 0 x V4 3 1 2 0 V3
  • 39. Grafos: Algoritmos Establecer el costo mínimo recorriendo todos los vértices Encontrar la distancia mínima entre 2 vértices
  • 40. Problema del vendedor viajero  El problema del vendedor viajero consiste en encontrar la ruta más corta en la que el agente viajero pueda visitar en cada ciudad a sus clientes una vez comenzando y terminando en la misma cuidad.  Ciudades = Nodos  Caminos entre ciudades = Arcos Definición del Problema: Construir la ruta de costo mínimo que visita a cada cliente exactamente una vez
  • 41. Algoritmos para establecer circuitos hamiltonianos considerando el costo 1. Vecino más cercano: a. se visita el nodo más cercano y a continuación el siguiente nodo más cercano no visitado hasta regresar al origen. b. Nota: Este método tiene una ventaja en las primeras selecciones, sin embargo en los últimos pasos puede elegir aristas de longitud muy grande por tanto no necesariamente encuentra el costo min. L {C, S, L, M, C} = 300 + 541 + 774 + 425 = 2040 541 774 349 S 562 300 M C 425
  • 42. Algoritmos para establecer circuitos hamiltonianos considerando el costo 2. Árbol del costo mínimo a. Generar todos los recorridos hamiltonianos posibles b. Elegir el camino con el peso mínimo C M S L L S L L M M S L S M L S M 541 774 349 C C C C C C S {C, M, L, S, C} = 425 + 774 + 541 + 300 = 2040 562 300 {C, M, S, L, C} = 425 + 562 + 541 + 349 = 1877 M C {C, S, M, L, C} = 300 + 562 + 774 + 349 = 1985 425 {C, S, L, M, C} = 300 + 541 + 774 + 425 = 2040 {C, L, S, M, C} = 349 + 541 + 562 + 425 = 1877 {C, L, M, S, C} = 349 + 774 + 562 + 300 = 1985
  • 43. Algoritmos para establecer circuitos hamiltonianos considerando el costo 3. Arcos clasificados (costo medio) a. Ordenar los arcos: 300, 349, 425, 541, 562, 774 b. Menor: 300, siguiente menor 349, etc. Construir el ciclo hamiltoniano: -No se pueden juntar 3 arcos en un vértice -No se puede cerrar ciclo sin incluir todos los vértices {C, L, M, S, C} = 300 + 349 + 774 + 562 = 1985 L 541 774 349 S 562 300 M C 425
  • 44. Algoritmos para encontrar caminos más cortos  Frecuentemente se desea conocer en un grafo cuál es el camino más corto entre un par de vértices  En este caso  Sí importa cuántos caminos existen  Si ya conozco un camino pero encuentro uno mejor, sustuir  Aplicar algoritmos de: 1. Ford 2. Dikjstra
  • 45. Algoritmo de Ford 1. Permite calcular la distancia mínima entre 2 puntos de 1 grafo. 2. Cada nodo se representa por : n A 3. Pasos: 1. Asignar el valor 0 al nodo origen 2. Mediante un proceso iterativo se le asignará a cada nodo Xi un valor n igual a la longitud del camino más corto que exista desde el nodo origen al nodo Xj.
  • 46. Edsger Dijkstra (1930 – 2002)  Científico de la computación de origen holandés Creador del Algoritmo de caminos mínimos Recibió el Premio Turing
  • 47. Algoritmo de Dikjstra: grafos conexos 1. Dado un V0, Dijkstra busca un conjunto D con  Las menores distancias de V0 al resto de vértices 2. Al inicio, solo conocemos  Las distancias de los adyacentes  D es inicializada a  Factor de peso para los adyacentes, Infinito ∞ para los no adyacentes 3. D va ser mejorado sucesivamente  Escogiendo el vértice Vk no elegido antes  Que tenga la distancia mas corta V0, Vk  Probamos si pasando por Vk  Se puede obtener distancias mas cortas de las que tenemos  Para cada Vértice restante del grafo
  • 48. Pasando por V2, Distancia de V1 Pasando por a V5 seria 8, no hay mejora V3, Distancia de V1 a V5 seria 7, CAMBIAR EJEMPLO DE DIJKSTRA V1 V2 V3 V4 V5 V6 Escogidos Vértice D[0] D[1] D[2] D[3] D[4] D[5] De V1 AL RESTO Evaluado 5 V1 V1 0 3 4 ∞ 8 ∞ V2 V5 3 V1,V2 V2 0 3 4 ∞ 8 ∞ 3 8 V1,V2,V3 V3 0 3 4 ∞ 7 ∞ V6 V1 7 V1,V2,V3,V5 V5 0 3 4 14 7 10 3 V1,V2,V3,V5,V6 V6 0 3 4 12 7 10 4 V3 V4 2 1. D[] se inicializa con F.P. de adyacentes al origen 2. Escoger vértice Vk que no haya sido escogido, con la menor distancia del Vevaluado a Repetir hasta k se hayan Vk visitado todos los vértices 3. Revisar si alguna distancia puede ser mejorada pasando por Vevaluado desde V1
  • 49. Ejercicios Guiados y Propuestos