Recorridos de Gráficas

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

Download "Recorridos de Gráficas"

Transcripción

1 Recorridos de Gráficas comp-40

2 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 se llama búsqueda o recorrido de un grafo. Los algoritmos clásicos para búsqueda o recorridos en gráficas son: depth-first search breath-first search Por ahora solo vamos a visitar el nodo pero más tarde veremos acciones específicas a realizar en un nodo. Se puede elegir visitar el vértice la primera vez que se ve (preorden) o la última vez que se ve (postorden).

3 Explorando un laberinto Queremos encontrar la salida en un laberinto que consiste en pasajes conectados por intersecciones y también revisar todo el laberinto. Además del hilo podemos suponer luces, inicialmente apagadas y puertas, inicialmente cerradas en las intersecciones. Seguimos la exploración de Trémaux: Desenrollar un hilo detrás de nosotros. Marcar cada intersección visitada prendiendo una luz. Marcar cada pasaje visitado abriendo una puerta.

4 Explorando un laberinto (I) Si no hay puertas cerradas en la intersección actual, ir al paso (III). Si no, abrir cualquier puerta cerrada para salir a un pasaje y dejar la puerta abierta. (II) Si se puede ver una intersección al otro lado del pasaje que ya este encendido, probar otra puerta en la intersección actual (del paso 1). Si no (la intersección está apagada), seguir el pasaje hasta la intersección desenrollando el hilo, prender la luz y regresar al paso (I). (III) Si todas las puertas en la intersección actual están abiertas, verificar si se está en el punto inicial. Si es el caso, parar. Si no, usar el hilo hasta llegar a la intersección que nos llevó allí buscando otra puerta abierta.

5

6 Explorando un laberinto Al usar el algoritmo de exploración de Trémaux, encendemos todas las luces, abrimos todas las puertas y regresamos al punto inicial. Hay 4 posibles situaciones: El pasaje está apagado, entonces lo seguimos. El pasaje es el que usamos para entrar (tiene nuestro hilo), lo usamos para salir. La puerta del otro lado esta cerrada (pero la intersección está prendida), no recorremos el pasaje. La puerta al otro lado del pasaje está abierta y la intersección prendida, nos saltamos el pasaje.

7 Depth-first search La técnica de exploración de Trémaux nos lleva a la función recursiva clásica para recorrer gráficas: para visitar un vértice, lo marcamos como visitado y (recursivamente) visitamos todos los vértices adyacentes a este que no han sido marcados. (DFS)

8 Depth-first search En depth-first (profundidad primero) search: exploramos en un solo camino en la gráfica hasta lo más lejos que podamos llegar (no se encuentren más vértices). regresamos hasta un punto donde haya vértices que explorar y continuamos (como explorar un laberinto). Ejemplo de depth-first search empezando en el centro de la gráfica: s graph:

9 Depth-first search Tiempo de ejecución: O(E) ya que cada arista es examinada a lo más dos veces

10 Depth-first search El algoritmo puede escribirse de manera recursiva o iterativa. Ambas versiones toman un vértice fuente (source) s. ITERATIVE_DFS(s): RECURSIVE_DFS(v): 1. if v is unmarked. mark v 3. for each edge (v,w) 4. RECURSIVE_DFS(w) 1. PUSH(s). while stack not empty. v POP 3. if v is unmarked 4. mark v 5. for each edge (v,w) 6. PUSH(w) Es exactamente el mismo algoritmo con la única diferencia que en la versión iterativa se puede ver la pila de la recursión. Algun error?

11 Llenado por inundación Dado un pixel de color verde limón en la imagen, cambia el color de todos sus vecinos del mismo color a azul. Vértice: pixel Arista: pixeles vecinos del mismo color. Blob: todos los pixeles alcanzables a partir del pixel inicial. recolor lime green blob to blue

12 Encontrar un camino Hay un camino de s a t? si lo hay, encuentralo.

13 Recorridos genéricos en gráficas DFS es una (tal vez la más común) instancia de la familia general de algoritmos de recorrido de gráficas. El algoritmo de recorrido genérico almacena un conjunto de aristas candidatas en alguna estructura de datos que llamaremos bolsa. Las únicas propiedades importantes de la bolsa es que se puedan poner cosas dentro (como un contenedor en C++) y que se puedan sacar cuando sea necesario. Traverse(s): put (, s) in bag while the bag is not empty take (p, v) from the bag ( ) if v is unmarked mark v parent(v) p for each edge (v, w) ( ) put (v, w) into the bag ( )

14 Recorridos genéricos en gráficas Traverse(s): put (, s) in bag while the bag is not empty take (p, v) from the bag ( ) if v is unmarked mark v parent(v) p for each edge (v, w) ( ) put (v, w) into the bag ( ) Notese que estamos guardando las aristas en la bolsa en lugar de los vértices. Esto es porque queremos recordar, cuando visitemos un vértice v por primera vez, cuál vértice previamente visitado p puso a v en la bolsa. Llamamos al vértice p padre de v.

