Algoritmos de búsqueda en grafos II

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Algoritmos de búsqueda en grafos II"

Transcripción

1 II Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 12 de febrero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

2 1 Algoritmos de búsqueda en grafos Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

3 1 Algoritmos de búsqueda en grafos Eficiencia del algoritmo BFS Algoritmo de Dijkstra Algoritmo Bellman-Ford Tarea 6 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

4 Recordemos que la búsqueda en profundidad nos ayuda a encontrar componentes conexos en un grafo, e incluso encuentra caminos para cualquier par de vértices alcanzables entre ellos; sin embargo estos caminos no son los más cortos. Definición La distancia entre un par de vértices es la longitud del camino más corto entre ellos. Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

5 La idea más simple para encontrar los caminos más cortos es proceder con una búsqueda capa por capa, es decir, visitar todos los vértices que están a una distancia d del vértice de inicio, antes de visitar los que están a una distancia d + 1. Esta es la idea detrás de la búsqueda en anchura. Para implementarla, podemos hacer uso de una cola, en la que estarán, en un momento determinado, sólo los vértices a una distancia d. Conforme se extraigan estos vértices y sean procesados, se irán agregando a la cola los que están a distancia d + 1. Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

6 Procedure bfs(g, s) Require: Un grafo G = (V, E), dirigido o no dirigido; un vértice s V Ensure: Para todos los vértices u alcanzables desde s, dist(u) almacenará la distancia de s a u 1: for todo u V do 2: dist(u) = 3: end for 4: dist(s) = 0 5: Q = [s] 6: while Q no esté vacía do 7: u = eject(q) 8: for todas las aristas (u, v) E do 9: if dist(v) = then 10: inject(q, v) 11: dist(v) = dist(u) : end if 13: end for 14: end while Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

7 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

8 Eficiencia del algoritmo BFS 1 Algoritmos de búsqueda en grafos Eficiencia del algoritmo BFS Algoritmo de Dijkstra Algoritmo Bellman-Ford Tarea 6 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

9 Eficiencia del algoritmo BFS Eficiencia del algoritmo BFS El algoritmo BFS crea un árbol de los caminos más cortos, porque todos sus caminos son los más cortos posibles si iniciamos del vértice raíz. Por lo tanto, su árbol generalmente será menos profundo pero más ancho que el de DFS. Note también que la diferencia esencial con respecto a DFS, es el uso de una cola en vez de una pila. Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

10 Eficiencia del algoritmo BFS Eficiencia del algoritmo BFS Una diferencia más sutil es que en este caso sólo nos interesan las distancias desde la raíz, por lo que el algoritmo no reinicia en otros componentes conexos. El algoritmo BFS requiere tiempo O( V + E ), por las mismas razones que el tiempo requerido por DFS. Cada vértice es colocado exactamente una vez en la cola, y una vez que se retira, todas sus aristas son verificadas. Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

11 1 Algoritmos de búsqueda en grafos Eficiencia del algoritmo BFS Algoritmo de Dijkstra Algoritmo Bellman-Ford Tarea 6 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

12 BFS considera que todas las aristas tienen igual longitud Sin embargo, esto raramente ocurre en las aplicaciones prácticas Veamos un ejemplo Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

13 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

14 BFS no es capaz de manejar aristas con longitudes diferentes Pero puede hacerse un pequeño truco para hacer que BFS pueda manejar estos grafos Dado un grafo G es posible romper sus aristas con longitudes en varias partes con longitud unitaria Veamos un ejemplo Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

15 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

16 Sin embargo, esto puede ser ineficiente Para resolver este detalle es posible usar alarmas Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

17 Una en T = 100 para A y otra en T = 200 para B Son tiempos estimados de llegada basados en los vértices ya visitados. Al llegar a A la alarma suene en T = 100, y el tiempo estimado para llegar a B debe ser actualizado a T = 150 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

18 De manera más general el algoritmo funcionaría así: Fijar la alarma para el nodo s en el tiempo 0. Repetir hasta que no haya más alarmas: La distancia de s a u es T Para cada vecino v de u en G Si no hay todavía una alarma para v, crear una con el tiempo T + l(u, v) Si la alarma de v está programada para después de T + l(u, v), entonces actualiza con este tiempo anterior Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

19 El algoritmo que acabamos de describir permite calcular las distancias en cualquier grafo con longitudes positivas en las aristas Para implementar eficientemente el sistema de alarmas se emplea una cola con prioridad (usualmente un heap), que mantiene un conjunto de elementos (vértices) con un valor numérico (llave) asociado y soporta las siguientes operaciones: Insertar Decrementar-llave Extraer-mínimo Construir-cola Las primeras 2 fijan las alarmas, la tercera indica la siguiente alarma que sonará Todo junto no es otra cosa que el algoritmo de Dijkstra Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

20 Algoritmo de Dijkstra 1 Algoritmos de búsqueda en grafos Eficiencia del algoritmo BFS Algoritmo de Dijkstra Algoritmo Bellman-Ford Tarea 6 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

21 Algoritmo de Dijkstra Algoritmo de Dijkstra Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

22 Algoritmo Bellman-Ford 1 Algoritmos de búsqueda en grafos Eficiencia del algoritmo BFS Algoritmo de Dijkstra Algoritmo Bellman-Ford Tarea 6 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

23 Algoritmo Bellman-Ford Algoritmo Bellman-Ford El algoritmo de Dijkstra no funciona para grafos con longitudes negativas en las aristas Para resolver el problema de encontrar los caminos más cortos en grafos generales a partir de un solo vértice fuente se requiere del algoritmo de Bellman-Ford Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

