teoria de grafos

Click here to load reader

Upload: pavel-aliaga

Post on 13-Jun-2015

18.462 views

Category:

Technology


7 download

TRANSCRIPT

  • 1. Estructuras Discretas en ComputacinTeora de GrafosProfesor: Mag. Ing. Pavel Aliaga E. Facultad de Ing. de Sistemas Universidad de Lima 2009-2

2. Grafos: Conceptos Bsicos 3. Qu es un Grafo? Es un conjunto de: puntos (NODOS o VRTICES) unidos por lneas (ARCOS o ARISTAS) 4. Por qu se estudian Grafos? Porque permiten estudiar interrelaciones entre elementos queinteractan unos con otros Dado un escenario donde ciertos objetos se relacionan sepuede modelar el grafo y luego aplicar algoritmos pararesolver diversos problemas Son aplicables en: Ingeniera de Sistemas Modelado de Redes Ingeniera Industrial, Electrnica Qumica Geografa, etc. 5. Qu podemos representar con unGrafo? Red de Computadoras Conexiones de vuelo de una aereolnea Carreteras que unen ciudades Impresora Actividades de un proyecto Circuitos electrnicos Modem PC1 Representacin de un mapaServidorPracticamente cualquier problema PC2puede representarse mediante un grafo 6. Ejemplo de Aplicacin 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 ms corto entre 2 cuidades cualesquiera 7. Grafo Definicin formal Un grafo G = (V,E) V, el conjunto de vrtices o nodos 1 4 V={v1, v2, ..vn}5 Representan los objetos79 E, el conjunto de arcos o aristas Representan las relaciones E ={vivj, vmvn, ..} Vrtices Adyacentes: 2 vrtices unidos por un arcoV = {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 vrtice Caso especial (lazo): se considera 2CE Grado (D) = 3Grado (F) = 3 Grado (H) = 3 Grado (C) = 3 Grado (E) = 4FD HGrado del Grafo = 16 = 2 * 8 arcos Grado de un GRAFO: Suma de los grados de los vrtices. Teorema de Grado de un GRAFO: Suma de grados de vrticesequivale al doble del nmero de arcos. 9. Tipos de Grafosx Grafo Regularu Todos los vrtices tienen el mismo grado Si el grado es k, el grafo es k-regular yzGrafo 3 - regular Grafo Completo Tiene una arista entre cualquier par de vrtices a b ab edcd c Grafo completoGrafo No completo 10. Tipos de Grafos Grafo Bipartito Bipartito significa que tiene 2 partes G= { V1 u V2, E} Sus vrtices son la unin de dos grupos de vrtices bajos las siguientescondiciones: V1 y V2 son conjuntos disjuntos Cada arista del Grafo une un vrtice de V1 con uno de V2 No existen aristas uniendo vrtices del mismos conjunto V1 o V2ab a b c Grafos Bipartitos c d e 11. Lazo o bucleTipos de Grafosxu Mulitgrafo Es un grafo que tiene arcos mltiples (paralelos) o lazosy zArcos mltiples o paralelos Multigrafo Grafo Simple Es un grafo o digrafo que no tiene buclesx u y que no es un multigrafo y zGrafo simple 12. Tipos de Grafos (direccin)1 4 Grafos no dirigidosSi los pares de nodos de los arcos 5no son ordenadosEl arco se puede recorrer en ambos sentidos 7 9 Ej.: u-v Grafos dirigidos o Digrafos Si los pares de nodos que forman arcosC Eson ordenados, de tal forma que el arco sepuede recorrer en un solo sentido. Ej.: (u->v)FD HV = {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 sonEpares ordenados. Implica que (u,v) (v,u)M Las lneas se convierten en flechas El grado de entrada de un nodo esB el nmero de arcos entrantes L El grado de salida de un nodo es elP nmero 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 20ab ab4025 3025 3040c15d cd15Grafo Dirigido con Grafo No Dirigido conCosto Costo 15. Conectividad Grafo conexo Grafo Conexo5Existe un camino entre cualquier par de 3nodos 9 27Grafo inconexo Grafo conexo 16. Grafos: Caminos 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 vrtices que empieza en u y acaba en v.11 69 Cada par de vrtices consecutivos son adyacentes Camino entre 4 y 7 Longitud de camino T1 = {4, 6, 9, 7} El nmero 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 ABC DEF Camino A y A P = {A, E, B, F, A}Cul es la longitud mnima que puede tener un ciclo? Rpta: 3 19. Ciclos de Euler y Hamilton Hacer el recorrido sin levantar el lpiz del papel 20. Puentes de Knigsberg El problema consiste en recorrer toda la ciudad partiendo decualquier lugar (A, B, C o D) caminando sobre cada puenteexactamente una vez y regresar a la posicin inicial. Esposible? 7 Puentes 2 Islas: B y C 2 Orillas: A y D 21. Puentes de Knigsberg Un modelo de grafo de puentes de Knigsberg Nodos: Porciones de tierra (orillas, islas) Arcos: 5 PuentesRepresentacinmediante un grafoOrigen de los grafos: Euler ide los grafos para ver si era posibleRecorrer toda la ciudad sin cruzar c/u de los puentes ms de una sola vez. 22. Caminos y Ciclos de Euler Camino de Euler Recorre TODOS los ARCOS sin repetirlos Los vrtices se pueden repetir Ciclo de Euler Recorre TODOS los ARCOS sin repetirlos Los vrtices se pueden repetir Inicia y termina en el mismo vrtice 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 vrtices 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 vrtices 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 vrtice de grado impar y terminar en el otro. 24. Eulerizar un grafo Objetivo: Minimizarla longitud total de arcos utilizados Procedimiento:1.Localizar los vrtices de grado impar2.Aadir un arco a c/u de los vrtices para que tenga grado par Cmo euleriza el problema de los puentes de knigsberg? 25. Caminos y Ciclos de Hamilton Camino de Hamilton Recorre TODOS los VRTICES sin repetirlos Ciclo de Hamilton Inicia y termina en el mismo vrtice Recorre TODOS los VRTICES sin repetirlos (excepto el vrtice delcual 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 vrtices pasando una sola vez por cada uno de ellos (excepto por el vrtice inicial y final). Nodos= ciudades Arcos=caminos entre ciudadesViajero que recorre ciudades 27. Grafos: Relaciones en unDigrafo 28. Relaciones en un Digrafo A = (1, 2, 3, 4) R = { (1, 2), (2, 2), (2, 3), (3, 4), (4, 3) } Conjunto Relacin R: muestra todas las relaciones deconectividad (trayectorias de longitud 1) entre los nodos delgrafo. 1 21 2 3 4 10 1 0 00 1 1 0 =2 30 0 0 1 3 4 40 0 1 0 Digrafo GMatriz de una Relacin 29. Relaciones en un Digrafo Se define la relacin 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 xay 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}121 R2 3 = {1, 2, 3}2 R2 2 = {2, 2, 2}2 R2 3 = {2, 2, 3}2 R2 4 = {2, 3, 4}343 R2 3 = {3, 4, 3}4 R2 4 = {4, 3, 4}Digrafo G 30. Grafos: RepresentacinMatricial 31. Representacin de Grafos Para representar un grafo en una computadora se puede usar: Matriz de Adyacencia [A] V (vrtices) x V(vrtices) Matriz de Incidencia [M] V (vrtices) x A (arcos ) Matriz de Arcos [B] A (arcos ) x V (vrtices) 32. Matriz de Adyacencia [A] (grafos nodirigidos) Dado un Grafo G = (V, E)V3 V04 V47 Est representado por una matriz10 de V (vrtices) por V(vrtices)V5 1= si hay un arco o existe 11 adyacencia entre los vrtices V1 69 V2 V 0 V1 V 2 V 3 V 4 V 5 1, si hay arco(Vi,Vj) V0 0 1 00 0 0 aij V1 1 0 10 0 0 0, si no hay arco (Vi,Vj) V2 0 1 01 0 0 V3 0 0 10 0 0 V4 0 0 00 0 1Caso especial: cuando hay un lazo se considera aij=1 V5 0 0 00 1 0 33. Matriz de Adyacencia [A](digrafos) Para Digrafos V1V2 V4V3Caso especial: cuando hay un lazo se considera aij=1 34. Matriz de Adyacencia [A](Propiedades) El Grado de un Vrtice se obtiene sumando la fila o la columnacorrespondiente (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 esigual al nmero de caminos de longitud n del vrtice i al vrtice j 35. Matriz de Incidencia [M] (grafos nodirigidos) Dado un Grafo G = (V, E) Est representado por una matriz de V (vrtices) por A (arcos) 1, [arco, vrtice] est conectadoaij0 [arco, vrtice] no est conectado 1: Si el arco i incide en el vrtice j En un grafo sin lazos, la suma de una fila d el grado del vrticeidentificado 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 Vrtices (V) Esta formada por los arcos del grafo representadoe1 e2V1V2 V4e1 V1 V2eV2 V4[B] = 2 e3 e4e3 V1 V3e4 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 Vrtices (V) x Vrtices (V) Almacena las distancias de un vrtice a otro0, si i=jdij X, si no hay camino entre Vi y Vj# de arcos del camino ms corto entre Vi y Vj V2 V4V1 V2 V3 V4V1 V1 0 1 2 x V2 0 1 x [D] = 2 V3 1 2 0 x V4 3 1 2 0 V3 39. Grafos: AlgoritmosEstablecer el costo mnimo recorriendo todos los vrticesEncontrar la distancia mnima entre 2 vrtices 40. Problema del vendedor viajero El problema del vendedor viajero consiste en encontrar la rutams corta en la que el agente viajero pueda visitar en cadaciudad a sus clientes una vez comenzando y terminando en lamisma cuidad. Ciudades = Nodos Caminos entre ciudades = Arcos Definicin del Problema: Construir la ruta de costo mnimo que visita a cada cliente exactamente una vez 41. Algoritmos para establecer circuitos hamiltonianos considerando el costo1. Vecino ms cercano: a. se visita el nodo ms cercano y a continuacin el siguiente nodoms cercano no visitado hasta regresar al origen. b. Nota: Este mtodo tiene una ventaja en las primerasselecciones, sin embargo en los ltimos pasos puede elegir aristasde longitud muy grande por tanto no necesariamente encuentra elcosto min. L {C, S, L, M, C} =300 + 541 + 774 + 425 = 2040541774 349 S 562300MC425 42. Algoritmos para establecer circuitos hamiltonianos considerando el costo2. rbol del costo mnimo a.Generar todos los recorridos hamiltonianos posibles b.Elegir el camino con el peso mnimo C M S L L S L L M M S L S M L S M541 774349C C C C C C S {C, M, L, S, C} = 425 + 774 + 541 + 300 = 2040562 300 {C, M, S, L, C} = 425 + 562 + 541 + 349 = 1877M C{C, S, M, L, C} = 300 + 562 + 774 + 349 = 1985425 {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 costo3. 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 vrtice -No se puede cerrar ciclo sin incluir todos los vrtices{C, L, M, S, C} = 300 + 349 + 774 + 562 = 1985L 541 774349S 562 300M C425 44. Algoritmos para encontrar caminos ms cortos Frecuentemente se desea conocer en un grafo cul es elcamino ms corto entre un par de vrtices En este caso S importa cuntos caminos existen Si ya conozco un camino pero encuentro unomejor, sustuir Aplicar algoritmos de: 1. Ford 2. Dikjstra 45. Algoritmo de Ford1. Permite calcular la distancia mnima entre 2 puntos de 1 grafo.2. Cada nodo se representa por : n A3. Pasos:1. Asignar el valor 0 al nodo origen2. Mediante un proceso iterativo se le asignar a cada nodo Xi un valor n igual a la longitud del camino ms corto que exista desde el nodo origen al nodo Xj. 46. Edsger Dijkstra (1930 2002) Cientfico de la computacin de origen holands Creador del Algoritmo decaminos mnimos Recibi el Premio Turing 47. Algoritmo de Dikjstra: grafos conexos1. Dado un V0, Dijkstra busca un conjunto D con Las menores distancias de V0 al resto de vrtices2. Al inicio, solo conocemos Las distancias de los adyacentes D es inicializada a Factor de peso para los adyacentes, Infinito para los no adyacentes3. D va ser mejorado sucesivamente Escogiendo el vrtice 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 Vrtice restante del grafo 48. Pasando por V2, Distancia de V1Pasando pora V5 seria 8, no hay mejoraV3, Distancia de V1 a V5 seria 7, CAMBIAREJEMPLO DE DIJKSTRAV1 V2 V3 V4 V5V6 EscogidosVrticeD[0] D[1] D[2] D[3] D[4] D[5] De V1 AL RESTOEvaluado5V1 V1 0 348 V2V53 V1,V2 V2 0 348 3 8 V1,V2,V3 V3 0 347 V6V17 V1,V2,V3,V5 V5 0 3414 7 103 V1,V2,V3,V5,V6V6 0 3412 7 10 4V3V4 21. D[] se inicializa con F.P. de adyacentes al origen2. Escoger vrtice Vk que no haya sidoescogido, con la menor distancia del Vevaluado aRepetir hasta k se hayanVkvisitado todos los vrtices3. Revisar si alguna distancia puede ser mejoradapasando por Vevaluado desde V1 49. Ejercicios Guiados y Propuestos