Está en la página 1de 16

Grafos 1

Tema VIII. Grafos


©2007 Carmen Moreno Valencia

1. Grafos, digrafos y multigrafos


2. Grafos eulerianos
3. Matrices de adyacencia e incidencia
4. Exploración de grafos pesados

1. Grafos, digrafos y multigrafos


Definición. Un grafo G es un par ordenado
G=(V,A), donde V es un conjunto cuyos
elementos se llaman vértices y A es el
conjunto de aristas que conectan dichos
vértices.
• u,v ∈V : adyacentes : uv∈A
u v
Ejemplo 1
ei: empleados de una fábrica, i=1,2,3,4,5
tj: tareas, j=1,2,3,4
eitj ∈A : empleado ei está capacitado para
realizar la tarea tj
Grafos 2

V={e1, e2, e3, e4, e5, t1, t2, t3, t4}


A={e1t1, e2t1, e2t3, e3t1, e3t2, e3t3, e4t2, e5t3, e5t4}
9 Multigrafo

Es un grafo que puede contener más de una


arista entre dos vértices.
V={v1, v2, v3}, A={v1v2,v1v2, v2v3, v1v3, v1v3}
9 Pseudografo
V={v1, v2, v3}
A={v1v1, v1v2,v2v2, v2v3}
9 Digrafo ó grafo dirigido Grafos 3

A cada arista se le asigna un orden de sus


extremos (flechas).
v1 v1

v2 v3 v2 v3
G=(V,A) G´=(V´,A´)
V=V´={v1, v2, v3}. A={v1v2, v2v3, v3v1},
A´={v2v1, v3v1, v2v3}
¾ Grado de un vértice
G=(V,A). Se llama grado del vértice u ∈V al
número de aristas que tienen a u por extremo.
¾ Isomorfismo de grafos
Sean G=(V,A) y G´=(V´,A´). Un isomorfismo
de G en G´es una aplicación f: VÆV´ biyectiva
que cumple: uv ∈A ⇔ f(u)f(v) ∈A´
• f preserva la adyacencia
• C.N: G y G´deben tener el mismo nº vértices
Grafos 4
Los grafos G y G´son isomorfos:
y u1 u2

x
z t u4 u3
G=(V,A) G´=(V´,A´)
f: V → V´
x 6 f ( x ) = u1
y 6 f ( y ) = u2
z 6 f ( z ) = u3
t 6 f (t ) = u4
Proposición. Si los grafos G y G´ son
isomorfos y u∈V, entonces gr(u)=gr(f(u))
•f preserva el grado

G no isomorfo a G´
Grafos 5

G no isomorfo a G´
Teorema.(Primer teorema de la teoría de grafo
Sean G=(V,A) un grafo y V={v1, ..., vp} el
conjunto de sus vértices. Entonces
i =p

∑ gr (v ) = 2 ⋅ car ( A) (cantidad par)


i =1
i

• El nº de vértices de grado impar de un grafo


es cero o un número par
¾ Grafo Regular
Todos sus vértices tienen el mismo grado k
(k-regular)
•Un isomorfismo de grafos conserva la
regularidad.
Grafos 6
¾ Grafo Completo
Cada par de vértices son adyacentes.
•Dos grafos completos con el mismo nº de
vértices son isomorfos.
•Grafo completo de n vértices (y sus isomorfos)
Kn:

K3 K4 K5
• Todo grafo completo es regular.
2. Grafos eulerianos
¾ Camino
C= (v0, v0v1, v1, v1v2, v2, .., v n-1vn, vn)
•Conecta vo con vn C= (v0, v1, ...., vn)
•Longitud =nº aristas
•Cerrado : v0=vn Simple: No repite vértices
Grafos 7
¾ Circuito
Camino cerrado que no repite aristas
¾ Grafo conexo
Para cada par de vértices, existe un camino
que los conecta. (Una componente conexa)
¾ Circuito Euleriano
Camino cerrado/ Todas las aristas/ Sin repetir
¾ Camino Euleriano
Camino / Todas las aristas/ Sin repetir
¾ Grafo Euleriano
Grafo que contiene un circuito euleriano.
Los siete Puentes de Königsberg
C

A
B

D
(s. XVIII) Leonard Euler (1736)
Grafos 8

Trataban de
encontrar un circuito
euleriano en el grafo

G
Teorema 1
Sea G un grafo conexo. G posee un circuito
euleriano (G es euleriano) si y sólo si todos
sus vértices tienen grado par.

Teorema 2
Sea G un grafo conexo. G posee un camino
euleriano si y sólo si tiene exactamente dos
vértices de grado impar.
¾ Búsqueda de un circuito euleriano
• Construir un circuito inicial en G
• Insertar en él nuevos circuitos, hasta recorrer
todas las aristas
Grafos 9
¿Es G euleriano?. Encontrar un circuito
euleriano en G. j

b
e i
a c
f h
d

g G=(V, A)

1) Circuito g=(a, b, c, d, a) Borramos las


