Slides:



Advertisements
Presentaciones similares
SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
Advertisements

Tania Guzmán García Luis González Varela Alexandre González Rivas
5. Estructuras no lineales estáticas y dinámicas
Los números del 0 al cero uno dos tres cuatro cinco 6 7 8
50 formas de decir “Te Amo”.
Universidad San Martín de Porres
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
AYUDA A LA FUNCIÓN DOCENTE Internet
TEMA 2 MÚLTIPLOS Y DIVISORES
02- Plan Organización Docente v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
02- PLAN DOCENTE Febrero 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
01- OFERTA FORMATIVA v.2 Noviembre 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
Respuestas Buscando a Nemo.
ABECEDARIO FIGURAS GEOMÉTRICAS NÚMERO
GRAFOS Presentado por: Oscar Leonardo Ramírez John Freddy Sandoval
Unidad I Análisis de CA en estado estable
UNIDAD 2 Leyes Básicas Divisor de Voltaje Divisor de Corriente
Árboles Grafo que no contiene ciclos, es decir es un grafo también acíclico, pero a su vez es conexo.
Montículos Daniel González Pérez Cristina Sánchez Aragón
Hoja 3.- Grafos ej ¿Cuál es el mínimo número de veces que hay que levantar el lápiz del papel para trazar los siguientes dibujos? El primer.
GRAFOS: ALGORITMOS FUNDAMENTALES
1 Reporte Componente Impacto Por Orden Territorial Por Departamento No Disponible ND *Los indicadores para el año 2008 no fueron calculados.
Phone2Wave-Server Manual de Operación.
Parte 3. Descripción del código de una función 1.
MATEMÁTICAS DISCRETAS.
EL OSO APRENDIZ Y SUS AMIGOS
Ecuaciones Cuadráticas
¡Primero mira fijo a la bruja!
ESTRUCTURAS DE DATOS AVANZADAS
¿Qué es un conjunto? Un conjunto es una colección de objetos considerada como un todo. Los objetos de un conjunto son llamados elementos o miembros del.
Método de Ford-Fulkerson
Conceptos Básicos ANÁLISIS DE REDES.


REGLAS DE LOS SIGNOS.
Solución de problemas por búsqueda inteligente
Calendario 2009 “Imágenes variadas” Venezuela Elaborado por: MSc. Lucía Osuna Wendehake psicopedagogiaconlucia.com Enero 2009.
Definiciones: conjuntos, grafos, y árboles
Inteligencia Artificial Resolver problemas mediante búsqueda
Robótica Educativa usando LEGO Mindstorms Education NXT Base Set
Estructuras de control
Teoría de Grafos.
CHAPTER 4 VOCABULARY: PART II
AED I. Estructuras de Datos.
Cecilia Laborde González
GRAFOS HUGO ARAYA CARRASCO.
1 Algoritmos Elementales de Grafos Agustín J. González ELO-320: Estructura de Datos Y Algoritmos 1er.Sem
Programación entera y grafos
Material de apoyo Unidad 4 Estructura de datos
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:
Definiciones: conjuntos, grafos, y árboles
Trabajo presentado por: LUIS FERNANDO OBANDO ING
Matemáticas Discretas
Estructura de Datos y Algoritmos
Diseño y análisis de algoritmos

Definición, propiedades, recorridos x a q yb w e vu fo.
Agustín J. González ELO-320: Estructura de Datos y Algoritmos
Matemáticas Discretas
Tópicos I Árboles, montículos y grafos
s t a c b d Grafos.
Sesión 3: Teoría de Grafos
Definiciones: conjuntos, grafos, y árboles
Agustín J. González ELO-320: Estructura de Datos Y Algoritmos
Cecilia Laborde González
Estructura de Datos 4 Grafos Dirigidos
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
ARBOLES GENERALIZADOS
Matemáticas Discretas MISTI
Transcripción de la presentación:

Recorridos en grafos s t 10 1 2 b d 2 45 20 55 4 25 40 1 30 5 3 3 a c 15 30 20 25 50 45 10 40 55 s t a c b d 2 3 4 1 Recorridos en grafos

Indice Introducción. Búsqueda primero en profundidad. Búsqueda primero en anchura. Usos de los recorridos. Digrafos acíclicos. Orden topológico.

Introducción Recorrido: procedimiento sistemático de exploración de un grafo mediante el examen de todos sus vértices y aristas. Un recorrido es eficiente si visita todos los vértices y aristas en un tiempo proporcional a su número, esto es, en tiempo lineal.

Búsqueda primero en profundidad Analogía: deambular en un laberinto con una cuerda y un bote de pintura, para no perderse. Se selecciona un vértice inicial s de G, al que se fija un extremo de la cuerda y se pinta s como "visitado". Se asigna s a u (vértice en curso). Se recorre G considerando una arista arbitraria (u, v). Si la arista (u, v) conduce a una vértice v ya visitado se retorna inmediatamente al vértice u. Si (u, v) conduce a un vértice no visitado v, entonces se extiende la cuerda y se fija en v. Se pinta v como "visitado" y se asigna a u (vértice en curso), repitiendo el mismo procedimiento anterior. Si todas las aristas incidentes a un vértice conducen a vértices ya visitados, se enrolla la cuerda vuelta atrás a la arista que condujo a u y se repite el procedimiento anterior para las aristas incidentes que no se han recorrido antes. El proceso termina cuando la vuelta atrás conduce al vértice inicial s y no hay más aristas incidentes sin explorar desde s.

