Profesor: Mag. Ing. Pavel Aliaga E. Facultad de Ing. de Sistemas Universidad de Lima Teoría de Grafos Estructuras Discretas en Computación.

Slides:



Advertisements
Presentaciones similares
GRAFOS: ALGORITMOS FUNDAMENTALES
Advertisements

Teoría de Grafos I semestre 2009 UNIVERSIDAD NACIONAL DE INGENIERIA
MATEMÁTICAS DISCRETAS.
“GRAFOS” Chacón Zamora José Christian González García Andrea
AED I. Estructuras de Datos.
GRAFOS HUGO ARAYA CARRASCO.
Estructuras de datos y algoritmos
Grafos. Un Grafo G es un par de conjuntos (V, E), donde V es un conjunto no vacío de elementos llamados vértices o nodos y E es un conjunto formado por.
Ciudad de Könisberg, Prusia, en XVIII:
Teoria de grafos.-clase 4
Cesar Luis García Castro
Matemáticas Discretas
Tema 5: Grafos Rafa Caballero - Matemática Discreta - UCM 06.
Teoría de Grafos.-Clase 2

Algoritmos y Estructuras de Datos III (segunda parte) 1er cuatrimestre 2010 Min Chih Lin Irene Loiseau.
TEORIA DE GRAFOS SALIR INTRODUCCION GRAFOS DIGRAFOS ÁRBOLES.
Matemáticas Discretas
Sesión 3: Teoría de Grafos
Cecilia Laborde González
Estructura de Datos 4 Grafos Dirigidos
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
GRAFOS.
GRAFOS EQUIPO E MATEMATTICAS DISCRETAS PRESENTA: Medina Chávez Héctor Bryan 1 INSTITUTO POLITECNICO NACIONAL SECCION DE ESTUDIOS DE POSGRADOS E INVESTIGACION.
U NIDAD 3 G RAFOS : C AMINOS, ISOMORFISMO Y SU COLOREO M.C. Meliza Contreras González.
GRAFOS ESTRUCTURA DE DATOS. INTRODUCCION Los grafos son estructuras de datos Representan relaciones entre objetos Relaciones arbitrarias, es decir No.
Un grafo consta de un conjunto de vértices y un conjunto de aristas. Cada arista de un grafo se especifica mediante un par de vértices. Denotemos al conjunto.
BÚSQUEDA EN ESPACIOS DE ESTADOS Espacio de estados: modelo del mundo representado por un grafo Espacio de estados: modelo del mundo representado por un.
Conceptos Básicos 2. Caminos Dada una red, distintos tipos de flujo pueden ser de interés Imaginemos flujo de objetos (items indivisibles que están en.
ALGORITMO DE DIJKSTRA BANDA DÍAZ ANA KARINA SUAREZ BARON SINDY TATIANA.
Curso Sygma. Grafos Universidad San Buenaventura Cali.
Teoría de Grafos y Árboles
LOGICA Y MATEMATICA COMPUTACIONAL
Optimización: Programación Lineal
PLANIFICACIÓN DE LAS RUTAS DE DISTRIBUCIÓN
ANALISIS Y DISEÑO DEL ALGORITMOS
INVESTIGACIÓN DE OPERACIONES
PROBLEMA DEL AGENTE VIAJERO
Licenciatura en Contaduría Tema:
TAD’s ARBOLES GENERALIZADOS
UNIVERSIDAD TECNOLOGICA INDOAMERICA INGENIERIA EN CIENCIAS DE LA COMPUTACION INTELIGENCIA ARTIFICIAL NOMBRE: NICOLAS RAMOS NIVEL: OCTAVO AMBATO - ECUADOR.
TEORÍA DE GRAFOS -Algoritmo de Dijkstra -Algoritmo de Primm -Algoritmo de Kruskal Integrantes:
Análisis de redes Por: Alexander Miss.
Análisis de redes. 3.4 Problema de flujo máximo.
Desigualdades e Inecuaciones
Grafos dirigidos: Sea G un grafo, si cada arista en G tiene una dirección entonces G se llama grafo dirigido o dígrafo y sus aristas se llaman arcos.
Teoría de Redes Ing. Douglas Vergara. Concepto básico Un arco es dirigido si permite el flujo positivo en una dirección y un flujo cero en la dirección.
Capítulo 28A – Circuitos de corriente directa Presentación PowerPoint de Paul E. Tippens, Profesor de Física Southern Polytechnic State University Presentación.
ESTRUCTURAS DISCRETAS M. Sc. PABLO CESAR TAPIA CATACORA.
Problema de la ruta mínima
Localización y planeación de trayectorias
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
GRAFOS ESTRUCTURAS DE DATOS.
Grafos (parte 1).
ANGULO YOMAIRA QUINTERO MARIA PAEZ MARIAM
Técnicas de Análisis de las Redes de Petri
Ejercicios.
OPTIMIZACIÓN EN REDES EN ALGUNOS PROBLEMAS DE OPTIMIZACIÓN PUEDE SER ÚTIL REPRESENTAR EL PROBLEMA A TRAVÉS DE UNA GRÁFICA: ruteo de vehículos, distribución.
GRAFOS ESTRUCTURA DE DATOS. INTRODUCCION Los grafos son estructuras de datos Representan relaciones entre objetos Relaciones arbitrarias, es decir No.
Tema 5: Grafos CIS - UABJB - Estructura de Datos II
Algoritmos de caminos más cortos
Minimum Spanning Tree (Árbol de Expansión Mínima)
Luis Manuel Monroy García Matemáticas discretas Ingeniería de Sistemas Universidad Simón Bolívar.
s t a c b d Grafos.
UNIVERSIDAD NACIONAL DEL CENTRO DEL PERU FACULTAD DE INGENIERIA DE MINAS HUANCAYO I MODELO DE REDES Ing. Eli Teobaldo Caro Meza CURSO: INVESTIGACION.
Primer articulo apareció en 1736 (Puentes de Konigsberg) El primer texto apareció en 1936, el interés radica en su aflicción especialmente a la computación.
Grafos. Concepto: Un Grafo no es más que un conjunto de nodos o vértices que se encuentran relacionados con unas aristas. Además, los vértices tienen.
Grafos s t a c b d Grafos.
Los puentes de Konigsberg
Investigación Operativa
Transcripción de la presentación:

Profesor: Mag. Ing. Pavel Aliaga E. Facultad de Ing. de Sistemas Universidad de Lima Teoría de Grafos Estructuras Discretas en Computación

Grafos: Conceptos Básicos

¿Qué es un Grafo? Es un conjunto de: puntos (NODOS o VÉRTICES) unidos por líneas (ARCOS o ARISTAS)

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. ¿Por qué se estudian Grafos?

Red de Computadoras Conexiones de vuelo de una aereolínea Carreteras que unen ciudades Actividades de un proyecto Circuitos electrónicos Representación de un mapa … ¿Qué podemos representar con un Grafo? Impresora Modem PC2 Servidor PC1 Practicamente cualquier problema puede representarse mediante un grafo

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 Ejemplo de Aplicación de los Grafos

Grafo – Definición formal Un grafo G = (V,E) V, el conjunto de vértices o nodos V={ v1, v2,..vn } Representan los objetos E, el conjunto de arcos o aristas Representan las relaciones E ={ v i v j, v m v n,..} 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)} Vértices Adyacentes: 2 vértices unidos por un arco

