Sunteți pe pagina 1din 30

GRAFOS

HUGO ARAYA CARRASCO

GRAFOS
Un grafo G es un par (V,E) donde V es un conjunto
(llamado conjunto de vrtices o nodos) y E un
subconjunto de VxV (conjunto de aristas).
Grficamente representaremos los vrtices por puntos y
las aristas por lneas que los unen.
Un vrtice puede tener 0 o ms aristas, pero toda arista
debe unir exactamente 2 vrtices.
Llamaremos orden de un grafo a su nmero de vrtices,
|V|.
Si |V| es finito se dice que el grafo es finito.
Toda arista une dos vrtices distintos
2

ARISTAS y VERTICES
Si la arista carece de direccin se denota
indistintamente {a,b} o {b,a}, siendo a y b los vrtices
que une.
Si {a,b} es una arista, a los vrtices a y b se les llama
sus extremos.
Dos vrtices v, w se dice que son adyacentes si {v,w}V
(o sea, si existe una arista entre ellos)
Llamaremos grado de un vrtice al nmero de aristas de
las que es extremo. Se dice que un vrtice es par o
impar segn lo sea su grado.

CAMINOS
Sean x, y V, se dice que hay un camino en G de x a y
si existe una sucesin finita no vaca de aristas {x,v1},
{v1,v2},..., {vn,y}. En este caso.

x e y se llaman los extremos del camino


El nmero de aristas del camino se llama la longitud del camino
Si los vrtices no se repiten el camino se dice propio o simple.
Si hay un camino no simple entre 2 vrtices, tambin 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 vrtice a se dice accesible desde el vrtice b si existe un
camino entre ellos. Todo vrtice es accesible respecto a si
mismo

EJEMPLOS DE GRAFOS

Grafo regular: Aquel con el


mismo grado en todos los
vrtices. Si ese grado es k lo
llamaremos k-regular.

EJEMPLOS DE GRAFOS
Grafo bipartito: Es aquel con cuyos vrtices pueden formarse
dos conjuntos disjuntos de modo que no haya adyacencias entre
vrtices pertenecientes al mismo conjunto

EJEMPLO DE GRAFOS
Grafo completo: Aquel con una arista entre cada par de vrtices. Un
grafo completo con n vrtices se denota Kn.

EJEMPLOS DE GRAFOS
Todo grafo completo es regular porque cada vrtice tiene grado |
V|-1 al estar conectado con todos los otros vrtices.
Un grafo regular no tiene por qu ser completo
Un grafo bipartido regular se denota Km,n donde m, n es el grado
de cada conjunto disjunto de vrtices.
A continuacin ponemos los dibujos de K1,2, K3,3, y K2,5

MATRIZ DE ADYACENCIA
La suma de los grados de los vrtices es igual al doble
del nmero 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 simtrica porque aij
= aji v1
v2
v3
v4
v5
v1

v2

v3

v4

v5

GRAFOS
Sea G un grafo de n vrtices con n > 1 y sea A su matriz
de adyacencia. Se cumple que el valor del coeficiente a i,j
de la matriz Ak es igual al nmero de caminos de longitud
k con extremos vi y vj
Si existe un camino de longitud m (m n) entre 2
vrtices cualquiera, entonces existe un camino de
longitud n-1 entre esos dos vrtices.
Un grafo G se dice conexo si cada par de vrtices est
unido al menos por un camino.
Una arista de un grafo G se dice de separacin si G es
conexo pero al suprimir la arista se divide en dos
componentes conexos
10

GRAFOS
Un mtodo para comprobar si un grafo es conexo es el siguiente:
Se halla la matriz de adyacencia y se eleva a la (n-1)-sima
potencia
Se calcula la suma de las potencias de A hasta An-1
Si todos sus elementos son 0, el grafo es conexo.
Dados dos grafos G = (V, E) y G = (V, E), se denomina
isomorfismo entre G y G a cualquier aplicacin biyectiva f:G
G tal que si a, b V, entonces {a,b}E {f(a),f(b)}E.

11

Grafos Eulerianos y Hamiltonianos

Llamaremos camino euleriano a un camino que contiene a todas las


aristas del grafo, apareciendo cada una exactamente una vez.
Un ciclo euleriano es un camino euleriano que comienza y acaba en el
mismo vrtice.
Un grafo que admite un ciclo euleriano diremos que es un grafo
euleriano.

12

Grafos Eulerrianos y Hamiltonianos


Si un grafo est formado por dos subgrafos
eulerianos unidos al menos por un vrtice y sin
aristas en comn, entonces es euleriano.
Un grafo conexo G=(V,A) es euleriano todo
vrtice tiene grado par.
Un grafo conexo tiene un camino abierto
euleriano tiene exactamente dos vrtices de
grado impar.

13

Puentes de Konigsberg
El problema consiste en partir de cualquier lugar ,
caminar sobre cada puente exactamente una vez y
luego regresar a la posicin inicial.