15 Recorridos genéricos en gráficas Traverse(s): put (, s) in bag while the bag is not empty take (p, v) from the bag ( ) if v is unmarked mark v parent(v) p for each edge (v, w) ( ) put (v, w) into the bag ( ) TRAVERSE(s) marca cada vértice en una gráfica conectada, exactamente una vez, y el conjunto de aristas (v,parent(v)) con parent(v) forma un árbol generador (spanning tree) del grafo. Cada vértice no se marca más de una vez. El conjunto de aristas forman un árbol generador.

16 Traverse(s): put (, s) in bag while the bag is not empty take (p, v) from the bag ( ) if v is unmarked mark v parent(v) p for each edge (v, w) ( ) put (v, w) into the bag ( ) El tiempo exacto de ejecución de un algoritmo de recorrido de gráficas depende de la representación de la gráfica y de la estructura usada como bolsa. Sin embargo se pueden hacer observaciones generales: Ya que cada vértice se visita a lo más una vez, entonces el cíclo ( ) ejecuta a lo más... e bag V veces. se Cada arista se pone en la bolsa exactamente dos veces, una como (v,u) y otra como (u,v), entonces la línea se ejecuta a lo más... ( ) E veces. Finalmente, como no podemos sacar más cosas de la bolsa de las que metimos, la línea se ejecuta a lo más... ( ) E + 1 veces.

17 Ejemplos de recorridos en gráficas Suponiendo una representación con listas de adyacencia, si implementamos la bolsa con una pila (stack), qué algoritmo tenemos? depth-first search. Cada ejecución de ( ) o ( ) toma tiempo constante. El tiempo de ejecución total es O(V+E). Ya que la gráfica está conectada, V E+1, por lo que podemos simplificar el tiempo de ejecución a O(E). El árbol generador producido se llama depth-first spanning tree. La forma de este árbol depende del orden en que se recorren los nodos adyacentes pero en general serán alargados. 17

18 Ejemplos de recorridos en gráficas Suponiendo una representación con listas de adyacencia, si implementamos la bolsa con una cola (queue), qué algoritmo tenemos? breath-first search. Cada ejecución de ( ) o ( ) toma tiempo constante. El tiempo de ejecución total es O(V+E). Ya que la gráfica está conectada, V E+1, por lo que podemos simplificar el tiempo de ejecución a O(E). El árbol generador producido contiene los caminos más cortos desde el inicio hasta el vértice actual. La forma de este árbol depende del orden en que se recorren los nodos adyacentes pero en general serán anchos y cortos.

19 Recorridos en gráficas desconectadas Si la gráfica está desconectado, entonces TRAVERSE(s) solo visita los nodos en el componente conectado del vértice inicial s. Si queremos visitar todos los nodos podemos utilizar el siguiente algoritmo, que calcula el bósque generador de la gráfica. TraverseAll(s): for all vertices v if v is unmarked Traverse(v)

20 DFS comp-40

21 Depth-First Search Buscar lo más profundo de una gráfica mientras sea posible. Las aristas son exploradas a partir del vértice más recientemente descubierto que tenga aristas inexploradas. Cuando todas las aristas de v han sido exploradas, la búsqueda regresa (backtrack) hasta llegar a un vértice con aristas sin explorar. Este proceso se repite hasta que todos los vértices han sido descubiertos.

22 Depth-First Search w x v s t u x w t u v x s u s t s t u v w x t w x s v s t v En qué orden visitamos los nodos? 5 / 6 w 7 / 8 x v 4 / 9 0 / 11 s t u 1 / 10 / 3

23 Depth-First Tree 5 / 6 w 7 / 8 x v 4 / 9 s t tree edges back edges 0 / 11 s t u u v 1 / 10 / 3 w x

24 Depth-First Search Supone una representación utilizando listas de adyacencia. El color de cada vértice u V se almacena en la variable color[u]. El predecesor de u se almacena en la variable π[u]. La subgráfica de predecesores puede formar más de un árbol porque la búsqueda se puede repetir a partir de múltiples fuentes. La subgráfica de predecesores se define como: G =(V,E ) E = {( [v],v):v V y [v] = NIL }. La subgráfica de predecesores en DFS forma un bosque compuesto de depth-first trees. Las aristas en Eπ se llaman tree edges.

25 Depth-First Search DFS también mantiene un sello de tiempo (timestamp) en cada vértice. Cada vértice v tiene dos timestamps: d[v] que almacena el momento en que v es descubierto (coloreado de gris), y f[v] cuando se termina de examinar su lista de adyacencia (colorea de negro). d[v] y f[v] son números enteros entre 1 y V, porque... hay un solo evento de descubrimiento y un evento de terminación para cada uno de los V vértices. Para cada vértice u, d[u] < f[u].

26 DFS( G ) 1 for each vertex u V [G] do color[u] WHITE 3 [u] NIL 4 time 0 5 for each vertex u V [G] 6 do if color[u] =WHITE 7 then DFS-VISIT(u)

27 DFS-VISIT( u ) 1 color[u] GRAY // White vertex u has just been discovered. time time +1 3 d[u] time 4 for each v Adj[u] // Explore edge (u, v). 5 do if color[v] =WHITE 6 then [v] u 7 DFS-VISIT(v) 8 color[u] BLACK // Blacken u; it is finished. 9 f[u] time time +1

