Grafos
Grafos
Grafos
de la asignatura de Programacin
Master de Bioinformtica
Grafos
32
0
V ig o 356 G e ro n a
28
Z a ra g o z a
4
00
395
296 1
V a lla d o lid 32
5 B a r c e lo n a
19
3
9
M a d rid
34
3 25
40 1
191 V a le n c ia
335
B a d a jo z
241
Jan
15
2 0
24 M u r c ia
99
G ra n a d a
12
C d iz
2
Ejemplos de grafos
3
Introduccin y definiciones
Grafo no dirigido. v w
Las aristas no estn ordenadas:
(v, w) = (w, v)
En grafos dirigidos:
Nodos adyacentes a v: todos los w con <v, w> A.
Nodos adyacentes de v: todos los u con <u, v> A.
5
Terminologa de grafos
Camino de un vrtice w a w : es una secuencia w , w , ...,
1 q 1 2
wq V, tal que todas las aristas (w1, w2), (w2, w3), ..., (wq-1,
wq) A.
7
Terminologa de grafos
8
Operaciones elementales con grafos
Representacin de grafos:
1 2
4 5
10
Representacin de grafos
Representacin del conjunto de aristas, A.
Mediante listas
5 T
de adyacencia.
1 2 3
2 3 5
3 1 4 5
4
4
5
11
Matrices de adyacencia
tipo GrafoNoEtiq= array [1..n, 1..n] de booleano
M 1 2 3 4 5
1 2
1 T T T
3 2 T T T T
3 T T
4 5
4 T T T
5 T M[i, j]T = M[j, i].
Grafo no dirigido Matriz simtrica:
Resultado: se desperdicia la mitad de la memoria.
12
Matrices de adyacencia
Grafos etiquetados:
tipo GrafoEtiq[E]= array [1..n, 1..n] de E
13
Recorridos sobre grafos
Tipos de recorridos:
Bsqueda primero en profundidad. Equivalente a un
recorrido en preorden de un rbol.
Bsqueda primero en amplitud o anchura. Equivalente a
recorrer un rbol por niveles.
14
Recorridos sobre grafos
var
marca: array [1, ..., n] de (visitado, noVisitado)
operacin BorraMarcas
para i:= 1, ..., n hacer
marca[i]:= noVisitado
15
Bsqueda primero en profundidad
operacin bpp (v: nodo)
marca[v]:= visitado
para cada nodo w adyacente a v hacer
si marca[w] == noVisitado entonces
bpp(w)
finpara
operacin BsquedaPrimeroEnProfundidad
BorraMarcas
para v:= 1, ..., n hacer
si marca[v] == noVisitado entonces
bpp(v)
finpara
16
Problemas de caminos mnimos
17
Algoritmo de Dijkstra
Ejemplo:
2
1 2
4 1
3 10
2
3 4 2
5
5 8 4
6
6 7
1
Nodo S D P S D P S D P S D P S D P
2 F 2 1 F 2 1 T 2 1 T 2 1 T 2 1
3 F 1 F 3 4 F 3 4 T 3 4 T 3 4
4 F 1 1 T 1 1 T 1 1 T 1 1 ..... T 1 1
5 F 1 F 3 4 F 3 4 F 3 4 T 3 4
6 F 1 F 9 4 F 9 4 F 8 3 T 6 7
7 F 1 F 5 4 F 5 4 F 5 4 T 5 4
Inicializ. v=4 v=2 v=3 5, 7 v=6
21
Problema del ciclo hamiltoniano
1 2 1 2
3 4 3 4
5 6 5 6
22
Problema del viajante
10
1 2
45 20
55
40 25
5 30 3
25
50 4 15
24
Problema de la Supercadena ms Corta
25
Problema de la Supercadena ms Corta
Se puede reducir al Problema del Viajante de Comercio
(TSP)
26
Problema de la Supercadena ms Corta
27
Problema de la Supercadena ms Corta
ATCCAGT
28