SlideShare una empresa de Scribd logo
Estructuras de Datos
Tema: 4 Estructura de datos dinámicas
tipo Árboles
Docente: Mg. Luis Fernando Aguas B
Los éxitos más importantes se consiguen cuando
existe la posibilidad de fracasar
– Mark Zuckerberg
Objetivo
1. Adquirir los conceptos
básicos relacionados con
las EDD
2. Reconocer las
características de las
EDD
● 4.2 Aplicaciones de árboles en
informática
Contenido
4.2 Aplicaciones de árboles en
informática
Grafos en cualquier parte
Grafos en computación
● Interés típico en vértices y lados como objetos
(ej. Redes de comunicación)
objetos con
propiedades
Grafos en computación
● Gran interés en grafos dirigidos para aplicaciones
○ Redes para comunicaciones
○ Sistemas de transporte
○ Computación distribuida
○ Java: Jerarquías, instancias, mensajes
Grafo Dirigido
Definición
Un Grafo Dirigido, o diGrafo , es uno o varios pares
G = (V, E) con las siguientes propiedades:
1. El primer componente, V, es un finito, conjunto no-vacio. Los
elementos de V son llamados vértices de G.
2. El segundo componente, E, es un conjunto finito uno o varios
pares de vértices. Esto es, E  V x V . Los elementos son
llamados los arcos de G.
Ejemplo
G = (V, E)
V = {a, b, c, d}
E = { (a,b), (a,c), (b,c), (c,a), (c,d), (d,d) }
Recuerde
E no puede tener mas de una instancia de un arco. (a,b) es diferente
de (b,a).
Ej. Considere un paso a desnivel (a,b). Aunque la distancia es la
misma, el tiempo para atravesar del a2b y b2a puede ser diferente.
Grafo Dirigido...
Head, Tail, Adyacente
Terminología
Considere un Grafo Dirigido G = (V, E).
• cada elemento de V es llamado un vértice o un
nodo de G. Así, V es el conjunto de vértices (o
nodos) de G.
• cada elemento de E es llamado un arco de G. Así, E
es el conjunto de arcos de G.
• Un arco (v,w)  E puede ser representado como vw
. Una flecha apunta desde v a w es conocido como un
arco dirigido. El vértice w es llamado la cabeza (head)
del arco porque es el inicio de la flecha.
Convencionalmente, v es llamado la cola (tail) del arco.
Finalmente, vértice w es llamado Adyacente al vértice
v.
Grafo Dirigido...
Out-degree, In-degree
Terminología
Considere un Grafo Dirigido G = (V, E).
• Un arco e=(v,w) se dice que emana desde el vértice v.
Usamos la notación A(v) el conjunto de arcos que
emanan desde el vértice v. Así, A(v) = {(a,b)  E : a=v}
• El grado de salida (out-degree) de un nodo es el
número de arcos que salen desde el nodo. Sin
embargo, el grado de salida de v es |A(v)|
• Un arco e=(v,w) se dice incidente en vértice w. usamos
la notación I(w) para denotar el conjunto de arcos
incidentes en vértice w. Tal que, I(w) = {(a,b)  E : b=w}
• El grado de entrada (in-degree) de un nodo es el
número de arcos incidentes en aquel nodo. Sin
embargo, el in-degree de w es |I(v)|
Grafo Dirigido...
camino
Definición
Un camino en un Grafo Dirigido G = (V, E) es una
secuencia no vacía de vértices
P = {v1, v2, ..., vk}
donde vi  V para 1  i  k tal que (vi, vi+1)  E para 1  i 
k.
La longitud (longitud) del camino P es k-1.
Ejemplo
P1 = (a)
P2 = (b, c)
P3 = (a, b, c)
P4 = (a, c, a, c, a, c, a, c, a, c, a, c, a)
Pregunta
Cual es la máxima longitud del camino?
Grafo Dirigido...
Sucesor , Predecesor
Terminología
Considere el camino P = {v1, v2, ..., vk} en Grafo Dirigido G = (V,
E).
• vértice vi+1 es el Sucesor de vértice vi para 1  i < k.
cada elemento vi del camino P (excepto el ultimo) tiene un
Sucesor .
• vértice vi-1 es el Predecesor del vértice vi para 1 < i  k.
cada elemento vi del camino P (excepto el primero) tiene un
Predecesor.
Ejemplo
{a, b, c, d}
Grafo Dirigido...
Camino simple, ciclo, Lazo
Terminología
Considere el camino P = {v1, v2, ..., vk} en Grafo Dirigido G = (V,
E).
• A camino P es llamado un Camino simple si y solo si
vi  vj para todo i y j tal que 1  i < j  k.
Sin embargo, esto es permitido para v1 = vk.
• Un ciclo es un camino P de longitud no-cero en donde v1 =
vk. La longitud de un ciclo es justo la longitud del camino P.
• Un Lazo es un ciclo de longitud uno.
Así, este es un camino de la forma {v, v}.
• Un simple ciclo es un camino que es ambos un ciclo y
simple.
Ejemplo
{a, b, c, d} {c, a, c, d}
{a, b, c, a} {a, c, a, c, a}
Grafo Dirigido...
Grafo Dirigido Acíclico
Definición
Un Grafo Dirigido Acíclico (DAG) es un Grafo Dirigido que no contiene ciclos.
Recuerde
árboles  DAG.
DAG  árbol
Grafo No Dirigido
Definición
Un Grafo No Dirigido es un par ordenado G = (V, E) con
las siguientes propiedades:
1. El primer componente, V, es un conjunto finito, no
vacío. Los elementos de V son llamados los vértices de
G.
2. El segundo componente, E, es un conjunto finito. cada
elemento de E es un conjunto que esta compuesto
exactamente de dos (distintos) vértices. los elementos
de E son llamados los arcos de G.
Ejemplo
G = ( V, E)
V = {a, b, c, d}
E = { {a,b}, {a,c}, {b,c}, {c,d} }
Recuerde
• {a,b} = {b,c}  No Dirigido *ej. Comunicación full duplex.
Grafo No Dirigido...
Incide
Terminología
Considere un Grafo No Dirigido G = (V, E).
• Un arco e={v,w}  E se dice que emana desde y
incide en ambos vértices v y w.
• El conjunto de arcos que emanan desde un
vértice v es el conjunto
A(v) = {(v0,v1)  E : v0 = v  v1 = v}
• El conjunto de arcos incidentes en un vértice w
es
I(w) = A(w)
Grafo etiquetados
Definición
Un Grafo que ha sido anotado en alguna forma es llamado un Grafo
etiquetado.
Recuerde
ambos arcos y vértices puede ser etiquetados
Representación
Considere un Grafo Dirigido G = (V, E).
● Si E  V  V, Grafo G contiene al menos |V|2 arcos.
● Existe posibles conjuntos de arcos para un conjunto dado de vértices.
2
2
V
Representación ...
Matriz Adyacente para DAG
Considere a Grafo Dirigido G = (V, E) con V = {v1, v2, ...,
vn}.
● La representación simple del Grafo usa una matriz n
x n de ceros o unos dados por
● La matriz A es llamada matriz adyacente.
Representación ...
Matriz adyacente para DAG ...
Ejemplo
Recuerde
● El número de unos en la matriz adyacente es igual al número de arcos
en el Grafo
● Cada uno en la ith fila corresponde a un arco que emana desde vértice
vi.
● Cada uno en la ith columna corresponde a un arco que incide en vértice
vi.
Representación ...
Matriz adyacente para No Dirigido
Representa un Grafo No Dirigido G = (V, E) con
V = {v1, v2, ..., vn},
usando una matriz n x n A de ceros y unos dado por
Representación ...
Matriz adyacente para No Dirigido ...
Ejemplo
Recuerde
● Sea {vi, vj} = {vj, vi}, matriz A es simétrica cerca de la diagonal.
Esto es, aij = aji
● Todas las entradas en la diagonal son cero.
Esto es, aii = 0 para 1  i  n
Representación ...
Matriz adyacente para No Dirigido ...
Ejemplo
Recuerde
● Sea {vi, vj} = {vj, vi}, matriz A es simétrica cerca de la diagonal.
Esto es, aij = aji
● Todas las entradas en la diagonal son cero.
Esto es, aii = 0 para 1  i  n
Representación > matriz adyacente...
Complejidad
● Sea la matriz adyacente tiene |V|2 entradas,
la cantidad de espacio necesaria para representar los arcos de un
Grafo es
O( |V|2 )
depende del número actual de arcos en el Grafo.
● Si |E| << |V|2 entonces muchas de entradas son 0
● Excelente Representación !
Representación > Matriz adyacente ...
Grafos dispersos y densos
Definición
Un Grafo disperso es un Grafo G = (V, E) en donde |E| = O( |V| )
Definición
Un Grafo denso es un Grafo G = (V, E) en donde |E| = ( |V|2 )
Representación > Matriz adyacente...
Listas Adyacentes
Representación
Comparación de Representaciones
operación Matriz adyacente Lista adyacente
Buscar arco (v,w) O(1) O( |A(v)| )
Enumerar todos
los arcos
O( |V|2 ) O( |V| + |E| )
enumerar arcos
que emanan de v
O( |V| ) O( |A(v)| )
enumerar arcos
inciden en w
O( |V| ) O( |V| + |E| )
Implementación
Grafo en JAVA - vértice
class Vertex
{
public String name; // Vertex name
public LinkedList<Edge> adj; // edges from vertex
public double dist; // Cost
public Vertex prev; // Previous vertex on shortest path
public int scratch; // Extra variable used in algorithm
public Vertex( String nm )
{ name = nm;
adj = new LinkedList<Edge>( );
reset( );
}
public void reset( ) // clears values used in algorithms
{ dist = Graph.INFINITY;
prev = null;
scratch = 0;
}
}
Grafo en JAVA - lado
class Edge
{
public Vertex dest; // Second vertex in Edge
public double cost; // Edge cost
public double temp; // used in algorithms
public Edge( Vertex d, double c )
{
dest = d;
cost = c;
}
}
Grafo en JAVA
public class Graph
{
public static final double INFINITY = Double.MAX_VALUE;
private HashMap<String,Vertex> vertexMap = new HashMap();
// maps String to Vertex
public void addEdge( String sourceName,
String destName,
double cost )
{
Vertex v = getVertex( sourceName );
Vertex w = getVertex( destName );
v.adj.add( new Edge( w, cost ) );
}
Grafo Transversal
Primer nivel Transversal
● Similar a árbol Primer nivel Transversal
● Porque no existe raíz,
debemos especificar un nodo inicial
● Porque un Grafo puede ser cíclico,
debemos prevenir la recursion infinita
Grafo Transversal
Primer nivel Transversal ...
El Primer nivel Transversal visita los nodos en el orden c, a, b,
d
Recuerde
● Un Primer nivel Transversal solo sigue arcos que dirige a
vértices no visitados.
● Si omitimos los arcos que no son seguidos, los arcos
remanentes forman un árbol.
● El Primer nivel Transversal de este árbol es equivalente a
el Primer nivel Transversal del Grafo .
Grafo Primer nivel Transversal
Implementaciónpublic abstract class AbstractGrafo
extends AbstractContainer
implements Grafo {
...
public void depthprimerTransversal(PrePostVisito prepostvisito , int i) {
boolean aflag[] = new boolean[númeroOfVertices];
fo (int j = 0; j < númeroOfVertices; j++)
aflag[j] = false;
depthprimerTransversal(prepostvisito , vértice[i], aflag);
}
private void depthprimerTransversal(
PrePostVisito prepostvisito ,
vértice vértice1,
boolean aflag[]) {
if (prepostvisito .isDone())
return;
prepostvisito .preVisit(vértice1);
aflag[vértice1.getnúmero()] = true;
fo (Enumeration enumeration = vértice1.getSucesor s();
enumeration.hasMo eelementos();
) {
vértice vértice2 = (vértice) enumeration.nextelemento();
if (!aflag[vértice2.getnúmero()])
depthprimerTransversal(prepostvisito , vértice2, aflag);
}
prepostvisito .postVisit(vértice1);
}
}
Grafo Transversal
Primer hondo Transversal
● Similar a árbol Primer hondo Transversal
● Utiliza una cola de vértices
● Debido a que no existe raíz,
debemos especificar un nodo de partida
● Porque un Grafo puede ser cíclico,
debemos asegurarnos que un vértice este encolado solamente una vez
Grafo Transversal
Primer hondo Transversal ...
El Primer hondo Transversal visita los nodos en el
orden
a, b, c, d
Grafo Primer hondo Transversal ...
Implementación
public abstract class AbstractGrafo
extends AbstractContainer
implements Grafo {
...
public void breadthprimerTransversal(Visito visito , int i) {
boolean aflag[] = new boolean[númeroOfVertices];
fo (int j = 0; j < númeroOfVertices; j++)
aflag[j] = false;
QueueAsLinkedList queueaslinkedlist = new QueueAsLinkedList();
aflag[i] = true;
queueaslinkedlist.enqueue(vértice[i]);
while (!queueaslinkedlist.isvacio() && !visito .isDone()) {
vértice vértice1 = (vértice) queueaslinkedlist.dequeue();
visito .visit(vértice1);
fo (Enumeration enumeration = vértice1.getSucesor s();
enumeration.hasMo eelementos();
) {
vértice vértice2 = (vértice) enumeration.nextelemento();
if (!aflag[vértice2.getnúmero()]) {
aflag[vértice2.getnúmero()] = true;
queueaslinkedlist.enqueue(vértice2);
}
}
}
}
...
}
Grafo Transversal
Orden Topológico
● Definición
Considere a Dirigido aciclico Grafo G = (V, E).
Un Orden Topológico de los vértices de G es
una secuencia S = { v1, v2, ..., v|V| } en donde
cada elemento de V aparece exactamente una
vez.
Para cada par de distintos vértices vi y vj en la
secuencia S, si vi  vj es un arco en G, i.e., (vi ,
v)  E, entonces i < j.
Grafo Transversal
Orden Topológico Transversal● Un Transversal que visita
los vértices de un DAG en
el orden dado por el Orden
Topológico
● Calcula el grado interno de
los vértices
● Repetidamente selecciona
el vértice con cero grado,
visita y entonces
“remuévelo del Grafo”
S1 = { a, b, c, d, e, f, g, h, i }
S2 = { a, c, b, f, e, d, h, g, i }
S3 = { a, b, d, e, g, c, f, h, i }
...
Existe muchos
● Esta conectado
● Existe algún ciclo
Grafo Transversal
Aplicaciones
1 0
2
3
9
4
8
7
5
6
7
Grafo Transversal > Aplicaciones
conexión
Definición
Un Grafo No Dirigido G = (V, E) esta conectado si
existe un camino en G entre cada par de vértices in V.
Los sub-Grafos conectados de un Grafo son llamados
componentes conectados.
Grafo Transversal > Aplicaciones
conexión
Definición
Un Grafo Dirigido G = (V, E)
esta fuertemente conectado si
existe un camino en G entre
cada par de vértices en V.
Definición
Un Grafo Dirigido G = (V, E)
esta débilmente conectado si el
Grafo subrayado No Dirigido Ğ
esta conectado.
Grafo Transversal > Aplicaciones
conexión
Algoritmo
1. Para todos los vértices
2. Partir de cada vértice
3. Atravesar el Grafo
4. Marque cada vértice visitado
5. Si existe un vértice no visitado, no conectado
6. Aplique topológico o der Transversal
Camino mas corto
Distancia
● Distancia entre dos vértices
○ 2-9
○ 3-9
○ 7-4
1 0
2
3
9
4
8
7
5
6
7
Camino mas corto
peso de camino
Definición
Considere el peso de un arco Grafo G = (V, E) . Sea
C(vi,vj) el peso del arco que conecta vi a vj. Un camino
en G es una secuencia no vacía de vértices P = {v1, v2,
..., vk}. El peso del camino P esta dado por




1
1
1),(
k
i
ii vvc
Camino mas corto
Fuente simpleDefinición
Fuente simple - Camino mas corto problema
Dado un peso-arco Grafo G = (V, E) y un vértice vs
 V, buscar el menor peso del camino desde vs a
otro vértice en V.
Recuerde
si todos los pesos son positivos, esta bien definido.
● Si el Grafo es aciclico, el problema es fácil
○ Haga un Orden Topológico Transversal
● Si todos los pesos-arcos no son negativos el
problema de camino corto esta bien definido
○ Un Algoritmo trabaja bien
■ (Ej. Algoritmo Dijkstra)
Camino mas corto
Caso especial: pesos no negativos
● Si el Grafo tiene pesos negativos (pero no ciclos
de costo negativo) una solución existe pero el
Algoritmo greddy no trabaja.
● Si el Grafo tiene un ciclo de costo negativo, No
existe solución.
Camino mas corto
Casos especiales: pesos negativos
Camino mas corto
Algoritmo Dijkstra
1. Desde el conjunto de vértices para kv= false, seleccione el vértice v tome la
tentativa distancia dv.
2. Ponga kv= true
3. Para cada vértice w adyacente a v para cada kvtrue, pruebe el peso
tentativo de dv si es mayor que dv+ c(v,w). Si es así, ponga dv  dv+ c(v,w) y
ponga pv  v.
4. En cada paso exactamente un vértice tiene este kv ponga a true. El Algoritmo
termina después |V| pasos son completados cuando todos los caminos mas
cortos son conocidos
Camino mas corto
Algoritmo Dijkstra
1. kv indica que el Camino mas corto de vértice v es
conocido. Inicialmente falso
2. dv la longitud del camino corto conocido desde vs a v.
Inicialmente .
3. pv el Predecesor de vértice v en el Camino mas corto
desde vs a v. Inicialmente desconocido.
Camino mas corto :Dijkstra
Análisis del camino critico
● ANALISIS
○ Actividad de nodos
○ Caminos críticos
○ Eventos en nodos
○ Tiempos de eventos tempranos o tardíos
○ Actividad critica
● EJERCICIO BASADO EN GRAFO SIGUIENTE:
○ Determine un camino entre e y f; f y a
○ Determine si tiene ciclo d, f
EJERCICIO - GRAFO
a
b
c
e
f
g
d
15
5
6
4
7
6
5
12
37
Gracias
Responsabilidad con pensamiento positivo

Más contenido relacionado

La actualidad más candente

W mora vectores_rectas_planos
W mora vectores_rectas_planosW mora vectores_rectas_planos
W mora vectores_rectas_planos
Ramiro Felix
 
Matriz asociada a una transformacion lineal
Matriz asociada a una transformacion linealMatriz asociada a una transformacion lineal
Matriz asociada a una transformacion lineal
algebra
 
Campos vectoriales
Campos vectorialesCampos vectoriales
Campos vectoriales
UNI - UCH - UCV - UNMSM - UNFV
 
Grafos en sage
Grafos en sageGrafos en sage
Grafos en sage
kennethmath
 
Introducción a la_teoría_de_grafos2014para_imprimir (2)
Introducción a la_teoría_de_grafos2014para_imprimir (2)Introducción a la_teoría_de_grafos2014para_imprimir (2)
Introducción a la_teoría_de_grafos2014para_imprimir (2)
Federico Dauria
 
Vectores mendoza duenas
Vectores mendoza duenasVectores mendoza duenas
Vectores mendoza duenas
iepvncaldas
 
Grafos
Grafos Grafos
Grafos
itzelk
 
VECTORES EN R2
VECTORES EN R2VECTORES EN R2
Semana 02 analisis vectorial unac 2010 a plus
Semana 02  analisis vectorial unac 2010 a plusSemana 02  analisis vectorial unac 2010 a plus
Semana 02 analisis vectorial unac 2010 a plus
Walter Perez Terrel
 
Taller de vectores 2
Taller de vectores 2Taller de vectores 2
Taller de vectores 2
Marcos Guerrero Zambrano
 
03 2
03 203 2
Julio grafos
Julio   grafosJulio   grafos
Julio grafos
julio_g
 
TEORÍA DE GRAFOS
TEORÍA DE GRAFOSTEORÍA DE GRAFOS
TEORÍA DE GRAFOS
TERE FERNÁNDEZ
 
Grafos/EjerciciosPropuestos
Grafos/EjerciciosPropuestosGrafos/EjerciciosPropuestos
Grafos/EjerciciosPropuestos
Amanda_84
 
Grafos
GrafosGrafos
Grafos
greriber91
 
Vectores r2 y r3
Vectores r2 y r3Vectores r2 y r3
Vectores r2 y r3
dartroz
 
Vectores Problemas Nivel 0B
Vectores   Problemas Nivel 0BVectores   Problemas Nivel 0B
Vectores Problemas Nivel 0B
guest229a344
 

La actualidad más candente (17)

W mora vectores_rectas_planos
W mora vectores_rectas_planosW mora vectores_rectas_planos
W mora vectores_rectas_planos
 
Matriz asociada a una transformacion lineal
Matriz asociada a una transformacion linealMatriz asociada a una transformacion lineal
Matriz asociada a una transformacion lineal
 
Campos vectoriales
Campos vectorialesCampos vectoriales
Campos vectoriales
 
Grafos en sage
Grafos en sageGrafos en sage
Grafos en sage
 
Introducción a la_teoría_de_grafos2014para_imprimir (2)
Introducción a la_teoría_de_grafos2014para_imprimir (2)Introducción a la_teoría_de_grafos2014para_imprimir (2)
Introducción a la_teoría_de_grafos2014para_imprimir (2)
 
Vectores mendoza duenas
Vectores mendoza duenasVectores mendoza duenas
Vectores mendoza duenas
 
Grafos
Grafos Grafos
Grafos
 
VECTORES EN R2
VECTORES EN R2VECTORES EN R2
VECTORES EN R2
 
Semana 02 analisis vectorial unac 2010 a plus
Semana 02  analisis vectorial unac 2010 a plusSemana 02  analisis vectorial unac 2010 a plus
Semana 02 analisis vectorial unac 2010 a plus
 
Taller de vectores 2
Taller de vectores 2Taller de vectores 2
Taller de vectores 2
 
03 2
03 203 2
03 2
 
Julio grafos
Julio   grafosJulio   grafos
Julio grafos
 
TEORÍA DE GRAFOS
TEORÍA DE GRAFOSTEORÍA DE GRAFOS
TEORÍA DE GRAFOS
 
Grafos/EjerciciosPropuestos
Grafos/EjerciciosPropuestosGrafos/EjerciciosPropuestos
Grafos/EjerciciosPropuestos
 
Grafos
GrafosGrafos
Grafos
 
Vectores r2 y r3
Vectores r2 y r3Vectores r2 y r3
Vectores r2 y r3
 
Vectores Problemas Nivel 0B
Vectores   Problemas Nivel 0BVectores   Problemas Nivel 0B
Vectores Problemas Nivel 0B
 

Similar a S8-EDD-4.2 Aplicaciones de árboles en informática

Material de grafos.pdf
Material de grafos.pdfMaterial de grafos.pdf
Material de grafos.pdf
ManuelVicenteMontoya
 
Tema grafos
Tema grafosTema grafos
19. Grafos.ppt
19. Grafos.ppt19. Grafos.ppt
19. Grafos.ppt
JOSEALEXANDERARIASCA
 
Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...
Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...
Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...
BasterLyEsupian
 
GRAFOS
GRAFOSGRAFOS
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
Angel Vázquez Patiño
 
Grafos
GrafosGrafos
Grafos
GrafosGrafos
Grafos
GrafosGrafos
19 Grafos 1
19 Grafos 119 Grafos 1
Grafos
GrafosGrafos
Grafos
GrafosGrafos
Teoria de grafos
Teoria de grafosTeoria de grafos
Teoria de grafos
Pavel Aliaga
 
Fundamentos de la Teoría de Grafos en Curso de Educagratis
Fundamentos de la Teoría de Grafos en Curso de EducagratisFundamentos de la Teoría de Grafos en Curso de Educagratis
Fundamentos de la Teoría de Grafos en Curso de Educagratis
Educagratis
 
vectores y matrices.pdf
vectores y matrices.pdfvectores y matrices.pdf
vectores y matrices.pdf
kaniaquintero2
 
Grafoscuestionario
GrafoscuestionarioGrafoscuestionario
Grafoscuestionario
UTCH
 
Grafos
Grafos Grafos
Grafos
itzelk
 
Catedra grafos
Catedra grafosCatedra grafos
Catedra grafos
Johnfornerod
 
Catedra grafos
Catedra grafosCatedra grafos
Catedra grafos
Sergio Ormeño
 
Catedra grafos
Catedra grafosCatedra grafos
Catedra grafos
Johnfornerod
 

Similar a S8-EDD-4.2 Aplicaciones de árboles en informática (20)

Material de grafos.pdf
Material de grafos.pdfMaterial de grafos.pdf
Material de grafos.pdf
 
Tema grafos
Tema grafosTema grafos
Tema grafos
 
19. Grafos.ppt
19. Grafos.ppt19. Grafos.ppt
19. Grafos.ppt
 
Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...
Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...
Teoria sobre arboles y grafos, presentacion clave sobre las bases de la intel...
 
GRAFOS
GRAFOSGRAFOS
GRAFOS
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Grafos
GrafosGrafos
Grafos
 
Grafos
GrafosGrafos
Grafos
 
Grafos
GrafosGrafos
Grafos
 
19 Grafos 1
19 Grafos 119 Grafos 1
19 Grafos 1
 
Grafos
GrafosGrafos
Grafos
 
Grafos
GrafosGrafos
Grafos
 
Teoria de grafos
Teoria de grafosTeoria de grafos
Teoria de grafos
 
Fundamentos de la Teoría de Grafos en Curso de Educagratis
Fundamentos de la Teoría de Grafos en Curso de EducagratisFundamentos de la Teoría de Grafos en Curso de Educagratis
Fundamentos de la Teoría de Grafos en Curso de Educagratis
 
vectores y matrices.pdf
vectores y matrices.pdfvectores y matrices.pdf
vectores y matrices.pdf
 
Grafoscuestionario
GrafoscuestionarioGrafoscuestionario
Grafoscuestionario
 
Grafos
Grafos Grafos
Grafos
 
Catedra grafos
Catedra grafosCatedra grafos
Catedra grafos
 
Catedra grafos
Catedra grafosCatedra grafos
Catedra grafos
 
Catedra grafos
Catedra grafosCatedra grafos
Catedra grafos
 

Más de Luis Fernando Aguas Bucheli

EFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptxEFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptx
Luis Fernando Aguas Bucheli
 
P-S2.pptx
P-S2.pptxP-S2.pptx
EBTS-S1.pptx
EBTS-S1.pptxEBTS-S1.pptx
P-S3.pptx
P-S3.pptxP-S3.pptx
EBTS-S4.pptx
EBTS-S4.pptxEBTS-S4.pptx
P-S4.pptx
P-S4.pptxP-S4.pptx
P-S1.pptx
P-S1.pptxP-S1.pptx
EBTS-S3.pptx
EBTS-S3.pptxEBTS-S3.pptx
EBTS-S2.pptx
EBTS-S2.pptxEBTS-S2.pptx
PDIDTI-S7.pptx
PDIDTI-S7.pptxPDIDTI-S7.pptx
PDIDTI-S4.pptx
PDIDTI-S4.pptxPDIDTI-S4.pptx
PDIDTI-S2.pptx
PDIDTI-S2.pptxPDIDTI-S2.pptx
PDIDTI-S1.pptx
PDIDTI-S1.pptxPDIDTI-S1.pptx
PDIDTI-S8.pptx
PDIDTI-S8.pptxPDIDTI-S8.pptx
PDIDTI-S6.pptx
PDIDTI-S6.pptxPDIDTI-S6.pptx
PDIDTI-S5.pptx
PDIDTI-S5.pptxPDIDTI-S5.pptx
PDIDTI-S3.pptx
PDIDTI-S3.pptxPDIDTI-S3.pptx
TIC-S4.pptx
TIC-S4.pptxTIC-S4.pptx
TIC-S3.pptx
TIC-S3.pptxTIC-S3.pptx
TIC-S2.pptx
TIC-S2.pptxTIC-S2.pptx

Más de Luis Fernando Aguas Bucheli (20)

EFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptxEFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptx
 
P-S2.pptx
P-S2.pptxP-S2.pptx
P-S2.pptx
 
EBTS-S1.pptx
EBTS-S1.pptxEBTS-S1.pptx
EBTS-S1.pptx
 
P-S3.pptx
P-S3.pptxP-S3.pptx
P-S3.pptx
 
EBTS-S4.pptx
EBTS-S4.pptxEBTS-S4.pptx
EBTS-S4.pptx
 
P-S4.pptx
P-S4.pptxP-S4.pptx
P-S4.pptx
 
P-S1.pptx
P-S1.pptxP-S1.pptx
P-S1.pptx
 
EBTS-S3.pptx
EBTS-S3.pptxEBTS-S3.pptx
EBTS-S3.pptx
 
EBTS-S2.pptx
EBTS-S2.pptxEBTS-S2.pptx
EBTS-S2.pptx
 
PDIDTI-S7.pptx
PDIDTI-S7.pptxPDIDTI-S7.pptx
PDIDTI-S7.pptx
 
PDIDTI-S4.pptx
PDIDTI-S4.pptxPDIDTI-S4.pptx
PDIDTI-S4.pptx
 
PDIDTI-S2.pptx
PDIDTI-S2.pptxPDIDTI-S2.pptx
PDIDTI-S2.pptx
 
PDIDTI-S1.pptx
PDIDTI-S1.pptxPDIDTI-S1.pptx
PDIDTI-S1.pptx
 
PDIDTI-S8.pptx
PDIDTI-S8.pptxPDIDTI-S8.pptx
PDIDTI-S8.pptx
 
PDIDTI-S6.pptx
PDIDTI-S6.pptxPDIDTI-S6.pptx
PDIDTI-S6.pptx
 
PDIDTI-S5.pptx
PDIDTI-S5.pptxPDIDTI-S5.pptx
PDIDTI-S5.pptx
 
PDIDTI-S3.pptx
PDIDTI-S3.pptxPDIDTI-S3.pptx
PDIDTI-S3.pptx
 
TIC-S4.pptx
TIC-S4.pptxTIC-S4.pptx
TIC-S4.pptx
 
TIC-S3.pptx
TIC-S3.pptxTIC-S3.pptx
TIC-S3.pptx
 
TIC-S2.pptx
TIC-S2.pptxTIC-S2.pptx
TIC-S2.pptx
 

Último

Nivelación topográfica tipos de nivelación
Nivelación topográfica tipos de nivelaciónNivelación topográfica tipos de nivelación
Nivelación topográfica tipos de nivelación
waldir orosco tinta
 
Sistema de sobrealimentacion de un motor
Sistema de sobrealimentacion de un motorSistema de sobrealimentacion de un motor
Sistema de sobrealimentacion de un motor
mauriciok961
 
Estructura de un buque, tema de estudios generales de navegación
Estructura de un buque, tema de estudios generales de navegaciónEstructura de un buque, tema de estudios generales de navegación
Estructura de un buque, tema de estudios generales de navegación
AlvaroEduardoConsola1
 
MATERIALES PELIGROSOS NIVEL DE ADVERTENCIA
MATERIALES PELIGROSOS NIVEL DE ADVERTENCIAMATERIALES PELIGROSOS NIVEL DE ADVERTENCIA
MATERIALES PELIGROSOS NIVEL DE ADVERTENCIA
ROXYLOPEZ10
 
Presentación transferencia de calor Jesus Morales.pdf
Presentación transferencia de calor Jesus Morales.pdfPresentación transferencia de calor Jesus Morales.pdf
Presentación transferencia de calor Jesus Morales.pdf
jdcumarem02
 
diagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingenieríadiagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingeniería
karenperalta62
 
Control de Diaphania hyalinata en campo.pptx
Control de Diaphania hyalinata en campo.pptxControl de Diaphania hyalinata en campo.pptx
Control de Diaphania hyalinata en campo.pptx
alexanderlara1198
 
1°AIRE ACONDICIONADO-EQUIPOS & SISTEMAS.pdf
1°AIRE ACONDICIONADO-EQUIPOS & SISTEMAS.pdf1°AIRE ACONDICIONADO-EQUIPOS & SISTEMAS.pdf
1°AIRE ACONDICIONADO-EQUIPOS & SISTEMAS.pdf
luliolivera62
 
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdfPRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
fabian28735081
 
Infografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - ConstrucciónInfografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - Construcción
MaraManuelaUrribarri
 
Juzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptx
Juzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptxJuzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptx
Juzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptx
Folke Claudio Tantahuillca Landeo
 
Características de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptxCaracterísticas de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptx
MONICADELROCIOMUNZON1
 
MANUAL MONITOREO DEL SERVICIO DE INTERNET SATELITAL DEL MINEDU (CON ANTENAS ...
MANUAL MONITOREO DEL SERVICIO DE INTERNET  SATELITAL DEL MINEDU (CON ANTENAS ...MANUAL MONITOREO DEL SERVICIO DE INTERNET  SATELITAL DEL MINEDU (CON ANTENAS ...
MANUAL MONITOREO DEL SERVICIO DE INTERNET SATELITAL DEL MINEDU (CON ANTENAS ...
Ing. Julio Iván Mera Casas
 
Norma API 1104 Calificación de Procedimiento.ppt
Norma API 1104 Calificación de Procedimiento.pptNorma API 1104 Calificación de Procedimiento.ppt
Norma API 1104 Calificación de Procedimiento.ppt
linapaolac5
 
Clase Isometricos parA circuitos de ingenieria
Clase Isometricos parA circuitos de ingenieriaClase Isometricos parA circuitos de ingenieria
Clase Isometricos parA circuitos de ingenieria
leonidasbajalquepuch
 
561425171-5-1-Modelos-de-Pronosticos.pptx
561425171-5-1-Modelos-de-Pronosticos.pptx561425171-5-1-Modelos-de-Pronosticos.pptx
561425171-5-1-Modelos-de-Pronosticos.pptx
Angel Tello
 
balanceo de linea para los procesos de Producción
balanceo de linea  para los procesos  de Producciónbalanceo de linea  para los procesos  de Producción
balanceo de linea para los procesos de Producción
Victor Manuel Rivera Guevara
 
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptxINVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
FernandoRodrigoEscal
 
Presentación 01 Curso de Introducción a Python.pdf
Presentación 01 Curso de Introducción a Python.pdfPresentación 01 Curso de Introducción a Python.pdf
Presentación 01 Curso de Introducción a Python.pdf
jorgecuasapaz182
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
ssuser8827cb1
 

Último (20)

Nivelación topográfica tipos de nivelación
Nivelación topográfica tipos de nivelaciónNivelación topográfica tipos de nivelación
Nivelación topográfica tipos de nivelación
 
Sistema de sobrealimentacion de un motor
Sistema de sobrealimentacion de un motorSistema de sobrealimentacion de un motor
Sistema de sobrealimentacion de un motor
 
Estructura de un buque, tema de estudios generales de navegación
Estructura de un buque, tema de estudios generales de navegaciónEstructura de un buque, tema de estudios generales de navegación
Estructura de un buque, tema de estudios generales de navegación
 
MATERIALES PELIGROSOS NIVEL DE ADVERTENCIA
MATERIALES PELIGROSOS NIVEL DE ADVERTENCIAMATERIALES PELIGROSOS NIVEL DE ADVERTENCIA
MATERIALES PELIGROSOS NIVEL DE ADVERTENCIA
 
Presentación transferencia de calor Jesus Morales.pdf
Presentación transferencia de calor Jesus Morales.pdfPresentación transferencia de calor Jesus Morales.pdf
Presentación transferencia de calor Jesus Morales.pdf
 
diagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingenieríadiagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingeniería
 
Control de Diaphania hyalinata en campo.pptx
Control de Diaphania hyalinata en campo.pptxControl de Diaphania hyalinata en campo.pptx
Control de Diaphania hyalinata en campo.pptx
 
1°AIRE ACONDICIONADO-EQUIPOS & SISTEMAS.pdf
1°AIRE ACONDICIONADO-EQUIPOS & SISTEMAS.pdf1°AIRE ACONDICIONADO-EQUIPOS & SISTEMAS.pdf
1°AIRE ACONDICIONADO-EQUIPOS & SISTEMAS.pdf
 
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdfPRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
PRESENTACION TRANSFERENCIA FABIAN ALVAREZ.pdf
 
Infografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - ConstrucciónInfografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - Construcción
 
Juzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptx
Juzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptxJuzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptx
Juzgamiento-de-Ganado-Lechero-CATEGORIA-B-SWISS.pptx
 
Características de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptxCaracterísticas de los suelos como los histosoles.pptx
Características de los suelos como los histosoles.pptx
 
MANUAL MONITOREO DEL SERVICIO DE INTERNET SATELITAL DEL MINEDU (CON ANTENAS ...
MANUAL MONITOREO DEL SERVICIO DE INTERNET  SATELITAL DEL MINEDU (CON ANTENAS ...MANUAL MONITOREO DEL SERVICIO DE INTERNET  SATELITAL DEL MINEDU (CON ANTENAS ...
MANUAL MONITOREO DEL SERVICIO DE INTERNET SATELITAL DEL MINEDU (CON ANTENAS ...
 
Norma API 1104 Calificación de Procedimiento.ppt
Norma API 1104 Calificación de Procedimiento.pptNorma API 1104 Calificación de Procedimiento.ppt
Norma API 1104 Calificación de Procedimiento.ppt
 
Clase Isometricos parA circuitos de ingenieria
Clase Isometricos parA circuitos de ingenieriaClase Isometricos parA circuitos de ingenieria
Clase Isometricos parA circuitos de ingenieria
 
561425171-5-1-Modelos-de-Pronosticos.pptx
561425171-5-1-Modelos-de-Pronosticos.pptx561425171-5-1-Modelos-de-Pronosticos.pptx
561425171-5-1-Modelos-de-Pronosticos.pptx
 
balanceo de linea para los procesos de Producción
balanceo de linea  para los procesos  de Producciónbalanceo de linea  para los procesos  de Producción
balanceo de linea para los procesos de Producción
 
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptxINVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
 
Presentación 01 Curso de Introducción a Python.pdf
Presentación 01 Curso de Introducción a Python.pdfPresentación 01 Curso de Introducción a Python.pdf
Presentación 01 Curso de Introducción a Python.pdf
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
 

S8-EDD-4.2 Aplicaciones de árboles en informática

  • 1. Estructuras de Datos Tema: 4 Estructura de datos dinámicas tipo Árboles Docente: Mg. Luis Fernando Aguas B
  • 2. Los éxitos más importantes se consiguen cuando existe la posibilidad de fracasar – Mark Zuckerberg
  • 3. Objetivo 1. Adquirir los conceptos básicos relacionados con las EDD 2. Reconocer las características de las EDD ● 4.2 Aplicaciones de árboles en informática Contenido
  • 4. 4.2 Aplicaciones de árboles en informática
  • 6. Grafos en computación ● Interés típico en vértices y lados como objetos (ej. Redes de comunicación) objetos con propiedades
  • 7. Grafos en computación ● Gran interés en grafos dirigidos para aplicaciones ○ Redes para comunicaciones ○ Sistemas de transporte ○ Computación distribuida ○ Java: Jerarquías, instancias, mensajes
  • 8. Grafo Dirigido Definición Un Grafo Dirigido, o diGrafo , es uno o varios pares G = (V, E) con las siguientes propiedades: 1. El primer componente, V, es un finito, conjunto no-vacio. Los elementos de V son llamados vértices de G. 2. El segundo componente, E, es un conjunto finito uno o varios pares de vértices. Esto es, E  V x V . Los elementos son llamados los arcos de G. Ejemplo G = (V, E) V = {a, b, c, d} E = { (a,b), (a,c), (b,c), (c,a), (c,d), (d,d) } Recuerde E no puede tener mas de una instancia de un arco. (a,b) es diferente de (b,a). Ej. Considere un paso a desnivel (a,b). Aunque la distancia es la misma, el tiempo para atravesar del a2b y b2a puede ser diferente.
  • 9. Grafo Dirigido... Head, Tail, Adyacente Terminología Considere un Grafo Dirigido G = (V, E). • cada elemento de V es llamado un vértice o un nodo de G. Así, V es el conjunto de vértices (o nodos) de G. • cada elemento de E es llamado un arco de G. Así, E es el conjunto de arcos de G. • Un arco (v,w)  E puede ser representado como vw . Una flecha apunta desde v a w es conocido como un arco dirigido. El vértice w es llamado la cabeza (head) del arco porque es el inicio de la flecha. Convencionalmente, v es llamado la cola (tail) del arco. Finalmente, vértice w es llamado Adyacente al vértice v.
  • 10. Grafo Dirigido... Out-degree, In-degree Terminología Considere un Grafo Dirigido G = (V, E). • Un arco e=(v,w) se dice que emana desde el vértice v. Usamos la notación A(v) el conjunto de arcos que emanan desde el vértice v. Así, A(v) = {(a,b)  E : a=v} • El grado de salida (out-degree) de un nodo es el número de arcos que salen desde el nodo. Sin embargo, el grado de salida de v es |A(v)| • Un arco e=(v,w) se dice incidente en vértice w. usamos la notación I(w) para denotar el conjunto de arcos incidentes en vértice w. Tal que, I(w) = {(a,b)  E : b=w} • El grado de entrada (in-degree) de un nodo es el número de arcos incidentes en aquel nodo. Sin embargo, el in-degree de w es |I(v)|
  • 11. Grafo Dirigido... camino Definición Un camino en un Grafo Dirigido G = (V, E) es una secuencia no vacía de vértices P = {v1, v2, ..., vk} donde vi  V para 1  i  k tal que (vi, vi+1)  E para 1  i  k. La longitud (longitud) del camino P es k-1. Ejemplo P1 = (a) P2 = (b, c) P3 = (a, b, c) P4 = (a, c, a, c, a, c, a, c, a, c, a, c, a) Pregunta Cual es la máxima longitud del camino?
  • 12. Grafo Dirigido... Sucesor , Predecesor Terminología Considere el camino P = {v1, v2, ..., vk} en Grafo Dirigido G = (V, E). • vértice vi+1 es el Sucesor de vértice vi para 1  i < k. cada elemento vi del camino P (excepto el ultimo) tiene un Sucesor . • vértice vi-1 es el Predecesor del vértice vi para 1 < i  k. cada elemento vi del camino P (excepto el primero) tiene un Predecesor. Ejemplo {a, b, c, d}
  • 13. Grafo Dirigido... Camino simple, ciclo, Lazo Terminología Considere el camino P = {v1, v2, ..., vk} en Grafo Dirigido G = (V, E). • A camino P es llamado un Camino simple si y solo si vi  vj para todo i y j tal que 1  i < j  k. Sin embargo, esto es permitido para v1 = vk. • Un ciclo es un camino P de longitud no-cero en donde v1 = vk. La longitud de un ciclo es justo la longitud del camino P. • Un Lazo es un ciclo de longitud uno. Así, este es un camino de la forma {v, v}. • Un simple ciclo es un camino que es ambos un ciclo y simple. Ejemplo {a, b, c, d} {c, a, c, d} {a, b, c, a} {a, c, a, c, a}
  • 14. Grafo Dirigido... Grafo Dirigido Acíclico Definición Un Grafo Dirigido Acíclico (DAG) es un Grafo Dirigido que no contiene ciclos. Recuerde árboles  DAG. DAG  árbol
  • 15. Grafo No Dirigido Definición Un Grafo No Dirigido es un par ordenado G = (V, E) con las siguientes propiedades: 1. El primer componente, V, es un conjunto finito, no vacío. Los elementos de V son llamados los vértices de G. 2. El segundo componente, E, es un conjunto finito. cada elemento de E es un conjunto que esta compuesto exactamente de dos (distintos) vértices. los elementos de E son llamados los arcos de G. Ejemplo G = ( V, E) V = {a, b, c, d} E = { {a,b}, {a,c}, {b,c}, {c,d} } Recuerde • {a,b} = {b,c}  No Dirigido *ej. Comunicación full duplex.
  • 16. Grafo No Dirigido... Incide Terminología Considere un Grafo No Dirigido G = (V, E). • Un arco e={v,w}  E se dice que emana desde y incide en ambos vértices v y w. • El conjunto de arcos que emanan desde un vértice v es el conjunto A(v) = {(v0,v1)  E : v0 = v  v1 = v} • El conjunto de arcos incidentes en un vértice w es I(w) = A(w)
  • 17. Grafo etiquetados Definición Un Grafo que ha sido anotado en alguna forma es llamado un Grafo etiquetado. Recuerde ambos arcos y vértices puede ser etiquetados
  • 18. Representación Considere un Grafo Dirigido G = (V, E). ● Si E  V  V, Grafo G contiene al menos |V|2 arcos. ● Existe posibles conjuntos de arcos para un conjunto dado de vértices. 2 2 V
  • 19. Representación ... Matriz Adyacente para DAG Considere a Grafo Dirigido G = (V, E) con V = {v1, v2, ..., vn}. ● La representación simple del Grafo usa una matriz n x n de ceros o unos dados por ● La matriz A es llamada matriz adyacente.
  • 20. Representación ... Matriz adyacente para DAG ... Ejemplo Recuerde ● El número de unos en la matriz adyacente es igual al número de arcos en el Grafo ● Cada uno en la ith fila corresponde a un arco que emana desde vértice vi. ● Cada uno en la ith columna corresponde a un arco que incide en vértice vi.
  • 21. Representación ... Matriz adyacente para No Dirigido Representa un Grafo No Dirigido G = (V, E) con V = {v1, v2, ..., vn}, usando una matriz n x n A de ceros y unos dado por
  • 22. Representación ... Matriz adyacente para No Dirigido ... Ejemplo Recuerde ● Sea {vi, vj} = {vj, vi}, matriz A es simétrica cerca de la diagonal. Esto es, aij = aji ● Todas las entradas en la diagonal son cero. Esto es, aii = 0 para 1  i  n
  • 23. Representación ... Matriz adyacente para No Dirigido ... Ejemplo Recuerde ● Sea {vi, vj} = {vj, vi}, matriz A es simétrica cerca de la diagonal. Esto es, aij = aji ● Todas las entradas en la diagonal son cero. Esto es, aii = 0 para 1  i  n
  • 24. Representación > matriz adyacente... Complejidad ● Sea la matriz adyacente tiene |V|2 entradas, la cantidad de espacio necesaria para representar los arcos de un Grafo es O( |V|2 ) depende del número actual de arcos en el Grafo. ● Si |E| << |V|2 entonces muchas de entradas son 0 ● Excelente Representación !
  • 25. Representación > Matriz adyacente ... Grafos dispersos y densos Definición Un Grafo disperso es un Grafo G = (V, E) en donde |E| = O( |V| ) Definición Un Grafo denso es un Grafo G = (V, E) en donde |E| = ( |V|2 )
  • 26. Representación > Matriz adyacente... Listas Adyacentes
  • 27. Representación Comparación de Representaciones operación Matriz adyacente Lista adyacente Buscar arco (v,w) O(1) O( |A(v)| ) Enumerar todos los arcos O( |V|2 ) O( |V| + |E| ) enumerar arcos que emanan de v O( |V| ) O( |A(v)| ) enumerar arcos inciden en w O( |V| ) O( |V| + |E| )
  • 29. Grafo en JAVA - vértice class Vertex { public String name; // Vertex name public LinkedList<Edge> adj; // edges from vertex public double dist; // Cost public Vertex prev; // Previous vertex on shortest path public int scratch; // Extra variable used in algorithm public Vertex( String nm ) { name = nm; adj = new LinkedList<Edge>( ); reset( ); } public void reset( ) // clears values used in algorithms { dist = Graph.INFINITY; prev = null; scratch = 0; } }
  • 30. Grafo en JAVA - lado class Edge { public Vertex dest; // Second vertex in Edge public double cost; // Edge cost public double temp; // used in algorithms public Edge( Vertex d, double c ) { dest = d; cost = c; } }
  • 31. Grafo en JAVA public class Graph { public static final double INFINITY = Double.MAX_VALUE; private HashMap<String,Vertex> vertexMap = new HashMap(); // maps String to Vertex public void addEdge( String sourceName, String destName, double cost ) { Vertex v = getVertex( sourceName ); Vertex w = getVertex( destName ); v.adj.add( new Edge( w, cost ) ); }
  • 32. Grafo Transversal Primer nivel Transversal ● Similar a árbol Primer nivel Transversal ● Porque no existe raíz, debemos especificar un nodo inicial ● Porque un Grafo puede ser cíclico, debemos prevenir la recursion infinita
  • 33. Grafo Transversal Primer nivel Transversal ... El Primer nivel Transversal visita los nodos en el orden c, a, b, d Recuerde ● Un Primer nivel Transversal solo sigue arcos que dirige a vértices no visitados. ● Si omitimos los arcos que no son seguidos, los arcos remanentes forman un árbol. ● El Primer nivel Transversal de este árbol es equivalente a el Primer nivel Transversal del Grafo .
  • 34. Grafo Primer nivel Transversal Implementaciónpublic abstract class AbstractGrafo extends AbstractContainer implements Grafo { ... public void depthprimerTransversal(PrePostVisito prepostvisito , int i) { boolean aflag[] = new boolean[númeroOfVertices]; fo (int j = 0; j < númeroOfVertices; j++) aflag[j] = false; depthprimerTransversal(prepostvisito , vértice[i], aflag); } private void depthprimerTransversal( PrePostVisito prepostvisito , vértice vértice1, boolean aflag[]) { if (prepostvisito .isDone()) return; prepostvisito .preVisit(vértice1); aflag[vértice1.getnúmero()] = true; fo (Enumeration enumeration = vértice1.getSucesor s(); enumeration.hasMo eelementos(); ) { vértice vértice2 = (vértice) enumeration.nextelemento(); if (!aflag[vértice2.getnúmero()]) depthprimerTransversal(prepostvisito , vértice2, aflag); } prepostvisito .postVisit(vértice1); } }
  • 35. Grafo Transversal Primer hondo Transversal ● Similar a árbol Primer hondo Transversal ● Utiliza una cola de vértices ● Debido a que no existe raíz, debemos especificar un nodo de partida ● Porque un Grafo puede ser cíclico, debemos asegurarnos que un vértice este encolado solamente una vez
  • 36. Grafo Transversal Primer hondo Transversal ... El Primer hondo Transversal visita los nodos en el orden a, b, c, d
  • 37. Grafo Primer hondo Transversal ... Implementación public abstract class AbstractGrafo extends AbstractContainer implements Grafo { ... public void breadthprimerTransversal(Visito visito , int i) { boolean aflag[] = new boolean[númeroOfVertices]; fo (int j = 0; j < númeroOfVertices; j++) aflag[j] = false; QueueAsLinkedList queueaslinkedlist = new QueueAsLinkedList(); aflag[i] = true; queueaslinkedlist.enqueue(vértice[i]); while (!queueaslinkedlist.isvacio() && !visito .isDone()) { vértice vértice1 = (vértice) queueaslinkedlist.dequeue(); visito .visit(vértice1); fo (Enumeration enumeration = vértice1.getSucesor s(); enumeration.hasMo eelementos(); ) { vértice vértice2 = (vértice) enumeration.nextelemento(); if (!aflag[vértice2.getnúmero()]) { aflag[vértice2.getnúmero()] = true; queueaslinkedlist.enqueue(vértice2); } } } } ... }
  • 38. Grafo Transversal Orden Topológico ● Definición Considere a Dirigido aciclico Grafo G = (V, E). Un Orden Topológico de los vértices de G es una secuencia S = { v1, v2, ..., v|V| } en donde cada elemento de V aparece exactamente una vez. Para cada par de distintos vértices vi y vj en la secuencia S, si vi  vj es un arco en G, i.e., (vi , v)  E, entonces i < j.
  • 39. Grafo Transversal Orden Topológico Transversal● Un Transversal que visita los vértices de un DAG en el orden dado por el Orden Topológico ● Calcula el grado interno de los vértices ● Repetidamente selecciona el vértice con cero grado, visita y entonces “remuévelo del Grafo” S1 = { a, b, c, d, e, f, g, h, i } S2 = { a, c, b, f, e, d, h, g, i } S3 = { a, b, d, e, g, c, f, h, i } ... Existe muchos
  • 40. ● Esta conectado ● Existe algún ciclo Grafo Transversal Aplicaciones 1 0 2 3 9 4 8 7 5 6 7
  • 41. Grafo Transversal > Aplicaciones conexión Definición Un Grafo No Dirigido G = (V, E) esta conectado si existe un camino en G entre cada par de vértices in V. Los sub-Grafos conectados de un Grafo son llamados componentes conectados.
  • 42. Grafo Transversal > Aplicaciones conexión Definición Un Grafo Dirigido G = (V, E) esta fuertemente conectado si existe un camino en G entre cada par de vértices en V. Definición Un Grafo Dirigido G = (V, E) esta débilmente conectado si el Grafo subrayado No Dirigido Ğ esta conectado.
  • 43. Grafo Transversal > Aplicaciones conexión Algoritmo 1. Para todos los vértices 2. Partir de cada vértice 3. Atravesar el Grafo 4. Marque cada vértice visitado 5. Si existe un vértice no visitado, no conectado 6. Aplique topológico o der Transversal
  • 44. Camino mas corto Distancia ● Distancia entre dos vértices ○ 2-9 ○ 3-9 ○ 7-4 1 0 2 3 9 4 8 7 5 6 7
  • 45. Camino mas corto peso de camino Definición Considere el peso de un arco Grafo G = (V, E) . Sea C(vi,vj) el peso del arco que conecta vi a vj. Un camino en G es una secuencia no vacía de vértices P = {v1, v2, ..., vk}. El peso del camino P esta dado por     1 1 1),( k i ii vvc
  • 46. Camino mas corto Fuente simpleDefinición Fuente simple - Camino mas corto problema Dado un peso-arco Grafo G = (V, E) y un vértice vs  V, buscar el menor peso del camino desde vs a otro vértice en V. Recuerde si todos los pesos son positivos, esta bien definido.
  • 47. ● Si el Grafo es aciclico, el problema es fácil ○ Haga un Orden Topológico Transversal ● Si todos los pesos-arcos no son negativos el problema de camino corto esta bien definido ○ Un Algoritmo trabaja bien ■ (Ej. Algoritmo Dijkstra) Camino mas corto Caso especial: pesos no negativos
  • 48. ● Si el Grafo tiene pesos negativos (pero no ciclos de costo negativo) una solución existe pero el Algoritmo greddy no trabaja. ● Si el Grafo tiene un ciclo de costo negativo, No existe solución. Camino mas corto Casos especiales: pesos negativos
  • 49. Camino mas corto Algoritmo Dijkstra 1. Desde el conjunto de vértices para kv= false, seleccione el vértice v tome la tentativa distancia dv. 2. Ponga kv= true 3. Para cada vértice w adyacente a v para cada kvtrue, pruebe el peso tentativo de dv si es mayor que dv+ c(v,w). Si es así, ponga dv  dv+ c(v,w) y ponga pv  v. 4. En cada paso exactamente un vértice tiene este kv ponga a true. El Algoritmo termina después |V| pasos son completados cuando todos los caminos mas cortos son conocidos
  • 50. Camino mas corto Algoritmo Dijkstra 1. kv indica que el Camino mas corto de vértice v es conocido. Inicialmente falso 2. dv la longitud del camino corto conocido desde vs a v. Inicialmente . 3. pv el Predecesor de vértice v en el Camino mas corto desde vs a v. Inicialmente desconocido.
  • 51. Camino mas corto :Dijkstra
  • 52. Análisis del camino critico ● ANALISIS ○ Actividad de nodos ○ Caminos críticos ○ Eventos en nodos ○ Tiempos de eventos tempranos o tardíos ○ Actividad critica ● EJERCICIO BASADO EN GRAFO SIGUIENTE: ○ Determine un camino entre e y f; f y a ○ Determine si tiene ciclo d, f