Grafos y Árboles
Grafos y Árboles
Grafos y Árboles
G1
G2
1
3
G3
1 y 2 son adyacentes
41 y 3 son adyacentes
GRAFO COMPLETO
G es completo si tiene n(n1)
2 arcos (Kn)
Donde Kn = el grafo
completo de n vrtices
Ej.:
1
K4
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
n=4
Kn = 6
3
K3
3
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
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.:
E
G8
NO ES CONEXO
D
A
D
F
G9
NO ES CONEXO
E
G
B
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 = (V 2,E2)
conexo tal que V1 V2 y E1 E2.
G8
E
C
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 esAbiconexo si
B no tiene puntos de articulacin.
5
G10
4
6
G11
3
C
RBOLES
Un grafo es acclico, si no tiene ciclos.
D
B
A
GRAFOS ORIENTADOS
El arco orientado <i,j> es incidente a j, incidente desde
i. El vrtice i es adyacente a j, y j es adyacente desde i.
2
<1,2> es incidente a 2
es incidente desde 1
1
3
in
) es el
CDE
no es un camino
C
ABCD
es un camino simple
ABCEA es un ciclo orientado
1
3
E
D
G20
G21
Si es fuertemente conexo No es fuertemente
conexo
H1
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
H1
2
4
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.
1
Ej.:
Raz
2
4
3
REPRESENTACIN DE
GRAFOS
1. MATRIZ DE ADYACENCIA
A = [aij] ; A : n * n
A) CASO NO ORIENTADO.1: si existe el arco (i,j) E
aij =
0: de otro modo
Ej.:
1
0 1 1 0 0
1 0 1 1 0
A1= 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
0
A0=
0
0
1
0
0
1
0
1
0
0
En general, A no es simtrica
0
0
0
0
1. MATRIZ DE ADYACENCIA
C) GRAFO (ORIENTADO O NO) CON PESOS.W(i,j) : si (i,j) E
aij =
<i,j> E
C
: de otro modo
Ej.:
1
25
10
G26
2
6
14
3
16
(C: Constante)
4
32
C
C
A5 =
C
C
25
C
C
6
C
C
10
C
C
C
C
14
C
C
32
C
C
16
C
C
Vrtice
2
1
1
2
3
N
I
L
3
2
5
N
I
L
N
I
L
N
I
L
N
I
L
2
4
1
2
4
25
N
I
L
14
N
I
L
32
N
I
L
10
16
N
I
L
N
I
L
nico
2
2
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
3
7
G
F
4
C
3
H
2
B
7
F
4
C
rbol
Vecinos
1
3
3
3
2
B
5
F
4
B
1
3
2
C
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.
La solucin del algoritmo de Dijkstra / Prim s es
ptima.
RBOLES PARCIALES DE
COSTO MNIMO
1. ALGORITMO DE DIJKSTRA / PRIM
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
ALGORITMO KRUSKAL
Ej.:
7
1
I
1
I
4
C
2
3
4
C
3
H
ARCO
IG
HC
AB
AG
GH
BC
IH
FI
GB
FA
COSTO
1
2
2
3
3
4X
4X
5
6X
7X
WT = 16 (1+2+2+3+3+5)
distancia
permanente
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 veci
aadir y, (x,y) al rbol
d (v,y) = d(v,x) + w(xy)
x=y
Fin Mientras
mplo:
2
I
4
C
5
H
SOLUCIN:
Iteracin 1:
5
G
rbol
dist (A,B) = 2
dist (A,F) = 9
dist (A,G) = 5
Iteracin 3:
4
B
9
2
G
Iteracin 2:
9
A
2
B
5
6
4
dist (A,F) = 9
Vecinos
dist (A,C) = 6
G
Vecinos
dist (A,G) = 5
dist (A,C) = 6
dist (A,F) = 9
dist (A,I) = 7
dist (A,H) = 10
Iteracin 4:
4
9
dist (A,F) = 9
dist (A,I) = 7
dist (A,H) = 10
Iteracin 5:
1
5
dist (A,F) = 8
dist (A,H) = 10
i=j
0
(i,j) =
(i,j) E (<i,j> E)
W(i,j)
(i,j) E (<i,j> E)
ntonces:
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
6
4
V1
11
V2
2
4
C06 =
3
11
2
4
C16 =10
3
7
11
2
14
10 4
C2 6= 10
3
7
6
2
9
9
4
3
C5
= 9
3
7
6
2
9
3
V3
RECORRIDO DE GRAFOS
Recorrer significa visitar cada vrtice del grafo
Esto implica examinar, visitar o procesar todos los vrtices y
arcos
del grafo PRIMERO A LO ANCHO
A.BSQUEDA
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,
as, sucesivamente.
Procedure
BFS (v)y [Breadth
First Search)
Los vrtices
soncola
visitados
en el orden
{Q es una
inicializada
en 0}de su distancia del
vrtice
de partida.
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
BFS (A)
Q:
A F B I G C H
X= A F B I G C H
(H: Vrtice ms alejado del origen A)
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