28 u v x 1/ /7 u v w v y u v w w x z v y x y z y z x z x 4/5 y 3/6 z 1/ 1/ / 1/ 8 /7 u v w u v w u v w x y z x y z x y z 4/ 3/ 4/5 3/6 1/ / 1/ / 1/ 8 /7 9/ u v w u v w u v w x y z x y z x y z 4/5 3/ 4/5 3/6 1/ / 1/ / 1/ 8 /7 9/1 u v w u v w u v w x y z x y z x y z 3/ 4/5 3/6 4/5 3/6 10/11

29 DFS: Tiempo de Cálculo Cuál es el tiempo de cálculo de los cíclos de las líneas 1 a 3? y de las líneas 5 a 7? (sin contar el tiempo que toma la llamada a DFS-VISIT(v)) (V) El procedimiento DFS-VISIT(v) es llamado exactamente una vez para cada vértice v V porque se llama sólo en los vértices blancos y la primera acción es pintarlos de gris. Durante la ejecución de DFS-VISIT(v), el cíclo de las líneas 4 a 7 se ejecuta... Adj[v] veces.

30 DFS: Tiempo de Cálculo Ya que, el costo total de ejecutar las las líneas 4 a 7 de v V Adj[v] = DFS-VISIT(v) es (E). (E) El costo total de DFS es por lo tanto: (V+E).

31 Propiedades de DFS La subgráfica de predecesores, Gπ forma un bosque de árboles ya que la estructura de los árboles produce exáctamente la estructura de llamadas recursivas de DFS-VISIT(v). u = π[v] si y solo si DFS-VISIT(v) fue llamada durante una búsqueda en la lista de adyacencia de u. el vértice v es un descendiente de u en el bosque si y solo si v es descubierto durante el tiempo en que u es gris. Los tiempos de descubrimiento y terminación de un vértice tienen estructura de paréntesis: si representamos el descubrimiento por (u y la terminación por u), el historial del algoritmo estará propiamente anidado.

32 3/6 /9 1/10 11/16 y z s t x w v u 4/5 7/8 1/13 14/15 s t z v u y w x

33 Teorema del Paréntesis En una búsqueda en profundidad (en una gráfica dirigida o no dirigida) G=(V,E), para cualquier par de vértices u y v, exactamente una de las siguientes condiciones se cumple: Los intervalos [ d[u],f[u] ] y [ d[v],f[v] ] están completamente disjuntos y ningún vértice u o v son descendientes entre sí en el bosque depth-first. El intervalo [ d[u], f[u] ] está enteramente contenido en el intervalo [ d[v], f[v] ], y u es descendiente de v en un árbol depth-first. El intervalo [ d[v], f[v] ] está enteramente contenido en el intervalo [ d[u], f[u] ], y v es descendiente de u en un árbol depth-first.