Grado de un Grafo  Grado de un NODO : Es el # de arcos que inciden en un vértice  Caso especial (lazo): se considera 2  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. CE D F H Grado (D) = 3 Grado (F) = 3 Grado (H) = 3 Grado (C) = 3 Grado (E) = 4 Grado del Grafo = 16 = 2 * 8 arcos

Tipos de Grafos Grafo Regular Todos los vértices tienen el mismo grado Si el grado es k, el grafo es k-regular x u y z Grafo 3 - regular Grafo Completo Tiene una arista entre cualquier par de vértices a b c d Grafo completo a b c d e 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 de c Grafos Bipartitos a b c

Tipos de Grafos Mulitgrafo Es un grafo que tiene arcos múltiples (paralelos) o lazos Grafo Simple Es un grafo o digrafo que no tiene bucles y que no es un multigrafo xu y z Grafo simple xu y z Multigrafo Lazo o bucle Arcos múltiples o paralelos

Tipos de Grafos (dirección) Grafos dirigidos o Digrafos Si los pares de nodos que forman arcos son ordenados, de tal forma que el arco se puede recorrer en un solo sentido. Ej.: (u->v) Grafos no dirigidos Si los pares de nodos de los arcos no son ordenados El arco se puede recorrer en ambos sentidos Ej.: u-v CE D F H V = {C, D, E, F, H} E= {(E,H), (H,E), (E,C), (C,D), (D,F)}