24 Algoritmo Bellman-Ford Algoritmo Bellman-Ford Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

25 Tarea 6 1 Algoritmos de búsqueda en grafos Eficiencia del algoritmo BFS Algoritmo de Dijkstra Algoritmo Bellman-Ford Tarea 6 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

26 Tarea 6 Tarea 6 En la carpeta de Dropbox del curso encontrarán un archivo con las especificaciones de esta tarea. Fecha de entrega: Miércoles 21 de febrero antes de las 8 AM. Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos II 12 de febrero de / 26

Ciclos y grafos acíclicos

Ciclos y grafos acíclicos Ciclos y grafos acíclicos Domingo Gómez Pérez Domingo Gómez Pérez Ciclos y grafos acíclicos 1 / 23 Definición de ciclos Figura: Figura con ciclos Definición de camino Un camino en un grafo es una lista

Más detalles

Grafos: algunas definiciones

Grafos: algunas definiciones Grafos: algunas definiciones Un grafo dirigido G es un par (V, E), donde V es un conjunto finito de nodos (o vértices) y E es una relación binaria sobre V. Un grafo no dirigido G es un par (V, E), donde

Más detalles

Algoritmos de búsqueda en grafos I

Algoritmos de búsqueda en grafos I I Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 7 de febrero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Búsqueda en grafos I 7 de febrero de 2018 1 / 36 1 Representación computacional de grafos

Más detalles

Algoritmos voraces (greedy)

Algoritmos voraces (greedy) Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 21 de marzo de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Algoritmos voraces 21 de marzo de 2018 1 / 45 1 Algoritmos voraces (greedy) Aplicaciones de

Más detalles

Teoría de Grafos. Herramientas de programación para procesamiento de señales

Teoría de Grafos. Herramientas de programación para procesamiento de señales Teoría de Grafos Herramientas de programación para procesamiento de señales Indice Nociones básicas: Definiciones Ejemplos Propiedades Nociones avanzadas: Grafos planares Árboles Representación en computadora

Más detalles

Algoritmos de búsqueda exhaustiva

Algoritmos de búsqueda exhaustiva Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 31 de enero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Algoritmos de búsqueda exhaustiva 31 de enero de 2018 1 / 22 1 Algoritmos de búsqueda exhaustiva

Más detalles

Grafos (principiantes) - Parte I

Grafos (principiantes) - Parte I Grafos (principiantes) - Parte I Juan Cruz Piñero Facultad de Informática Universidad Nacional del Comahue Training Camp 2017 Juan Cruz Piñero (FAI - UNCo) Grafos (Principiantes) Parte I TC 2017 1 / 39

Más detalles

Unidad 2: Problemas de camino mínimo

Unidad 2: Problemas de camino mínimo Representación Recorrido de grafos Camino mínimo Unidad 2: Problemas de camino mínimo Representación Matriz de adyacencia Matriz de incidencia Listas de vecinos Recorrido de grafos Estructuras de datos

Más detalles

Análisis matemático de algoritmos recursivos

Análisis matemático de algoritmos recursivos Análisis matemático de algoritmos recursivos Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 24 de enero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Análisis matemático de algoritmos 24 de enero de

Más detalles

Algoritmos y Estructuras de Datos III

Algoritmos y Estructuras de Datos III Árboles Algoritmos y Estructuras de Datos III Árboles Definición: Un árbol es un grafo conexo sin circuitos simples. Árboles Teorema: Dado un grafo G = (V, X ) son equivalentes: 1. G es un árbol. 2. G

Más detalles

Grafos. 19 de diciembre de 2013

Grafos. 19 de diciembre de 2013 Grafos 19 de diciembre de 2013 Grafo Un grafo es un conjunto, no vacío, de objetos llamados vértices (o nodos) y una selección de pares de vértices, llamados aristas (edges en inglés) que pueden ser orientados

Más detalles

El TAD Grafo. El TAD Grafo

El TAD Grafo. El TAD Grafo ! Esta representación resulta útil cuando el número de vértices se conoce previamente y permanecerá fijo durante la resolución del problema, pero resulta ineficiente si necesitamos añadir o eliminar vértices

Más detalles

Francisco J. Hernández López

Francisco J. Hernández López Francisco J. Hernández López fcoj23@cimat.mx Sus aristas son pares de vértices no ordenados, es decir si hay un camino del vértice i al vértice j, será exactamente el mismo camino del vértice j al vértice

Más detalles

Algoritmos Elementales de Grafos. Agustín J. González ELO-320: Estructura de Datos Y Algoritmos 1er.Sem. 2002

Algoritmos Elementales de Grafos. Agustín J. González ELO-320: Estructura de Datos Y Algoritmos 1er.Sem. 2002 Algoritmos Elementales de Grafos Agustín J. González ELO-0: Estructura de Datos Y Algoritmos er.sem. 00 Introducción Estudiaremos métodos para representar y explorar o recorrer grafos. Explorar un grafo

Más detalles

Decrementa y vencerás

Decrementa y vencerás Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 19 de febrero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Decrementa y vencerás 19 de febrero de 2018 1 / 30 1 Decrementa y vencerás Tipos de algoritmos

Más detalles

Grafos. Leopoldo Taravilse. Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires. Training Camp 2012

