Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
GRAFOS
2
ARISTAS y VERTICES
• Si la arista carece de dirección se denota indistintamente
{a,b} o {b,a}, siendo a y b los vértices que une.
• Si {a,b} es una arista, a los vértices a y b se les llama
sus extremos.
• Dos vértices v, w se dice que son adyacentes si
{v,w}V (o sea, si existe una arista entre ellos)
• Llamaremos grado de un vértice al número de aristas de
las que es extremo. Se dice que un vértice es ‘par’ o
‘impar’ según lo sea su grado.
3
CAMINOS
• Sean x, y V, se dice que hay un camino en G de x a y
si existe una sucesión finita no vacía de aristas {x,v1},
{v1,v2},..., {vn,y}. En este caso.
– x e y se llaman los extremos del camino
– El número de aristas del camino se llama la longitud del camino
– Si los vértices no se repiten el camino se dice propio o simple.
– Si hay un camino no simple entre 2 vértices, también habrá un
camino simple entre ellos
– Cuando los dos extremos de un camino son iguales, el camino
se llama circuito o camino cerrado o ciclo (sin aristas repetidas).
– Llamaremos ciclo a un circuito simple (no existen vertices
repetidos excepto el primero y el ultimo)
– Un vértice a se dice accesible desde el vértice b si existe un
camino entre ellos. Todo vértice es accesible respecto a si
mismo
4
EJEMPLOS DE GRAFOS
5
EJEMPLOS DE GRAFOS
6
EJEMPLO DE GRAFOS
• Grafo completo: Aquel con una arista entre cada par de vértices. Un
grafo completo con n vértices se denota Kn.
7
EJEMPLOS DE GRAFOS
8
MATRIZ DE ADYACENCIA
• La suma de los grados de los vértices es igual al doble
del número de aristas
• Sea G un grafo de orden n. Llamaremos matriz de
adyacencia de G a la matriz nxn que llamaremos A = (aij)
donde aij = 1 si {i,j}A y aij = 0 en otro caso.
• La matriz de adyacencia siempre es simétrica porque aij
= aji v1 v2 v3 v4 v5
v1 0 1 1 0 0
v2 1 0 1 1 0
v3 1 1 0 1 1
v4 0 1 1 0 0
v5 0 0 1 0 0
9
GRAFOS
• Sea G un grafo de n vértices con n > 1 y sea A su matriz
de adyacencia. Se cumple que el valor del coeficiente ai,j
de la matriz Ak es igual al número de caminos de
longitud k con extremos vi y vj
• Si existe un camino de longitud m (m n) entre 2
vértices cualquiera, entonces existe un camino de
longitud n-1 entre esos dos vértices.
• Un grafo G se dice conexo si cada par de vértices está
unido al menos por un camino.
• Una arista de un grafo G se dice de separación si G es
conexo pero al suprimir la arista se divide en dos
componentes conexos
10
GRAFOS
11
Grafos Eulerianos y Hamiltonianos
12
Grafos Eulerrianos y Hamiltonianos
13
Puentes de Konigsberg
14
Algoritmo de Fleury
16
Problema del Vendedor Viajero
17
Ruta mas corta
18
Algoritmo de Dijkstra
• Suponemos que los pesos son números positivos.
• Se desea determinar el camino mas corto de a hasta z.
• El grafo es conexo.
• Sea L(v) la etiqueta del vértice v.
• En algún momento algunos vértices tienen etiquetas
temporales y otros permanentes.
• Sea T el conjunto de tienen etiquetas temporales.
• En principio todos los vértices tienen etiquetas temporales.
• En cada iteración el algoritmo modifica el estado de una
etiqueta de temporal a permanente.
• El algoritmo concluye cuando z recibe una etiqueta
permanente, L(z) proporciona la longitud mínima de a
hasta z.
• El peso de la arista (i,j) es w(i,j)
19
Algoritmo de Dijkstra
Procedure dijkstra(w, a, z, L)
L(a)=0
For todos los vértices x != a do
L(x) = infinito
T = conjunto de todos los vértices
// T es el conjunto de vértices cuya distancia mas corta a “a”
no ha sido determinada
While z pertenece T do
elegir v en T con L(v) mínimo
T = T-{v}
for cada x en T adyacente a v do
L(x) = min{L(x),L(v) + w(v,x)}
end
end
20
ARBOLES
21
ARBOLES
• Por tanto, un grafo es un árbol entre cada par de
vértices existe un camino y sólo uno.
• Un grafo se dice un bosque si sus componentes
conexas son árboles.
• Teorema.- Sea G(V,E) un grafo. Son equivalentes
a) G es un árbol
b) Cada par de vértices distintos de V esta conectado
por un único camino.
c) G es conexo y toda arista de G es de separación
d) G no tiene ciclos y |V| = |E| + 1
e) G es conexo y |V| = |E| + 1
f) G no tiene ciclos pero al añadirle una arista a G se
crea un único circuito
22
ARBOL GENERADOR
23
ARBOL GENERADOR
• Supongamos que a cada arista se le asocia un número
positivo (su peso). Un árbol generador se dice de peso
mínimo si la suma de los pesos de las aristas que lo
componen es lo menor posible
• Para calcular el árbol de peso mínimo existen 2
algoritmos:
– Kruskal: Se van escogiendo las aristas de menor
peso hasta conseguir un árbol de peso mínimo
– Prim: Consiste en ir borrando las aristas de mayor
peso posible y que no sean aristas de separación.
• Puede haber más de un árbol generador de peso
mínimo, pero todos deben tener el mismo peso.
24
ALGORITMO DE PRIM
La idea básica consiste en añadir, en cada paso, una arista
de peso mínimo a un árbol previamente construido. Más
explícitamente:
25
ALGORITMO DE PRIM
26
ALGORITMO DE PRIM
27
ALGORITMO DE KRUSKAL
• La idea básica consiste en elegir sucesivamente las aristas
de mínimo peso sin formar ciclos.
28
ALGORITMO DE KRUSKAL
29
ALGORITMO DE KRUSKAL
30