Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Teora de Grafos
Red de Computadoras
Conexiones de vuelo de una aereolnea
Carreteras que unen ciudades
Actividades de un proyecto Impresora
Representacin de un mapa
Servidor
Grafo Regular
u
Todos los vrtices tienen el mismo grado
Si el grado es k, el grafo es k-regular
y z
Grafo 3 - regular
Grafo Completo
Tiene una arista entre cualquier par de vrtices
a b a b
e
d
c d c
a b a b c
Grafos Bipartitos
c d e
Lazo o bucle
Tipos de Grafos
x u
Mulitgrafo
Es un grafo que tiene arcos mltiples
(paralelos) o lazos
y z
Grafo Simple
Es un grafo o digrafo que no tiene bucles x u
y que no es un multigrafo
y z
Grafo simple
Tipos de Grafos (direccin)
1 4
Grafos no dirigidos
Si los pares de nodos de los arcos 5
no son ordenados
El arco se puede recorrer en ambos sentidos 7 9
Ej.: u-v
F
D H
V = {C, D, E, F, H}
E= {(E,H), (H,E), (E,C), (C,D), (D,F)}
Grado de un Digrafo
En un grafo dirigido los arcos son
E
pares ordenados.
Implica que (u,v) (v,u)
M Las lneas se convierten en
flechas
El grado de entrada de un nodo es
B el nmero de arcos entrantes
L
El grado de salida de un nodo es el
P nmero de arcos salientes
Grafos ponderados
Costo o Factor de Peso
Valor que se puede asociar con un arco
Depende de lo que el grafo represente
Si los arcos de un grafo tienen un costo: Grafo valorado o ponderado
20 20
aa bb aa bb
25 30 25 30
40 40
cc 15 dd cc dd
15
Grafo Dirigido con Grafo No Dirigido con
Costo Costo
Conectividad
Grafo conexo
Grafo Conexo
5
Existe un camino entre cualquier par de 3
nodos 9
2 7
A B C
D E F
Camino A y A
P = {A, E, B, F, A}
2 Islas: B y C
2 Orillas: A y D
Puentes de Knigsberg
Un modelo de grafo de puentes de Knigsberg
Nodos:
Porciones de tierra (orillas, islas)
Arcos: 5
Puentes
Representacin
mediante un grafo
Origen de los grafos: Euler ide los grafos para ver si era posible
Recorrer toda la ciudad sin cruzar c/u de los puentes ms de una sola vez.
Caminos y Ciclos de Euler
Camino de Euler
Recorre TODOS los ARCOS sin repetirlos
Los vrtices se pueden repetir
Ciclo de Euler
Recorre TODOS los ARCOS sin repetirlos
Los vrtices se pueden repetir
Inicia y termina en el mismo vrtice
Grafo Semieuleriano
Es aquel grafo conexo que admite un camino de Euler
Grafo Euleriano
Es el aquel grafo conexo que admite un circuito de Euler
Teoremas de Euler
Teorema 1 (Grafo Euleriano)
Si G es un grafo conexo y TODOS sus vrtices tienen grado PAR,
entonces existe un circuito de Euler en G.
Procedimiento:
1. Localizar los vrtices de grado impar
2. Aadir un arco a c/u de los vrtices para que tenga grado par
Ciclo de Hamilton
Inicia y termina en el mismo vrtice
Recorre TODOS los VRTICES sin repetirlos (excepto el vrtice del
cual parte y al cual llega)
Grafo Hamiltoniano
Es el aquel grafo que admite un circuito de Hamilton
Ciclo Hamiltoniano
El juego de Hamilton se resuelve
si se encuentra un ciclo que recorra
todos los vrtices pasando una sola
vez por cada uno de ellos (excepto
por el vrtice inicial y final).
Nodos= ciudades
Arcos=caminos entre ciudades
1 2 1 2 3 4
1
2
3
3 4 4
1 R2 2 = {1, 2, 2}
1 2
1 R2 3 = {1, 2, 3}
2 R2 2 = {2, 2, 2}
2 R2 3 = {2, 2, 3}
2 R2 4 = {2, 3, 4}
3 4 3 R2 3 = {3, 4, 3}
4 R2 4 = {4, 3, 4}
Digrafo G
Grafos: Representacin
Matricial
Representacin de Grafos
Para representar un grafo en una computadora se puede
usar:
Matriz de Adyacencia [A]
V (vrtices) x V(vrtices)
V 0 V1 V 2 V 3 V 4 V 5
1, si hay arco (Vi ,Vj ) V 0 0 1 0 0 0 0
aij V 1 1 0 1 0 0 0
0, si no hay arco (Vi , Vj ) V 2 0 1 0 1 0 0
V 3 0 0 1 0 0 0
V 4 0 0 0 0 0 1
Caso especial: cuando hay un lazo se considera aij=1
V 5 0 0 0 0 1 0
Matriz de Adyacencia [A]
(digrafos)
Para Digrafos
V1 V2 V4
V3
e1 e2
V1 V2 V4
e1 V1 V 2
e V2 V 4
[B] = 2
e3 e4 e3 V1 V 3
e4 V2 V 3
V3
0, si i=j
dij X, si no hay camino entre Vi y Vj
# de arcos del camino ms corto entre Vi y Vj
V2 V4 V1 V 2 V3 V4
V1
V01 1 2 x
V2 0 1 x
[D] = 2
V33 2 0 x
V34 1 2 0
V3
Grafos: Algoritmos
S
562 300
M C
425
Algoritmos para establecer
circuitos hamiltonianos
considerando el costo
2. rbol del costo mnimo
a. Generar todos los recorridos hamiltonianos posibles
b. Elegir el camino con el peso mnimo C
M S L
L
S L L M M S
L S M L S M
541
774 349 C C C C C C
S
{C, M, L, S, C} = 425 + 774 + 541 + 300 = 2040
562 300
{C, M, S, L, C} = 425 + 562 + 541 + 349 = 1877
M C {C, S, M, L, C} = 300 + 562 + 774 + 349 = 1985
425
{C, S, L, M, C} = 300 + 541 + 774 + 425 = 2040
{C, L, S, M, C} = 349 + 541 + 562 + 425 = 1877
{C, L, M, S, C} = 349 + 774 + 562 + 300 = 1985
Algoritmos para establecer
circuitos hamiltonianos
considerando el costo
3. Arcos clasificados (costo medio)
a. Ordenar los arcos: 300, 349, 425, 541, 562, 774
b. Menor: 300, siguiente menor 349, etc.
541
774 349
S
562 300
M C
425
Algoritmos para encontrar
caminos ms cortos
Frecuentemente se desea conocer en un grafo cul es el
camino ms corto entre un par de vrtices
En este caso
S importa cuntos caminos existen
Si ya conozco un camino pero encuentro uno mejor,
sustuir
Aplicar algoritmos de:
1. Ford
2. Dikjstra
Algoritmo de Ford
1. Permite calcular la distancia mnima entre 2
puntos de 1 grafo.
2. Cada nodo se representa por : n
A
3. Pasos:
1. Asignar el valor 0 al nodo origen
2. Mediante un proceso iterativo se le asignar a cada nodo Xi
un valor n igual a la longitud del camino ms corto que exista
desde el nodo origen al nodo Xj.
Edsger Dijkstra (1930
2002)
Cientfico de la computacin
de origen holands
EJEMPLO DE DIJKSTRA
V1 V2 V3 V4 V5 V6