Búsqueda primero en profundidad Animación a b d e c a b d e c a b d e c a b d e c a b d e c a b d e c

Búsqueda primero en profundidad El recorrido BPP es una generalización del recorrido preorden de un árbol. Se pueden identificar cuatro tipos de aristas durante el recorrido: Aristas de descubrimiento: son aquellas aristas que conducen al descubrimiento de nuevos vértices. También se les llama aristas de árbol. Aristas de retorno: son las aristas que conducen a vértices antecesores ya visitados en el árbol. Aristas de avance: son las aristas que conducen a vértices descendientes en el árbol. Aristas de cruce: son aristas que conducen a un vértice que no es ancestro de otro o a vértices que están en diferentes árboles. Las aristas de descubrimiento forman un árbol de cubrimiento de los componentes conectados del vértice inicial s.

Algoritmo recursivo BPP recorre_grafo_bpp() { for cada vértice v marca[v]=SINVISITAR; if (marca[v]==SINVISITAR) BPP(v); } BPP(u) { marca[u]=VISITADO; for cada vértice v adyacente a u if (marca[v]==SINVISITAR) BPP(v); } Orden de complejidad del recorrido en profundidad: Con lista de adyacencia, se recorre cada elemento de lista una vez, O(n + e). Con matriz de adyacencia, para cada nodo se buscan sus adyacentes, O(n2).

Algoritmo recursivo BPP Applet de animación del recorrido BPP

Búsqueda primero en anchura Analogía: deambular en un laberinto con una cuerda y un bote de pintura, para no perderse. Se selecciona un vértice inicial s de G, al que se fija inicialmente un extremo de la cuerda y se marca s con el nivel 0. Se ajusta la longitud de la cuerda igual al de una arista. Se visitan y marcan con 1 todos los vértices adyacentes a s que se alcanzan con esa longitud. Se repite el proceso anterior con una longitud de cuerda igual al de dos aristas. Todos los vértices adyacentes al nivel 1 se marcan con el nivel 2. El recorrido termina cuando todos los vértices tienen asignado un nivel.

Búsqueda primero en anchura Animación a b d e c a b d e c 1 a b d e c 1 2

Búsqueda primero en anchura El recorrido BPA es una generalización del recorrido por niveles de un árbol. Se pueden identificar dos tipos de aristas durante el recorrido: Aristas de descubrimiento: son aquellas aristas que conducen al descubrimiento de nuevos vértices. Aristas de cruce: son aristas que conducen a un vértice ya visitado. Las aristas de descubrimiento forman un árbol de cubrimiento de los componentes conectados del vértice inicial s.

Algoritmo BPA Orden de complejidad del recorrido en anchura: recorre_grafo_bpa() { for cada vértice v marca[v]=SINVISITAR; if (marca[v]==SINVISITAR) BPA(v); } BPA(v) { marca[v] = VISITADO; InsertaCola(v, C) while not EsVacíaCola(C) { u = SuprimirCola(C); for cada nodo y adyacente a u { if (marca[y]==SINVISITAR) { marca[y] = VISITADO; InsertaCola(y, C); } Orden de complejidad del recorrido en anchura: Con lista de adyacencia: O(n + e). Con matriz de adyacencia: O(n2).

Applet de animación del recorrido BPA

Usos de los Recorridos Ambos recorridos se pueden usar para resolver los siguientes problemas: Probar que G es conectado. Obtener un árbol de expansión de G. Obtener los componentes conectados de G. Obtener un camino entre dos vértices dados de G, o indicar que no existe tal camino. El recorrido BPP se usa para: Obtener un ciclo en G, o indicar que G no tiene ciclos. El recorrido BPA se usa para: Obtener para cada vértice v de G, el número mínimo de aristas de cualquier camino entre s y v.

Digrafos acíclicos Es un grafo dirigido que no tiene ciclos. Representan relaciones más generales que los árboles pero menos generales que los digrafos. Ejemplo: representar estructuras sintácticas de expresiones aritméticas con subexpresiones comunes y el orden parcial de un conjunto. * + a b d (a+b)*(d+d*(a+b)) Orden parcial R en un conjunto S, relación binaria que cumple:  elemento a de S, (a R a) es falso.  a, b, c de S, si (a R b) y (b R c) entonces (a R c).

Digrafos acíclicos Un grafo es acíclico si durante un recorrido BPP no existen aristas de vuelta atrás o retorno. Algoritmo: recorrer el digrafo usando BPP y numerando los nodos nuevos en el recorrido. Si en algún momento en una arista de retorno un nodo descendiente tiene un nivel de profundidad menor que el antecesor, entonces existe un ciclo. 1 5 3 4 2 6 7 arista de retorno

Orden topológico Ordenamiento topológico de un digrafo acíclico: orden lineal de los vértices colocándolos a lo largo de una línea horizontal de tal manera que todas las aristas tengan una dirección de izquierda a derecha. Ejemplo: las tareas de un proyecto de construcción. Algoritmo: usar una versión modificada de BPP. orden_topologico(v) /* orden inverso */ { marca[v]=VISITADO; for cada vértice w en lista_adyacencia(v) if (marca[w]==SINVISITAR) orden_topologico(w); imprime(v); }

Orden topológico Ejemplo Orden topológico: 1 2 3 4 5 6 1 3 2 4 5 6 2 1 5 3 4 6 1 2 3 4 5 6

Indice 1. Introducción. 2. Definiciones. 3. Recorridos en grafos. 4. Algoritmos de caminos más cortos. 5. Árbol de cubrimiento de costo mínimo. 6. Flujo en redes. Flujo máximo.