Beruflich Dokumente
Kultur Dokumente
GRAFOS
Se consideran los rboles como una generalizacin del concepto de lista porque permiten que un
elemento tenga ms de un sucesor. Los grafos aparecen como una extensin del concepto de rbol, ya
que en este tipo de estructura cada elemento puede tener, adems de ms de un sucesor, varios
elementos predecesores. Esta propiedad hace a los grafos la estructura ms adecuada para representar
situaciones donde la relacin entre los elementos cambia segn el contexto.
El origen de la palabra grafo es griego y significa "trazar". Un grafo es con frecuencia la respuesta a
problemas de la vida cotidiana. Algunos ejemplos podran ser: un grfico de una serie de tareas a
realizar indicando su secuenciacin (un organigrama), grafos matemticos representando las relaciones
binarias, una red de carreteras o de trnsito, la red de enlaces ferroviarios o areos, la red elctrica de
una ciudad, sistemas de telecomunicaciones, circuitos impresos o redes de computadores. En muchos
casos un problema es conveniente representarlo grficamente como un conjunto de puntos (nodos o
vrtices) conectados por lneas (arcos) segn los requerimientos.
Hoy en da es rara la disciplina cientfica o humanstica que no utilice la teora de grafos. se puede citar
la sicologa en dinmica de grupos, la sociologa en los sociogramas, la fsica terica que emplea los
diagramas de Feynmann, donde se presenta mediante lneas las partculas elementales, en
programacin lineal e investigacin operativa el estudio de flujo en redes, los cambios de variables en
82
Definicin. Un grafo lineal (o simplemente un grafo), es una dupla G=(V,E), donde V={v1, v2, v3,
..., vn} es un conjunto de vrtices, y E={e1, e2, e3, ..., en} es un conjunto de arcos.
Los vrtices contendrn informacin referente a objetos, mientras que los arcos establecen
dependencia entre los objetos a los que relaciona directamente. Un arco queda determinado por los
vrtices a los que une. Cada arco ej esta identificado con un par de vrtices (vi, vi+1).
Ejemplo. En la figura 7.1 el arco e7 o V3V4 es enlace entre V3 y V4; el arco e6 o V2V4 es enlace entre
V2 y V4.
Notese que la definicin no inhibe que un par de vrtices tengan asociados dos o ms arcos diferentes
e7 y e10, en este caso se dice que los arcos son paralelos. El arco e9 en la figura 7.1 es llamado loop.
Si se desea representar mediante un grafo la red de vuelos de una compaa area entre diferentes
ciudades, tendramos el siguiente grafo G = {V, A}; V = {Bogot, Neiva, Cali, Medelln}; A =
{(Bogot, Neiva), (Bogot, Medelln), (Neiva, Medelln), (Cali, Medelln)}.
Un grafo G es un conjunto en el que hay definida una relacin binaria, G=(V,R) tal que V es un
conjunto de objetos a los que se denominan vrtices o nodos y R 0VxV es una relacin cuyos
elementos se denominan arcos o enlaces.
Dados x, y en V, puede ocurrir que:
*
(x,y) 0R, en cuyo caso se dir que x e y estn unidos mediante un arco.
*
(x,y) _ 0R, en cuyo caso se dir que no lo estn.
La ms comn representacin de un grafo es por medio de una figura o diagrama en la cual los vrtices
se representan por puntos o crculos y los arcos por un segmento de lnea. Un grafo se usa para
representar situaciones fsicas envolviendo objetos discretos y relaciones entre ellos. Se usan en
ingeniera, en fsica, en ciencias biolgicas y sociales, en lingstica y numerosas reas.
Problema del puente KONIGSBERG
Es el mejor ejemplo de teora de grafos, fue solucionado por Leonard Euler (1707-1783) en 1736. Dos
islas C y B se hallan en el ro Pregel en Konigsberg (la capital del este de Prusia, pero llamada
Kaliningrad en el oeste de Rusia sovitica) fueron conectadas la una a la otra y a las orillas por siete
puentes (figura 7.2). El problema es iniciar en cualquiera de las reas A, B, C o D y caminar por cada
Luis Carlos Torres Soler
Estructuras de Datos
uno de los siete puentes exactamente una vez, y retornar al punto de partida.
83
La naturaleza y valor de los elementos que forman la red, tales como resistencias, inductores,
transistores.
2.
Puesto que hay pocos tipos diferentes de elementos elctricos, la variacin en la red son
principalmente vistos en la variacin de la topologa. As, el anlisis de la red elctrica y la sntesis son
principalmente el estudio de la topologa de red.
Problema de asientos
Nueve miembros de un club se renen cada da a almorzar en una mesa redonda. Ellos deciden
sentarse de tal manera que cada miembro tenga diferentes vecinos cada da. Cundo vuelven a tener
un mismo ordenamiento? Esta situacin se representa en el grafo de la figura 7.5.
Facultad de Ingeniera
84
En general, para n personas el nmero posible de ordenamientos es: (n-1)/2 si n es impar y (n-2)/2 si n
es par.
Un ejemplo de grafo dirigido lo constituye la red de aguas de una ciudad ya que cada tubera slo admite que el
agua la recorra en un nico sentido, por el contrario, la red de carreteras de un pas representa en general un
grafo no dirigido, puesto que una misma carretera puede ser recorrida en ambos sentidos.
Luis Carlos Torres Soler
Estructuras de Datos
85
En un grafo, algunos arcos pueden mostrar interseccin para un punto que no representa un vrtice, debe
Facultad de Ingeniera
86
Un grafo tambin es llamado un lineal complejo, 1-complejo, o unidimensional complejo. Un vrtice
es referenciado como un nodo, una juncion, un punto, 0-celda, 0-simple. Trminos usados para un arco
son: lnea, 1-celda, 1-simple.
mejorarse el diagrama.
Luis Carlos Torres Soler
Estructuras de Datos
Dem. Considerando los vrtices con grados par e impar por separado, se tiene que:
87
El nmero de elementos de V se denomina orden del grafo, un grafo nulo es un grafo de orden cero.
Facultad de Ingeniera
incidente en los vrtices vi1' y vi2' que corresponden a vi1 y vi2 respectivamente.
88
Estructuras de Datos
89
Ningn arco puede aparecer ms de una vez en la cadena. (un vrtice, sin embargo, puede aparecer
ms de una vez).
El conjunto de vrtices y arcos constituyendo la cadena es un subgrafo claramente. Los vrtices con
los cuales inicia y termina la cadena son llamados vrtices terminales.
Si una cadena inicia y termina en el mismo vrtice, es cerrada, es un bucle o simplemente ciclo.
Una cadena en la cual ningn vrtice aparece ms de una vez es llamado camino.
El nmero de arcos en el camino, indica la longitud del camino.
Una cadena cerrada en la cual ningn vrtice (excepto el inicial y final) aparecen ms de una vez se
llama circuito.
Un nodo N se dice alcanzable desde un nodo M, si y slo si, existe un camino desde M hasta N.
Ms formalmente, un nodo N se dice alcanzable desde un nodo M si:
1) N y M son el mismo nodo.
2) N es alcanzable desde algn nodo que sea sucesor de M.
Para cada nodo de un grafo existe un conjunto de nodos alcanzables desde ese nodo, denominado
conjunto alcanzable.
Un nodo N se dice directamente alcanzable desde un nodo M, si y slo si, son adyacentes y N es el
sucesor de M.
Definicin. Un grafo se dice conexo si desde cualquier vrtice puede llegarse a todos los dems.
Se llama componente conexa a un conjunto de vrtices de un grafo tal que entre cada par de vrtices
hay al menos un camino y si se aade algn otro vrtice esta condicin deja de verificarse.
Matemticamente se puede ver que la conexin es una relacin de equivalencia que descompone a V
en clases de equivalencia, cada uno de los subgrafos a los que da lugar cada una de esas clases de
equivalencia constituira una componente conexa4.
Definicin. Un digrafo se dice fuertemente conexo si desde cualquier vrtice puede llegarse a todos los
dems.
Definicin. Un grafo o digrafo se dice que es dbilmente conexo, si por lo menos existe un vrtice
desde el cual no puede llegarse a los dems.
Definicin. Un grafo es disconexo si por lo menos existe un punto aislado o existe un conjunto de
vrtices a los cuales no puede visitarse nunca.
4
Un grafo se dice conexo, si slo existe una componente conexa que coincide con todo el grafo.
Facultad de Ingeniera
90
Teorema. Un grafo G es disconexo, si y slo si, su conjunto de vrtices V puede ser particionado en
dos conjuntos no vacos V1 y V2, tal que no existe arco alguno ex en G cuyos vrtices a1 y a2, se de que
a1 este en V1 y a2 en V2.
Un grafo conexo acclico no dirigido es un rbol libre. Un rbol libre puede convertirse en un rbol
general si se elige cualquier nodo deseado como raz y se orienta el cada arco desde l.
Los rboles libres tienen dos propiedades interesantes:
Estructuras de Datos
91
Al final D contendr el costo del camino mnimo entre el origen y cada vrtice.
*
*
C es la matriz de costos del grafo. C [1,i] representa el costo del arco (1,i). Si el arco no
existe, se le asigna un valor fuera de rango ( )
P es un vector de dimensin n a travs del cual se reconstruir el camino ms corto del origen
al resto de los vrtices. As P[i] contiene el vrtice inmediato anterior a i en el camino ms
corto.
Facultad de Ingeniera
92
S= {1}
D[2]=60; D[3]=10; D[4]=100; D[5]=
P[i]=1 _ i
Iteracin 1:
V -S = {2,3,4,5}, w =3 -> S = {1,3} -> V -S = {2,4,5}
D[2] = min(D[2], D[3] + C[3,2]) = min(60, 50) = 50 -> P[2] = 3
D[4] = min(D[4], D[3] + C[3,4]) = min(100, 40) = 40 -> P[4] = 3
D[5] = min(D[5], D[3] + C[3,5]) = min ( , )=
Luis Carlos Torres Soler
Estructuras de Datos
93
Iteracin 2:
V -S = {2,4,5}, w = 4 -> S = {1,3,4} -> V- S = {2,5}
D[2] = min(D[2], D[4] + C[4,2]) = min(50, ) = 50 -> P[2]=3
D[5] = min(D[5], D[4] + C[4,5]) = min( ,60) = 60 -> P[5]=4
As D[2]=50; D[5]=60; p[2]=3; P[5]=4
Iteracin 3:
V -S = {2,5}, w = 2 -> S = {1,3,4,2} -> V- S = {5}
D[5] = min(D[5], D[2] + C[2,5]) = min(60, 58) = 58 -> P[5]=2
As D[5]=58; P[5]=2
Finalmente w = 5 -> S = {1,3,4,2,5} -> FIN DEL ALGORlTMO
Para reconstruir el camino ms corto del origen a cada vrtice, se asignan los predecesores en orden
inverso. Por ejemplo, si se quiere conocer el camino desde el origen al vrtice S, se tiene que:
P[5]=2-+ P[2]=3-+P[3]=1 siendo por tanto el camino (1,3,2,5) con costo 58.
Aunque la implementacin de este algoritmo es simple al realizarla con base a una matriz de
adyacencia, en la prctica se utiliza normalmente una implementacin con base a listas de adyacencia.
La razn de esta eleccin es que en la primera la eficiencia es O(n2) para cualquier grafo; sin embargo,
la mayora de los grafos encontrados en la prctica tiene un nmero de arcos bastante pequeo (grafos
que pueden denominarse dispersos o no densos) y por tanto el uso de listas de adyacencia se presenta
como una solucin ms eficiente. Para conseguir una mejor eficiencia en la implementacin del
algoritmo de Dijkstra se ha echado mano de una estructura de datos formada por un APO que tiene
como etiqueta los vrtices del grafo y como clave el coste de ir desde el vrtice inicial en el problema a
ese vrtice de tal forma que obtener el vrtice con mnimo coste sera O(log n).
Bsqueda entre cada par de vrtices del grafo.
En lugar de buscar los caminos mnimos de un vrtice a los dems podemos plantear, buscar el camino
ms corto entre cualquier par de vrtices, es decir, dado un grafo dirigido etiquetado G = {V, A} en el
que las etiquetas son no negativas encontrar el camino de longitud ms corta entre dos vrtices
cualesquiera de ese grafo.
Podra pensarse, para resolver el problema, en aplicar el algoritmo de Dijkstra n veces, una por vrtice,
pero en lugar de eso, se aplica un nuevo algoritmo creado por Floyd que va encontrando los caminos
de forma iterativa.
Notacin:
*
*
Facultad de Ingeniera
94
*
*
camino que va de i a j.
P es una matriz de tamao n x n que se utiliza para recuperar los caminos ms cortos.
C es una matriz de dimensin n x n conteniendo los costos de los arcos. Si no existe arco de
un vrtice i a otro j el correspondiente valor C[i,j]=?
95
Estructuras de Datos
07* 5*
0 0 0 0 0
* 0 2 * _6
0 0 0 0 _0
A0 = 5 * 0 * *
P0 = 0 0 0 0 0
** 30 8
0 0 0 0 0
* * 7 * _0
0 0 0 0 _0
07* 5*
0 0 0 0 0
+ 0 2 _* 6
0 0 0 0 _0
A1 = 5 [12] 0 [10] *
P1 = 0 [1] 0 [1] 0
+* 3 0*
0 0 0 0 0
+* 7 * 0
0 0 0 0 _0
Facultad de Ingeniera
A2 =
A3 =
0 7 [9] 5 [13]
0 0 [2] 0 2
+ 0 _2 * 6
0 0 0 0 _0
5 12 0 10 18
P1 = 0 1 0 1 [2]
+ * 3 0 _*
0 0 0 0 0
+* 7 * 0
0 0 0 0 _0
0 7 9 5 [13]
0 0 2 0 2
[7] 0 2 [12] 6
3 0 0 3 _0
P1 =
5 12 0 10 18
0 10 12
0 7 [8] 5 13
0 0 [4] 0 2
7 0 2 12 6
3 0 0 3 _0
A4 = 5 12 0 10 18
P1 =
96
0 10 12
8 15 3 0 _ 21
3 30 0 3
12 19 7 17 0
3 3 0 3 _0
0 7 8 5 13
0 0 4 0 2
7 0 2 _12 6
3 0 0 3 _0
A5 = 5 12 0 10 18
P1 = 0 1 0 1 2
8 15 3 0 21
3 30 0 3
12 19 7 17 0
3 3 0 3 _0
Estructuras de Datos
1. k= P[i,j]
2. SI (k 0)
{
recuperar_camino (i, k)
escribir (k)
recuperar_camino (k, j)
}
97
98
Es una representacin orientada hacia grafos que no modifica el nmero de sus vrtices ya
que una matriz no permite que se le o supriman filas o columnas.
Se puede producir un gran derroche de memoria en grafos poco densos (con gran nmero de
vrtices y escaso nmero de arcos).
Operaciones en grafos
Como en el caso de muchas entidades matemticas, es conveniente considerar un gran grafo como la
combinacin de uno o ms subgrafos y derivar sus propiedades de ellos.
Sean los grafos G1=(V1,A1) y G2=(V2,A2)
G = G1 G2 = (V1 V2, A1 A2)
G = G1 G2 = (V1 V2, A1 A2)
Si G1 y G2, son disjuntos-arcos, entonces G1 G2 = grafo nulo.
Si G1 y G2, son disjuntos-vrtices, entonces G1 G2 es vaco.
Un grafo G se dice que puede ser descompuesto en dos subgrafos g1 y g2 si, g1 g2 = G y, g1 g2 =
grafo nulo.
Definicin. Un rbol es un grafo conexo sin circuitos.
Teorema. Un rbol con n vrtices tiene n-1 arcos.
Luis Carlos Torres Soler
Estructuras de Datos
99
En 1987, Arthur Cayley descubri rboles mientras contaba el nmero de isomeros estructurales de
hidrocarburos saturados CkH2k+2. Se usa un grafo conexo para representar la molcula CkH2k+2.
correspondiendo a su valencia qumica, un carbono puede ser representado por un vrtice de grado 4 y
el hidrgeno por un vrtice de grado 1. El nmero total de vrtices en tal grafo es n=3k+2, y el nmero
de arcos es 1/2(suma de grados)=1/2(4k+2k+2)=3k+1.
As el problema de conteo de isomeros estructurales de un hidrocarburo es contar rboles. La primera
pregunta de Cayley; Cul es el nmero de diferentes rboles que se pueden construir con n distintos
vrtices?
Teorema. El nmero de rboles marcados con n vrtices (n>=2) es nn-2.
Cubo unitario y su grafo
Hay exactamente m distintas marcas que difieren en una posicin. Por tanto cada vrtice en
Qm es de grado m. As Qm es un grafo regular de n=2m vrtices y m*2m-1 arcos.
2.
La distancia d(vi,vj) entre dos vrtices vi y vj, en un m-cubo, es igual al nmero de posiciones
en que los labels de vi y vj difieren.
3.
Facultad de Ingeniera