Grado de un Digrafo E L B M P En un grafo dirigido los arcos son pares ordenados. Implica que (u,v) ≠ (v,u) Las líneas se convierten en flechas El grado de entrada de un nodo es el número de arcos entrantes El grado de salida de un nodo es el 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 Grafo Dirigido con Costo Grafo No Dirigido con Costo ab cd ab cd ab cd ab cd

Conectividad Grafo Conexo Existe un camino entre cualquier par de nodos Grafo inconexo Grafo conexo

Grafos: Caminos

Trayectorias en Grafos Camino / recorrido Un camino P desde u hasta v en el grafo G es una secuencia finita de vértices que empieza en u y acaba en v. Cada par de vértices consecutivos son adyacentes Longitud de camino El número de arcos que lo forman Camino Simple Todos los nodos que lo forman son distintos (no se repite nodos) Camino entre 4 y 7 T1 = {4, 6, 9, 7} Longitud: 3

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 BC DEF 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…”

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? Puentes de Königsberg 7 Puentes 2 Islas: B y C 2 Orillas: A y D

Un modelo de grafo de puentes de Königsberg Puentes de Königsberg 5 Nodos: Porciones de tierra (orillas, islas) Arcos: 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.

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 Caminos y Ciclos 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. Teoremas de Euler

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? Eulerizar un grafo

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 Caminos y Ciclos 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 Digrafo G Matriz de una Relación

Relaciones en un Digrafo Se define la relación R n en A por: xR n y 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 a y R 2 = { (1,2), (1,3), (2,2), (2,3), (2,4), (3,3), (4,4) } trayectorias de long. 2 R 3 = { (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) } Digrafo G R 2 2 = {1, 2, 2} 1 R 2 3 = {1, 2, 3} 2 R 2 2 = {2, 2, 2} 2 R 2 3 = {2, 2, 3} 2 R 2 4 = {2, 3, 4} 3 R 2 3 = {3, 4, 3} 4 R 2 4 = {4, 3, 4}

Grafos: Representación Matricial

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) Representación de Grafos

Matriz de Adyacencia [A] (grafos no dirigidos) Dado un Grafo G = (V, E) Está representado por una matriz de V (vértices) por V(vértices) 1= si hay un arco o existe adyacencia entre los vértices V0V0 V1V1 V2V2 V3V3 V4V4 V5V5 Caso especial: cuando hay un lazo se considera a ij=1

Matriz de Adyacencia [A] (digrafos) Para Digrafos V2 V3 V1 V4 Caso especial: cuando hay un lazo se considera a ij=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 A n 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: 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. a ij 1, [arco, vértice] está conectado 0 [arco, vértice] no está conectado

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 V2 V3 V1 V4 e1e2 e3 e4 e1e2e3e4e1e2e3e4 V 1 V 2 V 2 V 4 V 1 V 3 V 2 V 3 [B] = 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 V2 V3 V1 V4 V1V2V3V4V1V2V3V x 20 1 x 12 0 x [D] = d ij 0, si i=j X, si no hay camino entre Vi y Vj # de arcos del camino más corto entre Vi y Vj V 1 V 2 V 3 V 4

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. C M S L {C, S, L, M, C} = = 2040

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 {C, M, L, S, C} = = 2040 {C, M, S, L, C} = = 1877 {C, S, M, L, C} = = 1985 {C, S, L, M, C} = = 2040 {C, L, S, M, C} = = 1877 {C, L, M, S, C} = = 1985 C M S L S LLMMS S L CCCCCC M L SM

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 M S L {C, L, M, S, C} = = 1985

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 : 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. nAnA

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

EJEMPLO DE DIJKSTRA V2V5 V1 V3 V4 V Escogidos Vértice Evaluado D[0]D[1]D[2]D[3]D[4]D[5] V1V2V3V4V5V6 De V1 AL RESTO V1034∞8∞ 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 Vk V2 3. Revisar si alguna distancia puede ser mejorada pasando por Vevaluado desde V1 Pasando por V2, Distancia de V1 a V5 seria 8, no hay mejora 034∞8∞ V1,V2 Repetir hasta k se hayan visitado todos los vértices V3 034∞7∞ V1,V2,V3 V V1,V2,V3,V5 V V1,V2,V3,V5,V6 Pasando por V3, Distancia de V1 a V5 seria 7, CAMBIAR

Ejercicios Guiados y Propuestos