34 Teorema del Paréntesis Para probar este teorema pensar en el caso en que d[u] < d[v] y en sus subcasos: d[v] < f[u] : v ha sido descubierto mientras u era todavía gris. Esto implica que v es descendiente de u. Además como v fue descubierto más recientemente que u, sus nodos adyacentes serán explorados antes que el algoritmo regrese y termine de explorar u. En este caso el intervalo [ d[v],f[v] ] estará contenido en [ [d[u],f[u] ]. d[v] > f[u] : los intervalos están disjuntos, ninguno era gris, ninguno es descendiente de otro. el caso en que d[v] < d[u] es simétrico. Corolario: un vértice v es un descendiente propio de otro vértice u en el bosque de profundidad para una gráfica (dirigida o no) si y solo si: d[u] < d[v] < f[v] < f[u]

35 Mas información de estructura

36

37 BFS comp-40

38 Breadth-First Search Uno de los algoritmos más simples para recorrer gráficas. Se usa como arquetipo para muchos algoritmos importantes con gráficas. Dada una gráfica G=(V,E) y un vértice fuente s, BFS explora las aristas de G sistemáticamente para descubrir cada vértice alcazable desde s. El algoritmo calcula la distancia (mínimo número de aristas) desde s hasta cualquier vértice alcanzable en G. Genera un árbol de anchura (BF tree) con raíz s y que contiene todos los vértices alcanzables en G. Para cualquier vértice v alcanzable desde s, el camino en el árbol desde s hasta v corresponde al camino más corto de s a v en G.

39 Breadth-First Search Supongamos una representación utilizando listas de adyacencia. El color de cada vértice u se almacena en la variable color[u]. El predecesor de u se almacena en la variable π[u]. La distancia de la fuente s al vértice u calculada por el algoritmo se almacena en d[u]. Se mantiene también una cola Q (first-in, first-out) que maneja el conjunto de vértices grises.

40 BFS(G,s) 1 for each vertex u V [G] {s} do color[u] WHITE 3 d[u] 4 π[u] NIL 5 color[s] GRAY 6 d[s] 0 7 π[s] NIL 8 Q 9 ENQUEUE(Q, s) 10 while Q 11 do u DEQUEUE(Q) 1 for each v Adj[u] 13 do if color[v] =WHITE 14 then color[v] GRAY 15 d[v] d[u]+1 16 π[v] u 17 ENQUEUE(Q, v) 18 color[u] BLACK

41 Breadth-first search 0 r s t u v w x y Q s 0 Líneas r s t u v w x y Q w 1 r 1 Ciclo r s t u v w x y Q r 1 t x r s t u v w x y Q t x v r s t u v w x y Q x v u r s t u v w x y Q v u 3 y r s t u v w x y Q y r s t u v w x y Q r s t u v w x y Q u 3 y 3

42 Breadth-First Search En el test de la línea 10, la cola Q consta de qué vertices? el conjunto de vértices grises. El resultado de BFS depende solamente del orden en que los vecinos de un nodo dado son visitados en la línea 1 : El BF-tree puede variar pero las distancias d calculadas no. Pueden ver una buena implementación de gráficas y BFS en C++ en la librería Boost Graph Library.

43 BFS: tiempo de cálculo Depués de la inicialización ningún nodo será dibujado de blanco, por lo que la prueba de la línea 13 asegura que cada vértice es metido y por lo tanto sacado a/de la cola a lo más una vez. Las operaciones ENQUEUE y DEQUEUE toman O(1). El tiempo total tomado por las operaciones de la cola es: O(V). La lista de adyacencia para cada vértice se recorre a lo más una vez. cuándo? cuando sale el vértice de Q. Ya que la suma de las longitudes de todas las listas de adyacencia es O(E), el tiempo total requerido para recorrer las listas es O(E).

44 BFS: tiempo de cálculo Cuántas veces se pone un nodo en la cola? (operación ENQUEUE). Cuánto tiempo se necesita para inicializar el problema? O(V). Cuál es el timpo total de ejecución de BFS? O(V+E)

45 BFS: caminos más cortos BFS encuentra la distancia más corta a cada vértice alcanzable en una gráfica G=(V,E) a partir de una fuente s. Definimos la distancia más corta (s,v) de s a v como el mínimo número de aristas en cualquier camino del vértice s al vértice v. Si no existe un camino de s hasta v entonces (s,v) =. Un camino de largo (s,v) desde s hasta v se conoce como el camino más corto en esa gráfica.

46 Caminos más cortos: propiedades Lema 1: Sea G=(V,E) un grafo dirigido o no dirigido, y sea s V un vértice arbitrario. Entonces para cualquier arista (u,v) E: (s,v) <= (s,u)+1 Prueba: si u es alcanzable desde s, entonces también v. en este caso, el camino más corto desde s hasta v no puede ser más largo que el camino más corto a partir de s hasta u, seguido por la arista (u,v) y la desigualdad se mantiene. En caso que no exista camino entre s y u, entonces (s,u) = y la desigualdad se mantiene.

47 Caminos más cortos: propiedades Lema : Sea G=(V,E) un grafo dirigido o no dirigido, y supongamos que BFS se ejecuta en G desde un vértice fuente s V. Al término de la ejecución, para cada vértice v V, el valor d[v] calculado satisface: d[v] (s,v) Prueba: Usando inducción en el número de operaciones ENQUEUE: La base de la inducción es la situación que ocurre inmediatamente después que s es puesta en Q en la línea 9 de BFS. La hipótesis inductiva se mantiene ya que d[s]=0= (s,s) y d[v]= (s,v) para todo v V - {s}.

48 Caminos más cortos: propiedades para el paso inductivo, consideramos un vértice blanco v que es descubierto durante la búsqueda a partir de un vértice u. la hipótesis inductiva supone que d[u] (s,u). De la asignación realizada en la línea 15 y por el Lema 1, obtenemos: d[v] = d[u]+1 δ(s, u)+1 δ(s, v). el vértice v es puesto en la cola y nunca se vuelve a poner en Q porque ahora es gris y la cláusula then de las líneas 14 a 17 se ejecuta solo para vértices blancos. El valor de d[v] nunca vuelve a cambiar, manteniendo la hipótesis

49 Caminos más cortos: propiedades Lema 3: Supongamos la ejecución de BFS en la gráfica G=(V,E). La cola Q contiene los vértices <v 1,v,...,v r > donde v 1 es el primer elemento y v r el último elemento de Q. Entonces: Prueba: d[v r ] d[v 1 ] + 1 y d[v i ] d[v i+1 ] para i= 1,,..., r-1. Usando inducción en el número de operaciones en la cola. Inicialmente, cuando Q solo tiene a s, el lema se mantiene. Para el paso inductivo, debemos probar que el lema se mantiene después de las operaciones ENQUEUE y DEQUEUE en un vértice.

50 Caminos más cortos: propiedades Si el primer elemento v 1 en Q sale, v se convierte en la nueva cabeza. Por la hipótesis inductiva d[v 1 ] d[v ], y tenemos que d[v r ] d[v 1 ]+1 d[v ]+1 Las demás desigualdades se mantienen y el lema se mantiene también con v a la cabeza. Al poner un vértice v en Q, se convierte en v r+1. En este momento hemos quitado al vértice u de Q y la nueva cabeza v 1 mantiene d[v 1 ] d[u]. Entonces d[v r+1 ] = d[v] = d[u]+1 d[v 1 ]+1. Por la hipótesis inductiva también tenemos d[v r ] d[u]+1 y por eso d[v r ] d[u] +1 = d[v] = d[v r+1 ], y las demás desigualdades se mantienen.

51 Caminos más cortos: propiedades Corolario 1: Supongamos que los vértices v i y v j son puestos en Q durante la ejecución de BFS y que v i fue puesto en la cola antes que v j. Entonces: al momento de poner a v j en la cola. Prueba: d[v i ] d[v j ] Por el Lema 3 y la propiedad de que cada vértice recibe un valor finito de d durante BFS.

52 Caminos más cortos Todo esto para probar que BFS encuentra correctamente caminos con las distancias más cortas. Teorema I (exactitud de BFS) Sea una gráfica G=(V,E) un grafo dirigido o no dirigido, supongamos que BFS se ejecuta en G para un vértice s V. Durante la ejecución BFS descubre cada vértice v V alcanzable desde la fuente s y a su terminación d[v]= (s,v) para todo v V. Además, para cualquier vértice v s alcanzable desde s, uno de los caminos más cortos hasta v es el camino más corto desde s hasta π[v] siguiendo la arista (π[v],v).

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

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

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 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

Gráficas. Las relaciones que resultan de estas conexiones nos llevan a preguntas como:

Gráficas. Las relaciones que resultan de estas conexiones nos llevan a preguntas como: GRÁFICAS Gráficas Muchas aplicaciones computacionales involucran no solo un conjunto de elementos sino también conexiones entre pares de elementos. Las relaciones que resultan de estas conexiones nos llevan

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

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

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

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

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

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

Árboles generadores mínimos (MST) comp-420

Árboles generadores mínimos (MST) comp-420 Árboles generadores mínimos (MST) comp-420 Árboles generadores mínimos (MST) Sea G=(V,E) una gráfica conectada y no-dirigida con V vértices y E aristas. Cada arista (u,v) E tiene un peso w(u,v), que es

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

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

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

MST: dos algoritmos glotones. comp-420

MST: dos algoritmos glotones. comp-420 MST: dos algoritmos glotones comp-420 Dos algoritmos glotones para MST Algoritmo de Kruskal. Algoritmo de Prim. Ambos pueden ejecutarse en un tiempo O(E log V) utilizando montículos binarios. Ambos algoritmos

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

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

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

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

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

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

Análisis y Diseño de Algoritmos Árboles de Mínima Expansión (Minimum Spanning Trees) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

Análisis y Diseño de Algoritmos Árboles de Mínima Expansión (Minimum Spanning Trees) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Análisis y Diseño de Algoritmos Árboles de Mínima Expansión (Minimum Spanning Trees) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Problema de Cableado de Circuitos Electrónicos 2 Diseño

Más detalles

Algoritmos de búsqueda en grafos II

Algoritmos de búsqueda en grafos II 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 2018 1 / 26 1 Algoritmos de búsqueda en grafos Dr.

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

Conjuntos, Tablas y Grafos

Conjuntos, Tablas y Grafos Conjuntos, Tablas y Grafos Mauro Jaskelioff 10/06/2016 Más Estructuras Al diseñar algoritmos y estructuras, son comunes los siguientes conceptos: Conjuntos Tablas (arreglos asociativos) Grafos Definiremos

Más detalles

3.0.-ARBOLES ABARCADORES Y COMPONENTES CONEXOS CONCEPTO DE ARBOL ABARCADOR Y SU RELACION CON LOS RECORRIDOS.

3.0.-ARBOLES ABARCADORES Y COMPONENTES CONEXOS CONCEPTO DE ARBOL ABARCADOR Y SU RELACION CON LOS RECORRIDOS. 3.0.-ARBOLES ABARCADORES Y COMPONENTES CONEXOS 3.1.- CONCEPTO DE ARBOL ABARCADOR Y SU RELACION CON LOS RECORRIDOS. 3.2.- BOSQUES Y COMPONENTES CONEXOS. NEXON LENIN CEFERINO POMPOSO Los árboles son particularmente

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

Tema 2: Grafos y Árboles. Algoritmos y Estructuras de Datos 3

Tema 2: Grafos y Árboles. Algoritmos y Estructuras de Datos 3 Tema 2: Grafos y Árboles Algoritmos y Estructuras de Datos 3 1 ÍNDICE 2.1 Definiciones básicas: grafos y árboles 2.2 Representaciones de árboles y grafos 2.3 Algoritmos de recorrido de árboles binarios

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

Segunda parte de árboles

Segunda parte de árboles Segunda parte de árboles mat-151 Argumentos y constructores por copia Argumentos y constructores por copia Recorrido de árboles Dado un apuntador a un árbol, queremos procesar cada nodo en el árbol de

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

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

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

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS TEMA 4. - La Estructura de datos Árbol 4.1. Árboles, definiciones 4.2 Árboles binarios y su representación 4.3 Operaciones básicas de un árbol binario

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

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

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

Definición 1.1 Sea G = (V, A) un grafo no dirigido. G se denomina árbol si es conexo y no contiene ciclos.

Definición 1.1 Sea G = (V, A) un grafo no dirigido. G se denomina árbol si es conexo y no contiene ciclos. Matemática Discreta y Lógica 2 1. Árboles Árboles Definición 1.1 Sea G = (V, A) un grafo no dirigido. G se denomina árbol si es conexo y no contiene ciclos. Como un lazo es un ciclo de longitud 1, un árbol

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

Á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

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 y Complejidad

Algoritmos y Complejidad Algoritmos y Complejidad Algoritmos sobre Grafos Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre 2014 Algoritmos sobre Grafos Introducción

Más detalles

Máximo Flujo (Maximum Flow) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

Máximo Flujo (Maximum Flow) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Máximo Flujo (Maximum Flow) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Flujo Máximo También podemos utilizar un grafo dirigido para modelar una red de flujo Se produce un material que

Más detalles

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

NIVEL 17: ESTRUCTURAS NO LINEALES

NIVEL 17: ESTRUCTURAS NO LINEALES 1 NIVEL 17: ESTRUCTURAS NO LINEALES Recorridos y Algorítmica de Grafos 2 Agenda Recorridos de grafos Recorridos Planos Recorridos en profundidad Recorridos por niveles Recorridos Heurísticos Algorítmica

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

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

A) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES

