Teoría de Grafos
UCR – ECCI
CI-1204 Matemáticas Discretas
Prof. Kryscia Daviana Ramírez Benavides
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos 2
Grafos Dirigidos
 Un grafo dirigido G consiste en un conjunto de vértices V y
un conjunto de arcos A  G = (V,A).
 Los vértices se denominan también nodos o puntos.
 Los arcos pueden llamarse arcos dirigidos o líneas dirigidas.
 Un arco es un par ordenado de vértices (v,w); donde v es la
cola y w es la cabeza del arco.
 El arco (v,w) se expresa a menudo como v → w, y se
representa como:
 Se dice que el arco v → w va de v a w, y que w es adyacente a
v.
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos 3
Grafos Dirigidos (cont.)
 Los vértices de un grafo dirigido pueden usarse para
representar objetos, y los arcos para representar relaciones
entre los objetos.
 Un camino en un grafo dirigido es una secuencia de vértices
v1, v2, …, vn, tal que v1 → v2, v2 → v3, …, vn-1 → vn son arcos.
 Este camino va del vértice v1 al vértice vn, pasando por los
vértices v2, v3, …, vn-1.
 La longitud de un camino es el número de arcos en ese
camino, en este caso, n – 1.
 Como caso especial, un vértice sencillo v, por sí mismo denota
un camino de longitud 0 de v a v.
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos 4
Grafos Dirigidos (cont.)
 En el grafo G = (V,A), donde V = {1,2,3,4} y A = {(1,2),(1,3),
(2,4),(3,2),(4,3)}, la secuencia 1, 2, 4 es un camino de longitud
2 que va del vértice 1 al vértice 4.
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos 5
Grafos Dirigidos (cont.)
 Un camino simple es un camino en donde todos los vértices,
excepto tal vez el primero y el último, son distintos.
 Un ciclo simple es un camino simple de longitud por lo menos
uno, que empieza y termina en el mismo vértice.
 En el grafo G anterior 3, 2, 4, 3 es un ciclo de longitud 3.
 Un grafo dirigido etiquetado es un grafo cuyos arcos están
etiquetados con una letra o un valor numérico.
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos 6
Representación de Grafos Dirigidos
 Una representación común para un grafo dirigido G = (V,A) es
la matriz de adyacencia.
 La matriz de adyacencia para G es una matriz A de dimensión
n x n, de elementos booleanos, donde A[i,j] es verdadero si y
sólo si existe un arco que vaya del vértice i al j.
 Con frecuencia se exhibirán matrices adyacencias con 1 para
verdadero y 0 para falso.
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos 7
Representación de Grafos Dirigidos (cont.)
 Otra representación, relacionada con la anterior, para un grafo
dirigido G = (V,A) es la matriz de adyacencia etiquetada.
 La matriz de adyacencia etiquetada para G es una matriz A de
dimensión n x n, donde A[i,j] es la etiqueta del arco que va del
vértice i al j.
 Si no existe un arco de i a j debe emplearse como entrada para
A[i,j] un valor que no pueda ser una etiqueta válida.
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos 8
Representación de Grafos Dirigidos (cont.)
 La ventaja de usar una matriz de adyacencia es que el tiempo
de acceso requerido a un elemento es independiente del
tamaño de V y A.
 La desventaja de usar una matriz de adyacencia es que
requiere un espacio (n2) aun si el grafo tiene menos de n2
arcos.
 Sólo leer o examinar la matriz puede llevar un tiempo O(n2).
 Para evitar esta desventaja, se puede utilizar otra
representación común para un grafo dirigido G = (V,A)
llamada representación con lista de adyacencia.
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos 9
Representación de Grafos Dirigidos (cont.)
 La lista de adyacencia para un vértice i es una lista, en algún
orden, de todos los vértices adyacentes a i.
 Se puede representar G por medio de un arreglo CABEZA,
donde CABEZA[i] es un apuntador a la lista de adyacencia del
vértice i.
 La representación con lista de adyacencia de un grafo dirigido
requiere un espacio proporcional a la suma del número de
vértices más el número de arcos.
 Se usa bastante cuando el número de arcos es mucho menor
que n2.
 Una desventaja potencial es que puede llevar un tiempo O(n)
determinar si existe un arco del vértice i al vértice j.
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos 10
Representación de Grafos Dirigidos (cont.)
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos No Dirigidos
 Parte de la terminología para grafos dirigidos es aplicable a los
no dirigidos.
 Un grafo no dirigido G consiste en un conjunto finito de
vértices V y un conjunto de aristas A  G = (V,A).
 Los vértices se denominan también nodos o puntos.
 Las aristas es un par no ordenado de vértices; la arista (v,w) =
(w,v)
 Los vértices v y w son adyacentes si es una arista (v,w).
 Se dice que la arista (v,w) es incidente sobre los vértices v y w.
11
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos No Dirigidos (cont.)
 Un camino en un grafo no dirigido es una secuencia de
vértices v1, v2, …, vn, tal que (v1,vi+1) es una arista para 1 ≤ i <
n.
 Un camino simple es un camino en donde todos los vértices,
excepto tal vez el primero y el último, son distintos.
 La longitud del camino es n – 1, el número de aristas a lo
largo del camino.
 Un grafo es conexo si todos sus pares de vértices están
conectados.
12
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos No Dirigidos (cont.)
 Sea G = (V,A) un grafo con conjunto de vértices V y conjunto
de aristas A. Un subgrafo de G es un grafo G’ = (V’,A’)
donde:
 V’ es un subconjunto de V.
 A’ consta de las aristas (v,w) en A tales que v y w están en V’.
 Si A’ consta de todas las aristas (v,w) en A, tal que v y w están
en V’, entonces G’ se conoce como un subgrafo inducido de
G.
13
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos 14
Grafos No Dirigidos (cont.)
 En el grafo G = (V,A), donde V = {a,b,c,d} y A = {(a,b),(a,c),
(b,c),(b,d),(c,d)}, y uno de sus subgrafos inducidos G’
definido por el conjunto de vértices V’ = {a,b,c} y A’ = {(a,b),
(b,d)}.
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos No Dirigidos (cont.)
 Un componente conexo de un grafo G es un subgrafo conexo
inducido maximal, es decir, un subgrafo conexo inducido que
por sí mismo no es un subgrafo propio de ningún otro
subgrafo conexo de G.
 El grafo no dirigido anterior es un grafo conexo que tiene sólo
un componente conexo, y es él mismo.
 El siguiente grafo no dirigido tiene dos componentes conexos.
15
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos No Dirigidos (cont.)
 Un ciclo simple de un grafo G es un camino simple de
longitud mayor o igual a 3, que conecta un vértice consigo
mismo.
 No se consideran ciclos los caminos de la forma v (camino de
longitud 0), v,v (camino de longitud 1), o v,w,v (camino de
longitud 2).
 Un grafo cíclico contiene por lo menos un ciclo.
 Un grafo acíclico algunas veces se conoce como árbol libre.
 El grafo anterior muestra dos árboles libres.
16
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos No Dirigidos (cont.)
 Los árboles libres tienen dos propiedades importantes:
 Todo árbol libre con n ≥ 1 vértices contiene exactamente n – 1
aristas.
 Si se agrega cualquier arista a un árbol libre, resulta un ciclo.
17
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos 18
Representación de Grafos No Dirigidos
 Los métodos de representación de grafos dirigidos se pueden
emplear para representar los no dirigidos.
 Una arista no dirigida entre v y w se representa simplemente
con dos aristas dirigidas, una de v a w, y otra de w a v.
 Los métodos son:
 Una representación con matriz de adyacencia. Esta matriz es
simétrica.
 Una representación con matriz de adyacencia etiquetada.
Esta matriz es simétrica.
 Una representación con lista de adyacencia.
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos 19
Representación de Grafos No Dirigidos (cont.)
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Representación de Grafos No Dirigidos (cont.)
 La matriz de incidencia es otra forma de representar grafos.
 Sea G = (V,I) un grafo no dirigido, donde v1, v2, ..., vn son los
vértices y e1, e2, ..., em son las aristas. La matriz de incidencia
es de orden nxm, donde mij = 1 si la arista conecta con el
vértice.
20
a b c d e
1 1 0 0 0 0
2 0 1 0 0 0
3 0 0 1 0 0
4 1 1 1 1 0
5 0 0 0 1 1
6 0 0 0 0 1
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafo Completo
 Un grafo completo Kn es un grafo simple donde cada par de
vértices está conectado por una arista
 Un grafo completo de n vértices tiene n(n-1)/2 aristas
 Es un grafo regular con todos sus vértices de grado n-1
 La única forma de hacer que un grafo completo se torne
disconexo a través de la eliminación de vértices, sería
eliminándolos todos
 Un grafo simple que al menos un par de vértices no están
conectados por una arista se llama no completo
21
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafo Completo
22
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafo Ciclo
 Un grafo ciclo o simplemente ciclo Cn es un grafo que se
asemeja a un polígono de n lados, con n vértices
 Consiste en un camino cerrado en el que no se repite ningún
vértice a excepción del primero que aparece dos veces como
principio y fin del camino
 El número de vértices en un grafo Cn es igual al número de
aristas, y cada vértice tiene grado par, por lo tanto cada vértice
tiene dos aristas incidentes
23
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafo Ciclo
 Propiedades:
 https://es.wikipedia.org/wiki/Grafo_ciclo
24
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafo Rueda
 Un grafo rueda Wn, o simplemente rueda, es un grafo con
n vértices que se forma conectando un único vértice a todos
los vértices de un ciclo-(n-1)
 Los grafos rueda son grafos planos, y como tales pueden ser
"incrustado" en un plano
 Todo gráfico rueda es un grafo de Halin
 Son auto-duales: el dual de cualquier grafo rueda es un grafo
isomórfico
 En un grafo rueda siempre hay un ciclo hamiltoniano,
habiendo n2-3n+3 ciclos en Wn
25
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafo Rueda
26
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafo Hipercubo (n-cubo)
 El grafo hipercubo Qn es un grafo regular con 2n vértices, que
corresponden a los subconjuntos de un conjunto de n
elementos
 Cada vértice de Qn es incidente a exactamente n aristas (por lo
tanto, el grafo es n-regular) y por eso el número total de aristas
es 2n-1n.
27
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafo Hipercubo (n-cubo)
28
Q1
2n-1
n = 20
*1 = 1 arista
2n
= 21
= 2 vértices
n = 1 arista incidente en cada vértice
Q2
2n-1
n = 21
*2 = 4 aristas
2n
= 22
= 4 vértices
n = 2 aristas incidentes en cada vértice
0 1
00 01
10 11
Q3
2n-1
n = 22
*3 = 12 aristas
2n
= 23
= 8 vértices
n = 3 aristas incidentes en cada vértice
100
000 001
110 111
011
101
010
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafo Bipartito
 Un grafo bipartito (o bipartido) es un grafo G = (N,E) cuyos
vértices se pueden separar en dos conjuntos disjuntos U y V,
de manera que las aristas sólo pueden conectar vértices de un
conjunto con vértices del otro
 Los grafos bipartitos suelen representarse gráficamente con
dos columnas (o filas) de vértices y las aristas uniendo vértices
de columnas (o filas) diferentes
29
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafo Bipartito
 Los dos conjuntos U y V pueden ser pensados como un
coloreo del grafo con dos colores: si pintamos los vértices
en U de azul y los vértices de V de verde obtenemos un grafo
de dos colores donde cada arista tiene un vértice azul y el otro
verde
 Un grafo bipartito con la partición de los vértices en U y V
suele denotarse G = (U, V, E)
 Si |U| =|V|, esto es, si los dos subconjuntos tiene la misma
cantidad de elementos o cardinalidad, decimos que el grafo
bipartito G es balanceado
30
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafo Bipartito Completo

31
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafo Bipartito Completo
32
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos 33
Grafos Isomorfos
 Un isomorfismo entre dos grafos G y H es una biyección f
entre los conjuntos de sus vértices f:V(G) → V(H) que
preserva la relación de adyacencia.
 Es decir, cualquier par de vértices u y v de G son adyacentes si
y solo si lo son sus imágenes, f(u) y f(v), en H.
 Dos grafos son isomorfos si tienen el mismo número de:
 Vértices y aristas
 Componentes conexos
 Sucesión de sus grados igual
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos 34
Grafos Isomorfos
 Si dos grafos son isomorfos sus complementarios también lo
son
 Se debe analizar las matrices de adyacencia de los dos grafos
 https://www.youtube.com/watch?v=ybwRY2zzTvY
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos Isomorfos
35
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos Isomorfos
36
a b c d e f g h
a 0 0 0 0 1 1 1 0
b 0 0 0 0 1 1 0 1
c 0 0 0 0 1 0 1 1
d 0 0 0 0 0 1 1 1
e 1 1 1 0 0 0 0 0
f 1 1 0 1 0 0 0 0
g 1 0 1 1 0 0 0 0
h 0 1 1 1 0 0 0 0
1 2 3 4 5 6 7 8 1 6 8 3 5 2 4 7
1 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0
2 1 0 1 0 0 1 0 0 6 0 0 0 0 1 1 0 1
3 0 1 0 1 0 0 1 0 8 0 0 0 0 1 0 1 1
4 1 0 1 0 0 0 0 1 3 0 0 0 0 0 1 1 1
5 1 0 0 0 0 1 0 1 5 1 1 1 0 0 0 0 0
6 0 1 0 0 1 0 1 0 2 1 1 0 1 0 0 0 0
7 0 0 1 0 0 1 0 1 4 1 0 1 1 0 0 0 0
8 0 0 0 1 1 0 1 0 7 0 1 1 1 0 0 0 0
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Circuito de Euler o Euleriano
 Un circuito que contiene todas las aristas de G recibe el nombre de circuito
de Euler o euleriano
 Trayectoria que empieza y termina en el mismo vértice y recorre cada
arista exactamente una vez
 Teorema. El grafo G contiene un circuito euleriano sí y solo sí:
 G es conexo
 Todos los vértices de G tienen grado par
37
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Trayectoria de Euler
 Una trayectoria de Euler o euleriana en un grafo G es un camino que
recorre cada arista una sola vez
 Teorema. Sea G un grafo conexo cuya suma de los grados de todos sus
vértices es par y hay un número par de vértices impares
 Si el número de vértices impares es mayor que dos, el grafo no se
puede recorrer (pasando dos veces por alguna arista)
 Si el número de vértices impares es cero, el grafo se puede recorrer.