Grafos. Leopoldo Taravilse. Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires. Training Camp 2012 Grafos Leopoldo Taravilse Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Training Camp 2012 Leopoldo Taravilse (UBA) Grafos TC 2012 1 / 78 Contenidos 1 Definiciones básicas Algoritmos

Más detalles

Problemas y algoritmos sobre Grafos

Problemas y algoritmos sobre Grafos y algoritmos sobre, Algoritmos y Programación 1er Cuatrimestre de 2010 13 de Abril de 2010 Alejandro Deymonnaz Menú del día 1 Definiciones y estructuras Árboles 2 Breadth-first search (BFS) 3 Prim Kruskal

Más detalles

Algoritmos y Estructuras de Datos III

Algoritmos y Estructuras de Datos III Árboles Algoritmos y Estructuras de Datos III Árboles Definición: Un árbol es un grafo conexo sin circuitos simples. Árboles Teorema: Dado un grafo G = (V, X ) son equivalentes: 1. G es un árbol. 2. G

Más detalles

5.6 Árbol generador de un grafo

5.6 Árbol generador de un grafo 88 5.6 Árbol generador de un grafo Definición 5.59. Sea G un grafo simple. Un árbol generador de G es un subgrafo de G que es un árbol y contiene todos los vértices de G. Ejemplo 5.60. Un grafo y algunos

Más detalles

ARBOLES GENERADORES. Orlando Arboleda Molina. 16 de septiembre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle

ARBOLES GENERADORES. Orlando Arboleda Molina. 16 de septiembre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle ARBOLES GENERADORES Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 16 de septiembre de 2008 Contenido Árboles generadores Algoritmo búsqueda por profundidad

Más detalles

Tema 6.2: Camino de Menor Valor. CMV: Objetivo. CMV: ejemplo. Ejemplo. Camino de menor valor

Tema 6.2: Camino de Menor Valor. CMV: Objetivo. CMV: ejemplo. Ejemplo. Camino de menor valor Tema.: Camino de Menor Valor Modelización Matemática Máster en Ingeniería de Caminos, Canales y Puertos Camino de menor valor Algoritmos Algoritmo de Dijkstra Algoritmo de Bellman-Ford Ignacio Montes Departamento

Más detalles

Apuntes elaborados por: Aaron Asencio, Eduardo Quevedo, Raquel López Revisado por: Javier Miranda el???

Apuntes elaborados por: Aaron Asencio, Eduardo Quevedo, Raquel López Revisado por: Javier Miranda el??? Apuntes elaborados por: Aaron Asencio, duardo Quevedo, Raquel López Revisado por: Javier Miranda el??? Tema 9: rafos Los grafos no son más que la versión general de un árbol, es decir, cualquier nodo de

Más detalles

Introducción al Análisis y Diseño de Algoritmos

Introducción al Análisis y Diseño de Algoritmos Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 10 de enero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Introducción al ADA 10 de enero de 2018 1 / 22 1 Introducción al Análisis y Diseño de Algoritmos

Más detalles

1. Caminos Mínimos en un Grafo sin Pesos 2. Caminos Mínmos en un Grafo ponderado. 1. Algoritmo de Dijkstra

1. Caminos Mínimos en un Grafo sin Pesos 2. Caminos Mínmos en un Grafo ponderado. 1. Algoritmo de Dijkstra Tema - Soluciones Greedy para Problemas de Optimización sobre un Grafo Tema - Soluciones Greedy para Problemas de Optimización sobre un Grafo Germán Moltó Escuela Técnica Superior de Ingeniería Informática

Más detalles

TEMA 5 El tipo grafo. Tipo grafo

TEMA 5 El tipo grafo. Tipo grafo TEMA 5 El tipo grafo PROGRAMACIÓN Y ESTRUCTURAS DE DATOS Tipo grafo 1. Concepto de grafo y terminología 2. Especificación algebraica. Representación de grafos.1. Recorrido en profundidad o DFS.2. Recorrido

Más detalles

Análisis de algoritmos

Análisis de algoritmos Demostración laboratorio: Martes 14 de Julio de 2015 Entrega vía Web: Domingo 19 de Julio de 2015 Demostración laboratorio y Entrega vía Web (Extraordinario): Martes 21 de Julio de 2015 M. en C. Edgardo

Más detalles

Estructuras de datos Grafos

Estructuras de datos Grafos Estructuras de datos Grafos Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL Grafos p. 1 Matriz de adyacencia Un grafo G = (V,E) de n vértices etiquetados 1,2,3,...,n. Grafos p. 2 Matriz

Más detalles

Camino mínimo en grafos

Camino mínimo en grafos Camino mínimo en grafos Melanie Sclar Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Nacional OIA 206 Melanie Sclar (UBA) Camino mínimo en grafos Nacional OIA 206 / Contenidos Camino

Más detalles

La clase Grafo. 4 Algoritmos de recorrido de grafos. La clase Vertice. Tema 9: GRAFOS Segunda Parte Estructuras de Datos y Algoritmos Curso 2002/03