aristas recorridas por g:
j
b
e i
a c
f h
d G´=(V, A´)
g A´π∆
Grafos 10
2) En G´construimos un circuito g´que
comience por un vértice de g (vertice b)
g´=(b, i, c, h, d, f, a, e, b) Y lo insertamos en
g=(a, b, c, d, a) :
g∪g´=g1= (a, [b, i, c, h, d, f, a, e, b ], c, d, a)
Borramos las aristas recorridas por g1
j

b i
e
a c
f d h

g G´´=(V,A´´)
A´´ π∆
3) En G´´ construimos un circuito g´´ que
comience por un vértice de g´ (vertice i)
Grafos 11

g´´=(i, h, g, f, e, j ,i) Y lo insertamos en


g1= (a, [b, i, c, h, d, f, a, e, b ], c, d, a):
g1 ∪g´´=g2=
(a, [b, [i, h, g, f, e, j ,i ], c, h, d, f, a, e, b ],c,d,a)
Borramos las aristas recorridas por g2:

e b i
a c
f d h

g G´´´=(V,A´´´)
A´´´=∆
g2: Circuito euleriano
Grafos 12
3. Matriz de adyacencia y de incidencia

¾ Matriz de adyacencia de un grafo


G=(V, A), V={v1, v2, ..., vp}.
M=(aij) ∈Mp dada por:
1 si vi v j ∈ A (adyacentes )
aij = 
0 si vi v j ∉ A ( No adyacentes )

v1
v4
0 1 1 1
1 0 1 0
v M =  
v3 2 1 1 0 0
 
1 0 0 0
¾ Matriz de adyacencia de un digrafo
M=(aij) ∈Mp
aij = 1 si vi v j ∈ A y vi → v j

0 si vi v j ∉ A o vi v j ∈ A , pero v j → vi
Grafos 13
v1
v4
0 1 0 0
0 0 1 0
v3 v2 M = 
1 0 0 0
 
1 0 0 0

¾ Matriz de adyacencia de un multigrafo


aij indica el número de aristas que conectan el
vértice i con el j.
El valor cij de Mn indica el nº de caminos de
longitud n que conectan el vértice vi con vj.
¾Matriz de incidencia vértice-arista
de un Grafo
G=(V,A), V= {v1, v2, ..., vp}, A={a1, a2, ..., ar}
Z=(zij) ∈Mpxr
1 la arista a j incide enel vertice vi
zij = 
0 en otro caso
Grafos 14
¾Matriz de incidencia de un Digrafo
Z=(zij) ∈Mpxr
1 vi es vertice inicial de la arista a j

zij = −1 vi es vertice final de la arista a j
0 en otrocaso

a5
v1
v4
1 0 1 1 1
a1 0
a3
a4 1 1 1 0
Z = 
1 1 0 0 0
v2  
v3 a2 0 0 0 0 1

v1 a4
 −1 0 1 −1
v4  0 1 −1 0 
a1 a3 Z = 
 1 −1 0 0 
 
0 0 0 1
v3 a2 v2
4. Exploración en grafos pesados Grafos 15

¾ Grafos pesados. Optimización


• Árbol de Expansión Mínimo
• Ruta más corta: Algoritmo de DIJKSTRA
• Flujo máximo
Algoritmo del Árbol de Expansión Mínimo
¾ Árbol:
•Grafo conexo y sin ciclos
•Dado dos vértices, existe un único
camino simple que los conecta
•Ejemplo: Red de ferrocarril
¾ Árbol de expansión de un grafo: árbol
que contiene todos los vértices del grafo
¾ Árbol de expansión mínimo en un grafo
pesado: árbol que contiene todos los vértices
del grafo y cuyo peso sea mínimo.
Algoritmo S Conectados en un arbol A
V =
S sin conectar
•En cada iteración se describe el estado: S, A, S
Grafos 16
Inicio Fin

S=∆ S=V
(Conectados Arbol) (Conectados Arbol Exp.Min.)
S =V S=∅
(Sin conectar) (Sin conectar)
Criterio: En cada iteración se transfiere a S el
vértice de S más próximo al arbol -”bloque”
Ej.

También podría gustarte