Anda di halaman 1dari 8

INF245 - Estructuras de Informacin

Prof. Claudio Cubillos


Escuela de Ingeniera Informtica - PUCV
claudio.cubillos@ucv.cl
Teora de
Grafos
Terminologa
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 2 2007-II v1
Terminologa
Un grafo es un conjunto de puntos y un conjunto de lneas llamadas
aristas o arcos, cada una de las cuales une un punto llamado nodo
o vrtice con otro.
Se representan el conjunto de vrtices de un grafo dado G por V
G
=
{a,b,c,d,e}
El conjunto de arcos por A
G
={ab, ac, ad, bd, bc, cd, ce, de}
Escuela de Ingeniera
Informtica
b
d
a
c
e
Nodos
Arcos
Arco AC
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 3 2007-II v1
Terminologa
Una arista se representa por los vrtices que conecta. La arista que
conecta los vrtices b y d se representa por A(b,d).
Algunos vrtices pueden conectar un nodo consigo mismo; por ejemplo,
el vrtice d tiene el formato A(d,d). Estas aristas se denominan bucles.
Al nmero de vrtices que tiene un grafo se le llama orden del grafo
Un grafo nulo es un grafo de orden 0.
Dos vrtices son adyacentes si hay un arco que los une.
Escuela de Ingeniera
Informtica
b
d
a
c
e
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 4 2007-II v1
Terminologa
Un camino o trayectoria entre 2 nodos es una sucesin de arcos distintos
que conectan estos nodos. En el grafo anterior, una trayectoria que
conecta al nodo a con el nodo e es ab-bd-de.
La longitud de un camino es el n de arcos que comprende.
Un camino simple es, si todos los vrtices usados son distintos excepto
el 1
ero
y el ltimo que se permite sean idnticos
Un grafo es dirigido cuando los arcos tienen direccin.
Un grafo es no-dirigido cuando los arcos no tienen direccin.
Escuela de Ingeniera
Informtica
b
c
a
e
d
b
c
a
e
d
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 5 2007-II v1
Terminologa
Un camino o trayectoria dirigida del nodo i al nodo j es una sucesin de
arcos cuya direccin (si la tienen) es hacia el nodo j, de manera que el flujo
del nodo i al nodo j a travs de esta trayectoria es factible. Ej. ab-bc-ce es
una trayectoria dirigida del nodo a al nodo e.
Un camino o trayectoria no dirigida del nodo i al nodo j es una sucesin de
arcos cuya direccin (si la tienen) puede ser hacia o desde el nodo j. De lo
anterior se desprende que una trayectoria dirigida tambin es no dirigida,
pero no a la inversa. Ej. de-bd-ba es una trayectoria no dirigida del nodo e
hacia el nodo a.
Escuela de Ingeniera
Informtica
b
d
a
c
e
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 6 2007-II v1
Terminologa
Un grafo se denomina conectado cuando existe siempre un camino que
une 2 vrtices cualquiera y desconectado en caso contrario
Un grafo es completo cuando cada vrtice est conectado con todos y
cada uno de los nodos restantes (cada nodo es adyacente a los dems)
Escuela de Ingeniera
Informtica
b
c
a
e
d
b
c
a
e
d
a b
c d
a b
c d
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 7 2007-II v1
Terminologa
Un ciclo es una trayectoria que comienza y termina en el mismo
nodo.
En una red dirigida, un ciclo puede ser dirigido o no dirigido, segn
si la trayectoria en cuestin es dirigida o no dirigida.
Como una trayectoria dirigida tambin es no dirigida, entonces un
ciclo dirigido tambin es no dirigido (pero al revs no siempre es
cierto).
En la red de abajo, el ciclo AC-CB-BA es dirigido, el ciclo BD-DE-BE
es no dirigido,
B
D
A
C
E
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 8 2007-II v1
Terminologa
Un rbol de expansin es una red conexa que no contiene ciclos
no dirigidos. Consiste en N nodos con N-1 arcos.
B
D
A
C
E
B
D
A
C
E
S es rbol
de expansin
No es rbol
de expansin
B
D
A
C
E
No es rbol
de expansin
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 9 2007-II v1
Terminologa
La cantidad mxima de flujo que puede circular en un
arco dirigido es llamada capacidad del arco.
El nodo que tiene la propiedad de que su flujo que sale es
mayor que el flujo que entra en l se le llama nodo
fuente (o nodo orgen).
Por el contrario, si su flujo que sale es menor que el flujo
que entra a l se le llama nodo demanda (o nodo
destino).
Si el flujo que entra es igual al flujo que sale, entonces se
le llama nodo de trasbordo (o nodo intermedio)
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 10 2007-II v1
Terminologa
Un grafo es etiquetado cuando cada arco y/o vrtice tienen algn tipo
de rtulo, por ejemplo un nombre, un costo o algn otro valor.
Escuela de Ingeniera
Informtica
Via
Olmu
Stgo
2
4
5
Conce
6
7
Arica
Curic
5
8
9
6
8
INF245 - Estructuras de Informacin
Prof. Claudio Cubillos
Escuela de Ingeniera Informtica - PUCV
claudio.cubillos@ucv.cl
Teora de
Grafos
Representacin
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 12 2007-II v1
Matriz de Adyacencia
Existen dos tcnicas estndar para representar un grafo G:
la matriz de adyacencia (mediante arrays) y
la lista de adyacencia (mediante punteros/listas enlazadas).
La matriz de adyacencia M es un array de dos dimensiones que
representa las conexiones entre sus vrtices.
Escuela de Ingeniera
Informtica
M(i,j)
1 si existe una arista (V
i
, V
j
) en A
g
, V
i
es adyacente a V
j
0, en caso contrario
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 13 2007-II v1
Matriz de Adyacencia
Las columnas y las filas de la matriz representan los vrtices del
grafo.
Si G es un grafo no dirigido, la matriz es simtrica M(i,j) =M(j,i).
Ejemplo 1
Escuela de Ingeniera
Informtica
a b c d e
0 1 0 0 1
1 0 0 0 0
0 0 0 1 1
0 0 1 0 0
1 0 1 0 0
a
b
c
d
e
b
c
a
e
d
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 14 2007-II v1
Matriz de Adyacencia
Ejemplo 2
Escuela de Ingeniera
Informtica
Via
Stgo
2
3
Conce
7
Arica
Curic
5
6
Stgo Via Conce Curic Arica
- 3 7 5 -
3 - 2 - -
7 2 - - -
5 - - - 6
- - - 6 -
Stgo.
Via
Conce.
Curic
Arica
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 15 2007-II v1
Lista de Adyacencia
La lista de adyacencia es til cuando un grafo tiene muchos vrtices y
pocas aristas.
Esta lista est compuesta por dos partes: un directorio y un conjunto de
listas enlazadas.
Hay una entrada en el directorio por cada nodo del grafo. La entrada en el
directorio del nodo i apunta a una lista enlazada que representa los nodos
que son conectados al nodo i.
Escuela de Ingeniera
Informtica
Stgo
Via
Conce
Curic
Arica
Via Conce Curic
3 7 5
Conce
2
Stgo
3
Via
2
Stgo
7
Arica
6
Stgo
5
Curic
6
INF245 - Estructuras de Informacin
Prof. Claudio Cubillos
Escuela de Ingeniera Informtica - PUCV
claudio.cubillos@ucv.cl
Teora de
Grafos
Cobertura o Expansin Mnima
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 17 2007-II v1
Cobertura o Expansin Mnima
Este problema considera una red no dirigida y conexa. En ella se debe
encontrar un rbol de expansin con la longitud total mnima de sus
ligaduras.
En la prctica se puede utilizar para:
minimizar la cantidad de pavimento para conectar entre s un grupo de
ciudades,
minimizar la cantidad de cable a utilizar para unir una serie de enchufes,
minimizar la cantidad de tubera a utilizar para la instalacin de alcantarillado
a una poblacin, etc.
minimizar el cableado para una red.
Escuela de Ingeniera
Informtica
B
D
A
C
E
12
8
4
4
9
7
3
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 18 2007-II v1
Cobertura o Expansin Mnima
El algoritmo de Primpermite encontrar una solucin ptima a este
problema:
Se selecciona arbitrariamente cualquier nodo y se conecta al nodo
ms cercano distinto de ste.
Se identifica el nodo no conectado ms cercano a un nodo
conectado y se conectan mediante una ligadura.
Si quedan nodos sin conectar se vuelve al paso 2. Los empates se
solucionan arbitrariamente.
Ejemplo 1
Escuela de Ingeniera
Informtica
B
D
A
C
E
12
8
4
4
9
7
3
B
D
A
C
E
8
4
4
3
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 19 2007-II v1
Cobertura o Expansin Mnima
Escuela de Ingeniera
Informtica
/*aacm = aristas rbol de cobertura mnima*/
/*nacm = nodos rbol de cobertura mnima*/
/*ni = nodo inicial de una arista*/
/*nf = nodo final de una arista*/
/*ng = nodos del grafo*/
/*elige_arista = funcin que devuelve la arista de
menor peso del grafo con ni en nacm y nf en ng- nacm.
while (nacm<>ng){
elige_arista(arista,ni,nf,ng,nacm);
aacm[i] = arista;
nacm[i] = nf;
i++;
}
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 20 2007-II v1
Ejemplo 2
Se desea construir una red de caminos que permita conectar a siete
ciudades. A continuacin se presentan las distancias (km) entre cada par
de ciudades. Las distancias que aparecen en blanco indican que no es
posible tcnicamente construir un camino directo entre ese par de
ciudades.
5 5 3 0 O
4 1 0 3 7 D
6 0 1 4 3 E
0 6 4 T
1
0
A
1
0
1
B
0
1
C
3
7
D
4
3
E
5 C
5 B
3 A
T O Ciudad
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 21 2007-II v1
Ejemplo 2 (cont.)
El costo del pavimento es de 1000 M$ por kilmetro. Ayude a la
empresa concesionaria a disear una red de caminos, conectando las
ciudades a un mnimo costo total.
Su representacin mediante una red queda:
B
D
A
C
E
3
6
4
4
1
7
3
T
O
3 5
5
1
1
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 22 2007-II v1
Ejemplo 2 (cont.)
Utilizando el algoritmo de Prim (partiendo desde O), el rbol de
mmima expansin es:
B
D
A
C
E
3
4
1
3
T
O
1
1
Distancia total = 13 km
Costo total = 13 x 1000 = 13000 [M$]
INF245 - Estructuras de Informacin
Prof. Claudio Cubillos
Escuela de Ingeniera Informtica - PUCV
claudio.cubillos@ucv.cl
Teora de
Grafos
Camino Ms Corto
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 24 2007-II v1
Camino Ms Corto
El problema consiste en encontrar la ruta ms corta desde un origen a
un destino. Para ello se considera una red conexa, y no dirigida, con un
nodo origen, y un nodo destino. A cada una de las ligaduras (arcos no
dirigidos) se les asocia una distancia no negativa. El objetivo es
encontrar la trayectoria mnima del origen (O) al destino (T).
Escuela de Ingeniera
Informtica
B
D
A
C
E
3
6
4
4
1
3
T
O
3 5
5
1
1
7
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 25 2007-II v1
Camino Ms Corto
Algunas Aplicaciones:
Encaminamiento de paquetes en redes de comunicacin.
Aplicaciones para Sistemas de informacin geogrficos.
Encaminamiento de camiones, aviones y trfico en general.
La matriz de mnimas distancias se usa normalmente para
evaluar la mejor entre varias combinaciones excluyentes
(que corresponden a las combinaciones posibles de nodos
i y j).
Escuela de Ingeniera
Informtica
B
D
A
C
E
3
6
4
4
1
3
T
O
3 5
5
1
1
7
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 26 2007-II v1
Camino Ms Corto
El Existe una serie de algoritmos que abordan la solucin del problema
del camino ms corto:
Algoritmo de Dijkstra.
Algoritmo de Floyd.
Estos dos algoritmos son heursticas que no aseguran un ptimo, slo
entregan una buena solucin.
El algoritmo de Dijkstra entrega el camino ms corto entre un par de
nodos determinados, mientras que el de Floyd entrega las distancias
ms cortas entre todos los pares de nodos de la red, generando una
matriz de distancias mnimas.
Escuela de Ingeniera
Informtica
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 27 2007-II v1
Algoritmo de Floyd
Sea: n : nmero de nodos (dimensin de la matriz).
C
ij
: distancia de i a j, con i,j : 1..n.
1 i=0.
2 i=i+1 C
ii
=0.
3 Calcular C
ij
j ={1,2, , n} ji
C
ij
=min {C
ij
, C
ik1
+C
k1j
, , C
ikm
+C
kmj
}
donde k
1
, , k
m
son todos los nodos para los
cuales se cumple que: C
ik
C
kj

4 Terminar cuando i=n. Si no, volver al
paso 2.
Nota:
La condicin de que: C
ik
C
kj

equivale a decir que se compare C
ij
con la
suma de C
ik
+C
kj
para todos los nodos k que
cumplen con ser adyacentes a i y ser
adyacentes a j.
For (k=1; k<=n; k++){
For (i=1; i<=n; i++){
For (j=1; j<=n; j++){
If(W[i,j]>W[i,k]+W[k,j])
W[i,j] = W[i,k]+W[k,j];
}
}
}
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 28 2007-II v1
Ejemplo
Determine las mnimas
distancias entre cada par de
estos cuatro nodos que se
presentan en la siguiente
red.
3
2
4
5
1
1
9
2
2
1
9 5 0 1
2
1
0
2
0
2
3
0
1
2
4
4
9 3
5 2
1
9 5 0 1
2
1
0
2

0
2
3
0
1
2
4
4
9 3
5 2
1
Como la red anterior posee arcos
dirigidos, la matriz inicial de distancias
no es simtrica. Adems, las distancias
que no existen se llenan con infinito ().
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 29 2007-II v1
i=0
i=1 C
11
=0
C
12
=min {C
12
, C
13
+C
32
} =min {5, 9+1} =5
C
13
=min {C
13
, C
12
+C
23
} =min {9, 5+2} =7
C
14
=min {C
14
, C
12
+C
24
, C
13
+C
34
} =min {, 5+2, 9+1} =7
i=2 C
22
=0
C
21
=min {C
21
, C
23
+C
31
} =min {5, 2+9} =5
C
23
=min {C
23
, C
21
+C
13
, C
24
+C
43
} =min {2, 5+9, 2+}=2
C
24
=min {C
24
, C
23
+C
34
} =min {2, 2+1} =2
Ejemplo (cont.)
i=3 C
33
=0
C
31
=min {C
31
, C
32
+C
21
} =min {9, 1+5} =6
C
32
=min {C
32
, C
31
+C
12
, C
34
+C
42
} =min {1, 9+5, 1+2}=1
C
34
=min {C
34
, C
32
+C
24
} =min {1, 1+2} =1
i=4 C
44
=0
C
41
=min {C
41
, C
42
+C
21
, C
43
+C
31
} =min {, 2+5, +9}=7
C
42
=min {C
42
, C
43
+C
32
} =min {2, +1} =2
C
43
=min {C
43
, C
42
+C
23
} =min {, 2+2} =4
Prof. Claudio Cubillos - INF245 Estructuras de Informacin 30 2007-II v1
Ejemplo (cont.)
La matriz final de mnimas distancias es:
7 7 5 0 1
2
1
0
2
4
0
2
3
0
1
2
4
7 4
6 3
5 2
1
Nota: La matriz final no es simtrica (distancias marcadas
en rojo) porque en la matriz original C
23
C
32
.
INF245 - Estructuras de Informacin
Prof. Claudio Cubillos
Escuela de Ingeniera Informtica - PUCV
claudio.cubillos@ucv.cl
Fin

Anda mungkin juga menyukai