La clase Grafo. 4 Algoritmos de recorrido de grafos. La clase Vertice. Tema 9: GRAFOS Segunda Parte Estructuras de Datos y Algoritmos Curso 2002/03 La clase Grafo public class Grafo { Tema 9: GRAFOS Segunda Parte Estructuras de Datos y Algoritmos Curso 00/03 private static final int TAMANYO_INICIAL=0; private Vertice tabla []; private int numvertices;

Más detalles

Semana 4: Métodos de Búsqueda No informados. Prof. Oscar Benito Pacheco.

Semana 4: Métodos de Búsqueda No informados. Prof. Oscar Benito Pacheco. Semana 4: Métodos de Búsqueda No informados Prof. Oscar Benito Pacheco. Estrategias de Búsqueda Búsqueda No Informada Búsqueda Informada (Ciega) (Heurística) 1. Búsqueda preferente por amplitud 2. Búsqueda

Más detalles

Recorridos de Gráficas. comp-420

Recorridos de Gráficas. comp-420 Recorridos de Gráficas comp-420 Algoritmos de búsqueda en gráficas Una de las operaciones más frecuentes en una gráfica es la de visitar sus vértices uno por uno o en un orden deseado. Este procedimiento

Más detalles

Representación y manipulación de grafos: caminos, expansión, cortes y flujos

Representación y manipulación de grafos: caminos, expansión, cortes y flujos Un grafo G es un par de conjuntos G =(V,E) Representación y manipulación de grafos: caminos, expansión, cortes y flujos V = un conjunto de n vértices u, v, w V E = un conjunto de m aristas V = n, E = m

Más detalles

ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES

ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES ÁRBOLES CRISTIAN ALFREDO MUÑOZ ÁLVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACÓN PEÑA EDUARDO GONZALES ÁRBOL Un árbol es un grafo no dirigido, conexo, sin ciclos (acíclico), y que no contiene aristas

Más detalles

Algoritmos para determinar Caminos Mínimos en Grafos

Algoritmos para determinar Caminos Mínimos en Grafos Problemas de camino mínimo Algoritmos para determinar Caminos Mínimos en Grafos Algoritmos y Estructuras de Datos III DC, FCEN, UBA, C 202 Problemas de camino mínimo Dado un grafo orientado G = (V, E)

Más detalles

Teoría de redes y optimización en redes

Teoría de redes y optimización en redes Teoría de redes y optimización en redes Pedro Sánchez Martín Contenidos Definiciones básicas Árbol generador mínimo de expansión Camino mínimo Algoritmo Dkstra Algoritmo Bellman-Ford Fluo máximo Fluo de

Más detalles

Árboles de Expansión Mínima. Matemática Discreta. Agustín G. Bonifacio UNSL

Árboles de Expansión Mínima. Matemática Discreta. Agustín G. Bonifacio UNSL UNSL Árboles Definiciones y Ejemplos Caracterización Un árbol T es un grafo simple que satisface lo siguiente: si v y w son vértices en T, entonces existe una trayectoria simple única de v a w. Un árbol

Más detalles

Algoritmos para caminos más cortos (2) comp-420

Algoritmos para caminos más cortos (2) comp-420 lgoritmos para caminos más cortos (2) comp-420 lgoritmo * escrito totalmente en 1968 por Peter art, Nils Nilsson y ertram Raphael. n 1964 Nils Nilsson inventó un método que utiliza una heurística para

Más detalles

Algoritmos Elementales de Grafos DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

Algoritmos Elementales de Grafos DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Análisis álii y Diseño de Algoritmos Algoritmos Elementales de Grafos DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Introducción Buscar en un grafo significa sistemáticamente seguir las aristas

Más detalles

Propiedades (1/2) Soluciones Ejercicios Tema 14. Representación de Grafo (I) Propiedades (2/2) Grado del grafo: 6 V = 7 E = 12

Propiedades (1/2) Soluciones Ejercicios Tema 14. Representación de Grafo (I) Propiedades (2/2) Grado del grafo: 6 V = 7 E = 12 Soluciones Ejercicios Tema Ejercicios Adaptados de Apuntes y Exámenes de EDA Germán Moltó gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad

Más detalles

Estructura de Datos Página 1 de 13 ESTRUCTURA DE DATOS

Estructura de Datos Página 1 de 13 ESTRUCTURA DE DATOS Estructura de Datos Página 1 de 13 ESTRUCTURA DE DATOS Contenido TEMA 4. Grafos 4.1. Grafos 4.1.1. Definición 4.1.2.Conceptos 4.2. Modelado de problemas típicos 4.3. Representación de un grafo a través

Más detalles

Algoritmos de fuerza bruta

Algoritmos de fuerza bruta Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 29 de enero de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Algoritmos de fuerza bruta 29 de enero de 2018 1 / 26 1 Algoritmos de fuerza bruta Introducción

Más detalles

Algoritmos y Estructuras de Datos II

Algoritmos y Estructuras de Datos II 27 de mayo de 2013 Clase de hoy 1 Repaso Divide y vencerás Algoritmos voraces 2 3 Divide y vencerás Algoritmos voraces Repaso cómo vs. qué 3 partes 1 análisis de algoritmos 2 tipos de datos 3 técnicas

Más detalles

Guía práctica de estudio 7

Guía práctica de estudio 7 Guía práctica de estudio 7 Algoritmos de Grafos. Parte 2. Elaborado por: Revisión: Ing. Laura Sandoval Montaño Facultad de Ingeniería U.N.A.M. Guía Práctica 7 Estructura de datos y Algoritmos II Algoritmos

Más detalles

Descubrir los árboles como paradigma de los tipos Recursivos de Datos

Descubrir los árboles como paradigma de los tipos Recursivos de Datos TEMA 5 ÁRBOLES(*) Una de las estructuras las datos más importantes y prominentes que existen es el árbol. No es un árbol en el sentido botánico de la palabra, sino uno de naturaleza más abstracta. Todos

Más detalles

Caminos más cortos en gráficas. comp-420

Caminos más cortos en gráficas. comp-420 Caminos más cortos en gráficas comp-40 Caminos más cortos en gráficas Dado un grafo con peso y dirigido G = (V, E) con una función de peso w : E R que transforma aristas a valores reales de peso. El peso

Más detalles

Hamilton, Euler y Dijkstra

Hamilton, Euler y Dijkstra UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACION Matemáticas Discretas III (Cód. 6108) Práctica # 2 Hamilton, Euler y Dijkstra 1. Sea G = un multigrafo no dirigido donde

Más detalles

Introducción a los árboles. Lección 11

Introducción a los árboles. Lección 11 Introducción a los árboles Lección 11 Árbol: Conjunto de elementos de un mismo tipo, denominados nodos, que pueden representarse en un grafo no orientado, conexo y acíclico, en el que existe un vértice

Más detalles

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Lógica y Estructuras Discretas Tutor: Antonio Rivero Cuesta Tema 5 Teoría de Grafos Conceptos Básicos Un grafo consta de: Grafo Un conjunto de nodos, Un conjunto de aristas

Más detalles

Parte de Algoritmos de la asignatura de Programación Master de Bioinformática. Grafos

Parte de Algoritmos de la asignatura de Programación Master de Bioinformática. Grafos Parte de Algoritmos de la asignatura de Programación Master de Bioinformática Grafos Web asignatura: http://dis.um.es/~domingo/algbio.html E-mail profesor: domingo@um.es Transparencias preparadas a partir

Más detalles

Grafos. Amalia Duch Brown Octubre de 2007

Grafos. Amalia Duch Brown Octubre de 2007 Grafos Amalia Duch Brown Octubre de 2007 Índice 1. Definiciones Básicas Intuitivamente un grafo es un conjunto de vértices unidos por un conjunto de líneas o flechas dependiendo de si el grafo es dirigido

Más detalles

Examen de Estructuras de Datos y Algoritmos. (Modelo 1)

Examen de Estructuras de Datos y Algoritmos. (Modelo 1) Examen de Estructuras de Datos y Algoritmos (Modelo 1) 17 de junio de 2009 1. Qué rotación se necesita para transformar el árbol de la figura en un árbol AVL? a) Rotación simple izquierda-izquierda b)

