Documente Academic
Documente Profesional
Documente Cultură
Un grafo G es un par ordenado G (V,E), donde: V es un conjunto no vacio, cuyos elementos son llamados vrtices. E es un conjunto de pares de elementos de V, que son llamados arcos Ej.:
2
G1
1 3 b
G2
c
G2 = (v2,E2)
G3
4 2
2. El grado o valencia del vrtice i (di) es el nmero de arcos incidentes sobre i. Ej.: En G3.- d1 = 3, d2 = 2, d3 = 2, d4 = 1
GRAFO COMPLETO
G es completo si tiene n(n-1) 2 arcos (Kn) Donde Kn = el grafo completo de n vrtices Ej.:
1
SUBGRAFO: Dado un grafo G, el grafo no orientado H = (V1,E1) es un subgrafo de G = (V,E) si V1 V, E1 E Ej.: Un subgrafo de K4 es:
1
K4
3 4
n=4 Kn = 6
3
K3
K3 es subgrafo de K4
CAMINO
CAMINO: Un camino del vrtice i1 al vrtice ik es una secuencia de vrtices P = i1 i2 i3 i4ik, tal que (ij, ij+1) E, j = 1,2, .. , k-1 Ej.: En K4, P = 1,2,4 es un camino de 1 a 4. CAMINO SIMPLE: El camino P es simple si ningn vrtice se repite, exceptuando posiblemente el primero y el ltimo vrtices, y los arcos son diferentes. Ej.: en K4, P = 1,2,1 (no es camino simple) P = 1,2,3,1 (si es simple y es un camino cerrado) P = 1,2,3,4 (es simple)
CICLO
Un ciclo es un camino simple y cerrado (los vrtices extremos son idnticos) Ej. En k4: P = 2,3,1,2 es ciclo P = 2,3,1,4,2 es ciclo
GRAFO CONEXO
Un grafo G = (V,E) es conexo (conectado), si para cada par de vrtices distintos i,j, existe un camino de i a j. Ej.:
B E
G8
A D A C
NO ES CONEXO
F
D F E G
G9
B
NO ES CONEXO
C
COMPONENTE CONEXO
El subgrafo G1 = (V1,E1) del grafo G = (V,E) es una componente conexa, si G1 es un subgrafo conexo maximal, esto es, no existe un subgrafo G2 = (V2,E2) conexo tal que V1 V2 y E1 E2.
E C F
G8
A D
BICONEXIDAD
1. v es un punto de articulacin para un grafo G si existen vrtices distintos x y w <> v, tal que v est en todo camino de x a w. 2. G es biconexo si no tiene puntos de articulacin.
A
B
1 3 2 4
G10
C D
G11
RBOLES
Un grafo es acclico, si no tiene ciclos.
B A C D
GRAFOS ORIENTADOS
El arco orientado <i,j> es incidente a j, incidente desde i. El vrtice i es adyacente 2 a j, y j es adyacente desde i.
1 3
in
INVALENCIA: El grado de entrada del vrtice i (di ) es el nmero de arcos incidentes a i. EXVALENCIA: El grado de salida del vrtice i (di ) es el nmero de arcos incidentes desde i.
out
G es completo, si tiene n(n-1) arcos K0n Un Subgrafo es otro grafo con un subconjunto de vrtices del conjunto de vrtices. Un camino orientado es una secuencia de vrtices Un ciclo orientado es un camino orientado, donde el vrtice inicial es a su vez el vrtice final. El ciclo orientado a su vez se conoce como Circuito.
2 A
3 E D
Un grafo es fuertemente conexo si para cada par de vrtices distintos i j existe un circuito que los contiene. Ej.: 1 1
2 4 3 2 4 3
H2 H1
G22
Una secuencia de vrtices P = i1, i2, , ik, es un semicamino o cadena en G si <ij, ij+1> E <ij+1, ij> E, ambos estn en E.
1 4 3 2
G23
P = 1,2,3,4 es un semicamino Semicamino simple: es un camino en el cual, ningn vrtice o arco se repite. Semiciclo: es un semicamino simple cerrado
Un grafo orientado G = (V,E) es dbilmente conexo si para cada par de vrtices distintos i j existe un semicamino en G de i a j. Ej.:
H1
2 4
H2
G24
G23 s es dbilmente conexo G24 no es dbilmente conexo
RBOL ORIENTADO
Un rbol orientado es un grafo orientado que es dbilmente conexo y que no posee semiciclos. Ej.: G23
RBOL CON RAIZ: Un rbol con raiz o enraizado es un rbol orientado en la que un solo vrtice tiene grado de entrada 0 y los otros tienen grado de entrada 1. Ej.: 1
Raz
2 4 3
REPRESENTACIN DE GRAFOS
1. MATRIZ DE ADYACENCIA
A = [aij] ; A : n * n A) CASO NO ORIENTADO.-
A=
3 5 4
0 1 1 0 0
1 0 1 1 0
1 1 0 0 1
0 1 0 0 1
0 0 1 1 0
1. MATRIZ DE ADYACENCIA
B) CASO ORIENTADO.-
1: si <i,j> E
aij = 0: de otro modo Ej.:
1 2
A=
4 3
0 0 0 0
1 0 0 1
0 1 0 0
0 0 0 0
En general, A no es simtrica
1. MATRIZ DE ADYACENCIA
C) GRAFO (ORIENTADO O NO) CON PESOS.-
W(i,j) :
aij = C Ej.:
1 25 2
6 10 14 4 32 5
G26
3 16
A=
C C 5 C C
25 C C 6 C
C 10 C C C
C 14 C C 32
C C 16 C C
Vrtice
4 5
3 5
10 16
2 1
2
1
1
2
2
Un arco candidato del vrtice vecino y, es el arco (x,y) con x vrtice del rbol que es de peso mnimo.
El algoritmo sera: Seleccionar un vrtice vecino Mientras hay vrtices vecinos hacer: Seleccionar un arco de peso mnimo entre un vrtice de rbol y un vrtice vecino. Aadir tal arco y vrtice vecino al rbol Fin Mientras
2 3 1
G
6 3 4
H
4
C
5
I
2
A
B G A
3
7
G F
3 7
2
B
4
C
rbol
Vecinos
1
G
I G H
1
3
A
3
A
3 7
F
3 5
H F
2
B
2
C
4
B
1
G
5
F
3
A
2
C
2
B
WT = 16
ALGORITMO VORAZ
Un algoritmo voraz es un algoritmo para problemas de
optimizacin en la que se hacen elecciones ptimas localmente en cada paso. El resultado final no es necesariamente ptimo. El algoritmo de Dijkstra / Prim es voraz.
ALGORITMO KRUSKAL
Ej.:
7
F A
2 3 1
G
6 3 4 2
H
4
C
5
I
7
F
3 1
I G
6
3 4
H
4
C
ARCO IG HC AB AG GH BC IH FI GB FA
COSTO 1 2 2 3 3 4 X 4 X 5 6 X 7 X
WT = 16 (1+2+2+3+3+5)
k-1
PROBLEMA: Sea G = (V,E,W) un grafo con pesos, y sean v, w V. Hallar un camino ms corto de v a w.
SOLUCIN: Utilizando el siguiente algoritmo de Dijkstra: Sea z un vrtice vecino, tal que z es adyacente a por lo menos un vrtice del rbol Vk, entonces existe un camino ms corto de v a vk. Sea P = v, v1, v2, , vk un camino => P= v, v1, v2, , vk, Z es un camino de v a z dist (v,z) = d (v,vk) + w(vkz)
distancia temporal distancia permanente
El algoritmo: x=v Mientras x w hacer Seleccionar un arco candidato xy tal que dist (v,y) = d (v,x) + w(xy) es mnimo entre todos los vrtices vecinos aadir y, (x,y) al rbol d (v,y) = d(v,x) + w(xy) x=y Fin Mientras Ejemplo:
A
2
5 2
G
9
F
6 5
4
C
1
I
5
H
SOLUCIN:
Iteracin 1: 2
A B F
G
Iteracin 3: 4
B C F I
9 5
2
A
rbol Iteracin 2: 9
A
Vecinos
5
G
2 5
5 6 4
2
B
dist (A,G) = 5
dist (A,F) = 9
dist (A,C) = 6
dist (A,I) = 7
dist (A,H) = 10
Vecinos
4
B
2
A
5
G
4
B
Iteracin 5:
2
A
dist (A,F) = 8
1
G
5
2
I
dist (A,H) = 10
Hallar los caminos ms cortos entre todos los pares de vrtices i, j, tal que i j, utilizando el algoritmo de Warshall. Ck(i,j) = longitud de un camino ms corto de i a j que no pasa por vrtices intermedios con ndices mayor que k C0(i,j) = W(i,j) i=j (i,j) E (<i,j> E) (i,j) E (<i,j> E)
Supongamos que ya se gener Ck-1, para generar Ck se consideran dos casos: 1. El camino ms corto de i a j que no pasa por ningn vrtice intermedio mayor a k, tampoco pasa por k, entonces su costo es Ck-1(i,j) 2. El camino ms corto de i a j que no pasa por ningn vrtice intermedio mayor a k, s pasa por k, entonces su costo es Ck-1(i,k) + Ck-1(k,j) Entonces: Ck(i,j) = min (Ck-1(i,j), Ck-1(i,k) + Ck-1(k,j) k >= 1
ALGORITMO DE WARSHALL: FOR K = 1, N FOR I = 1, N FOR J = 1, N C (i,j) = min {C(i,j), C(i,k) + C(k,j)} END END END
C0 = 6 3
11 2 11 2 14
6
4 11 3
4 C1 = 6 10 3 7
V2 2
V1
10 4 C2 = 6 10 3 7
9 C3 = 5 3 4 9 7
6 2 9
6 2 9
V3
RECORRIDO DE GRAFOS
Recorrer significa visitar cada vrtice del grafo Esto implica examinar, visitar o procesar todos los vrtices y arcos del grafo A. BSQUEDA PRIMERO A LO ANCHO Se realiza una bsqueda por niveles. Se visitan los vrtices que estn ms cerca al vrtice de partida, luego, los vrtices que estn a continuacin del vrtice de partida, y as, sucesivamente. Los vrtices son visitados en el orden de su distancia del vrtice de partida.
Procedure BFS (v) [Breadth First Search) {Q es una cola inicializada en 0} Visitar, marcar v Insertar v en Q Mientras Q 0 hacer x = valor en el frente de la cola eliminar x de Q Para cada vrtice w adyacente a x no marcado hacer visitar y marcar w insertar w en Q Fin Para Fin Mientras
PROCEDURE DFS (v) [Depth First Search] Visitar y marcar v Mientras hay un vrtice w no marcado adyacente a v hacer DFS (w) Fin Mientras
N I L
N I L
DFS (A) v, mA DFS (B) v, mB DFS (C) v, mC DFS (H) v, mH DFS (I) v, mI DFS (G) v,mG Fin Fin Fin Fin Fin DFS (F) v, mF