Documentos de Académico
Documentos de Profesional
Documentos de Cultura
t
c
45
1
3
10
25
40
55
30
25
50
20
3
15
Grafos
Grafos
Indice general
1. Introduccin.
2. Definiciones y representacin.
3. Recorridos en grafos.
4. Algoritmos de caminos ms cortos.
5. rbol de cubrimiento de costo mnimo.
6. Flujo en redes. Flujo mximo.
Grafos
Indice
Introduccin.
Definiciones.
Tipo de dato abstracto grafo.
Estructuras de datos para grafos.
Lista de aristas.
Lista de adyacencia.
Matriz de adyacencia.
Grafos
Introduccin
Grafos
Qu es un grafo?
Ejemplo:
a
V = { a, b, c, d, e}
c
d
Grafos
Aplicaciones
b
inicio
b
a
Corua
4
Sevilla
Planificacin de tareas
(Pert/CPM)
inicio
A(3)
I(1)
Santander
1
Barcelona
Madrid
2
2
3
Valencia
D(2)
C(4)
E(3)
final
B(2)
Grafos
Definiciones
Grafos
Definiciones
a
Grafos
b
8
Definiciones
b
c
d
Grafos
Vrtices adyacentes:
a = { b, c, d }
b={e}
c = { a, d, e }
d = { a, c }
e={d}
9
Definiciones
Grafos
vG
10
Definiciones
Sea G es un grafo con n vrtices y m aristas.
Si G es no dirigido, entonces m n(n-1)/2.
Si G es dirigido, entonces m n(n-1).
c
d
Grafos
b
c
C1= { a, b, e, d, c}
e
C2= { b, e, d, c}
11
Definiciones
b
Camino simple = { a, b, e}
c
d
Grafos
Ciclo = { c, e, d, c}
e
12
Definiciones
a
c
c
d
e
Conectado
Grafos
e
No conectado
13
Definiciones
3 componentes conectados
Grafos
14
Definiciones
Grafos
15
Definiciones
Grafos
16
Definiciones
Grafos
1
3
t
c
17
Definiciones
Puentes de Koenigsberg
Grafos
D
B
18
El TDA Grafo es un contenedor de posiciones que almacena los vrtices y las aristas del grafo.
Operaciones para la informacin posicional:
Grafos
19
numVertices()
numAristas()
vertices()
aristas()
grado(v)
verticesAdyacentes(v)
aristasIncidentes(v)
verticesFinales(e)
opuesto(v, e)
esAdyacente(v, w)
Grafos
21
eliminaVertice(v)
eliminaArista(e)
Elimina arista e
convierteNoDirigida(e)
invierteDireccion(e)
Grafos
23
Lista de Aristas
Fcil de implementar.
4
Grafos
4
24
O(1)
O(1)
vertices
O(n)
O(m)
elementos, posiciones
verticesFinales, opuesto, origen, destino,
esDirigida, grado, gradoEnt, gradoSalida
aristasIncidentes, aristasIncidentesEnt,
aristasIncidentesSal, verticesAdyacentes,
verticesAdyacentesEnt, verticesdyacentesSal
esAdyacente
Grafos
Tiempo
O(n + m)
O(1)
O(m)
O(m)
aristasIncidentes, aristasIncidentesEnt,
aristasIncidentesSal, verticesAdyacentes,
verticesAdyacentesEnt, verticesdyacentesSal
O(1)
insertaVertice
O(1)
eliminaVertice
O(m)
Espacio requerido
O(n + m)
25
Lista de Adyacencia
1
e
4
Grafos
2
b
1
2
3
4
2
3
4
2
a
b
c
e
3
26
O(1)
O(1)
vertices
O(n)
O(m)
elementos, posiciones
verticesFinales, opuesto, origen, destino,
esDirigida, grado, gradoEnt, gradoSalida
aristasIncidentes, aristasIncidentesEnt,
aristasIncidentesSal, verticesAdyacentes,
verticesAdyacentesEnt, verticesdyacentesSal
esAdyacente
Grafos
Tiempo
O(n + m)
O(1)
O(grado(v))
O(min(grado(u), grado(v))
aristasIncidentes, aristasIncidentesEnt,
aristasIncidentesSal, verticesAdyacentes,
verticesAdyacentesEnt, verticesdyacentesSal
O(1)
insertaVertice
O(1)
eliminaVertice
O(grado(v))
Espacio requerido
O(n + m)
27
Matriz de Adyacencia
2
1
2
3
4
4
Grafos
1
F
V
F
V
2
V
F
V
V
3
F
V
F
V
4
V
V
V
F
3
28
Matriz de Adyacencia
En grafos etiquetados:
M[i][j] = atributo de la arista (i, j) en el grafo, indicador especial
si no hay una arista (i, j).
1
e
4
Grafos
2
b
1
2
3
4
1
-
2
a
e
3
b
-
4
d
c
29
O(1)
O(1)
vertices
O(n)
O(m)
elementos, posiciones
verticesFinales, opuesto, origen, destino,
esDirigida, grado, gradoEnt, gradoSalida
aristasIncidentes, aristasIncidentesEnt,
aristasIncidentesSal, verticesAdyacentes,
verticesAdyacentesEnt, verticesdyacentesSal
esAdyacente
Grafos
Tiempo
O(n + m)
O(1)
O(n)
O(1)
aristasIncidentes, aristasIncidentesEnt,
aristasIncidentesSal, verticesAdyacentes,
verticesAdyacentesEnt, verticesdyacentesSal
O(1)
insertaVertice
O(n2)
eliminaVertice
O(n2)
Espacio requerido
O(n2)
30
Indice
1. Introduccin.
2. Definiciones y representacin.
3. Recorridos en grafos.
4. Algoritmos de caminos ms cortos.
5. rbol de cubrimiento de costo mnimo.
6. Flujo en redes. Flujo mximo.
Grafos
31