Más detalles

Algorítmica y Complejidad

Algorítmica y Complejidad Departamento Informática Aplicada Algorítmica y omplejidad Tema Algoritmos sobre Grafos urso 0- Grafos. onceptos, Definiciones y Representación. onectividad y recorrido. Árboles de expansión 4. aminos

Más detalles

Acerca del Algoritmo de Dijkstra

Acerca del Algoritmo de Dijkstra Acerca del Algoritmo de Dijkstra Alvaro H. Salas S. * Resumen arxiv:0810.0075v1 [cs.ds] 1 Oct 2008 In this paper we prove the correctness of Dijkstra s algorithm. We also discuss it and at the end we show

Más detalles

Examen de Estructuras de Datos y Algoritmos. (Modelo 2)

Examen de Estructuras de Datos y Algoritmos. (Modelo 2) Examen de Estructuras de Datos y Algoritmos (Modelo 2) 17 de junio de 2009 1. Se dispone de una tabla hash de tamaño 12 con direccionamiento abierto y sondeo cuadrático. Utilizando como función hash la

Más detalles

Algoritmos y Estructuras de Datos III Apunte Teórico Primer cuatrimestre

Algoritmos y Estructuras de Datos III Apunte Teórico Primer cuatrimestre Algoritmos y Estructuras de Datos III Apunte Teórico 2018 Primer cuatrimestre Índice 1. Grafos 2 1.1. Conceptos básicos.......................... 2 1.2. Árboles................................ 6 1.3. Camino

Más detalles

Francisco J. Hernández López

Francisco J. Hernández López Francisco J. Hernández López fcoj23@cimat.mx Estructura de datos no lineales donde cada componente o nodo puede tener uno o más predecesores (a diferencia de los árboles) y sucesores Un grafo esta formado

Más detalles

TEORIA DE GRAFOS. Estructuras Discretas Ing. Jenny Paredes Aguilar

TEORIA DE GRAFOS. Estructuras Discretas Ing. Jenny Paredes Aguilar TEORIA DE GRAFOS Estructuras Discretas Ing. Jenny Paredes Aguilar INTRODUCCION Teoria de grafos se usa en numerosos problemas cuantificables, en las organizaciones, intervienen una serie de elementos entre

Más detalles

Modelado con grafos. Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires. 29 de septiembre de 2017

Modelado con grafos. Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires. 29 de septiembre de 2017 Modelado con grafos Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires 29 de septiembre de 2017 (UBA) Modelado con grafos 29 de septiembre de 2017 1 / 1 Recordatorio de DFS y BFS DFS

Más detalles

Algoritmos y estructuras de datos

Algoritmos y estructuras de datos Algoritmos y estructuras de datos Dr. Eduardo A. Rodríguez Tello Laboratorio de Tecnologías de Información Cinvestav Tamaulipas ertello@tamps.cinvestav.mx Cursos de inducción a la MCC Cinvestav Tamaulipas

Más detalles

Estructuras de Datos y Algoritmos. Grafos

Estructuras de Datos y Algoritmos. Grafos Estructuras de Datos y Algoritmos Grafos Definiciones Grafo modelo para representar relaciones entre elementos de un conjunto. Grafo: (V,E), V es un conjunto de vértices o nodos, con una relación entre