Podemos además elegir por qué vértice empezar, y el camino siempre
será cerrado (termina donde empezó)
 Si el número de vértices impares es dos, el grafo se puede recorrer,
pero el camino ha de empezar en uno de los dos vértices impares y
terminar en el otro
38
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Euler
39
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Circuito de Hamilton o Hamiltoniano

40
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Trayectoria de Hamilton o Hamiltoniana
 Una trayectoria de Hamilton o hamiltoniana en un grafo G es un camino
que recorre cada vértice una sola vez
 Teorema. El grafo G contiene un circuito hamiltoniano sí y solo sí:
 G es conexo con n vértices (n ≥ 3)
 Si la suma de los grados de cada par de vértices no adyacentes es
mayor o igual a n
41
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Hamilton
42
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos planares o planos
 Un grafo planar o plano, es una representación de un grafo en
la cual ninguna de sus aristas interseca con otra.
 Aplicaciones:
 Diseño de circuitos, para que ninguna conección choque.
 Diseño de caminos, para conectar ciudades sin que choquen
caminos.
43
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos planares o planos (cont.)
 G es un grafo planar simple con:
 e aristas
 v vértices
 r regiones
 Donde r = e − v + 2
 Corolarios
 Si v ≥ 3, entonces e ≤ 3v − 6.
 El grado de vértice de G no es mayor que 5.
 Si v ≥ 3 y no hay circuitos de 3, entonces e ≤ 2v − 4
44
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos planares o planos (cont.)
 Teorema de Kuratowski
 Este teorema dice que un grafo es no planar si contiene un
subgrafo homeomorfo a K3,3 o K5.
45
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos Coloreados
 La coloración de grafos es un caso especial de etiquetado
de grafos; es una asignación de etiquetas llamadas colores a
elementos del grafo
 Una coloración de los vértices de un grafo tal que ningún
vértice adyacente comparta el mismo color es llamado vértice
coloración
 Una coloración de arista asigna colores a cada arista tal que
aristas adyacentes no compartan el mismo color
 Una coloración de caras de un grafo plano a la asignación de
un color a cada cara o región tal que caras que compartan una
frontera común tengan colores diferentes
46
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos Coloreados
 La convención de usar colores se origina de la coloración de
países de un mapa, donde cada cara es literalmente coloreada.
 En general se puede usar un conjunto finito como conjunto de
colores
 La naturaleza del problema de coloración depende del número
de colores pero no sobre cuales son
47
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos Coloreados
 La vértice coloración (o simplemente coloración) es la
asignación de los vértices de un grafo con colores tal que dos
vértices que compartan la misma arista tengan colores
diferentes
 Un grafo con bucles no puede ser coloreado, y solo se
consideran grafos simples
48
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos Coloreados
 Una coloración que usa a lo más k colores se llama k-
coloración (propia)
 El menor número de colores necesarios para colorear un grafo
G se llama número cromático y se denota como χ(G)
 Un grafo que puede ser asignada una k-coloración (propia) es
k-coloreable y es k-cromático si su número cromático es
exactamente k
49
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos Coloreados
 Un subconjunto de vértices asignados con el mismo color se
llama una clase de color
 Cada clase forma un conjunto independiente
 Una k-coloración es lo mismo que una partición del conjunto
de vértices en k conjuntos independientes, y los términos k-
partito y k-coloreable tienen el mismo significado.
50
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos Coloreados
 El polinomio cromático cuenta el número de maneras en las
cuales puede ser coloreado un grafo usando no más que un
número de colores dado
 El polinomio cromático es una función P(G,t) que cuenta el
número de t-coloraciones de G
 Como el nombre lo indica para un grafo G la función es un
polinomio en t
51
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Grafos Coloreados
 Una arista coloración de un grafo, es una coloración de las aristas,
denotada como la asignación de colores a aristas tal que aristas incidentes
tengan un color distinto
 Una arista coloración con k colores es llamada k-arista-coloración y
es equivalente al problema de particionar el conjunto de aristas en k
emparejamientos
 El menor número de colores necesarios para un arista coloración de un
grafo G es el índice cromático o número cromático de aristas
 Una coloración Tait es una 3-arista-coloración de un grafo cúbico. El
teorema de los cuatro colores es equivalente a que cada grafo cúbico
sin puentes admite una coloración Tait.
52
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Árboles
Terminología
 Padre
 Hijo
 Hermanos
 Ancestro
 Descendiente
 Hoja
 Interno
 Subárbol
53
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Árboles
 Un árbol raíz es un árbol n-ario si cada vértice interno no tiene
más de n hijos.
 Un árbol es llamado n-ario completo si cada vértice interno
tiene exactamente n hijos.
 Ejemplo: Un árbol n-ario con n = 2 es un árbol binario.
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Árboles
 Contar los vértices en un árbol n-ario lleno.
 La n significa que esa es la cantidad máxima de hijos que cada nodo
padre puede tener en un árbol enraizado.
 Que sea lleno significa que cada nodo es una hoja o posee n hijos.
 Un árbol con n vértices tiene n-1 aristas.
 Es un grafo conexo, por ende todos sus vértices estarán unidos, de ahí
que hayan n-1 aristas.
 Un árbol n-ario lleno con i vértices internos contiene n = m*i +1 vértices.
 Cada vértice, excepto la raíz, es el hijo de un vértice interno. Cada
uno de los i vértices internos tiene m hijos, hay m*i vértices en el
árbol excluyendo la raíz.
 Por ende, el árbol contiene n = mi +1 vértices, siendo n el numero
total de vértices en el árbol.
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Árboles
 Un árbol n-ario lleno con:
 n vértices tiene i = (n – 1)/m vértices internos y l = [(m – 1)n + 1]/m hojas.
 i vértices internos tiene n = mi + 1 vértices y l = (m – 1)i + 1 hojas.
 l hojas tiene n = (ml – 1)/(m – 1) vértices y i = (l – 1)/(m – 1) vértices
internos.
 Donde n representa la cantidad de vértices, i es la cantidad de vértices
internos y l el número de hojas en el árbol.
 Una vez que uno de n, i o l es conocido, se aplica la propiedad anterior para
hallar los otros dos mediante la cantidad ya encontrada.
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Árboles
 Un árbol 3-ario lleno con:
 m = 3 hijos por nodo y n = 13 vértices en total
 i = (13 – 1)/3 = 4 vértices internos
 l = [(3 – 1)13 + 1]/3 = 9 hojas
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Árboles
 Un árbol n-ario balanceado:
 Es deseable usualmente usar árboles que estén balanceados,
para que así los subárboles de cada vértice contengan
aproximadamente el mismo tamaño.
 El nivel de un vértice v en un árbol enraizado es el tamaño del
camino único desde la raíz hasta este vértice.
 El nivel de una raíz es 0.
 La altura de un árbol enraizado es el máximo de niveles de los
vértices, o sea el camino más largo desde la raíz hasta un
vértice.
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Árboles

UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos
 Algoritmos de determinación de los caminos más cortos:
 Algoritmo de Dijkstra.
 Algoritmo de Floyd-Warshall.
 Algoritmos de recorrido o búsqueda:
 Algoritmo de búsqueda en anchura.
 Algoritmo de búsqueda en profundidad.
 Bosques abarcadores.
60
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Dijkstra
 El algoritmo de Dijkstra, también llamado algoritmo de
caminos mínimos, es un algoritmo para la determinación del
camino más corto dado un vértice origen al resto de vértices
en un grafo dirigido y con pesos en cada arco.
 Su nombre se refiere a Edsger Dijkstra, quien lo describió por
primera vez en 1959.
61
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Dijkstra (cont.)
 La idea subyacente en este algoritmo consiste en ir explorando
todos los caminos más cortos que parten del vértice origen y
que llevan a todos los demás vértices.
 Cuando se obtiene el camino más corto desde el vértice
origen, al resto de vértices que componen el grafo, el
algoritmo se detiene.
 El algoritmo es una especialización de la búsqueda de costo
uniforme, y como tal, no funciona en grafos con aristas de
costo negativo.
62
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Dijkstra (cont.)
 Descripción detallada:
 Sea G=(V,A) un grafo dirigido y etiquetado.
 Sean los vértices a  V y z  V; a es el vértice de origen y z el
vértice de destino.
 Sea un conjunto C  V, que contiene los vértices de V cuyo
camino más corto desde a todavía no se conoce.
 Sea un vector D, con tantas dimensiones como elementos tiene
V, y que “guarda” las distancias entre a y cada uno de los
vértices de V.
 Sea, finalmente, otro vector, P, con las mismas dimensiones
que D, y que conserva la información sobre qué vértice
precede a cada uno de los vértices en el camino.
63
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Dijkstra (cont.)
 Descripción detallada:
 El algoritmo para determinar el camino de longitud mínima
entre los vértices a y z es: C  V.
1. Para todo vértice i  C, i ≠ a, se establece Di  ∞ ; Da  0.
2. Para todo vértice i  C se establece Pi = a.
3. Se obtiene el vértice s  C tal que no existe otro vértice w ∈ C
tal que Dw < Ds.
 Si s = z entonces se ha terminado el algoritmo.
4. Se elimina de C el vértice s: C  C−{s}.
5. Para cada arista e ∈ A de longitud l, que une el vértice s con
algún otro vértice t ∈ C,
 Si l + Ds < Dt, entonces:
 Se establece Dt  l + Ds.
 Se establece Pt  s.
6. Se regresa al paso 4.
64
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Dijkstra (cont.)
 Al terminar este algoritmo, en Dz estará guardada la distancia
mínima entre a y z.
 Por otro lado, mediante el vector P se puede obtener el camino
mínimo: en Pz estará y, el vértice que precede a z en el camino
mínimo; en Py estará el que precede a y, y así sucesivamente,
hasta llegar a ESTADO DE ENLACE.
 Aplicación Web del algoritmo:
 http://neo.lcc.uma.es/evirtual/cdd/applets/distancia%20corta/E
xample2.html.
65
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Dijkstra (cont.)
 Ejemplo:
 Encontrar los caminos más cortos entre el vértice 1 y todos los
demás del siguiente grafo dirigido.
66
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Dijkstra (cont.)
Iteración S w D[2] D[3] D[4] D[5]
Inicial {1} --- 10  30 100
67
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Dijkstra (cont.)
Iteración S w D[2] D[3] D[4] D[5]
Inicial {1} --- 10  30 100
1 {1,2} 2 10 60 30 100
68
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Dijkstra (cont.)
Iteración S w D[2] D[3] D[4] D[5]
Inicial {1} --- 10  30 100
1 {1,2} 2 10 60 30 100
2 {1,2,4} 4 10 50 30 90
69
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Dijkstra (cont.)
Iteración S w D[2] D[3] D[4] D[5]
Inicial {1} --- 10  30 100
1 {1,2} 2 10 60 30 100
2 {1,2,4} 4 10 50 30 90
3 {1,2,4,3} 3 10 50 30 60
70
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Dijkstra (cont.)
Iteración S w D[2] D[3] D[4] D[5]
Inicial {1} --- 10  30 100
1 {1,2} 2 10 60 30 100
2 {1,2,4} 4 10 50 30 90
3 {1,2,4,3} 3 10 50 30 60
4 {1,2,4,3,5} 5 10 50 30 60
71
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Dijkstra (cont.)
 Pseudocódigo del algoritmo:
72
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd
 El algoritmo de Floyd-Warshall intenta resolver el problema
de encontrar el camino más corto entre todos los pares de
nodos o vértices de un grafo.
 Esto es similar a construir una tabla con todas las distancias
mínimas entre pares de ciudades de un mapa, indicando la ruta
a seguir para ir de la primera ciudad a la segunda.
73
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
 Esto puede verse de la siguiente manera:
 Sea G=(V,A) un grafo en el cual cada arco tiene asociado un
costo no negativo. El problema es hallar para cualquier par de
vértices (v,w) el camino más corto de v a w.
 G=(V,A), V={1,...,n} y C[i,j] es el costo del arco que va de i a j.
 El algoritmo calcula la serie de matrices
 Ak[i,j] significa el costo del camino más corto que va de i a j y
que no pasa por algún vértice mayor que k.
 El objetivo es calcular An[i,j].
74
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
 El algoritmo se modifica para agregar una matriz que guarde
los caminos más económicos entre los vértices.
 Al algoritmo se le agrega una matriz P, donde P[i,j] tiene el
vértice k que permitió encontrar el valor más pequeño de
A[i,j].
 Si P[i,j] = 0, e camino más corto de i a j es directo, siguiendo
el arco entre ambos.
 La versión modificada del algoritmo almacenará los vértices
intermedios apropiados en P.
75
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
 Ejemplo:
 Encontrar los caminos más cortos entre todos los vértices del
siguiente grafo dirigido.
76
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
77





















0
60020
100
500
10030100
5
4
3
2
1
543211 2 3 4 5
















00000
00000
00000
00000
00000
5
4
3
2
1
54321
A0[i,j] P
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos





















0
60020
100
500
10030100
5
4
3
2
1
54321
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
78





















0
60020
100
500
10030100
5
4
3
2
1
54321
















00000
00000
00000
00000
00000
5
4
3
2
1
543211 2 3 4 5
A1[i,j] PA0[i,j]
1 2 3 4 5
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
79




















0
60020
100
500
1003060100
5
4
3
2
1
54321
















00000
00000
00000
00000
00200
5
4
3
2
1
54321
A2[i,j] P





















0
60020
100
500
10030100
5
4
3
2
1
54321
A1[i,j]
1 2 3 4 51 2 3 4 5
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
80




















0
30020
100
60500
703060100
5
4
3
2
1
54321
















00000
30000
00000
30000
30200
5
4
3
2
1
54321
A3[i,j] P




















0
60020
100
500
1003060100
5
4
3
2
1
54321
A2[i,j]
1 2 3 4 51 2 3 4 5
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
81




















0
30020
100
60500
603050100
5
4
3
2
1
54321
















00000
30000
00000
30000
40400
5
4
3
2
1
54321
A4[i,j] P




















0
30020
100
60500
703060100
5
4
3
2
1
54321
A3[i,j]
1 2 3 4 51 2 3 4 5
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos




















0
30020
100
60500
603050100
5
4
3
2
1
54321
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
82




















0
30020
100
60500
603050100
5
4
3
2
1
54321
















00000
30000
00000
30000
40400
5
4
3
2
1
54321
PA4[i,j]
1 2 3 4 51 2 3 4 5
A5[i,j]
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
83




