A) PREORDEN B) INORDEN C) POSTORDEN D) NIVELES Capitulo 5. Arboles 1. Al recorrer el siguiente árbol en se visitan más nodos para llegar al número 38. Justifique su respuesta mostrando cada uno de los recorridos. Tipo de Recorrido Recorrido A) PREORDEN

Más detalles

Grafos Eulerianos y Hamiltonianos. Algoritmos y Estructuras de Datos III

Grafos Eulerianos y Hamiltonianos. Algoritmos y Estructuras de Datos III Grafos Eulerianos y Hamiltonianos Algoritmos y Estructuras de Datos III Grafos eulerianos Definiciones: Un circuito C en un grafo (o multigrafo) G es un circuito euleriano si C pasa por todos las aristas

Más detalles

Estructuras de Datos y Algoritmos: Boletín de Problemas del segundo parcial

Estructuras de Datos y Algoritmos: Boletín de Problemas del segundo parcial Estructuras de Datos y Algoritmos: Boletín de Problemas del segundo parcial (Facultad de Informática) Curso 00 0 Estructuras de Datos y Algoritmos (FI-UPV) Curso 00 0 Árboles. Si la acción P fuera escribir

Más detalles

Recorrido por niveles. Algoritmo recorrido por niveles

Recorrido por niveles. Algoritmo recorrido por niveles Algoritmos sobre Grafos Algoritmos sobre Grafos Pablo R. Fillottrani Depto. Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Primer Cuatrimestre 2014 Introducción Ordenamiento topológico