Más detalles

5.4 Caminos mínimos: Algoritmo de Dijkstra

5.4 Caminos mínimos: Algoritmo de Dijkstra 81 5.4 Caminos mínimos: Algoritmo de Dijkstra Al observar nuestro mapa de carreteras se pueden considerar las distancias en km que hay entre las ciudades, a cada arista se le asigna el valor correspondiente

Más detalles

Algorítmica y Complejidad. Tema 4 Algoritmos sobre grafos.

Algorítmica y Complejidad. Tema 4 Algoritmos sobre grafos. Algorítmica y Complejidad Tema. Algorítmos sobre grafos. Conceptos, Definiciones y Representación.. Conectividad y recorrido.. Árboles de expansión.. Caminos mínimos. Algorítmos sobre grafos. Conceptos,

Más detalles

Estructuras de Datos y Algoritmos

Estructuras de Datos y Algoritmos Estructuras de Datos y Algoritmos Tema 5.1. Árboles. Árboles binarios y generales Prof. Dr. P. Javier Herrera Contenido 1. Introducción 2. Terminología 3. Árboles binarios 4. Árboles generales Tema 5.1.

Más detalles

Algoritmos y estructuras de datos

Algoritmos y estructuras de datos Algoritmos y estructuras de datos Dr. Eduardo A. Rodríguez Tello Laboratorio de Tecnologías de Información Cinvestav Tamaulipas ertello@tamps.cinvestav.mx Cursos de inducción a la MCC Cinvestav Tamaulipas

Más detalles

