mpinning gy alg10(busqueda)
DESCRIPTION
Hechas por M. Angélica PinninghoffTRANSCRIPT
1
Búsqueda en Grafos
❚ Anchura
❚ Profundidad
2
Definiciones Adicionales
❚ Def. Supongamos que R A B. La inversa de R, denotada por R-1, es la relación {(y,x)|(x,y) R}.
Ejemplo:
a b c a b c
3
❚ Def. Suponga R1 A B y R2 B C. La composición de R1 y R2, denotada por R1 R2, es la relación {(x,z)| (x,y) R1 (y,z) R2}.
Ejemplo:
a b
c
a b
c dR1 R2
4
a b
cd
R1 R2
5
❚ Def. Un grafo sin loops se llama grafo simple. El número de vértices de G se llama orden de G y el número de aristas de G se llama tamaño de G.
❚ Teorema. En cada árbol no trivial, hay al menos un vértice de grado 1.
❚ Teorema. Un grafo G es un árbol ssi G no tiene ciclos y | E | = | V | - 1.
6
Breadth First Search❚ Entrada: Grafo conexo con vértices v1, v2, ..., vn.
❚ Salida: T, árbol de cobertura de G.
❚ Algoritmo:❙ 1. (Inicio) Sea v1 la raíz de T, sea V = {v1}
❙ 2. (Agrega aristas) Para cada vértice x V, agregar la arista {x, vk} a T, donde k es el menor índice tal que al agregar la arista {x, vk} a T no se forma un ciclo. Si no hay más aristas para agregar, parar. T es el árbol de cobertura.
❙ 3. (Actualizar) Reemplazar V por los hijos v en T de los vértices x de V donde las aristas {x,v} se agregaron en el paso 2. Repetir paso 2 para el nuevo conjunto V.
7
a
b
d
c
f
e
g
ij
k
h
Ejemplo:
8
a
b
d
c
f
e
g
ij
k
h
a
G
T
9
a
b
d
c
f
e
g
ij
k
h
a
b
d
G
T
10
a
b
d
c
f
e
g
ij
k
h
a
b
d
c
G
T
11
a
b
d
c
f
e
g
ij
k
h
a
b
d
c
e
G
T
12
a
b
d
c
f
e
g
ij
k
h
a
b
d
c
f
e
g
G
T
13
a
b
d
c
f
e
g
ij
k
h
a
b
d
c
f
e
g
h
G
T
14
a
b
d
c
f
e
g
ij
k
h
a
b
d
c
f
e
g
ij
k
h
G
T
15
Depth First Search❚ Entrada: Grafo conexo con vértices v1, v2, ..., vn.
❚ Salida: T, árbol de cobertura de G.
❚ Algoritmo:❙ 1. (Visita vértice) Sea v1 la raíz de T, sea L = {v1}
❙ 2. (Encuentra aristas y vértices no visitados adyacentes a L) Para todos los vértices adyacentes a L, elegir arista {L, vk} donde k es el menor índice tal que al agregar la arista {L, vk}} a T no se forma un ciclo. Si no hay tal arista, ir a paso 3; en caso contrario agregar {L, vk}}a T y hacer L = vk. Repetir paso 2 con el nuevo valor de L
❙ 3. (Backtrack o fin) Si x es padre de L en T, hacer L = x y aplicar paso 2 al nuevo valor de L. Si L no tiene padres en T (o sea, L = v1), terminar.
16
a
b
d
c
f
e
g
ij
k
h
a
G
T
17
a
b
d
c
f
e
g
i
j
k
h
a
b
G
T
18
a
b
d
c
f
e
g
ij
k
h
a
bc
G
T
19
a
b
d
c
f
e
g
ij
k
h
a
b
d
c
G
T
20
a
b
d
c
f
e
g
ij
k
h
a
b
d
c
e
G
T
21
a
b
d
c
f
e
g
ij
k
h
a
b
d
c
f
e
G
T
22
a
b
d
c
f
e
g
ij
k
h
a
b
d
c
f
e
g
G
T
23
a
b
d
c
f
e
g
ij
k
h
a
b
d
c
f
e
g
h
G
T
24
a
b
d
c
f
e
g
ij
k
h
a
b
d
c
f
e
g
i
h
G
T
25
a
b
d
c
f
e
g
ij
k
h
a
b
d
c
f
e
g
ij
h
G
T
26
a
b
d
c
f
e
g
ij
k
h
a
b
d
c
f
e
g
ij
k
h
G
T
27
Recuerdos (Grafos planares)
❚ Teorema. Si G es un grafo plano, entonces la suma de los grados de las regiones determinadas por G es 2·|E|, donde |E| es el número de aristas de G.
❚ Fórmula de Euler. SI G es un grafo plano, entonces |V| - |E| + |R| = 2 (Euler 1752)❙ |V|: número de vértices
❙ |E|: número de aristas
❙ |R|: número de regiones
28
❚ Corolario. En un grafo conexo plano (simple) G, con |E| > 1:❙ a) |E| 3·|V| - 6, y
❙ b) hay un vértice v en G tal que grado(v) 5
❚ Teorema. Un grafo completo Kn es planar ssi n 4.
❚ Teorema. Un grafo bipartito completo Km,n es planar ssi m 2 o n 2
29
Más recuerdos (Grafos Hamiltonianos)
❚ Teorema de Dirac. Un grafo simple con n vértices (n 3) en el cual cada vértice tiene grado al menos n/2, tiene un ciclo hamiltoniano.