Más detalles

Metaheurísticas y heurísticas. Algoritmos y Estructuras de Datos III

Metaheurísticas y heurísticas. Algoritmos y Estructuras de Datos III Metaheurísticas y heurísticas Algoritmos y Estructuras de Datos III Metaheurísticas Heurísticas clásicas. Metaheurísticas o heurísticas modernas. Cuándo usarlas? Problemas para los cuales no se conocen

Más detalles

Curso: Métodos de Monte Carlo Unidad 3, Sesión 7: Problemas de conteo

Curso: Métodos de Monte Carlo Unidad 3, Sesión 7: Problemas de conteo Curso: Métodos de Monte Carlo Unidad 3, Sesión 7: Problemas de conteo Departamento de Investigación Operativa Instituto de Computación, Facultad de Ingeniería Universidad de la República, Montevideo, Uruguay

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

Triangulación de Polígonos. comp-420

Triangulación de Polígonos. comp-420 Triangulación de Polígonos comp-420 Triangulación de polígonos Triangulación: descomposición de un polígono simple en triángulos. Cualquier triangulación de un polígono simple con n vertices tiene n-2

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

Dimensionado y Planificación de Redes Tema 1 - Conceptos básicos de teoría de grafos

Dimensionado y Planificación de Redes Tema 1 - Conceptos básicos de teoría de grafos Dimensionado y Planificación de Redes Tema 1 - Conceptos básicos de teoría de grafos Calvo ramon.agueroc@unican.es 1 Motivación Complejidad de algoritmos Conceptos básicos de grafos Representación de grafos

Más detalles

ESTRUCTURA DE DATOS. ABB Arboles de Búsqueda Binaria

ESTRUCTURA DE DATOS. ABB Arboles de Búsqueda Binaria ESTRUCTURA DE DATOS ABB Arboles de Búsqueda Binaria ÁRBOLES BINARIOS Hasta ahora nos hemos dedicado a estudiar TAD que de una u otra forma eran de naturaleza lineal, o unidimensional. En los tipos abstractos

Más detalles

Grafos: búsqueda y ordenamiento topológico. Jose Aguilar

Grafos: búsqueda y ordenamiento topológico. Jose Aguilar Grafos: búsqueda y ordenamiento topológico Jose Aguilar Introducción Recorrido: procedimiento sistemático de exploración de un grafo mediante la visita a todos sus vértices y aristas. Un recorrido es eficiente