Definición 1: Un grafo G es una terna ordenada (V(G), E(G), Ψ

Definición 1: Un grafo G es una terna ordenada (V(G), E(G), Ψ Título: Un Arbol Natural Autor: Luis R. Morera onzález Resumen En este artículo se crea un modelo para representar los números naturales mediante un grafo, el cual consiste de de un árbol binario completo

Más detalles

1.2.4 Listas enlazadas

1.2.4 Listas enlazadas 1.2.4 Listas enlazadas Las listas enlazadas son tipos de datos dinámicos que se construyen con nodos. Un nodo es un registro con al menos, dos campos, uno de ellos contiene las componentes y se le denomina

Más detalles

Tema: Recorrido de Grafos

Tema: Recorrido de Grafos PED104. Guía N 11 Página 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación con Estructuras de Datos Tema: Recorrido de Grafos Competencia Desarrolla sistemas de información informáticos

Más detalles

Minimum Spanning Tree (Árbol de Expansión Mínima) Agustín J. González ELO320: Estructura de datos y Algoritmos

Minimum Spanning Tree (Árbol de Expansión Mínima) Agustín J. González ELO320: Estructura de datos y Algoritmos Minimum Spanning Tree (Árbol de Expansión Mínima) Agustín J. González ELO320: Estructura de datos y Algoritmos 1 Introducción Lo que realmente se minimiza es el peso del árbol obtenido. No se minimiza

Más detalles

Ciclos Hamiltonianos Algoritmo de la Ruta Más Corta. Matemática Discreta. Agustín G. Bonifacio UNSL. Teoría de Grafos II

Ciclos Hamiltonianos Algoritmo de la Ruta Más Corta. Matemática Discreta. Agustín G. Bonifacio UNSL. Teoría de Grafos II UNSL Teoría de Grafos II y Ejemplos Un ciclo en un grafo que contiene cada vértice justo una vez, excepto por el vértice inicial y el final que aparece dos veces, recibe el nombre de ciclo de Hamilton.

Más detalles

Algoritmia: Búsquedas y Recursividad

Algoritmia: Búsquedas y Recursividad Algoritmia: Búsquedas y Recursividad Pablo San Segundo (C-206) pablo.sansegundo@upm.es Ejemplo Mapa de celdas 1 2 3 4 5 6 8 9 10 11 12 14 15 16 17 18 D 21 22 23 O GRADO DEL GRAFO? Escribir un algoritmo

Más detalles

1. Recuerdo del algoritmo de KRUSKAL

1. Recuerdo del algoritmo de KRUSKAL MA3705. Algoritmos Combinatoriales. 014. Profesor: José Soto Escriba(s): Manuel Cáceres, Camilo Gómez y Sebastián Muñoz. Fecha: 11 de Agosto 014. Cátedra 5 1. Recuerdo del algoritmo de KRUSKAL La clase

Más detalles

ESTRUCTURA DE DATOS Y DE LA INFORMACIÓN II

ESTRUCTURA DE DATOS Y DE LA INFORMACIÓN II ESTRUCTURA DE DATOS Y DE LA INFORMACIÓN II PRÁCTICA 2: GRAFOS grupo comienzo entrega 1a miércoles 3/3 miércoles 14/4 1b jueves 4/3 jueves 15/4 1c lunes 8/3 lunes 12/4 2a viernes 5/3 viernes 9/4 2b lunes

Más detalles

Definiciones: conjuntos, grafos, y árboles. Agustín J. González ELO 320: Estructura de Datos y Algoritmos. 2002

Definiciones: conjuntos, grafos, y árboles. Agustín J. González ELO 320: Estructura de Datos y Algoritmos. 2002 Definiciones: conjuntos, grafos, y árboles Agustín J. González ELO 320: Estructura de Datos y Algoritmos. 2002 1 Conjuntos (sets) y Grafos (graphs) Un Conjunto es una colección de objetos distintos. No

Más detalles

Descomposicion en Polígonos Monótonos. comp-420

Descomposicion en Polígonos Monótonos. comp-420 Descomposicion en Polígonos Monótonos comp-420 Triangulación de Polígonos Teorema 1: Todo polígono simple admite una triangulación, y cualquier triangulación de un polígono simple con n vértices consta

Más detalles

CLAVE V

CLAVE V CLAVE-962-2-V-2-00 -2017 UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERÍA DEPARTAMENTO DE MATEMÁTICA CURSO: Matemática para computación 2 SEMESTRE: Segundo CÓDIGO DEL CURSO: 962 TIPO DE EXAMEN:

Más detalles

B s ú que u da p rim i ero o e n n p rof o u f n u d n id i ad: E tr t ate t gia i L I L FO B s ú que u da p rim i ero o e n n a nc n h c u h r u a:

B s ú que u da p rim i ero o e n n p rof o u f n u d n id i ad: E tr t ate t gia i L I L FO B s ú que u da p rim i ero o e n n a nc n h c u h r u a: Búsqueda sin información Fernando Berzal, berzal@acm.org Búsqueda sin información Recorridos sobre grafos Búsqueda en anchura (BFS) Búsqueda en profundidad (DFS) Descenso iterativo (IDS) [ vuelta atrás

Más detalles

MATEMÁTICA DISCRETA. Segundo cuatrimestre Año 2015 Práctico 7 Parte I TEORÍA DE GRAFOS: INTRODUCCIÓN

MATEMÁTICA DISCRETA. Segundo cuatrimestre Año 2015 Práctico 7 Parte I TEORÍA DE GRAFOS: INTRODUCCIÓN MATEMÁTICA DISCRETA Segundo cuatrimestre Año 2015 Práctico 7 Parte I TEORÍA DE GRAFOS: INTRODUCCIÓN 1. Explique por qué ninguna de las siguientes gráficas tiene una trayectoria del vértice a al vértice

Más detalles

Apuntes de Teórico de Programación 3. Apuntes de Teórico PROGRAMACIÓN 3. Greedy. Versión 1.1

Apuntes de Teórico de Programación 3. Apuntes de Teórico PROGRAMACIÓN 3. Greedy. Versión 1.1 Apuntes de Teórico PROGRAMACIÓN 3 Greedy Versión 1.1 1 Índice Índice... Introducción... 3 Ejemplo 1 (problema de las monedas)... 3 Ejemplo (problema de la mochila)... 4 Aplicaciones del método Greedy a

Más detalles

Caminos y Flujos optimales. Introducción a la Investigación de Operaciones 2007

Caminos y Flujos optimales. Introducción a la Investigación de Operaciones 2007 Caminos y Flujos optimales Introducción a la Investigación de Operaciones 2007 Contenido Definiciones básicas. Conexidad. Clausura transitiva. Esqueletos y caminos optimales. Redes. Flujos. Algoritmo de

Más detalles

Propiedades. Ejercicios Tema 14. Representación de Grafo. Grado de Grafo (Matriz de Adyacencia)

Propiedades. Ejercicios Tema 14. Representación de Grafo. Grado de Grafo (Matriz de Adyacencia) Propiedades Ejercicios Tema Ejercicios Adaptados de Apuntes y Exámenes de EDA Germán Moltó gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad

Más detalles

Algoritmos Voraces. Diseño y Análisis de Algoritmos

Algoritmos Voraces. Diseño y Análisis de Algoritmos Algoritmos Voraces Diseño y Análisis de Algoritmos Contenidos Contenidos 1 Introducción 2 Ejemplos básicos 3 Cambio de monedas 4 Problema de la mochila 5 Problemas de planificación de tareas 6 Patrones

Más detalles

Introducción a Árboles Árboles Binarios

Introducción a Árboles Árboles Binarios Introducción a Árboles Árboles Binarios Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Introducción a Árboles Estructuras hasta ahora Estructuras

Más detalles

Solución de Problemas Mediante Búsqueda (1) Carlos Hurtado L. Depto de Ciencias de la Computación, Universidad de Chile

Solución de Problemas Mediante Búsqueda (1) Carlos Hurtado L. Depto de Ciencias de la Computación, Universidad de Chile Solución de Problemas Mediante Búsqueda (1) Carlos Hurtado L. Depto de Ciencias de la Computación, Universidad de Chile Contenido Solución de problemas mediante búsqueda Modelación de problemas como búsquedas

Más detalles

2007 Carmen Moreno Valencia

2007 Carmen Moreno Valencia Tema VIII. Grafos Grafos 1 2007 Carmen Moreno Valencia 1. Grafos, digrafos y multigrafos 2. Grafos eulerianos 3. Matrices de adyacencia e incidencia 4. Exploración de grafos pesados 1. Grafos, digrafos

Más detalles

x x 2 s s= (x 1, x 2 ) ... ? (sin explorar) M= (x 1, x 2, x 3, x 4,..., x n ) valor(m) =?

x x 2 s s= (x 1, x 2 ) ... ? (sin explorar) M= (x 1, x 2, x 3, x 4,..., x n ) valor(m) =? Exploración de grafos Grafos Recorridos sobre grafos Búsqueda primero en profundidad Búsqueda primero en anchura Backtracking ( vuelta atrás ) Descripción general Espacio de soluciones Implementación Ejemplos

Más detalles

Conceptos básicos en la Teoría de Grafos

Conceptos básicos en la Teoría de Grafos Conceptos básicos en la Teoría de Grafos Cristina Jordán Lluch Instituto de Matemáticas Multidisciplinar Grupo de Modelización Físico-Matemática Conceptos básicos Subgrafos Caminos, cadenas y ciclos Represetación

Más detalles

Recorridos de grafos

Recorridos de grafos Recorridos de grafos Introducción 2 Recorrido en profundidad 3 Recorrido en anchura 9 Ordenación topológica 12 J. Campos - C.P.S. Esquemas algorítmicos - Grafos Pág. 1 Introducción Justificación de la

Más detalles

Algoritmos glotones 2 (código de Huffman) mat-151

Algoritmos glotones 2 (código de Huffman) mat-151 Algoritmos glotones 2 (código de Huffman) mat-151 Alonso Ramírez Manzanares Computación y Algoritmos 05.06.2009 Son técnicas muy efectivas para comprimir datos. Alcanzan una compresión de entre 20% y 90%

Más detalles

Teoría de grafos y optimización en redes

Teoría de grafos y optimización en redes Teoría de grafos y optimización en redes José María Ferrer Caja Universidad Pontificia Comillas Definiciones básicas Grafo: Conjunto de nodos (o vértices) unidos por aristas G = (V,E) Ejemplo V = {,,,,

Más detalles

PROGRAMA DE CURSO. Código Nombre CC4005 TALLER DE PROGRAMACION COMPETITIVA A Nombre en Inglés COMPETITIVE PROGRAMMING A SCT

PROGRAMA DE CURSO. Código Nombre CC4005 TALLER DE PROGRAMACION COMPETITIVA A Nombre en Inglés COMPETITIVE PROGRAMMING A SCT PROGRAMA DE CURSO Código Nombre CC4005 TALLER DE PROGRAMACION COMPETITIVA A Nombre en Inglés COMPETITIVE PROGRAMMING A SCT Unidades Horas de Horas de Horas de Trabajo Docentes Discusión Laboratorio Personal

Más detalles

Solución de Problemas Mediante Búsqueda (2) Carlos Hurtado Depto de Ciencias de la Computación, Universidad de Chile

Solución de Problemas Mediante Búsqueda (2) Carlos Hurtado Depto de Ciencias de la Computación, Universidad de Chile Solución de Problemas Mediante Búsqueda (2) Carlos Hurtado Depto de Ciencias de la Computación, Universidad de Chile Manhattan Bike Curier (Acíclico) Ref. Curso IA U. of Toronto Algoritmo Genérico de Búsqueda

Más detalles

Tema 4y 5. Algoritmos voraces. Algoritmos sobre grafos

Tema 4y 5. Algoritmos voraces. Algoritmos sobre grafos Tema 4y 5. Algoritmos voraces. Algoritmos sobre grafos Objetivos: Estudio de la técnica de diseño de algoritmos voraces Estudio de algunos problemas clásicos: Indice: Mochila con fraccionamiento Algoritmos

Más detalles

Flujos de redes (Network Flows NF)

Flujos de redes (Network Flows NF) Fluos de redes (Network Flows NF). Terminología. Árbol generador mínimo. Camino mínimo 4. Fluo máximo 5. Fluo de coste mínimo TEORÍA DE GRAFOS. OPTIMIZACIÓN EN REDES Terminología Red o grafo (G) Nodos

Más detalles

Tema: Algoritmos para la ruta más corta en un Grafo.

Tema: Algoritmos para la ruta más corta en un Grafo. Programación IV. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación IV Tema: Algoritmos para la ruta más corta en un Grafo. Objetivos Específicos Definir el concepto de camino

Más detalles

Intersección de segmentos de línea

Intersección de segmentos de línea Intersección de segmentos de línea Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 22 de febrero del 2013 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Intersección de segmentos de línea 22 de febrero del 2013

Más detalles

Estructuras de Datos y Algoritmos

Estructuras de Datos y Algoritmos Estructuras de Datos y Algoritmos Práctico 3: Grafos (Finalización: 06/09) Ing. en Computación - Ing. en Informática - Prof. en Computación Año 2018 Ejercicio 1: Dado el siguiente p-digrafo: 5 b 6 d 11

Más detalles

Deseamos interconectar entre si todos los ordenadores de un edificio

Deseamos interconectar entre si todos los ordenadores de un edificio Teoría de grafos Deseamos interconectar entre si todos los ordenadores de un edificio Tres problemas de conexión: Conectar una serie de ordenadores por pares Procurar que la distancia por cable entre dos

Más detalles

Dimensionamiento y Planificación de Redes

Dimensionamiento y Planificación de Redes Dimensionamiento y Planificación de Redes Tema 2. Algoritmos Sobre Grafos Calvo Departamento de Ingeniería de Comunicaciones Este tema se publica bajo Licencia: Crea:ve Commons BY- NC- SA 4.0 Búsqueda

Más detalles

Algoritmos mas complejos. Algoritmos y Estructuras de Datos II (Programación I) Mgter. Vallejos, Oscar A.

Algoritmos mas complejos. Algoritmos y Estructuras de Datos II (Programación I) Mgter. Vallejos, Oscar A. Algoritmos mas complejos Divide y Vencerás Técnica empleada en cosas dispares. También en el diseño de algoritmos. (ordenación: Quicksort; Mergesort). Consiste básicamente en dividir un problema original

Más detalles