0
30020
100
60500
603050100
5
4
3
2
1
54321
















00000
30000
00000
30000
40400
5
4
3
2
1
543211 2 3 4 5
A P
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
 Pseudocódigo del algoritmo:
84
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
 Pseudocódigo para imprimir los vértices intermedios del
vértice i hasta el vértice j:
85
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
 En algunos casos podría ser importante saber sólo si existe un
camino de longitud mayor o igual a 1 que vaya desde el
vértice i al vértice j.
 El algoritmo de Floyd puede especializarse para este
problema; el algoritmo resultante, que antecede al de Floyd, se
conoce como el algoritmo de Warshall.
 Con el algoritmo de Warshall se desea obtener la matriz A tal
que A[i,j] = 1 si hay un camino de longitud igual o mayor que
1, y 0 en caso contrario.
 Esta matriz A se conoce como cerradura transitiva de la
matriz de adyacencia.
86
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
87
















00000
10100
10000
10100
11110
5
4
3
2
1
54321
Cerradura Transitiva
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
 Pseudocódigo del algoritmo de Warshall:
88
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
 El algoritmo de Floyd se utiliza, aparte de hallar los caminos
más cortos entre todos los vértices, para determinar el vértice
más central de un grafo dirigido.
 Para encontrar el centro de un grafo dirigido G se necesita:
 La excentricidad de v, la cual es el valor máximo de las
longitudes de los caminos más cortos de w a v.
 Después de encontrar la excentricidad de cada vértice, se
obtiene el centro de G, el cual es el vértice de mínima
excentricidad.
 Así, el centro de un grafo dirigido es un vértice más cercano al
vértice más distante.
89
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
 Para encontrar el centro de un grafo dirigido G se hace lo
siguiente:
 Aplicar el algoritmo de Floyd para obtener la matriz de los
caminos más cortos entre todos los pares.
 Encontrar el costo máximo de cada columna i, esto da la
excentricidad del vértice i.
 Encontrar el vértice con excentricidad mínima, este es el centro
del grafo G.
90
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Floyd (cont.)
91




















0
30020
100
60500
603050100
5
4
3
2
1
543211 2 3 4 5
max     60
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Búsqueda en Anchura
 Búsqueda en anchura (BFS o Breadth-first search en inglés)
es un algoritmo para recorrer o buscar elementos en un grafo
(usado frecuentemente sobre árboles).
 Intuitivamente, se comienza en la raíz (eligiendo algún nodo
como elemento raíz en el caso de un grafo) y se exploran todos
los vecinos de este nodo.
 A continuación para cada uno de los vecinos se exploran sus
respectivos vecinos adyacentes, y así hasta que se recorra todo
el árbol.
 Su nombre se debe a que expande uniformemente la frontera
entre lo descubierto y lo no descubierto. Llega a los nodos de
distancia k, sólo tras haber llegado a todos los nodos a
distancia k-1.
92
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Búsqueda en Anchura (cont.)
 Formalmente, BFS es un algoritmo de búsqueda sin
información, que expande y examina todos los nodos de un
árbol sistemáticamente para buscar una solución.
 El algoritmo no usa ninguna estrategia heurística.
 El peso de los arcos para ejecutar BFS debe de ser de IGUAL
costo.
 Si las aristas tienen pesos negativos se aplica el algoritmo de
Bellman-Ford en alguna de sus dos versiones.
93
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Búsqueda en Anchura (cont.)
 Descripción detallada:
 Dado un vértice fuente s, se explora los vértices de G para
“descubrir” todos los vértices alcanzables desde s.
 Se busca desde s a todos los vértices alcanzables.
 Después produce un árbol BF con raíz en s y que contiene a
todos los vértices alcanzables.
 El camino desde s a cada vértice en este recorrido contiene el
mínimo número de vértices. Es el camino más corto medido en
número de vértices.
94
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Búsqueda en Anchura (cont.)
 Durante un recorrido en anchura, cuando se recorren ciertos
arcos, llevan a vértices sin visitar.
 Los arcos que llevan a vértices nuevos se conocen como arcos
de árbol y forman un bosque abarcador en anchura para el
grafo dirigido dado.
95
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Búsqueda en Anchura (cont.)
 Además de los arcos de árbol, existen dos tipos de arcos
definidos por una búsqueda en anchura de un grafo dirigido,
que se conocen como:
 Arco de retroceso: Es el arco que va de un vértice a uno de
sus antecesores. Un arco que va de un vértice hacia si mismo
se considera un arco de retroceso.
 Arco cruzado: Es el arco que va de un vértice a otro que no es
ni antecesor ni descendiente.
96
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Búsqueda en Anchura (cont.)
 Ejemplo:
 Realizar el recorrido en anchura (siga el orden alfabético) y
encontrar el bosque abarcador del siguiente grafo dirigido.
97
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Búsqueda en Anchura (cont.)
98
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Búsqueda en Anchura (cont.)
 Pseudocódigo del algoritmo:
99
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Búsqueda en Profundidad
 Un recorrido en profundidad (en inglés DFS - Depth First
Search) es un algoritmo que permite recorrer todos los nodos
de un grafo o árbol de manera ordenada, pero no uniforme.
 Su funcionamiento consiste en ir expandiendo todos y cada
uno de los nodos que va localizando, de forma recurrente, en
un camino concreto.
 Cuando ya no quedan más nodos que visitar en dicho camino,
regresa, de modo que repite el mismo proceso con cada uno de
los hermanos del nodo ya procesado.
100
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Búsqueda en Profundidad (cont.)
 Arcos DF:
 Si en tiempo de descubrimiento de u tenemos el arco (u,v):
 i. Si el estado de v es NO_VISITADO, entonces (u,v) ∈ DF.
 ii. Si el estado de v es VISITADO, entonces (u,v) es un arco
hacia atrás.
 iii. Si el estado de v es TERMINADO, entonces (u,v) es un arco
de cruce o arco hacia delante. Será de cruce si d[v]<d[u]; y será
hacia delante si d[v]>d[v].
101
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Búsqueda en Profundidad (cont.)
 Durante un recorrido en profundidad, cuando se recorren
ciertos arcos, llevan a vértices sin visitar.
 Los arcos que llevan a vértices nuevos se conocen como arcos
de árbol y forman un bosque abarcador en profundidad
para el grafo dirigido dado.
102
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Búsqueda en Profundidad (cont.)
 Además de los arcos de árbol, existen tres tipos de arcos
definidos por una búsqueda en profundidad de un grafo
dirigido, que se conocen como:
 Arco de retroceso: Es el arco que va de un vértice a uno de
sus antecesores. Un arco que va de un vértice hacia si mismo
se considera un arco de retroceso.
 Arco de avance: Es el arco que va de un vértice a uno de sus
descendientes.
 Arco cruzado: Es el arco que va de un vértice a otro que no es
ni antecesor ni descendiente.
103
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Búsqueda en Profundidad (cont.)
 Ejemplo:
 Realizar el recorrido en profundidad (siga el orden alfabético)
y encontrar el bosque abarcador del siguiente grafo dirigido.
104
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Búsqueda en Profundidad (cont.)
105
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos Dirigidos –
Algoritmo de Búsqueda en Profundidad (cont.)
 Pseudocódigo del algoritmo:
106
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos
 Algoritmos de determinación de los caminos más cortos:
 Algoritmo del camino más corto.
 Algoritmos de árboles abarcadores de costo mínimo:
 Algoritmo de Prim.
 Algoritmo de Kruskal.
 Algoritmos de recorrido o búsqueda:
 Algoritmo de recorrido en pre-orden, orden y post-orden
 Algoritmo de búsqueda en anchura.
 Algoritmo de búsqueda en profundidad.
 Bosques abarcadores.
107
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo del Camino Más Corto
 Este algoritmo busca el camino más corto entre dos vértices.
 Recibe como entrada el grafo no dirigido G, el vértice inicial y
el vértice final.
 El algoritmo es el siguiente:
1. D[a] = 0, si x ≠ a  D[x] = . Se tiene el conjunto de vértices
T.
2. Si z  T  terminar y D[z] es la distancia más corta entre a y
z.
3. Escoja v  T donde D[v] es el valor mínimo. T = T – {v}.
4. Si x  T y es adyacente a v  D[x] = min{D[x],D[v]+c(v,x)}.
5. Pase al paso 2.
108
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo del Camino Más Corto (cont.)
 Ejemplo:
 Encontrar el camino más corto entre los vértices a y h.