Más detalles

OBJETIVOS ÍNDICE. Tema 9: GRAFOS Estructuras de Datos y Algoritmos Curso 2004/05

OBJETIVOS ÍNDICE. Tema 9: GRAFOS Estructuras de Datos y Algoritmos Curso 2004/05 Tema 9: GRAFOS Estructuras de Datos y Algoritmos Curso 200/05 OBJETIVOS Definiciones formales de grafo y conceptos relacionados Estructuras de datos para representar grafos Algoritmos para resolver diferentes

Más detalles

Conjuntos Disjuntos, Árboles y Gráficas

Conjuntos Disjuntos, Árboles y Gráficas Conjuntos Disjuntos, Árboles y Gráficas Estructuras de datos para mantener conjuntos disjuntos Estructura para mantener una colección S={S 1,S 2,...,S k } de conjuntos dinámicos disjuntos. Cada conjunto

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

Coloreo de Grafos. Algoritmos y Estructuras de Datos III

Coloreo de Grafos. Algoritmos y Estructuras de Datos III Coloreo de Grafos Algoritmos y Estructuras de Datos III Coloreo de nodos Definiciones: Un coloreo (válido) de los nodos de un grafo G = (V, X ) es una asignación f : V C, tal que f (v) f (u) (u, v) E.

Más detalles

Introducción a la Teoría de Grafos

Introducción a la Teoría de Grafos Introducción a la Teoría de Grafos Flavia Bonomo fbonomo@dc.uba.ar do. Cuatrimestre 009 Programa Introducción a la teoría de grafos Problemas de camino mínimo Problemas de flujo máximo Programación lineal

Más detalles

Capítulo 8. Árboles. Continuar

Capítulo 8. Árboles. Continuar Capítulo 8. Árboles Continuar Introducción Uno de los problemas principales para el tratamiento de los grafos es que no guardan una estructura establecida y que no respetan reglas, ya que la relación entre

Más detalles

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios Estructura de Datos Árboles Árboles Binarios Temario Unidad VI 6.1 Definición y operaciones 6.2 Implementación 6.3 Recorrido en Árboles Binarios 6.4 Árboles AVL y su implementación 6.5 Árboles n-arios

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

Grafos. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Grafos 1 / 30

Grafos. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Grafos 1 / 30 Grafos AMD Grado en Ingeniería Informática AMD Grado en Ingeniería Informática (UM) Grafos / 0 Objetivos Al finalizar este tema tendréis que: Conocer la terminología básica de la teoría de grafos. Pasar

Más detalles

Algebra Matricial y Teoría de Grafos

Algebra Matricial y Teoría de Grafos Algebra Matricial y Teoría de Grafos Unidad 3: Nociones de teoría de grafos Luis M. Torres Escuela Politécnica del Litoral Quito, Enero 2008 Maestría en Control de Operaciones y Gestión Logística p.1 Contenido

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

Búsqueda en espacio de estados

Búsqueda en espacio de estados Búsqueda en espacio de estados Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Inteligencia Artificial CCIA, US Búsqueda en espacio de estados IA 1 / 35 Metodología

Más detalles

TEMA 6 GRAFOS Fundamentos y terminología básica. Estructuras de datos Tema 6 Página 101

TEMA 6 GRAFOS Fundamentos y terminología básica. Estructuras de datos Tema 6 Página 101 Estructuras de datos Tema 6 Página 101 GRAFOS TEMA 6 6.1. FUNDAMENTOS Y TERMINOLOGÍA BÁSICA...101 6.2. REPRESENTACIÓN DE GRAFOS...103 Representación mediante matrices: Matrices de adyacencia...103 Representación

Más detalles

Un GRAFO O GRAFO NO ORIENTADO es una terna G = {V, A,ϕ } conv

Un GRAFO O GRAFO NO ORIENTADO es una terna G = {V, A,ϕ } conv DEFINICIÓN 1: Un GRAFO O GRAFO NO ORIENTADO es una terna G = {V, A,ϕ } conv φ donde: V = {v 1, v 2,, v n }: conjunto finito de vértices o nodos. A = {a 1, a 2,, a n }: conjunto finito de aristas o lados

Más detalles

Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) 1 DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Problema de Encontrar la Ruta más Corta 2 Se requiere llegar de

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

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

Análisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez

Análisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez Análisis y Complejidad de Algoritmos Arboles Binarios Arturo Díaz Pérez Arboles Definiciones Recorridos Arboles Binarios Profundidad y Número de Nodos Arboles-1 Arbol Un árbol es una colección de elementos,

Más detalles

Minicurso de Teoría de Gráficas Escuela de Verano 2014 por María Luisa Pérez Seguí Facultad de Ciencias Físico-Matemáticas, Universidad Michoacana

Minicurso de Teoría de Gráficas Escuela de Verano 2014 por María Luisa Pérez Seguí Facultad de Ciencias Físico-Matemáticas, Universidad Michoacana Minicurso de Teoría de Gráficas Escuela de Verano 014 por María Luisa Pérez Seguí Facultad de Ciencias Físico-Matemáticas, Universidad Michoacana Índice 1. Conceptos básicos 1 1.1. Nomenclatura...................................