14

Algoritmo de Fleury
Si G es un grafo euleriano siempre es
posible seguir la siguiente construccin de
un circuito euleriano. Se empieza por un
vrtice arbitrario y se recorren las aristas
arbitrariamente sometida a dos
condiciones:
Se borran las aristas a medida que son
atravesadas
Solo se recorre una arista de separacin si no
queda otra alternativa
15

Caminos Hamiltonianos
Un camino hamiltoniano es un camino que recorre todos
los vrtices de un grafo sin pasar dos veces por el
mismo vrtice.
Si el camino es cerrado se dice un ciclo hamiltoniano
Un grafo G se dice hamiltoniano si tiene un ciclo
hamiltoniano.
A diferencia de los grafos eulerianos, no hay una
caracterizacin de cuando un grafo tiene un ciclo o un
camino hamiltoniano.
Si un grafo es conexo con |V|3 y para cada par de
vrtices la suma de sus grados es mayor o igual que el
nmero de vrtices entonces es hamiltoniano.
16

Problema del Vendedor Viajero


En un grafo G con pesos se pretende
encontrar un ciclo que pase por todos los
vrtices de forma que la suma de los
pesos de las aristas escogidas para
formar el ciclo sea lo menor posible.

17

Ruta mas corta


Un grafo con pesos es un grafo en el cual
se asignan valores a las aristas y que la
longitud de un camino en un grafo con
pesos es la suma de los pesos de las
aristas en el camino. Con frecuencia se
desea determinar la ruta mas corta entre
dos vrtices dados. Dijkstra escribi el
algoritmo que resuelve este problema.

18

Algoritmo de Dijkstra

Suponemos que los pesos son nmeros positivos.


Se desea determinar el camino mas corto de a hasta z.
El grafo es conexo.
Sea L(v) la etiqueta del vrtice v.
En algn momento algunos vrtices tienen etiquetas
temporales y otros permanentes.
Sea T el conjunto de tienen etiquetas temporales.
En principio todos los vrtices tienen etiquetas temporales.
En cada iteracin 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 mnima 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 vrtices x != a do
L(x) = infinito
T = conjunto de todos los vrtices
// T es el conjunto de vrtices cuya distancia mas corta a a
no ha sido determinada
While z pertenece T do
elegir v en T con L(v) mnimo
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
Un grafo se dice un rbol si es conexo y no
tiene ciclos.
Los primeros dos grafos son rboles:

21

ARBOLES
Por tanto, un grafo es un rbol entre cada par de
vrtices existe un camino y slo 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 vrtices distintos de V esta conectado
por un nico camino.
c) G es conexo y toda arista de G es de separacin
d) G no tiene ciclos y |V| = |E| + 1
e) G es conexo y |V| = |E| + 1
f) G no tiene ciclos pero al aadirle una arista a G se
crea un nico circuito
22

ARBOL GENERADOR
Definicin.- Sea G un grafo, un rbol generador de G es
un subgrafo conexo de G que tiene los mismos vrtices
que G y no tiene circuitos.

23

ARBOL GENERADOR
Supongamos que a cada arista se le asocia un nmero
positivo (su peso). Un rbol generador se dice de peso
mnimo si la suma de los pesos de las aristas que lo
componen es lo menor posible
Para calcular el rbol de peso mnimo existen 2
algoritmos:
Kruskal: Se van escogiendo las aristas de menor
peso hasta conseguir un rbol de peso mnimo
Prim: Consiste en ir borrando las aristas de mayor
peso posible y que no sean aristas de separacin.
Puede haber ms de un rbol generador de peso
mnimo, pero todos deben tener el mismo peso.
24

ALGORITMO DE PRIM
La idea bsica consiste en aadir, en cada paso, una arista
de peso mnimo a un rbol previamente construido. Ms
explcitamente:
Paso 1. Se elige un vrtice u de G y se considera el rbol
S={u}
Paso 2. Se considera la arista e de mnimo peso que une un
vrtice de S y un vrtice que no es de S, y se hace S=S+e
Paso 3. Si el n de aristas de T es n-1 el algoritmo termina.
En caso contrario se vuelve al paso 2

25

ALGORITMO DE PRIM

26

ALGORITMO DE PRIM

27

ALGORITMO DE KRUSKAL
La idea bsica consiste en elegir sucesivamente las aristas
de mnimo peso sin formar ciclos.
Paso 1. Se elige la arista de mnimo peso e y se considera
S={e}.
Paso 2. Sea e la arista de mnimo peso tal que eS y S+e'
es un grafo acclico. Se hace S=S+e'.
Paso 3. Si S tiene n-1 aristas, el algoritmo termina. En
caso contrario se vuelve al paso 2.

28

ALGORITMO DE KRUSKAL

29

ALGORITMO DE KRUSKAL

30