109
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo del Camino Más Corto (cont.)
110









][
][
][
][
][
][
][
0][
},,,,,,,{
hD
gD
fD
eD
dD
cD
bD
aD
hgfedcbaT
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo del Camino Más Corto (cont.)
111









][
][
1][
][
][
][
2][
0][
},,,,,,{
hD
gD
fD
eD
dD
cD
bD
aD
hgfedcbT





1}10,min{][
2}20,min{][
a
fD
bD
aAdyacente
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo del Camino Más Corto (cont.)
112









][
6][
1][
][
4][
][
2][
0][
},,,,,{
hD
gD
fD
eD
dD
cD
bD
aD
hgedcbT





6}51,min{][
4}31,min{][
a
gD
dD
fAdyacente
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo del Camino Más Corto (cont.)
113









][
6][
1][
6][
4][
4][
2][
0][
},,,,{
hD
gD
fD
eD
dD
cD
bD
aD
hgedcT








6}42,min{][
4}22,4min{][
4}22,min{][
a
eD
dD
cD
bAdyacente
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo del Camino Más Corto (cont.)
114
5][
6][
1][
6][
4][
4][
2][
0][
},,,{









hD
gD
fD
eD
dD
cD
bD
aD
hgedT





5}14,min{][
6}34,6min{][
a
hD
eD
cAdyacente
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo del Camino Más Corto (cont.)
115
5][
6][
1][
6][
4][
4][
2][
0][
},,{









hD
gD
fD
eD
dD
cD
bD
aD
hgeT
 6}44,6min{][a eDdAdyacente
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo del Camino Más Corto (cont.)
116
5][
6][
1][
6][
4][
4][
2][
0][
},{









hD
gD
fD
eD
dD
cD
bD
aD
geT
 6}65,6min{][a gDhAdyacente
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo del Camino Más Corto (cont.)
117
5][
6][
1][
6][
4][
4][
2][
0][
},{









hD
gD
fD
eD
dD
cD
bD
aD
geT
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Árboles Abarcadores de Costo Mínimo
 Sea G = (V,A) un grafo conexo en donde cada arista (u,v) de A
tiene un costo asociado c(u,v).
 Un árbol abarcador de G es un árbol libre que conecta todos
los vértices de V, su costo es la suma de los costos de las
aristas del árbol.
 Se quiere obtener el árbol abarcador de costo mínimo para G.
 Una aplicación típica de los árboles abarcadores de costo
mínimo tiene lugar en el diseño de redes de comunicación.
 Un árbol abarcador de costo mínimo representa una red que
comunica todas las ciudades a un costo minimal.
118
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Árboles Abarcadores de Costo Mínimo (cont.)
 Hay diferentes maneras de construir un árbol abarcador de
costo mínimo.
 Muchos métodos utilizan la propiedad AAM.
 Sea G = (V,A) un grafo conexo con una función de costo
definida en las aristas.
 Sea U algún subconjunto propio del conjunto de vértices V.
 Si (u,v) es una arista de costo mínimo tal que u  U y v  V-U,
existe un árbol abarcador de costo mínimo que incluye (u,v)
entre sus aristas.
119
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Prim
 El algoritmo de Prim es un algoritmo de la teoría de los
grafos para encontrar un árbol abarcador de costo mínimo en
un grafo conexo, no dirigido y cuyas aristas están etiquetadas.
 En otras palabras, el algoritmo encuentra un subconjunto de
aristas que forman un árbol con todos los vértices, donde el
peso total de todas las aristas en el árbol es el mínimo posible.
 Si el grafo no es conexo, entonces el algoritmo encontrará el
árbol abarcador de costo mínimo para uno de los componentes
conexos que forman dicho grafo no conexo.
120
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Prim (cont.)
 El algoritmo fue diseñado en 1930 por el matemático Vojtech
Jarnik y luego de manera independiente por el científico
computacional Robert C. Prim en 1957 y redescubierto por
Dijkstra en 1959.
 Por esta razón, el algoritmo es también conocido como
algoritmo DJP o algoritmo de Jarnik.
121
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Prim (cont.)
 El algoritmo comienza cuando se asigna a un conjunto U un
valor inicial (un vértice del grafo), en el cual “crece” un árbol
abarcador, arista por arista.
 En cada paso localiza la arista más corta (u,v) que conecta los
vértices, y después agrega u en U. Este paso se repite hasta
que U = V.
 Ejemplo en el Web:
 http://www.dma.fi.upm.es/java/matematicadiscreta/Kruskal%5
Fprim/applet.htm.
 http://students.ceid.upatras.gr/~papagel/project/prim.htm.
122
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Prim (cont.)
 Ejemplo:
 Encontrar el árbol abarcador de costo mínimo del siguiente
grafo no dirigido utilizando el algoritmo de Prim.
123
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Prim (cont.)
124
The picture can't be displayed.


























624
663
255
46551
356
516
6
5
4
3
2
1
654321
T v V U V-U
 --- {1,2,3,4,5,6} {1} {2,3,4,5,6}
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Prim (cont.)
125
The picture can't be displayed.


























624
663
255
46551
356
516
6
5
4
3
2
1
654321
T v V U V-U
 --- {1,2,3,4,5,6} {1} {2,3,4,5,6}
{(1,3)} 3 {1,2,3,4,5,6} {1,3} {2,4,5,6}
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Prim (cont.)
126
The picture can't be displayed.


























624
663
255
46551
356
516
6
5
4
3
2
1
654321
T v V U V-U
 --- {1,2,3,4,5,6} {1} {2,3,4,5,6}
{(1,3)} 3 {1,2,3,4,5,6} {1,3} {2,4,5,6}
{(1,3),(3,6)} 6 {1,2,3,4,5,6} {1,3,6} {2,4,5}
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Prim (cont.)
127
The picture can't be displayed.


























624
663
255
46551
356
516
6
5
4
3
2
1
654321
T v V U V-U
 --- {1,2,3,4,5,6} {1} {2,3,4,5,6}
{(1,3)} 3 {1,2,3,4,5,6} {1,3} {2,4,5,6}
{(1,3),(3,6)} 6 {1,2,3,4,5,6} {1,3,6} {2,4,5}
{(1,3),(3,6),(6,4)} 4 {1,2,3,4,5,6} {1,3,4,6} {2,5}
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Prim (cont.)
128
The picture can't be displayed.


























624
663
255
46551
356
516
6
5
4
3
2
1
654321
T v V U V-U
 --- {1,2,3,4,5,6} {1} {2,3,4,5,6}
{(1,3)} 3 {1,2,3,4,5,6} {1,3} {2,4,5,6}
{(1,3),(3,6)} 6 {1,2,3,4,5,6} {1,3,6} {2,4,5}
{(1,3),(3,6),(6,4)} 4 {1,2,3,4,5,6} {1,3,4,6} {2,5}
{(1,3),(3,6),(6,4),(3,2)} 2 {1,2,3,4,5,6} {1,2.3,4,6} {5}
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Prim (cont.)
129
The picture can't be displayed.


























624
663
255
46551
356
516
6
5
4
3
2
1
654321
T v V U V-U
 --- {1,2,3,4,5,6} {1} {2,3,4,5,6}
{(1,3)} 3 {1,2,3,4,5,6} {1,3} {2,4,5,6}
{(1,3),(3,6)} 6 {1,2,3,4,5,6} {1,3,6} {2,4,5}
{(1,3),(3,6),(6,4)} 4 {1,2,3,4,5,6} {1,3,4,6} {2,5}
{(1,3),(3,6),(6,4),(3,2)} 2 {1,2,3,4,5,6} {1,2.3,4,6} {5}
{(1,3),(3,6),(6,4),(3,2),(2,5)} 5 {1,2,3,4,5,6} {1,2,3,4,5,6} {}
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Prim (cont.)
130
The picture can't be displayed.


























624
663
255
46551
356
516
6
5
4
3
2
1
654321
T v V U V-U
 --- {1,2,3,4,5,6} {1} {2,3,4,5,6}
{(1,3)} 3 {1,2,3,4,5,6} {1,3} {2,4,5,6}
{(1,3),(3,6)} 6 {1,2,3,4,5,6} {1,3,6} {2,4,5}
{(1,3),(3,6),(6,4)} 4 {1,2,3,4,5,6} {1,3,4,6} {2,5}
{(1,3),(3,6),(6,4),(3,2)} 2 {1,2,3,4,5,6} {1,2.3,4,6} {5}
{(1,3),(3,6),(6,4),(3,2),(2,5)} 5 {1,2,3,4,5,6} {1,2,3,4,5,6} {}
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Prim (cont.)
131
The picture can't be displayed.









































































326130
432150
******
]6[
]6[
]6[
654321
{}
}6,5,4,3,2,1{
326130
432150
*****
]5[
]5[
]5[
654321
}5{
}6,4,3,2,1{
336130
462150
****
]4[
]4[
]4[
654321
}5,2{
}6,4,3,1{
336130
462150
***
]3[
]3[
]3[
654321
}5,4,2{
}6,3,1{
331130
465150
**
]2[
]2[
]2[
654321
}6,5,4,2{
}3,1{
111110
5160
*
]1[
]1[
]1[
654321
}6,5,4,3,2{
}1{
P
D
M
UV
U
P
D
M
UV
U
P
D
M
UV
U
P
D
M
UV
U
P
D
M
UV
U
P
D
M
UV
U
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Prim (cont.)
132
 Pseudocódigo del algoritmo:
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Kruskal (cont.)
 El algoritmo de Kruskal es un algoritmo de la teoría de
grafos para encontrar un árbol abarcador de costo mínimo en
un grafo conexo y ponderado.
 Es decir, busca un subconjunto de aristas que, formando un
árbol, incluyen todos los vértices y donde el valor total de
todas las aristas del árbol es el mínimo.
 Si el grafo no es conexo, entonces busca un bosque abarcador
de costo mínimo (un árbol abarcador de costo mínimo para
cada componente conexa).
 Este algoritmo fue escrito por Joseph Kruskal.
133
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Kruskal (cont.)
 Funciona de la siguiente manera:
 Se crea un bosque B (un conjunto de árboles), donde cada
vértice del grafo es un árbol separado.
 Se crea un conjunto C que contenga a todas las aristas del
grafo.
 Mientras C es sea vacío:
 Eliminar una arista de peso mínimo de C.
 Si esa arista conecta dos árboles diferentes se añade al bosque,
combinando los dos árboles en un solo árbol.
 En caso contrario, se desecha la arista.
134
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Kruskal (cont.)
 Al acabar el algoritmo, el bosque tiene una sola componente,
la cual forma un árbol abarcador de costo mínimo del grafo.
 Ejemplo en el Web:
 http://students.ceid.upatras.gr/~papagel/project/kruskal.htm.
135
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Kruskal (cont.)
 Ejemplo:
 Encontrar el árbol abarcador de costo mínimo del siguiente
grafo no dirigido utilizando el algoritmo de Kruskal.
136
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Kruskal (cont.)
137
The picture can't be displayed.
Costo Aristas
1 (1,3)
2 (4,6)
3 (2,5)
4 (3,6)
5 (1,4) – (2,3) – (3,4)
6 (3,5) – (5,6)
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Kruskal (cont.)
138
The picture can't be displayed.
Costo Aristas
1 (1,3)
2 (4,6)
3 (2,5)
4 (3,6)
5 (1,4) – (2,3) – (3,4)
6 (3,5) – (5,6)
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Kruskal (cont.)
139
 Pseudocódigo del algoritmo:
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Recorrido en Pre-Orden
 Algoritmo que se usa para recorrer sistemáticamente cada
vértice de un árbol ordenado en pre-orden.
 El recorrido inicia en la raíz y luego se recorre en pre-orden
cada unos de los sub-árboles de izquierda a derecha.
 Considerando un árbol T con una raíz r.
 Si T únicamente consta de su raíz, entonces r es el recorrido en
pre-orden de T.
 De otra forma, supongamos que T1, T2, ..., Tn son los sub-
árboles de r de izquierda a derecha. El recorrido en pre-orden
comienza en r, continua en T1, luego en T2 y así
sucesivamente hasta Tn.
140
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Recorrido en Pre-Orden
141
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Recorrido en Orden
 Algoritmo que se usa para recorrer sistemáticamente cada
vértice de un árbol ordenado en orden.
 El recorrido inicia en el primer sub-árbol, luego se recorre la
raíz y al final se recorre en orden los demás sub-árboles.
 Considerando un árbol T con una raíz r.
 Se recorren los sub-árboles de la izquierda, se continúa con la
raíz r, y se completa con los sub-árboles de la derecha.
142
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Recorrido en Orden
143
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Recorrido en Post-Orden
 Algoritmo que se usa para recorrer sistemáticamente cada
vértice de un árbol ordenado en post-orden.
 El recorrido inicia en cada uno de los sub-árboles y al final se
recorre la raíz.
 Considerando un árbol T con una raíz r.
 Si T únicamente consta de su raíz, entonces r es el recorrido en
post-orden de T.
 Se recorren los sub-árboles de la izquierda, se completa con los
sub-árboles de la derecha y por último se recorre la raíz r.
144
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Recorrido en Post-Orden
145
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Búsqueda en Anchura
 Búsqueda en anchura (BFS o Breadth-first search en inglés)
es un algoritmo para recorrer o buscar elementos en un grafo
(usado frecuentemente sobre árboles).
 Intuitivamente, se comienza en la raíz (eligiendo algún nodo
como elemento raíz en el caso de un grafo) y se exploran todos
los vecinos de este nodo.
 A continuación para cada uno de los vecinos se exploran sus
respectivos vecinos adyacentes, y así hasta que se recorra todo
el árbol.
 Su nombre se debe a que expande uniformemente la frontera
entre lo descubierto y lo no descubierto. Llega a los nodos de
distancia k, sólo tras haber llegado a todos los nodos a
distancia k-1.
146
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Búsqueda en Anchura (cont.)
 Formalmente, BFS es un algoritmo de búsqueda sin
información, que expande y examina todos los nodos de un
árbol sistemáticamente para buscar una solución.
 El algoritmo no usa ninguna estrategia heurística.
 El peso de las aristas para ejecutar BFS debe de ser de IGUAL
costo.
 Si las aristas tienen pesos negativos se aplica el algoritmo de
Bellman-Ford en alguna de sus dos versiones.
147
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Búsqueda en Anchura (cont.)
 Durante un recorrido en anchura, cuando se recorren ciertas
aristas, llevan a vértices sin visitar.
 Las aristas que llevan a vértices nuevos se conocen como
aristas de árbol y forman un bosque abarcador en anchura
para el grafo no dirigido dado.
 Además, existen un tipo de arista definido por una búsqueda
en profundidad de un grafo no dirigido, que se conocen como:
 Aristas cruzadas: Es la arista que existe entre un vértice a
otro, pero que se llama de manera indirecta, pero el vértice no
es antecesor del otro.
148
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Búsqueda en Anchura (cont.)
 Ejemplo:
 Realizar el recorrido en anchura (siga el orden alfabético) y
encontrar el bosque abarcador del siguiente grafo no dirigido.
149
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Búsqueda en Anchura (cont.)
150
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Búsqueda en Anchura (cont.)
 Pseudocódigo del algoritmo:
151
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Búsqueda en Profundidad
 Un recorrido en profundidad (en inglés DFS - Depth First
Search) es un algoritmo que permite recorrer todos los nodos
de un grafo o árbol de manera ordenada, pero no uniforme.
 Su funcionamiento consiste en ir expandiendo todos y cada
uno de los nodos que va localizando, de forma recurrente, en
un camino concreto.
 Cuando ya no quedan más nodos que visitar en dicho camino,
regresa, de modo que repite el mismo proceso con cada uno de
los hermanos del nodo ya procesado.
152
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Búsqueda en Profundidad (cont.)
 Durante un recorrido en profundidad, cuando se recorren
ciertas aristas, llevan a vértices sin visitar.
 Los arcos que llevan a vértices nuevos se conocen como
aristas de árbol y forman un bosque abarcador en
profundidad para el grafo no dirigido dado.
 Además, existen un tipo de arista definido por una búsqueda
en profundidad de un grafo no dirigido, que se conocen como:
 Aristas de retroceso: Es la arista que existe entre un vértice a
otro, pero que se llama de manera indirecta, que es su
antecesor.
153
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Búsqueda en Profundidad (cont.)
 Ejemplo:
 Realizar el recorrido en profundidad (siga el orden alfabético)
y encontrar el bosque abarcador del siguiente grafo dirigido.
154
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Búsqueda en Profundidad (cont.)
155
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Algoritmos de Grafos No Dirigidos –
Algoritmo de Búsqueda en Profundidad (cont.)
 Pseudocódigo del algoritmo:
156
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos
Árbol de Expansión
 Dado un grafo G, el árbol de expansión es un sub-grafo de G
que conecta todos los nodos de este mismo sin formar un
ciclo.
157
UCR-ECCI CI-1204 Matemáticas Discretas
Teoría de Grafos 158
Referencias Bibliográficas
 Aho, Hopcroft & Ullman. “Estructuras de Datos y
Algoritmos”. Pearson – Addison Wesley Longman, Primera
Edición, 1998.
 Wikipedia. URL: http://es.wikipedia.org.

Más contenido relacionado

PPTX
Grafos
PPTX
Matemáticas discretas- Teoría de Grafos
PDF
Ejercicios de Multiplexores y decodificadores
PDF
Multiplexor 4 Entradas 1 Salida (4-1)
DOCX
unidad 4 ecuaciones diferenciales
PDF
54599266 ejercicios-flip-flops
PDF
Series de fourier 22 Ejercicios Resueltos
Grafos
Matemáticas discretas- Teoría de Grafos
Ejercicios de Multiplexores y decodificadores
Multiplexor 4 Entradas 1 Salida (4-1)
unidad 4 ecuaciones diferenciales
54599266 ejercicios-flip-flops
Series de fourier 22 Ejercicios Resueltos

La actualidad más candente (20)

PPTX
TEORÍA DE GRAFOS
PDF
123515810 electromagnetismo-serie-schaum
PPT
Ejercicios
PPTX
Unidad 6
PDF
Ejercicios resueltos de c++
PPTX
Teoria de grafos
PPTX
grafos conexos
PDF
Transformaciones lineales
PPT
Electronica analisis a pequeña señal fet
PPTX
Conjuntos generadores e independencia lineal
PPT
Conjunto Ortogonal
PDF
Ejercicios resueltos grafos
PPTX
Base y dimension de los espacios vectoriales
PDF
Las propiedades-de-euler-y-los-logaritmos-para
PPTX
Transistores de efecto
PPT
VECTOR TANGENTE NORMAL Y BINORMAL
DOCX
Ejercicios de matrices y vectores en c++
PDF
Teoría de Grafos.
PDF
Solidosderevolucion
TEORÍA DE GRAFOS
123515810 electromagnetismo-serie-schaum
Ejercicios
Unidad 6
Ejercicios resueltos de c++
Teoria de grafos
grafos conexos
Transformaciones lineales
Electronica analisis a pequeña señal fet
Conjuntos generadores e independencia lineal
Conjunto Ortogonal
Ejercicios resueltos grafos
Base y dimension de los espacios vectoriales
Las propiedades-de-euler-y-los-logaritmos-para
Transistores de efecto
VECTOR TANGENTE NORMAL Y BINORMAL
Ejercicios de matrices y vectores en c++
Teoría de Grafos.
Solidosderevolucion
Publicidad

Similar a Grafos (20)

PDF
Material de grafos.pdf
DOCX
Grafoscuestionario
PPTX
Introducción a la_teoría_de_grafos2014para_imprimir (2)
PPTX
TP7 Introducción a la teoría de grafos (3) (1).pptx
PPTX
Programación 3: Grafos, representación y operaciones
PPT
Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...
PPTX
TEORIA DE GRAFOS DE INFORMATICA CAPITULO
PDF
Grafos y caminos
PPT
DOCX
PDF
Catedra grafos
PDF
Catedra grafos
PDF
Catedra grafos
PPT
Teoria de grafos
PPT
PPT
PPTX
TRABAJO DE GRAFOS
PDF
Fundamentos de la Teoría de Grafos en Curso de Educagratis
Material de grafos.pdf
Grafoscuestionario
Introducción a la_teoría_de_grafos2014para_imprimir (2)
TP7 Introducción a la teoría de grafos (3) (1).pptx
Programación 3: Grafos, representación y operaciones
Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...
TEORIA DE GRAFOS DE INFORMATICA CAPITULO
Grafos y caminos
Catedra grafos
Catedra grafos
Catedra grafos
Teoria de grafos
TRABAJO DE GRAFOS
Fundamentos de la Teoría de Grafos en Curso de Educagratis
Publicidad

Último (20)

PDF
2.0 Introduccion a processing, y como obtenerlo
PDF
Jodorowsky, Alejandro - Manual de Psicomagia.pdf
PPTX
Clase 3 del silabo-gestion y control financiero
PDF
Ernst Cassirer - Antropologia Filosofica.pdf
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
DOCX
Programa_Sintetico_Fase_4.docx 3° Y 4°..
PDF
CURRICULAR DE PRIMARIA santa ursula..pdf
PDF
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
PDF
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
PPTX
4. Qué es un computador PARA GRADO CUARTO.pptx
PDF
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
PDF
RM2025 - FUNDAMENTOS TEÓRICOS - PEDIATRÍA.pdf
PDF
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
PPTX
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
PPTX
BIZANCIO. EVOLUCIÓN HISTORICA, RAGOS POLÍTICOS, ECONOMICOS Y SOCIALES
PPTX
RESUMENES JULIO - QUIRÓFANO HOSPITAL GENERAL PUYO.pptx
PDF
MODULO I ENFERMERIA BASICA.pdf HIstoria en enfermeria
PDF
TALLER DE ESTADISTICA BASICA para principiantes y no tan basicos
DOCX
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
PDF
ciencia_tecnologia_sociedad Mitcham Carl. (1994)..pdf
2.0 Introduccion a processing, y como obtenerlo
Jodorowsky, Alejandro - Manual de Psicomagia.pdf
Clase 3 del silabo-gestion y control financiero
Ernst Cassirer - Antropologia Filosofica.pdf
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE_COM.pdf
Programa_Sintetico_Fase_4.docx 3° Y 4°..
CURRICULAR DE PRIMARIA santa ursula..pdf
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
LIBRO 2-SALUD Y AMBIENTE-4TO CEBA avanzado.pdf
4. Qué es un computador PARA GRADO CUARTO.pptx
Aqui No Hay Reglas Hastings-Meyer Ccesa007.pdf
RM2025 - FUNDAMENTOS TEÓRICOS - PEDIATRÍA.pdf
Los hombres son de Marte - Las mujeres de Venus Ccesa007.pdf
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
BIZANCIO. EVOLUCIÓN HISTORICA, RAGOS POLÍTICOS, ECONOMICOS Y SOCIALES
RESUMENES JULIO - QUIRÓFANO HOSPITAL GENERAL PUYO.pptx
MODULO I ENFERMERIA BASICA.pdf HIstoria en enfermeria
TALLER DE ESTADISTICA BASICA para principiantes y no tan basicos
PLAN DE AREA DE CIENCIAS SOCIALES TODOS LOS GRUPOS
ciencia_tecnologia_sociedad Mitcham Carl. (1994)..pdf

Grafos

  • 1. Teoría de Grafos UCR – ECCI CI-1204 Matemáticas Discretas Prof. Kryscia Daviana Ramírez Benavides
  • 2. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos 2 Grafos Dirigidos  Un grafo dirigido G consiste en un conjunto de vértices V y un conjunto de arcos A  G = (V,A).  Los vértices se denominan también nodos o puntos.  Los arcos pueden llamarse arcos dirigidos o líneas dirigidas.  Un arco es un par ordenado de vértices (v,w); donde v es la cola y w es la cabeza del arco.  El arco (v,w) se expresa a menudo como v → w, y se representa como:  Se dice que el arco v → w va de v a w, y que w es adyacente a v.
  • 3. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos 3 Grafos Dirigidos (cont.)  Los vértices de un grafo dirigido pueden usarse para representar objetos, y los arcos para representar relaciones entre los objetos.  Un camino en un grafo dirigido es una secuencia de vértices v1, v2, …, vn, tal que v1 → v2, v2 → v3, …, vn-1 → vn son arcos.  Este camino va del vértice v1 al vértice vn, pasando por los vértices v2, v3, …, vn-1.  La longitud de un camino es el número de arcos en ese camino, en este caso, n – 1.  Como caso especial, un vértice sencillo v, por sí mismo denota un camino de longitud 0 de v a v.
  • 4. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos 4 Grafos Dirigidos (cont.)  En el grafo G = (V,A), donde V = {1,2,3,4} y A = {(1,2),(1,3), (2,4),(3,2),(4,3)}, la secuencia 1, 2, 4 es un camino de longitud 2 que va del vértice 1 al vértice 4.
  • 5. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos 5 Grafos Dirigidos (cont.)  Un camino simple es un camino en donde todos los vértices, excepto tal vez el primero y el último, son distintos.  Un ciclo simple es un camino simple de longitud por lo menos uno, que empieza y termina en el mismo vértice.  En el grafo G anterior 3, 2, 4, 3 es un ciclo de longitud 3.  Un grafo dirigido etiquetado es un grafo cuyos arcos están etiquetados con una letra o un valor numérico.
  • 6. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos 6 Representación de Grafos Dirigidos  Una representación común para un grafo dirigido G = (V,A) es la matriz de adyacencia.  La matriz de adyacencia para G es una matriz A de dimensión n x n, de elementos booleanos, donde A[i,j] es verdadero si y sólo si existe un arco que vaya del vértice i al j.  Con frecuencia se exhibirán matrices adyacencias con 1 para verdadero y 0 para falso.
  • 7. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos 7 Representación de Grafos Dirigidos (cont.)  Otra representación, relacionada con la anterior, para un grafo dirigido G = (V,A) es la matriz de adyacencia etiquetada.  La matriz de adyacencia etiquetada para G es una matriz A de dimensión n x n, donde A[i,j] es la etiqueta del arco que va del vértice i al j.  Si no existe un arco de i a j debe emplearse como entrada para A[i,j] un valor que no pueda ser una etiqueta válida.
  • 8. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos 8 Representación de Grafos Dirigidos (cont.)  La ventaja de usar una matriz de adyacencia es que el tiempo de acceso requerido a un elemento es independiente del tamaño de V y A.  La desventaja de usar una matriz de adyacencia es que requiere un espacio (n2) aun si el grafo tiene menos de n2 arcos.  Sólo leer o examinar la matriz puede llevar un tiempo O(n2).  Para evitar esta desventaja, se puede utilizar otra representación común para un grafo dirigido G = (V,A) llamada representación con lista de adyacencia.
  • 9. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos 9 Representación de Grafos Dirigidos (cont.)  La lista de adyacencia para un vértice i es una lista, en algún orden, de todos los vértices adyacentes a i.  Se puede representar G por medio de un arreglo CABEZA, donde CABEZA[i] es un apuntador a la lista de adyacencia del vértice i.  La representación con lista de adyacencia de un grafo dirigido requiere un espacio proporcional a la suma del número de vértices más el número de arcos.  Se usa bastante cuando el número de arcos es mucho menor que n2.  Una desventaja potencial es que puede llevar un tiempo O(n) determinar si existe un arco del vértice i al vértice j.
  • 10. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos 10 Representación de Grafos Dirigidos (cont.)
  • 11. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos No Dirigidos  Parte de la terminología para grafos dirigidos es aplicable a los no dirigidos.  Un grafo no dirigido G consiste en un conjunto finito de vértices V y un conjunto de aristas A  G = (V,A).  Los vértices se denominan también nodos o puntos.  Las aristas es un par no ordenado de vértices; la arista (v,w) = (w,v)  Los vértices v y w son adyacentes si es una arista (v,w).  Se dice que la arista (v,w) es incidente sobre los vértices v y w. 11
  • 12. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos No Dirigidos (cont.)  Un camino en un grafo no dirigido es una secuencia de vértices v1, v2, …, vn, tal que (v1,vi+1) es una arista para 1 ≤ i < n.  Un camino simple es un camino en donde todos los vértices, excepto tal vez el primero y el último, son distintos.  La longitud del camino es n – 1, el número de aristas a lo largo del camino.  Un grafo es conexo si todos sus pares de vértices están conectados. 12
  • 13. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos No Dirigidos (cont.)  Sea G = (V,A) un grafo con conjunto de vértices V y conjunto de aristas A. Un subgrafo de G es un grafo G’ = (V’,A’) donde:  V’ es un subconjunto de V.  A’ consta de las aristas (v,w) en A tales que v y w están en V’.  Si A’ consta de todas las aristas (v,w) en A, tal que v y w están en V’, entonces G’ se conoce como un subgrafo inducido de G. 13
  • 14. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos 14 Grafos No Dirigidos (cont.)  En el grafo G = (V,A), donde V = {a,b,c,d} y A = {(a,b),(a,c), (b,c),(b,d),(c,d)}, y uno de sus subgrafos inducidos G’ definido por el conjunto de vértices V’ = {a,b,c} y A’ = {(a,b), (b,d)}.
  • 15. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos No Dirigidos (cont.)  Un componente conexo de un grafo G es un subgrafo conexo inducido maximal, es decir, un subgrafo conexo inducido que por sí mismo no es un subgrafo propio de ningún otro subgrafo conexo de G.  El grafo no dirigido anterior es un grafo conexo que tiene sólo un componente conexo, y es él mismo.  El siguiente grafo no dirigido tiene dos componentes conexos. 15
  • 16. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos No Dirigidos (cont.)  Un ciclo simple de un grafo G es un camino simple de longitud mayor o igual a 3, que conecta un vértice consigo mismo.  No se consideran ciclos los caminos de la forma v (camino de longitud 0), v,v (camino de longitud 1), o v,w,v (camino de longitud 2).  Un grafo cíclico contiene por lo menos un ciclo.  Un grafo acíclico algunas veces se conoce como árbol libre.  El grafo anterior muestra dos árboles libres. 16
  • 17. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos No Dirigidos (cont.)  Los árboles libres tienen dos propiedades importantes:  Todo árbol libre con n ≥ 1 vértices contiene exactamente n – 1 aristas.  Si se agrega cualquier arista a un árbol libre, resulta un ciclo. 17
  • 18. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos 18 Representación de Grafos No Dirigidos  Los métodos de representación de grafos dirigidos se pueden emplear para representar los no dirigidos.  Una arista no dirigida entre v y w se representa simplemente con dos aristas dirigidas, una de v a w, y otra de w a v.  Los métodos son:  Una representación con matriz de adyacencia. Esta matriz es simétrica.  Una representación con matriz de adyacencia etiquetada. Esta matriz es simétrica.  Una representación con lista de adyacencia.
  • 19. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos 19 Representación de Grafos No Dirigidos (cont.)
  • 20. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Representación de Grafos No Dirigidos (cont.)  La matriz de incidencia es otra forma de representar grafos.  Sea G = (V,I) un grafo no dirigido, donde v1, v2, ..., vn son los vértices y e1, e2, ..., em son las aristas. La matriz de incidencia es de orden nxm, donde mij = 1 si la arista conecta con el vértice. 20 a b c d e 1 1 0 0 0 0 2 0 1 0 0 0 3 0 0 1 0 0 4 1 1 1 1 0 5 0 0 0 1 1 6 0 0 0 0 1
  • 21. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafo Completo  Un grafo completo Kn es un grafo simple donde cada par de vértices está conectado por una arista  Un grafo completo de n vértices tiene n(n-1)/2 aristas  Es un grafo regular con todos sus vértices de grado n-1  La única forma de hacer que un grafo completo se torne disconexo a través de la eliminación de vértices, sería eliminándolos todos  Un grafo simple que al menos un par de vértices no están conectados por una arista se llama no completo 21
  • 22. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafo Completo 22
  • 23. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafo Ciclo  Un grafo ciclo o simplemente ciclo Cn es un grafo que se asemeja a un polígono de n lados, con n vértices  Consiste en un camino cerrado en el que no se repite ningún vértice a excepción del primero que aparece dos veces como principio y fin del camino  El número de vértices en un grafo Cn es igual al número de aristas, y cada vértice tiene grado par, por lo tanto cada vértice tiene dos aristas incidentes 23
  • 24. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafo Ciclo  Propiedades:  https://es.wikipedia.org/wiki/Grafo_ciclo 24
  • 25. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafo Rueda  Un grafo rueda Wn, o simplemente rueda, es un grafo con n vértices que se forma conectando un único vértice a todos los vértices de un ciclo-(n-1)  Los grafos rueda son grafos planos, y como tales pueden ser "incrustado" en un plano  Todo gráfico rueda es un grafo de Halin  Son auto-duales: el dual de cualquier grafo rueda es un grafo isomórfico  En un grafo rueda siempre hay un ciclo hamiltoniano, habiendo n2-3n+3 ciclos en Wn 25
  • 26. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafo Rueda 26
  • 27. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafo Hipercubo (n-cubo)  El grafo hipercubo Qn es un grafo regular con 2n vértices, que corresponden a los subconjuntos de un conjunto de n elementos  Cada vértice de Qn es incidente a exactamente n aristas (por lo tanto, el grafo es n-regular) y por eso el número total de aristas es 2n-1n. 27
  • 28. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafo Hipercubo (n-cubo) 28 Q1 2n-1 n = 20 *1 = 1 arista 2n = 21 = 2 vértices n = 1 arista incidente en cada vértice Q2 2n-1 n = 21 *2 = 4 aristas 2n = 22 = 4 vértices n = 2 aristas incidentes en cada vértice 0 1 00 01 10 11 Q3 2n-1 n = 22 *3 = 12 aristas 2n = 23 = 8 vértices n = 3 aristas incidentes en cada vértice 100 000 001 110 111 011 101 010
  • 29. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafo Bipartito  Un grafo bipartito (o bipartido) es un grafo G = (N,E) cuyos vértices se pueden separar en dos conjuntos disjuntos U y V, de manera que las aristas sólo pueden conectar vértices de un conjunto con vértices del otro  Los grafos bipartitos suelen representarse gráficamente con dos columnas (o filas) de vértices y las aristas uniendo vértices de columnas (o filas) diferentes 29
  • 30. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafo Bipartito  Los dos conjuntos U y V pueden ser pensados como un coloreo del grafo con dos colores: si pintamos los vértices en U de azul y los vértices de V de verde obtenemos un grafo de dos colores donde cada arista tiene un vértice azul y el otro verde  Un grafo bipartito con la partición de los vértices en U y V suele denotarse G = (U, V, E)  Si |U| =|V|, esto es, si los dos subconjuntos tiene la misma cantidad de elementos o cardinalidad, decimos que el grafo bipartito G es balanceado 30
  • 31. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafo Bipartito Completo  31
  • 32. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafo Bipartito Completo 32
  • 33. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos 33 Grafos Isomorfos  Un isomorfismo entre dos grafos G y H es una biyección f entre los conjuntos de sus vértices f:V(G) → V(H) que preserva la relación de adyacencia.  Es decir, cualquier par de vértices u y v de G son adyacentes si y solo si lo son sus imágenes, f(u) y f(v), en H.  Dos grafos son isomorfos si tienen el mismo número de:  Vértices y aristas  Componentes conexos  Sucesión de sus grados igual
  • 34. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos 34 Grafos Isomorfos  Si dos grafos son isomorfos sus complementarios también lo son  Se debe analizar las matrices de adyacencia de los dos grafos  https://www.youtube.com/watch?v=ybwRY2zzTvY
  • 35. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos Isomorfos 35
  • 36. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos Isomorfos 36 a b c d e f g h a 0 0 0 0 1 1 1 0 b 0 0 0 0 1 1 0 1 c 0 0 0 0 1 0 1 1 d 0 0 0 0 0 1 1 1 e 1 1 1 0 0 0 0 0 f 1 1 0 1 0 0 0 0 g 1 0 1 1 0 0 0 0 h 0 1 1 1 0 0 0 0 1 2 3 4 5 6 7 8 1 6 8 3 5 2 4 7 1 0 1 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 2 1 0 1 0 0 1 0 0 6 0 0 0 0 1 1 0 1 3 0 1 0 1 0 0 1 0 8 0 0 0 0 1 0 1 1 4 1 0 1 0 0 0 0 1 3 0 0 0 0 0 1 1 1 5 1 0 0 0 0 1 0 1 5 1 1 1 0 0 0 0 0 6 0 1 0 0 1 0 1 0 2 1 1 0 1 0 0 0 0 7 0 0 1 0 0 1 0 1 4 1 0 1 1 0 0 0 0 8 0 0 0 1 1 0 1 0 7 0 1 1 1 0 0 0 0
  • 37. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Circuito de Euler o Euleriano  Un circuito que contiene todas las aristas de G recibe el nombre de circuito de Euler o euleriano  Trayectoria que empieza y termina en el mismo vértice y recorre cada arista exactamente una vez  Teorema. El grafo G contiene un circuito euleriano sí y solo sí:  G es conexo  Todos los vértices de G tienen grado par 37
  • 38. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Trayectoria de Euler  Una trayectoria de Euler o euleriana en un grafo G es un camino que recorre cada arista una sola vez  Teorema. Sea G un grafo conexo cuya suma de los grados de todos sus vértices es par y hay un número par de vértices impares  Si el número de vértices impares es mayor que dos, el grafo no se puede recorrer (pasando dos veces por alguna arista)  Si el número de vértices impares es cero, el grafo se puede recorrer. Podemos además elegir por qué vértice empezar, y el camino siempre será cerrado (termina donde empezó)  Si el número de vértices impares es dos, el grafo se puede recorrer, pero el camino ha de empezar en uno de los dos vértices impares y terminar en el otro 38
  • 39. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Euler 39
  • 40. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Circuito de Hamilton o Hamiltoniano  40
  • 41. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Trayectoria de Hamilton o Hamiltoniana  Una trayectoria de Hamilton o hamiltoniana en un grafo G es un camino que recorre cada vértice una sola vez  Teorema. El grafo G contiene un circuito hamiltoniano sí y solo sí:  G es conexo con n vértices (n ≥ 3)  Si la suma de los grados de cada par de vértices no adyacentes es mayor o igual a n 41
  • 42. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Hamilton 42
  • 43. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos planares o planos  Un grafo planar o plano, es una representación de un grafo en la cual ninguna de sus aristas interseca con otra.  Aplicaciones:  Diseño de circuitos, para que ninguna conección choque.  Diseño de caminos, para conectar ciudades sin que choquen caminos. 43
  • 44. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos planares o planos (cont.)  G es un grafo planar simple con:  e aristas  v vértices  r regiones  Donde r = e − v + 2  Corolarios  Si v ≥ 3, entonces e ≤ 3v − 6.  El grado de vértice de G no es mayor que 5.  Si v ≥ 3 y no hay circuitos de 3, entonces e ≤ 2v − 4 44
  • 45. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos planares o planos (cont.)  Teorema de Kuratowski  Este teorema dice que un grafo es no planar si contiene un subgrafo homeomorfo a K3,3 o K5. 45
  • 46. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos Coloreados  La coloración de grafos es un caso especial de etiquetado de grafos; es una asignación de etiquetas llamadas colores a elementos del grafo  Una coloración de los vértices de un grafo tal que ningún vértice adyacente comparta el mismo color es llamado vértice coloración  Una coloración de arista asigna colores a cada arista tal que aristas adyacentes no compartan el mismo color  Una coloración de caras de un grafo plano a la asignación de un color a cada cara o región tal que caras que compartan una frontera común tengan colores diferentes 46
  • 47. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos Coloreados  La convención de usar colores se origina de la coloración de países de un mapa, donde cada cara es literalmente coloreada.  En general se puede usar un conjunto finito como conjunto de colores  La naturaleza del problema de coloración depende del número de colores pero no sobre cuales son 47
  • 48. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos Coloreados  La vértice coloración (o simplemente coloración) es la asignación de los vértices de un grafo con colores tal que dos vértices que compartan la misma arista tengan colores diferentes  Un grafo con bucles no puede ser coloreado, y solo se consideran grafos simples 48
  • 49. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos Coloreados  Una coloración que usa a lo más k colores se llama k- coloración (propia)  El menor número de colores necesarios para colorear un grafo G se llama número cromático y se denota como χ(G)  Un grafo que puede ser asignada una k-coloración (propia) es k-coloreable y es k-cromático si su número cromático es exactamente k 49
  • 50. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos Coloreados  Un subconjunto de vértices asignados con el mismo color se llama una clase de color  Cada clase forma un conjunto independiente  Una k-coloración es lo mismo que una partición del conjunto de vértices en k conjuntos independientes, y los términos k- partito y k-coloreable tienen el mismo significado. 50
  • 51. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos Coloreados  El polinomio cromático cuenta el número de maneras en las cuales puede ser coloreado un grafo usando no más que un número de colores dado  El polinomio cromático es una función P(G,t) que cuenta el número de t-coloraciones de G  Como el nombre lo indica para un grafo G la función es un polinomio en t 51
  • 52. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Grafos Coloreados  Una arista coloración de un grafo, es una coloración de las aristas, denotada como la asignación de colores a aristas tal que aristas incidentes tengan un color distinto  Una arista coloración con k colores es llamada k-arista-coloración y es equivalente al problema de particionar el conjunto de aristas en k emparejamientos  El menor número de colores necesarios para un arista coloración de un grafo G es el índice cromático o número cromático de aristas  Una coloración Tait es una 3-arista-coloración de un grafo cúbico. El teorema de los cuatro colores es equivalente a que cada grafo cúbico sin puentes admite una coloración Tait. 52
  • 53. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Árboles Terminología  Padre  Hijo  Hermanos  Ancestro  Descendiente  Hoja  Interno  Subárbol 53
  • 54. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Árboles  Un árbol raíz es un árbol n-ario si cada vértice interno no tiene más de n hijos.  Un árbol es llamado n-ario completo si cada vértice interno tiene exactamente n hijos.  Ejemplo: Un árbol n-ario con n = 2 es un árbol binario.
  • 55. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Árboles  Contar los vértices en un árbol n-ario lleno.  La n significa que esa es la cantidad máxima de hijos que cada nodo padre puede tener en un árbol enraizado.  Que sea lleno significa que cada nodo es una hoja o posee n hijos.  Un árbol con n vértices tiene n-1 aristas.  Es un grafo conexo, por ende todos sus vértices estarán unidos, de ahí que hayan n-1 aristas.  Un árbol n-ario lleno con i vértices internos contiene n = m*i +1 vértices.  Cada vértice, excepto la raíz, es el hijo de un vértice interno. Cada uno de los i vértices internos tiene m hijos, hay m*i vértices en el árbol excluyendo la raíz.  Por ende, el árbol contiene n = mi +1 vértices, siendo n el numero total de vértices en el árbol.
  • 56. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Árboles  Un árbol n-ario lleno con:  n vértices tiene i = (n – 1)/m vértices internos y l = [(m – 1)n + 1]/m hojas.  i vértices internos tiene n = mi + 1 vértices y l = (m – 1)i + 1 hojas.  l hojas tiene n = (ml – 1)/(m – 1) vértices y i = (l – 1)/(m – 1) vértices internos.  Donde n representa la cantidad de vértices, i es la cantidad de vértices internos y l el número de hojas en el árbol.  Una vez que uno de n, i o l es conocido, se aplica la propiedad anterior para hallar los otros dos mediante la cantidad ya encontrada.
  • 57. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Árboles  Un árbol 3-ario lleno con:  m = 3 hijos por nodo y n = 13 vértices en total  i = (13 – 1)/3 = 4 vértices internos  l = [(3 – 1)13 + 1]/3 = 9 hojas
  • 58. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Árboles  Un árbol n-ario balanceado:  Es deseable usualmente usar árboles que estén balanceados, para que así los subárboles de cada vértice contengan aproximadamente el mismo tamaño.  El nivel de un vértice v en un árbol enraizado es el tamaño del camino único desde la raíz hasta este vértice.  El nivel de una raíz es 0.  La altura de un árbol enraizado es el máximo de niveles de los vértices, o sea el camino más largo desde la raíz hasta un vértice.
  • 59. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Árboles 
  • 60. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos  Algoritmos de determinación de los caminos más cortos:  Algoritmo de Dijkstra.  Algoritmo de Floyd-Warshall.  Algoritmos de recorrido o búsqueda:  Algoritmo de búsqueda en anchura.  Algoritmo de búsqueda en profundidad.  Bosques abarcadores. 60
  • 61. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Dijkstra  El algoritmo de Dijkstra, también llamado algoritmo de caminos mínimos, es un algoritmo para la determinación del camino más corto dado un vértice origen al resto de vértices en un grafo dirigido y con pesos en cada arco.  Su nombre se refiere a Edsger Dijkstra, quien lo describió por primera vez en 1959. 61
  • 62. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Dijkstra (cont.)  La idea subyacente en este algoritmo consiste en ir explorando todos los caminos más cortos que parten del vértice origen y que llevan a todos los demás vértices.  Cuando se obtiene el camino más corto desde el vértice origen, al resto de vértices que componen el grafo, el algoritmo se detiene.  El algoritmo es una especialización de la búsqueda de costo uniforme, y como tal, no funciona en grafos con aristas de costo negativo. 62
  • 63. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Dijkstra (cont.)  Descripción detallada:  Sea G=(V,A) un grafo dirigido y etiquetado.  Sean los vértices a  V y z  V; a es el vértice de origen y z el vértice de destino.  Sea un conjunto C  V, que contiene los vértices de V cuyo camino más corto desde a todavía no se conoce.  Sea un vector D, con tantas dimensiones como elementos tiene V, y que “guarda” las distancias entre a y cada uno de los vértices de V.  Sea, finalmente, otro vector, P, con las mismas dimensiones que D, y que conserva la información sobre qué vértice precede a cada uno de los vértices en el camino. 63
  • 64. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Dijkstra (cont.)  Descripción detallada:  El algoritmo para determinar el camino de longitud mínima entre los vértices a y z es: C  V. 1. Para todo vértice i  C, i ≠ a, se establece Di  ∞ ; Da  0. 2. Para todo vértice i  C se establece Pi = a. 3. Se obtiene el vértice s  C tal que no existe otro vértice w ∈ C tal que Dw < Ds.  Si s = z entonces se ha terminado el algoritmo. 4. Se elimina de C el vértice s: C  C−{s}. 5. Para cada arista e ∈ A de longitud l, que une el vértice s con algún otro vértice t ∈ C,  Si l + Ds < Dt, entonces:  Se establece Dt  l + Ds.  Se establece Pt  s. 6. Se regresa al paso 4. 64
  • 65. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Dijkstra (cont.)  Al terminar este algoritmo, en Dz estará guardada la distancia mínima entre a y z.  Por otro lado, mediante el vector P se puede obtener el camino mínimo: en Pz estará y, el vértice que precede a z en el camino mínimo; en Py estará el que precede a y, y así sucesivamente, hasta llegar a ESTADO DE ENLACE.  Aplicación Web del algoritmo:  http://neo.lcc.uma.es/evirtual/cdd/applets/distancia%20corta/E xample2.html. 65
  • 66. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Dijkstra (cont.)  Ejemplo:  Encontrar los caminos más cortos entre el vértice 1 y todos los demás del siguiente grafo dirigido. 66
  • 67. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Dijkstra (cont.) Iteración S w D[2] D[3] D[4] D[5] Inicial {1} --- 10  30 100 67
  • 68. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Dijkstra (cont.) Iteración S w D[2] D[3] D[4] D[5] Inicial {1} --- 10  30 100 1 {1,2} 2 10 60 30 100 68
  • 69. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Dijkstra (cont.) Iteración S w D[2] D[3] D[4] D[5] Inicial {1} --- 10  30 100 1 {1,2} 2 10 60 30 100 2 {1,2,4} 4 10 50 30 90 69
  • 70. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Dijkstra (cont.) Iteración S w D[2] D[3] D[4] D[5] Inicial {1} --- 10  30 100 1 {1,2} 2 10 60 30 100 2 {1,2,4} 4 10 50 30 90 3 {1,2,4,3} 3 10 50 30 60 70
  • 71. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Dijkstra (cont.) Iteración S w D[2] D[3] D[4] D[5] Inicial {1} --- 10  30 100 1 {1,2} 2 10 60 30 100 2 {1,2,4} 4 10 50 30 90 3 {1,2,4,3} 3 10 50 30 60 4 {1,2,4,3,5} 5 10 50 30 60 71
  • 72. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Dijkstra (cont.)  Pseudocódigo del algoritmo: 72
  • 73. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd  El algoritmo de Floyd-Warshall intenta resolver el problema de encontrar el camino más corto entre todos los pares de nodos o vértices de un grafo.  Esto es similar a construir una tabla con todas las distancias mínimas entre pares de ciudades de un mapa, indicando la ruta a seguir para ir de la primera ciudad a la segunda. 73
  • 74. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.)  Esto puede verse de la siguiente manera:  Sea G=(V,A) un grafo en el cual cada arco tiene asociado un costo no negativo. El problema es hallar para cualquier par de vértices (v,w) el camino más corto de v a w.  G=(V,A), V={1,...,n} y C[i,j] es el costo del arco que va de i a j.  El algoritmo calcula la serie de matrices  Ak[i,j] significa el costo del camino más corto que va de i a j y que no pasa por algún vértice mayor que k.  El objetivo es calcular An[i,j]. 74
  • 75. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.)  El algoritmo se modifica para agregar una matriz que guarde los caminos más económicos entre los vértices.  Al algoritmo se le agrega una matriz P, donde P[i,j] tiene el vértice k que permitió encontrar el valor más pequeño de A[i,j].  Si P[i,j] = 0, e camino más corto de i a j es directo, siguiendo el arco entre ambos.  La versión modificada del algoritmo almacenará los vértices intermedios apropiados en P. 75
  • 76. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.)  Ejemplo:  Encontrar los caminos más cortos entre todos los vértices del siguiente grafo dirigido. 76
  • 77. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.) 77                      0 60020 100 500 10030100 5 4 3 2 1 543211 2 3 4 5                 00000 00000 00000 00000 00000 5 4 3 2 1 54321 A0[i,j] P
  • 78. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos                      0 60020 100 500 10030100 5 4 3 2 1 54321 Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.) 78                      0 60020 100 500 10030100 5 4 3 2 1 54321                 00000 00000 00000 00000 00000 5 4 3 2 1 543211 2 3 4 5 A1[i,j] PA0[i,j] 1 2 3 4 5
  • 79. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.) 79                     0 60020 100 500 1003060100 5 4 3 2 1 54321                 00000 00000 00000 00000 00200 5 4 3 2 1 54321 A2[i,j] P                      0 60020 100 500 10030100 5 4 3 2 1 54321 A1[i,j] 1 2 3 4 51 2 3 4 5
  • 80. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.) 80                     0 30020 100 60500 703060100 5 4 3 2 1 54321                 00000 30000 00000 30000 30200 5 4 3 2 1 54321 A3[i,j] P                     0 60020 100 500 1003060100 5 4 3 2 1 54321 A2[i,j] 1 2 3 4 51 2 3 4 5
  • 81. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.) 81                     0 30020 100 60500 603050100 5 4 3 2 1 54321                 00000 30000 00000 30000 40400 5 4 3 2 1 54321 A4[i,j] P                     0 30020 100 60500 703060100 5 4 3 2 1 54321 A3[i,j] 1 2 3 4 51 2 3 4 5
  • 82. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos                     0 30020 100 60500 603050100 5 4 3 2 1 54321 Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.) 82                     0 30020 100 60500 603050100 5 4 3 2 1 54321                 00000 30000 00000 30000 40400 5 4 3 2 1 54321 PA4[i,j] 1 2 3 4 51 2 3 4 5 A5[i,j]
  • 83. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.) 83                     0 30020 100 60500 603050100 5 4 3 2 1 54321                 00000 30000 00000 30000 40400 5 4 3 2 1 543211 2 3 4 5 A P
  • 84. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.)  Pseudocódigo del algoritmo: 84
  • 85. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.)  Pseudocódigo para imprimir los vértices intermedios del vértice i hasta el vértice j: 85
  • 86. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.)  En algunos casos podría ser importante saber sólo si existe un camino de longitud mayor o igual a 1 que vaya desde el vértice i al vértice j.  El algoritmo de Floyd puede especializarse para este problema; el algoritmo resultante, que antecede al de Floyd, se conoce como el algoritmo de Warshall.  Con el algoritmo de Warshall se desea obtener la matriz A tal que A[i,j] = 1 si hay un camino de longitud igual o mayor que 1, y 0 en caso contrario.  Esta matriz A se conoce como cerradura transitiva de la matriz de adyacencia. 86
  • 87. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.) 87                 00000 10100 10000 10100 11110 5 4 3 2 1 54321 Cerradura Transitiva
  • 88. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.)  Pseudocódigo del algoritmo de Warshall: 88
  • 89. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.)  El algoritmo de Floyd se utiliza, aparte de hallar los caminos más cortos entre todos los vértices, para determinar el vértice más central de un grafo dirigido.  Para encontrar el centro de un grafo dirigido G se necesita:  La excentricidad de v, la cual es el valor máximo de las longitudes de los caminos más cortos de w a v.  Después de encontrar la excentricidad de cada vértice, se obtiene el centro de G, el cual es el vértice de mínima excentricidad.  Así, el centro de un grafo dirigido es un vértice más cercano al vértice más distante. 89
  • 90. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.)  Para encontrar el centro de un grafo dirigido G se hace lo siguiente:  Aplicar el algoritmo de Floyd para obtener la matriz de los caminos más cortos entre todos los pares.  Encontrar el costo máximo de cada columna i, esto da la excentricidad del vértice i.  Encontrar el vértice con excentricidad mínima, este es el centro del grafo G. 90
  • 91. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Floyd (cont.) 91                     0 30020 100 60500 603050100 5 4 3 2 1 543211 2 3 4 5 max     60
  • 92. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Búsqueda en Anchura  Búsqueda en anchura (BFS o Breadth-first search en inglés) es un algoritmo para recorrer o buscar elementos en un grafo (usado frecuentemente sobre árboles).  Intuitivamente, se comienza en la raíz (eligiendo algún nodo como elemento raíz en el caso de un grafo) y se exploran todos los vecinos de este nodo.  A continuación para cada uno de los vecinos se exploran sus respectivos vecinos adyacentes, y así hasta que se recorra todo el árbol.  Su nombre se debe a que expande uniformemente la frontera entre lo descubierto y lo no descubierto. Llega a los nodos de distancia k, sólo tras haber llegado a todos los nodos a distancia k-1. 92
  • 93. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Búsqueda en Anchura (cont.)  Formalmente, BFS es un algoritmo de búsqueda sin información, que expande y examina todos los nodos de un árbol sistemáticamente para buscar una solución.  El algoritmo no usa ninguna estrategia heurística.  El peso de los arcos para ejecutar BFS debe de ser de IGUAL costo.  Si las aristas tienen pesos negativos se aplica el algoritmo de Bellman-Ford en alguna de sus dos versiones. 93
  • 94. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Búsqueda en Anchura (cont.)  Descripción detallada:  Dado un vértice fuente s, se explora los vértices de G para “descubrir” todos los vértices alcanzables desde s.  Se busca desde s a todos los vértices alcanzables.  Después produce un árbol BF con raíz en s y que contiene a todos los vértices alcanzables.  El camino desde s a cada vértice en este recorrido contiene el mínimo número de vértices. Es el camino más corto medido en número de vértices. 94
  • 95. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Búsqueda en Anchura (cont.)  Durante un recorrido en anchura, cuando se recorren ciertos arcos, llevan a vértices sin visitar.  Los arcos que llevan a vértices nuevos se conocen como arcos de árbol y forman un bosque abarcador en anchura para el grafo dirigido dado. 95
  • 96. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Búsqueda en Anchura (cont.)  Además de los arcos de árbol, existen dos tipos de arcos definidos por una búsqueda en anchura de un grafo dirigido, que se conocen como:  Arco de retroceso: Es el arco que va de un vértice a uno de sus antecesores. Un arco que va de un vértice hacia si mismo se considera un arco de retroceso.  Arco cruzado: Es el arco que va de un vértice a otro que no es ni antecesor ni descendiente. 96
  • 97. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Búsqueda en Anchura (cont.)  Ejemplo:  Realizar el recorrido en anchura (siga el orden alfabético) y encontrar el bosque abarcador del siguiente grafo dirigido. 97
  • 98. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Búsqueda en Anchura (cont.) 98
  • 99. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Búsqueda en Anchura (cont.)  Pseudocódigo del algoritmo: 99
  • 100. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Búsqueda en Profundidad  Un recorrido en profundidad (en inglés DFS - Depth First Search) es un algoritmo que permite recorrer todos los nodos de un grafo o árbol de manera ordenada, pero no uniforme.  Su funcionamiento consiste en ir expandiendo todos y cada uno de los nodos que va localizando, de forma recurrente, en un camino concreto.  Cuando ya no quedan más nodos que visitar en dicho camino, regresa, de modo que repite el mismo proceso con cada uno de los hermanos del nodo ya procesado. 100
  • 101. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Búsqueda en Profundidad (cont.)  Arcos DF:  Si en tiempo de descubrimiento de u tenemos el arco (u,v):  i. Si el estado de v es NO_VISITADO, entonces (u,v) ∈ DF.  ii. Si el estado de v es VISITADO, entonces (u,v) es un arco hacia atrás.  iii. Si el estado de v es TERMINADO, entonces (u,v) es un arco de cruce o arco hacia delante. Será de cruce si d[v]<d[u]; y será hacia delante si d[v]>d[v]. 101
  • 102. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Búsqueda en Profundidad (cont.)  Durante un recorrido en profundidad, cuando se recorren ciertos arcos, llevan a vértices sin visitar.  Los arcos que llevan a vértices nuevos se conocen como arcos de árbol y forman un bosque abarcador en profundidad para el grafo dirigido dado. 102
  • 103. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Búsqueda en Profundidad (cont.)  Además de los arcos de árbol, existen tres tipos de arcos definidos por una búsqueda en profundidad de un grafo dirigido, que se conocen como:  Arco de retroceso: Es el arco que va de un vértice a uno de sus antecesores. Un arco que va de un vértice hacia si mismo se considera un arco de retroceso.  Arco de avance: Es el arco que va de un vértice a uno de sus descendientes.  Arco cruzado: Es el arco que va de un vértice a otro que no es ni antecesor ni descendiente. 103
  • 104. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Búsqueda en Profundidad (cont.)  Ejemplo:  Realizar el recorrido en profundidad (siga el orden alfabético) y encontrar el bosque abarcador del siguiente grafo dirigido. 104
  • 105. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Búsqueda en Profundidad (cont.) 105
  • 106. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos Dirigidos – Algoritmo de Búsqueda en Profundidad (cont.)  Pseudocódigo del algoritmo: 106
  • 107. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos  Algoritmos de determinación de los caminos más cortos:  Algoritmo del camino más corto.  Algoritmos de árboles abarcadores de costo mínimo:  Algoritmo de Prim.  Algoritmo de Kruskal.  Algoritmos de recorrido o búsqueda:  Algoritmo de recorrido en pre-orden, orden y post-orden  Algoritmo de búsqueda en anchura.  Algoritmo de búsqueda en profundidad.  Bosques abarcadores. 107
  • 108. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo del Camino Más Corto  Este algoritmo busca el camino más corto entre dos vértices.  Recibe como entrada el grafo no dirigido G, el vértice inicial y el vértice final.  El algoritmo es el siguiente: 1. D[a] = 0, si x ≠ a  D[x] = . Se tiene el conjunto de vértices T. 2. Si z  T  terminar y D[z] es la distancia más corta entre a y z. 3. Escoja v  T donde D[v] es el valor mínimo. T = T – {v}. 4. Si x  T y es adyacente a v  D[x] = min{D[x],D[v]+c(v,x)}. 5. Pase al paso 2. 108
  • 109. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo del Camino Más Corto (cont.)  Ejemplo:  Encontrar el camino más corto entre los vértices a y h. 109
  • 110. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo del Camino Más Corto (cont.) 110          ][ ][ ][ ][ ][ ][ ][ 0][ },,,,,,,{ hD gD fD eD dD cD bD aD hgfedcbaT
  • 111. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo del Camino Más Corto (cont.) 111          ][ ][ 1][ ][ ][ ][ 2][ 0][ },,,,,,{ hD gD fD eD dD cD bD aD hgfedcbT      1}10,min{][ 2}20,min{][ a fD bD aAdyacente
  • 112. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo del Camino Más Corto (cont.) 112          ][ 6][ 1][ ][ 4][ ][ 2][ 0][ },,,,,{ hD gD fD eD dD cD bD aD hgedcbT      6}51,min{][ 4}31,min{][ a gD dD fAdyacente
  • 113. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo del Camino Más Corto (cont.) 113          ][ 6][ 1][ 6][ 4][ 4][ 2][ 0][ },,,,{ hD gD fD eD dD cD bD aD hgedcT         6}42,min{][ 4}22,4min{][ 4}22,min{][ a eD dD cD bAdyacente
  • 114. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo del Camino Más Corto (cont.) 114 5][ 6][ 1][ 6][ 4][ 4][ 2][ 0][ },,,{          hD gD fD eD dD cD bD aD hgedT      5}14,min{][ 6}34,6min{][ a hD eD cAdyacente
  • 115. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo del Camino Más Corto (cont.) 115 5][ 6][ 1][ 6][ 4][ 4][ 2][ 0][ },,{          hD gD fD eD dD cD bD aD hgeT  6}44,6min{][a eDdAdyacente
  • 116. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo del Camino Más Corto (cont.) 116 5][ 6][ 1][ 6][ 4][ 4][ 2][ 0][ },{          hD gD fD eD dD cD bD aD geT  6}65,6min{][a gDhAdyacente
  • 117. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo del Camino Más Corto (cont.) 117 5][ 6][ 1][ 6][ 4][ 4][ 2][ 0][ },{          hD gD fD eD dD cD bD aD geT
  • 118. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Árboles Abarcadores de Costo Mínimo  Sea G = (V,A) un grafo conexo en donde cada arista (u,v) de A tiene un costo asociado c(u,v).  Un árbol abarcador de G es un árbol libre que conecta todos los vértices de V, su costo es la suma de los costos de las aristas del árbol.  Se quiere obtener el árbol abarcador de costo mínimo para G.  Una aplicación típica de los árboles abarcadores de costo mínimo tiene lugar en el diseño de redes de comunicación.  Un árbol abarcador de costo mínimo representa una red que comunica todas las ciudades a un costo minimal. 118
  • 119. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Árboles Abarcadores de Costo Mínimo (cont.)  Hay diferentes maneras de construir un árbol abarcador de costo mínimo.  Muchos métodos utilizan la propiedad AAM.  Sea G = (V,A) un grafo conexo con una función de costo definida en las aristas.  Sea U algún subconjunto propio del conjunto de vértices V.  Si (u,v) es una arista de costo mínimo tal que u  U y v  V-U, existe un árbol abarcador de costo mínimo que incluye (u,v) entre sus aristas. 119
  • 120. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Prim  El algoritmo de Prim es un algoritmo de la teoría de los grafos para encontrar un árbol abarcador de costo mínimo en un grafo conexo, no dirigido y cuyas aristas están etiquetadas.  En otras palabras, el algoritmo encuentra un subconjunto de aristas que forman un árbol con todos los vértices, donde el peso total de todas las aristas en el árbol es el mínimo posible.  Si el grafo no es conexo, entonces el algoritmo encontrará el árbol abarcador de costo mínimo para uno de los componentes conexos que forman dicho grafo no conexo. 120
  • 121. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Prim (cont.)  El algoritmo fue diseñado en 1930 por el matemático Vojtech Jarnik y luego de manera independiente por el científico computacional Robert C. Prim en 1957 y redescubierto por Dijkstra en 1959.  Por esta razón, el algoritmo es también conocido como algoritmo DJP o algoritmo de Jarnik. 121
  • 122. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Prim (cont.)  El algoritmo comienza cuando se asigna a un conjunto U un valor inicial (un vértice del grafo), en el cual “crece” un árbol abarcador, arista por arista.  En cada paso localiza la arista más corta (u,v) que conecta los vértices, y después agrega u en U. Este paso se repite hasta que U = V.  Ejemplo en el Web:  http://www.dma.fi.upm.es/java/matematicadiscreta/Kruskal%5 Fprim/applet.htm.  http://students.ceid.upatras.gr/~papagel/project/prim.htm. 122
  • 123. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Prim (cont.)  Ejemplo:  Encontrar el árbol abarcador de costo mínimo del siguiente grafo no dirigido utilizando el algoritmo de Prim. 123
  • 124. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Prim (cont.) 124 The picture can't be displayed.                           624 663 255 46551 356 516 6 5 4 3 2 1 654321 T v V U V-U  --- {1,2,3,4,5,6} {1} {2,3,4,5,6}
  • 125. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Prim (cont.) 125 The picture can't be displayed.                           624 663 255 46551 356 516 6 5 4 3 2 1 654321 T v V U V-U  --- {1,2,3,4,5,6} {1} {2,3,4,5,6} {(1,3)} 3 {1,2,3,4,5,6} {1,3} {2,4,5,6}
  • 126. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Prim (cont.) 126 The picture can't be displayed.                           624 663 255 46551 356 516 6 5 4 3 2 1 654321 T v V U V-U  --- {1,2,3,4,5,6} {1} {2,3,4,5,6} {(1,3)} 3 {1,2,3,4,5,6} {1,3} {2,4,5,6} {(1,3),(3,6)} 6 {1,2,3,4,5,6} {1,3,6} {2,4,5}
  • 127. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Prim (cont.) 127 The picture can't be displayed.                           624 663 255 46551 356 516 6 5 4 3 2 1 654321 T v V U V-U  --- {1,2,3,4,5,6} {1} {2,3,4,5,6} {(1,3)} 3 {1,2,3,4,5,6} {1,3} {2,4,5,6} {(1,3),(3,6)} 6 {1,2,3,4,5,6} {1,3,6} {2,4,5} {(1,3),(3,6),(6,4)} 4 {1,2,3,4,5,6} {1,3,4,6} {2,5}
  • 128. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Prim (cont.) 128 The picture can't be displayed.                           624 663 255 46551 356 516 6 5 4 3 2 1 654321 T v V U V-U  --- {1,2,3,4,5,6} {1} {2,3,4,5,6} {(1,3)} 3 {1,2,3,4,5,6} {1,3} {2,4,5,6} {(1,3),(3,6)} 6 {1,2,3,4,5,6} {1,3,6} {2,4,5} {(1,3),(3,6),(6,4)} 4 {1,2,3,4,5,6} {1,3,4,6} {2,5} {(1,3),(3,6),(6,4),(3,2)} 2 {1,2,3,4,5,6} {1,2.3,4,6} {5}
  • 129. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Prim (cont.) 129 The picture can't be displayed.                           624 663 255 46551 356 516 6 5 4 3 2 1 654321 T v V U V-U  --- {1,2,3,4,5,6} {1} {2,3,4,5,6} {(1,3)} 3 {1,2,3,4,5,6} {1,3} {2,4,5,6} {(1,3),(3,6)} 6 {1,2,3,4,5,6} {1,3,6} {2,4,5} {(1,3),(3,6),(6,4)} 4 {1,2,3,4,5,6} {1,3,4,6} {2,5} {(1,3),(3,6),(6,4),(3,2)} 2 {1,2,3,4,5,6} {1,2.3,4,6} {5} {(1,3),(3,6),(6,4),(3,2),(2,5)} 5 {1,2,3,4,5,6} {1,2,3,4,5,6} {}
  • 130. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Prim (cont.) 130 The picture can't be displayed.                           624 663 255 46551 356 516 6 5 4 3 2 1 654321 T v V U V-U  --- {1,2,3,4,5,6} {1} {2,3,4,5,6} {(1,3)} 3 {1,2,3,4,5,6} {1,3} {2,4,5,6} {(1,3),(3,6)} 6 {1,2,3,4,5,6} {1,3,6} {2,4,5} {(1,3),(3,6),(6,4)} 4 {1,2,3,4,5,6} {1,3,4,6} {2,5} {(1,3),(3,6),(6,4),(3,2)} 2 {1,2,3,4,5,6} {1,2.3,4,6} {5} {(1,3),(3,6),(6,4),(3,2),(2,5)} 5 {1,2,3,4,5,6} {1,2,3,4,5,6} {}
  • 131. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Prim (cont.) 131 The picture can't be displayed.                                                                          326130 432150 ****** ]6[ ]6[ ]6[ 654321 {} }6,5,4,3,2,1{ 326130 432150 ***** ]5[ ]5[ ]5[ 654321 }5{ }6,4,3,2,1{ 336130 462150 **** ]4[ ]4[ ]4[ 654321 }5,2{ }6,4,3,1{ 336130 462150 *** ]3[ ]3[ ]3[ 654321 }5,4,2{ }6,3,1{ 331130 465150 ** ]2[ ]2[ ]2[ 654321 }6,5,4,2{ }3,1{ 111110 5160 * ]1[ ]1[ ]1[ 654321 }6,5,4,3,2{ }1{ P D M UV U P D M UV U P D M UV U P D M UV U P D M UV U P D M UV U
  • 132. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Prim (cont.) 132  Pseudocódigo del algoritmo:
  • 133. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Kruskal (cont.)  El algoritmo de Kruskal es un algoritmo de la teoría de grafos para encontrar un árbol abarcador de costo mínimo en un grafo conexo y ponderado.  Es decir, busca un subconjunto de aristas que, formando un árbol, incluyen todos los vértices y donde el valor total de todas las aristas del árbol es el mínimo.  Si el grafo no es conexo, entonces busca un bosque abarcador de costo mínimo (un árbol abarcador de costo mínimo para cada componente conexa).  Este algoritmo fue escrito por Joseph Kruskal. 133
  • 134. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Kruskal (cont.)  Funciona de la siguiente manera:  Se crea un bosque B (un conjunto de árboles), donde cada vértice del grafo es un árbol separado.  Se crea un conjunto C que contenga a todas las aristas del grafo.  Mientras C es sea vacío:  Eliminar una arista de peso mínimo de C.  Si esa arista conecta dos árboles diferentes se añade al bosque, combinando los dos árboles en un solo árbol.  En caso contrario, se desecha la arista. 134
  • 135. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Kruskal (cont.)  Al acabar el algoritmo, el bosque tiene una sola componente, la cual forma un árbol abarcador de costo mínimo del grafo.  Ejemplo en el Web:  http://students.ceid.upatras.gr/~papagel/project/kruskal.htm. 135
  • 136. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Kruskal (cont.)  Ejemplo:  Encontrar el árbol abarcador de costo mínimo del siguiente grafo no dirigido utilizando el algoritmo de Kruskal. 136
  • 137. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Kruskal (cont.) 137 The picture can't be displayed. Costo Aristas 1 (1,3) 2 (4,6) 3 (2,5) 4 (3,6) 5 (1,4) – (2,3) – (3,4) 6 (3,5) – (5,6)
  • 138. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Kruskal (cont.) 138 The picture can't be displayed. Costo Aristas 1 (1,3) 2 (4,6) 3 (2,5) 4 (3,6) 5 (1,4) – (2,3) – (3,4) 6 (3,5) – (5,6)
  • 139. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Kruskal (cont.) 139  Pseudocódigo del algoritmo:
  • 140. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Recorrido en Pre-Orden  Algoritmo que se usa para recorrer sistemáticamente cada vértice de un árbol ordenado en pre-orden.  El recorrido inicia en la raíz y luego se recorre en pre-orden cada unos de los sub-árboles de izquierda a derecha.  Considerando un árbol T con una raíz r.  Si T únicamente consta de su raíz, entonces r es el recorrido en pre-orden de T.  De otra forma, supongamos que T1, T2, ..., Tn son los sub- árboles de r de izquierda a derecha. El recorrido en pre-orden comienza en r, continua en T1, luego en T2 y así sucesivamente hasta Tn. 140
  • 141. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Recorrido en Pre-Orden 141
  • 142. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Recorrido en Orden  Algoritmo que se usa para recorrer sistemáticamente cada vértice de un árbol ordenado en orden.  El recorrido inicia en el primer sub-árbol, luego se recorre la raíz y al final se recorre en orden los demás sub-árboles.  Considerando un árbol T con una raíz r.  Se recorren los sub-árboles de la izquierda, se continúa con la raíz r, y se completa con los sub-árboles de la derecha. 142
  • 143. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Recorrido en Orden 143
  • 144. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Recorrido en Post-Orden  Algoritmo que se usa para recorrer sistemáticamente cada vértice de un árbol ordenado en post-orden.  El recorrido inicia en cada uno de los sub-árboles y al final se recorre la raíz.  Considerando un árbol T con una raíz r.  Si T únicamente consta de su raíz, entonces r es el recorrido en post-orden de T.  Se recorren los sub-árboles de la izquierda, se completa con los sub-árboles de la derecha y por último se recorre la raíz r. 144
  • 145. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Recorrido en Post-Orden 145
  • 146. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Búsqueda en Anchura  Búsqueda en anchura (BFS o Breadth-first search en inglés) es un algoritmo para recorrer o buscar elementos en un grafo (usado frecuentemente sobre árboles).  Intuitivamente, se comienza en la raíz (eligiendo algún nodo como elemento raíz en el caso de un grafo) y se exploran todos los vecinos de este nodo.  A continuación para cada uno de los vecinos se exploran sus respectivos vecinos adyacentes, y así hasta que se recorra todo el árbol.  Su nombre se debe a que expande uniformemente la frontera entre lo descubierto y lo no descubierto. Llega a los nodos de distancia k, sólo tras haber llegado a todos los nodos a distancia k-1. 146
  • 147. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Búsqueda en Anchura (cont.)  Formalmente, BFS es un algoritmo de búsqueda sin información, que expande y examina todos los nodos de un árbol sistemáticamente para buscar una solución.  El algoritmo no usa ninguna estrategia heurística.  El peso de las aristas para ejecutar BFS debe de ser de IGUAL costo.  Si las aristas tienen pesos negativos se aplica el algoritmo de Bellman-Ford en alguna de sus dos versiones. 147
  • 148. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Búsqueda en Anchura (cont.)  Durante un recorrido en anchura, cuando se recorren ciertas aristas, llevan a vértices sin visitar.  Las aristas que llevan a vértices nuevos se conocen como aristas de árbol y forman un bosque abarcador en anchura para el grafo no dirigido dado.  Además, existen un tipo de arista definido por una búsqueda en profundidad de un grafo no dirigido, que se conocen como:  Aristas cruzadas: Es la arista que existe entre un vértice a otro, pero que se llama de manera indirecta, pero el vértice no es antecesor del otro. 148
  • 149. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Búsqueda en Anchura (cont.)  Ejemplo:  Realizar el recorrido en anchura (siga el orden alfabético) y encontrar el bosque abarcador del siguiente grafo no dirigido. 149
  • 150. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Búsqueda en Anchura (cont.) 150
  • 151. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Búsqueda en Anchura (cont.)  Pseudocódigo del algoritmo: 151
  • 152. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Búsqueda en Profundidad  Un recorrido en profundidad (en inglés DFS - Depth First Search) es un algoritmo que permite recorrer todos los nodos de un grafo o árbol de manera ordenada, pero no uniforme.  Su funcionamiento consiste en ir expandiendo todos y cada uno de los nodos que va localizando, de forma recurrente, en un camino concreto.  Cuando ya no quedan más nodos que visitar en dicho camino, regresa, de modo que repite el mismo proceso con cada uno de los hermanos del nodo ya procesado. 152
  • 153. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Búsqueda en Profundidad (cont.)  Durante un recorrido en profundidad, cuando se recorren ciertas aristas, llevan a vértices sin visitar.  Los arcos que llevan a vértices nuevos se conocen como aristas de árbol y forman un bosque abarcador en profundidad para el grafo no dirigido dado.  Además, existen un tipo de arista definido por una búsqueda en profundidad de un grafo no dirigido, que se conocen como:  Aristas de retroceso: Es la arista que existe entre un vértice a otro, pero que se llama de manera indirecta, que es su antecesor. 153
  • 154. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Búsqueda en Profundidad (cont.)  Ejemplo:  Realizar el recorrido en profundidad (siga el orden alfabético) y encontrar el bosque abarcador del siguiente grafo dirigido. 154
  • 155. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Búsqueda en Profundidad (cont.) 155
  • 156. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Algoritmos de Grafos No Dirigidos – Algoritmo de Búsqueda en Profundidad (cont.)  Pseudocódigo del algoritmo: 156
  • 157. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos Árbol de Expansión  Dado un grafo G, el árbol de expansión es un sub-grafo de G que conecta todos los nodos de este mismo sin formar un ciclo. 157
  • 158. UCR-ECCI CI-1204 Matemáticas Discretas Teoría de Grafos 158 Referencias Bibliográficas  Aho, Hopcroft & Ullman. “Estructuras de Datos y Algoritmos”. Pearson – Addison Wesley Longman, Primera Edición, 1998.  Wikipedia. URL: http://es.wikipedia.org.