Más detalles

Multiplicación de matrices simétricas

Multiplicación de matrices simétricas Multiplicación de matrices simétricas La traspuesta de una matriz A n n es definida como una matriz A T n n tal que A T [i, j] =A[j, i] paracadai, j 2{1,...,n} Además, una matriz A es simétrica si A =

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

Tema 15: GRAFOS Algoritmos y estructuras de datos I - Tema 15 1

Tema 15: GRAFOS Algoritmos y estructuras de datos I - Tema 15 1 Tema 15: GRFOS jemplos de grafos G 1 = (V 1, 1 ) V 1 ={1,2,3,4} 1 ={ (1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4) } (1, 3) 1 (1, 2) (2, 3) (1, 4) 2 3 4 (3, 4) (2, 4) jemplos de grafos G 2 = (V 2, 2 )

Más detalles

ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES TEMAS Recorrido de un árbol Máximo y mínimo Búsqueda de un elemento Borrado de un nodo 3 Características ARBOLES - CONCEPTOS Cada elemento del árbol

Más detalles

Algoritmo de Kruskal

Algoritmo de Kruskal Algoritmo de Kruskal Curso de Teoría Algebraica de Grafos Facultad de Ingeniería Universidad de la República 4 de mayo de 202 Árboles Un árbol es un grafo conexo y acíclico (sin ciclos). Un bosque es un

Más detalles

Grafos. CCIR / Depto Matemáticas CB102

Grafos. CCIR / Depto Matemáticas CB102 CB102 Conceptos Los grafos son una técnica de modelación de problemas atractiva y útil. Problemas de diferentes áreas pueden ser modelados mediante su uso: redes de transporte de bienes de consumo, redes

Más detalles

Un grafo G = (V, E) se dice finito si V es un conjunto finito.

Un grafo G = (V, E) se dice finito si V es un conjunto finito. 1 Grafos: Primeras definiciones Definición 1.1 Un grafo G se define como un par (V, E), donde V es un conjunto cuyos elementos son denominados vértices o nodos y E es un subconjunto de pares no ordenados

Más detalles

Teoría de Grafos Introducción Grafos isomorfos

Teoría de Grafos Introducción Grafos isomorfos Capítulo 1 Teoría de Grafos 1.1. Introducción Definición. Denominaremos pseudomultigrafo a una terna (V,E, γ), donde V y E son conjuntos y γ : E {{u,v}: u,v V }. El conjunto V se denomina conjunto de vértices

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

UNIVERSIDAD NACIONAL DEL ALTIPLANO

UNIVERSIDAD NACIONAL DEL ALTIPLANO UNIVERSIDAD NACIONAL DEL ALTIPLANO FACULTAD DE INGENIERA MECÁNICA ELÉCTRICA, ELECTRÓNICA Y SISTEMAS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS Monografía: Recorrido y búsqueda en árboles Autor: Lizbeth

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

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

Geometría Computacional. Dr. Antonio Marín Hernández

Geometría Computacional. Dr. Antonio Marín Hernández Geometría Computacional Dr. Antonio Marín Hernández Centro de Investigación en Inteligencia Artificial Universidad Veracruzana anmarin@uv.mx www.uv.mx/anmarin Contenido Introducción Intersección de segmentos

Más detalles

ALGORITMOS DE BÚSQUEDA. Ing. Ronald A. Rentería Ayquipa

ALGORITMOS DE BÚSQUEDA. Ing. Ronald A. Rentería Ayquipa ALGORITMOS DE BÚSQUEDA Algoritmos de Búsqueda Tipos Tipos de algoritmos de búsqueda ALGORITMOS DE BÚSQUEDA NO INFORMADA ALGORITMOS DE BÚSQUEDA HEURÍSTICA Búsqueda no informada Introducción Búsqueda no

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

1. GRAFOS : CONCEPTOS BASICOS

1. GRAFOS : CONCEPTOS BASICOS 1. GRAFOS : CONCEPTOS BASICOS Sea V un conjunto finito no vacio y sea E V x V. El par (V, E) es un grafo no dirigido, donde V es un conjunto de vértices o nodos y E es un conjunto de aristas. Denotaremos

Más detalles

Todos los Pares de Rutas más Cortas (All-Pairs Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

Todos los Pares de Rutas más Cortas (All-Pairs Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Todos los Pares de Rutas más Cortas (All-Pairs Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE Problema de Encontrar todos los Pares de Rutas más Cortas 2 Encontrar las rutas

Más detalles

Coloreo de vértices Definiciones: Coloreo de Grafos. Cotas para χ Proposición: Si H es un subgrafo de G entonces χ(h) χ(g).

Coloreo de vértices Definiciones: Coloreo de Grafos. Cotas para χ Proposición: Si H es un subgrafo de G entonces χ(h) χ(g). Coloreo de vértices Definiciones: Coloreo de Grafos Algoritmos y Estructuras de Datos III Un coloreo (válido) de los vértices de un grafo G = (V, X ) es una asignación f : V C, tal que f (v) f (u) (u,

Más detalles